Upgrade to Version 5.1.1-alpha5 Was Successful! Let us know if anything is not working as expected.
';
+
Upgrade to Version 5.1.1-beta1 Was Successful! Let us know if anything is not working as expected.
';
// Add/Update component in the action logs extensions table.
$this->setActionLogsExtensions();
@@ -3489,6 +3489,22 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
'COM_COMPONENTBUILDER'
);
+ // Add/Update Class_extends in the action logs config table.
+ $this->setActionLogConfig(
+ // typeTitle
+ 'CLASS_EXTENDS',
+ // typeAlias
+ 'com_componentbuilder.class_extends',
+ // idHolder
+ 'id',
+ // titleHolder
+ 'name',
+ // tableName
+ '#__componentbuilder_class_extends',
+ // textPrefix
+ 'COM_COMPONENTBUILDER'
+ );
+
// Add/Update Class_property in the action logs config table.
$this->setActionLogConfig(
// typeTitle
@@ -4017,22 +4033,6 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface
'COM_COMPONENTBUILDER'
);
- // Add/Update Class_extends in the action logs config table.
- $this->setActionLogConfig(
- // typeTitle
- 'CLASS_EXTENDS',
- // typeAlias
- 'com_componentbuilder.class_extends',
- // idHolder
- 'id',
- // titleHolder
- 'name',
- // tableName
- '#__componentbuilder_class_extends',
- // textPrefix
- 'COM_COMPONENTBUILDER'
- );
-
// Add/Update Joomla_module_updates in the action logs config table.
$this->setActionLogConfig(
// typeTitle
diff --git a/README.md b/README.md
index 69d386ceb..c3e6f24ab 100644
--- a/README.md
+++ b/README.md
@@ -1,160 +1,239 @@
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
-This is a [Joomla 5.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
+
- 
+This is a professional-grade [Joomla 5.x](https://extensions.joomla.org/extension/component-builder/) component, created with [Joomla Component Builder (JCB)](https://www.joomlacomponentbuilder.com)โa uniquely advanced development engine for building and maintaining complete Joomla extensions.
-The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
+> ๐ฅ [Original... Quick Hello World Demo](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45), yes JCB has been around for over a decade.
-Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
+JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x โ and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generatorโit's a **full-stack development pipeline for Joomla extensions**.
-You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.1.1-alpha5) with **ALL** its features and **ALL** concepts totally open-source and free!
+You can install this component easily. The latest release (**5.1.1-beta1**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access.
-> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
+Upgrades are seamless through Joomlaโs built-in extension update mechanism.
-Once installed upgrades are quick and easy via the default [Joomla](https://extensions.joomla.org/extension/component-builder/) upgrade area.
+---
-Some of the Features
-====================
+## ๐ Core Capabilities at a Glance
-+ Fetch Code from IDE and place it back in component during next compilation.
-+ Add [Joomla custom fields](https://www.youtube.com/watch?v=n5RBmP0uNCM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=75) in any of your components.
-+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
-+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
-+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
-+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
-+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
-+ Adding mySQL Dump to any View/Table.
-+ Grab existing Table data and build a dynamic dump.
-+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
-+ Unlimited Tables/Views.
-+ Reusing Views and Fields.
-+ Runs on Your Own [Joomla](https://extensions.joomla.org/extension/component-builder/) Install.
-+ Add Dynamic/custom back-end views that uses Table and Chart result sets.
-+ Build data query of extreme complex nature to use in Dynamic/custom views.
-+ Highly Dynamic/custom Front-end Structures.
-+ Dynamically setup templates and layouts for Front-end design.
-+ Integration of the excellent UIKIT lib.
-+ Integration of the excellent FOOTABLE lib.
-+ All [Joomla](https://extensions.joomla.org/extension/component-builder/) Standard Field Types (including subforms).
-+ Strong Implementation of all [Joomla](https://extensions.joomla.org/extension/component-builder/) Form Security.
-+ Load data via ajax with ease.
-+ You can add an Update Server to Components you build.
-+ Build advanced Dynamic front-end forms.
-+ Dynamic data queries from multiple tables.
-+ Place in local GIT folder, and publish to sales server.
-+ Include any amount of custom files and folders during build.
-+ Static helper class with smart methods already included.
-+ Static helper methods Can easily be added.
-+ Direct install from compiler view.
-+ Integrative with native [Joomla](https://extensions.joomla.org/extension/component-builder/) Categories and Tags.
-+ Fully Dynamic Search Friendly URL Auto Implementation.
-+ Custom scripting options all over the MVC structure.
-+ Permission implementation down to each view, item and field.
-+ Easy extendible to include other libraries.
-+ Can include SQL and visioning update link to distribute your component updates via [Joomla](https://extensions.joomla.org/extension/component-builder/) default upgrade of components.
-+ Easy Export & Import addon to all backend-tables.
-+ Overriding ability of import concepts in all backend-tables.
-+ The Batch and Filter implementation on all backend-list views.
-+ This and much much more are all possible with this component builder!
+Here are just some of the key powers JCB brings:
-Just Imagine
-====================
+* ๐ **Bi-Directional IDE Sync** โ Fetch custom logic from compiled projects and reintegrate on rebuild.
+* ๐งฑ **Build Joomla Components, Plugins, and Modules** โ Fully native and independently compiled.
+* ๐ง **Superpowers (PHP Class Builder)** โ Create namespaced abstract, interface, and trait-based PHP classes visually.
+* ๐ **Joomla Powers** โ Intelligent Joomla class referencing via dynamic placeholders (JPKs) that adapt to Joomla versions.
+* ๐๏ธ **Smart Boilerplating** โ Start fast with 6+ curated demo blueprints for instant use or customization.
+* ๐ **Round-Trip Development** โ Add, update, and persist changes across compiled code using insert/replace tags.
+* ๐ **Field Types Engine** โ Blueprint reusable Joomla-native fields with constraints, security, DB structure, and logic.
+* ๐งฌ **Admin Views, Custom Admin Views & Site Views** โ Fine-grained design for structured or dynamic backend/front-end UIs.
+* ๐งฎ **Dynamic GET Builder** โ Advanced visual query designer for cross-table, filter-rich, deeply joined SQL fetches.
+* ๐ก **Snippets, Layouts, Templates & Libraries** โ Shareable GUI-linked modules for reusable HTML/CSS/JS integration.
+* ๐งฐ **Custom Code System** โ Write logic once and reuse anywhere; full support for HTML & PHP placeholders and tracking.
+* ๐ ๏ธ **Multi-Version Compilation** โ Compile version-specific code for J3, J4, J5 without compatibility bloat.
+* ๐ฆ **Package Management** โ Export/import blueprints, version control builds, sync with Git, and distribute clean packages.
+* ๐ฅ๏ธ **CLI Integration** โ Build commands natively via terminal using Joomla's CLI runner.
+* ๐ **Update Server Support** โ Integrate custom update mechanisms for extensions post-deployment.
-+ Your Component Back-end can be more advanced then the [Joomla](https://extensions.joomla.org/extension/component-builder/) Article Manager.
-+ Your Code as Perfectly Unified to the strict [Joomla](https://extensions.joomla.org/extension/component-builder/) Standards.
-+ Adding Custom Scripting almost anywhere in the MVC structure.
-+ Import and export feature to all backend-views.
-+ Batch copy and move/update feature for all backend-views.
-+ History tracking per/change made on any back-end item.
-+ Dynamic field control, to show and hide fields in amazing ways.
-+ Front-end freedom of design that allows for any library to be used.
-+ This and much much more are all possible with this component builder!
+
+๐ View 100+ Additional Advanced Features
-You are in Control
-====================
+### ๐งฉ Architecture & Core Logic
-+ You can change the licensing template for your components.
-+ You can change/improve existing field types and add more.
-+ Line numbers to show where in compiler was the code build.
-+ You can improve the component since all code are open-source.
-+ Free updates for the lifetime of the project.
-+ You can dynamically add internal help structures to all component.
-+ There is no limitations on how big or how much you want to build (server limitation only).
-+ This is a complete factory kind of component that functions like a deployment hub.
-+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
-+ This and much much more are all possible with this component builder!
+* ๐ง **Super Powers**: Namespaced PHP classes (interfaces, traits, abstracts, finals) managed from GUI
+* ๐ **Joomla Powers**: Dynamic Joomla class resolution via JPK placeholders per Joomla version
+* ๐งฑ **Compile native Components, Plugins & Modules** in one unified workflow
+* ๐ **Multi-version support** (J3, J4, J5, J6-ready) with per-version compilation
+* ๐ฆ **Conditional logic injection** in models, views, controllers
+* ๐งฌ **Reusable Admin Views** across multiple components
+* ๐ง **Dynamic GET Builder** for visual cross-table queries
+* ๐ **Round-trip code integration** with file-to-database inserts/replaces
+* ๐งฌ **Custom Admin Views** with full MVC override power
+* ๐งฉ **Site Views** supporting public display of data with custom logic
+* ๐ **Dynamic dashboards** built via custom admin view chart helpers
+* ๐ **Model linking between views** using subforms and dynamic selectors
+* ๐งฉ **Shared field reuse across views** and components
+* ๐ฅ **Drag & Drop field mapping** for layout and logic assignment
+* ๐ฏ **Dynamic Field Visibility** conditions via GUI
+* ๐ฆ **Independent packaging** of views and logic for reuse
-Get More Demo Content
-====================
+### ๐ File & Code Management
-> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
+* ๐งพ **Insert/Replace tags** for persistent file overrides
+* ๐๏ธ **PHP & HTML custom code injection** via placeholder system
+* ๐ ๏ธ **Automatic file synchronization** on rebuild
+* ๐งฎ **Reverse string parser** to restore lang strings back to natural text
+* ๐ **Line tracking** to see where code was compiled from
+* ๐๏ธ **Smart override detection** and conflict management
+* ๐ **Compiler debug tracking**
+* โ๏ธ **Dynamic use-statement generation** with alias auto-resolving
+* ๐พ **Auto language string export** from templates & views
+* ๐งฐ **Helper classes and static utilities** included by default
-### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
+### ๐ง Code Reuse & Blueprints
-To install these packages [watch this tutorial](https://vdm.bz/how-to-install-jcb-packages).
+* ๐งฑ **Demo component blueprints** for rapid prototyping
+* ๐ **Blueprint export/import** via JSON or Git sync
+* ๐ **Shared field types** serve as field templates
+* ๐งช **Test-friendly compiler mode** for internal checking
+* ๐งฉ **Template-based file creation** with dynamic variables
+* ๐ **Smart template merging** for updates
+* ๐ง **Field definitions drive DB schema**
+* ๐๏ธ **Custom scripting per field** on get/save
+* ๐ **Field view-type override (admin vs config)**
+### ๐ Joomla CMS Integration
-Where can you get support and help?
-====================
+* ๐ก๏ธ **Token integration** via Joomla methods
+* ๐ **ACL per view, field, item**
+* ๐งพ **Field-based Joomla config generation**
+* ๐ **Support for Joomla categories/tags/custom fields**
+* โ๏ธ **CLI-ready components** with native terminal support
+* ๐ฐ๏ธ **Joomla Update Server integration**
+* ๐งช **Version-aware language string compilation**
+* ๐ค **Remote publishing to custom repo update streams**
-- [Package](https://git.vdm.dev/joomla/pkg-component-builder).
-- [Download](https://git.vdm.dev/joomla/pkg-component-builder/archive/master.zip).
-- [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE).
-- [German](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7).
-- [Hello World](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45).
-- [Discussions](https://github.com/vdm-io/Joomla-Component-Builder/discussions).
-- [Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki).
-- [Issues](https://git.vdm.dev/joomla/Component-Builder/issues). ^^
-- [Issues Stream](https://t.me/jcb_issues).
-- [Updates](https://t.me/jcb_updates).
-- [User Group](https://t.me/jcb_group).
-- [Announcement](https://t.me/Joomla_component_builder).
-- [Beta](https://git.vdm.dev/joomla-beta/pkg-component-builder).
-- [Nightly Build](https://git.vdm.dev/joomla-beta/pkg-component-builder/archive/master.zip).
-- [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint).
-- [Security](https://www.vdm.io/report-security-issues).
+### ๐ง Visual GUI & UX
-^^ Then if you run into any issues, related to the [JCB](https://git.vdm.dev/joomla/Component-Builder/issues) code, like bugs, **start by searching** the (*open & closed*) issues over on [Gitea](https://git.vdm.dev/joomla/Component-Builder/issues), and if the issue has not been mentioned before, **then only** open a new issue, following the [community guidelines](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/CONTRIBUTING.md).
+* ๐จ **Layout builder** with inline layout reusability
+* ๐ **Template builder** with overrides
+* ๐ง **Snippets GUI** for code blocks linked to layouts/templates
+* ๐ **Custom documentation sections** linked into generated components
+* ๐งฌ **Field injection points in layout/template snippets**
+* ๐ **Dynamic reload on selection change** via JavaScript binding
+* ๐ฆ **Reusable custom admin view templates**
+* ๐ง **JS callback logic on field events**
+* ๐ **Inline help descriptions** from config
+* ๐ฑ๏ธ **Custom admin menus** and dashboard menu builders
-WHY GIVE IT AWAY LIKE THIS?
-====================
+### ๐ Internationalization
-> We are Open Source Enthusiast
-> Who Support the [Joomla](https://extensions.joomla.org/extension/component-builder/) Community
+* ๐ **Excel import/export for language strings**
+* ๐ **Per-field language control**
+* ๐งพ **Language string auto-indexing**
+* ๐ **Reverse engineering of language constants**
+* ๐ง **Per-Joomla-version lang key mapping**
+* ๐ง **GUI to rewrite or update lang string context**
-Our idea was to almost let this tool serve as a cheat sheet to how things can be done... and with the help of other developers end up formulating the way how things not only can, but must be done to insure secure, stable, scalable and maintainable code is produced.
+### ๐ฆ Packaging & Distribution
-MAKING IT BETTER!
-====================
+* ๐ค **Push component to Git repo**
+* ๐ **Auto-compile and auto-tag packages**
+* ๐๏ธ **Blueprints stored and versioned by metadata**
+* ๐ **Auto-generated changelog from commits**
+* ๐ **Signed zip packaging supported**
+* ๐ฌ **Component update URLs via GUI settings**
+* ๐ท๏ธ **Version-aware build ID assignment**
-Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
+### โ๏ธ Compiler Engine Features
-TODO
-======
+* โก **Under-30-second build time** on large components
+* ๐ฆ **Memory-optimized ZIP builder**
+* ๐ **Repeatable fields** via subform templates
+* ๐ฅ **Fail-safe error protection** and rollback
+* ๐ **Detailed compiler logs with stack trace and UUIDs**
+* ๐ **Build summary report** after compilation
-- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
-- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
-- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
+### ๐งฑ Custom Code System (Powerful Dual Feature)
-# Build Details
+* ๐ง **Universal reusable code blocks** (inject anywhere by key)
+* ๐ช **Update detection & visual diffing** on reused code
+* ๐งฌ **Multi-context custom code binding**
+* ๐ **Dynamic placeholder variable injection**
+* ๐ **Nested custom code support**
+* ๐ฅ **Advanced compiler hooks per code block**
+* ๐ง **Round-trip tag tracking in PHP/HTML**
+* ๐ [Learn more about this here](https://git.vdm.dev/joomla/Component-Builder/wiki/TIPS:-Custom-Code)
-+ *Community*: [Vast Development Method](https://dev.vdm.io)
-+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
-+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
-+ *First Build*: 30th April, 2015
-+ *Last Build*: 13th May, 2025
-+ *Version*: 5.1.1-alpha5
-+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
-+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **1032893**
-+ *Field count*: **2099**
-+ *File count*: **7002**
-+ *Folder count*: **678**
+### ๐ Field Type System
-> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
-> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+* ๐งฌ **Field types define templates and data types**
+* ๐ก **GUI-defined rules (required, unique, nullable)**
+* ๐ง **Save/get hooks per field**
+* ๐ก๏ธ **Database schema auto-generated from field settings**
+* ๐ **Per-display field rendering config (list/edit)**
+* ๐งฉ **Create dynamic models with modals/selectors**
+* ๐ง **Conditional JS & CSS per field**
+
+### ๐ Dynamic GET (Visual SQL Engine)
+
+* ๐ **Design complex joins from GUI**
+* ๐ง **Multiple GETs per view**
+* ๐ **Reusable query sets**
+* ๐งพ **Where/group/order statements supported**
+* ๐ **Auto model method generation**
+* ๐ง **Switch between list/item GETs**
+* ๐ก๏ธ **Output Joomla-native query builder logic**
+
+### ๐ Snippets, Templates, Layouts, Libraries
+
+* ๐ง **Snippets = reusable HTML blocks**
+* ๐งฉ **Layouts = reusable PHP render templates**
+* ๐ผ๏ธ **Templates = page-level views linked to custom admin/site views**
+* ๐ฆ **Libraries = JS/CSS assets linked to UI**
+* ๐ **CDN/local toggle for library delivery**
+* ๐ **Media folder injection with override support**
+* ๐ง **Repository push/pull/reset workflow**
+* ๐ฅ **Init snippets/layouts/templates via GUI**
+
+### ๐ Documentation & Metadata
+
+* ๐ **Per-entity README auto-generation**
+* ๐ **Markdown + PHPDoc docblock support**
+* ๐งพ **Internal documentation tables**
+* ๐ **Update version history logs per entity**
+* ๐ง **Field reference mapping table output**
+* ๐ **Auto-documented component structure**
+
+### ๐ Analytics & Insights
+
+* ๐ **Track last build, size, line count, field count**
+* ๐ **Compare current vs previous builds**
+* ๐ง **Export component metadata as JSON**
+* ๐๏ธ **Stats per model/view**
+* ๐ **Total file/folder/line counters**
+
+
+
+---
+
+## ๐ฆ Get Started Now
+
+* ๐ฝ **Download**: [Stable Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) ยท [Nightly J5](https://git.vdm.dev/joomla/pkg-component-builder/archive/5.x.zip) ยท [Nightly J4](https://git.vdm.dev/joomla/pkg-component-builder/archive/4.x.zip)
+* ๐ฅ **Install**: Use Joomlaโs extension manager
+* ๐ **Learn**: [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE) ยท [How to Install Demo Blueprints](https://vdm.bz/how-to-install-jcb-packages)
+
+---
+
+## ๐ค Get Help & Join the Community
+
+* ๐ฌ [GitHub Discussions](https://github.com/orgs/joomengine/discussions)
+* ๐ [Report Issues](https://git.vdm.dev/joomla/Component-Builder/issues)
+* ๐ [JCB Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
+* ๐จโ๐ซ [Video Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE)
+* ๐ฉ๐ช [German Series](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7)
+* ๐ [Telegram Groups](https://t.me/jcb_group) ยท [Announcements](https://t.me/Joomla_component_builder)
+* ๐ถ [Status](https://status.vdm.dev/status/jcb)
+* ๐ก๏ธ [Security Reports](https://www.vdm.io/report-security-issues)
+
+---
+
+## ๐ฑ Why It's Free
+
+JCB is developed by developers for developers. Its purpose is to democratize high-performance Joomla development by empowering everyone โ from solo builders to large teams โ to work with clean, scalable, maintainable, and versionable code. This isnโt a template generator โ itโs a full-scale **extension engineering platform**.
+
+---
+
+## ๐งฉ Component Metadata
+
+* **Company:** [Vast Development Method](https://dev.vdm.io)
+* **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+* **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
+* **Created:** 30th April, 2015 ยท **Last Build:** 18th June, 2025 ยท **Version:** 5.1.1-beta1
+* **License:** GNU General Public License version 2 or later; see LICENSE.txt ยท **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved.
+* **Lines:** 1086732 ยท **Fields:** 2096 ยท **Files:** 7420 ยท **Folders:** 724
+
+> Generated with [JCB](https://www.joomlacomponentbuilder.com) โ The Smartest Way to Build Joomla Extensions.
## Contributors
diff --git a/admin/README.txt b/admin/README.txt
index 69d386ceb..c3e6f24ab 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -1,160 +1,239 @@
# Joomla Component Builder ([JCB](https://www.joomlacomponentbuilder.com))
-This is a [Joomla 5.x](https://extensions.joomla.org/extension/component-builder/) component. [__See In Action__](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
+
- 
+This is a professional-grade [Joomla 5.x](https://extensions.joomla.org/extension/component-builder/) component, created with [Joomla Component Builder (JCB)](https://www.joomlacomponentbuilder.com)โa uniquely advanced development engine for building and maintaining complete Joomla extensions.
-The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
+> ๐ฅ [Original... Quick Hello World Demo](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45), yes JCB has been around for over a decade.
-Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
+JCB generates native Joomla components, plugins, and modules for Joomla 3.x, 4.x, and 5.x โ and is already prepared for Joomla 6. Every compiled project is tailored for the specific version without needing backward compatibility plugins. With integrated version-aware compiling, smart boilerplating, and Git-powered project syncing, JCB is much more than a code generatorโit's a **full-stack development pipeline for Joomla extensions**.
-You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.1.1-alpha5) with **ALL** its features and **ALL** concepts totally open-source and free!
+You can install this component easily. The latest release (**5.1.1-beta1**) is available on [Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) and updated frequently with full source access.
-> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
+Upgrades are seamless through Joomlaโs built-in extension update mechanism.
-Once installed upgrades are quick and easy via the default [Joomla](https://extensions.joomla.org/extension/component-builder/) upgrade area.
+---
-Some of the Features
-====================
+## ๐ Core Capabilities at a Glance
-+ Fetch Code from IDE and place it back in component during next compilation.
-+ Add [Joomla custom fields](https://www.youtube.com/watch?v=n5RBmP0uNCM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=75) in any of your components.
-+ Add you [own dashboard](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=60) in the back-end.
-+ [Dynamic File and Folder](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=56) Inclusion concept.
-+ [Easy Translation](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=51) via excel.
-+ Adding your [own rule validation](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=46) to a field in [JCB](https://www.joomlacomponentbuilder.com)
-+ [Automated backup system](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=0s&index=40) in [JCB](https://www.joomlacomponentbuilder.com).
-+ Adding mySQL Dump to any View/Table.
-+ Grab existing Table data and build a dynamic dump.
-+ Unlimited [Joomla](https://extensions.joomla.org/extension/component-builder/) Components.
-+ Unlimited Tables/Views.
-+ Reusing Views and Fields.
-+ Runs on Your Own [Joomla](https://extensions.joomla.org/extension/component-builder/) Install.
-+ Add Dynamic/custom back-end views that uses Table and Chart result sets.
-+ Build data query of extreme complex nature to use in Dynamic/custom views.
-+ Highly Dynamic/custom Front-end Structures.
-+ Dynamically setup templates and layouts for Front-end design.
-+ Integration of the excellent UIKIT lib.
-+ Integration of the excellent FOOTABLE lib.
-+ All [Joomla](https://extensions.joomla.org/extension/component-builder/) Standard Field Types (including subforms).
-+ Strong Implementation of all [Joomla](https://extensions.joomla.org/extension/component-builder/) Form Security.
-+ Load data via ajax with ease.
-+ You can add an Update Server to Components you build.
-+ Build advanced Dynamic front-end forms.
-+ Dynamic data queries from multiple tables.
-+ Place in local GIT folder, and publish to sales server.
-+ Include any amount of custom files and folders during build.
-+ Static helper class with smart methods already included.
-+ Static helper methods Can easily be added.
-+ Direct install from compiler view.
-+ Integrative with native [Joomla](https://extensions.joomla.org/extension/component-builder/) Categories and Tags.
-+ Fully Dynamic Search Friendly URL Auto Implementation.
-+ Custom scripting options all over the MVC structure.
-+ Permission implementation down to each view, item and field.
-+ Easy extendible to include other libraries.
-+ Can include SQL and visioning update link to distribute your component updates via [Joomla](https://extensions.joomla.org/extension/component-builder/) default upgrade of components.
-+ Easy Export & Import addon to all backend-tables.
-+ Overriding ability of import concepts in all backend-tables.
-+ The Batch and Filter implementation on all backend-list views.
-+ This and much much more are all possible with this component builder!
+Here are just some of the key powers JCB brings:
-Just Imagine
-====================
+* ๐ **Bi-Directional IDE Sync** โ Fetch custom logic from compiled projects and reintegrate on rebuild.
+* ๐งฑ **Build Joomla Components, Plugins, and Modules** โ Fully native and independently compiled.
+* ๐ง **Superpowers (PHP Class Builder)** โ Create namespaced abstract, interface, and trait-based PHP classes visually.
+* ๐ **Joomla Powers** โ Intelligent Joomla class referencing via dynamic placeholders (JPKs) that adapt to Joomla versions.
+* ๐๏ธ **Smart Boilerplating** โ Start fast with 6+ curated demo blueprints for instant use or customization.
+* ๐ **Round-Trip Development** โ Add, update, and persist changes across compiled code using insert/replace tags.
+* ๐ **Field Types Engine** โ Blueprint reusable Joomla-native fields with constraints, security, DB structure, and logic.
+* ๐งฌ **Admin Views, Custom Admin Views & Site Views** โ Fine-grained design for structured or dynamic backend/front-end UIs.
+* ๐งฎ **Dynamic GET Builder** โ Advanced visual query designer for cross-table, filter-rich, deeply joined SQL fetches.
+* ๐ก **Snippets, Layouts, Templates & Libraries** โ Shareable GUI-linked modules for reusable HTML/CSS/JS integration.
+* ๐งฐ **Custom Code System** โ Write logic once and reuse anywhere; full support for HTML & PHP placeholders and tracking.
+* ๐ ๏ธ **Multi-Version Compilation** โ Compile version-specific code for J3, J4, J5 without compatibility bloat.
+* ๐ฆ **Package Management** โ Export/import blueprints, version control builds, sync with Git, and distribute clean packages.
+* ๐ฅ๏ธ **CLI Integration** โ Build commands natively via terminal using Joomla's CLI runner.
+* ๐ **Update Server Support** โ Integrate custom update mechanisms for extensions post-deployment.
-+ Your Component Back-end can be more advanced then the [Joomla](https://extensions.joomla.org/extension/component-builder/) Article Manager.
-+ Your Code as Perfectly Unified to the strict [Joomla](https://extensions.joomla.org/extension/component-builder/) Standards.
-+ Adding Custom Scripting almost anywhere in the MVC structure.
-+ Import and export feature to all backend-views.
-+ Batch copy and move/update feature for all backend-views.
-+ History tracking per/change made on any back-end item.
-+ Dynamic field control, to show and hide fields in amazing ways.
-+ Front-end freedom of design that allows for any library to be used.
-+ This and much much more are all possible with this component builder!
+
+๐ View 100+ Additional Advanced Features
-You are in Control
-====================
+### ๐งฉ Architecture & Core Logic
-+ You can change the licensing template for your components.
-+ You can change/improve existing field types and add more.
-+ Line numbers to show where in compiler was the code build.
-+ You can improve the component since all code are open-source.
-+ Free updates for the lifetime of the project.
-+ You can dynamically add internal help structures to all component.
-+ There is no limitations on how big or how much you want to build (server limitation only).
-+ This is a complete factory kind of component that functions like a deployment hub.
-+ Export any component completely mapped in [JCB](https://www.joomlacomponentbuilder.com) and import into another [JCB](https://www.joomlacomponentbuilder.com).
-+ This and much much more are all possible with this component builder!
+* ๐ง **Super Powers**: Namespaced PHP classes (interfaces, traits, abstracts, finals) managed from GUI
+* ๐ **Joomla Powers**: Dynamic Joomla class resolution via JPK placeholders per Joomla version
+* ๐งฑ **Compile native Components, Plugins & Modules** in one unified workflow
+* ๐ **Multi-version support** (J3, J4, J5, J6-ready) with per-version compilation
+* ๐ฆ **Conditional logic injection** in models, views, controllers
+* ๐งฌ **Reusable Admin Views** across multiple components
+* ๐ง **Dynamic GET Builder** for visual cross-table queries
+* ๐ **Round-trip code integration** with file-to-database inserts/replaces
+* ๐งฌ **Custom Admin Views** with full MVC override power
+* ๐งฉ **Site Views** supporting public display of data with custom logic
+* ๐ **Dynamic dashboards** built via custom admin view chart helpers
+* ๐ **Model linking between views** using subforms and dynamic selectors
+* ๐งฉ **Shared field reuse across views** and components
+* ๐ฅ **Drag & Drop field mapping** for layout and logic assignment
+* ๐ฏ **Dynamic Field Visibility** conditions via GUI
+* ๐ฆ **Independent packaging** of views and logic for reuse
-Get More Demo Content
-====================
+### ๐ File & Code Management
-> You can now get access to the WOW factor, [JCB](https://www.joomlacomponentbuilder.com) fully mapped can now be yours! Including many other [JCB](https://www.joomlacomponentbuilder.com) mapped components.
+* ๐งพ **Insert/Replace tags** for persistent file overrides
+* ๐๏ธ **PHP & HTML custom code injection** via placeholder system
+* ๐ ๏ธ **Automatic file synchronization** on rebuild
+* ๐งฎ **Reverse string parser** to restore lang strings back to natural text
+* ๐ **Line tracking** to see where code was compiled from
+* ๐๏ธ **Smart override detection** and conflict management
+* ๐ **Compiler debug tracking**
+* โ๏ธ **Dynamic use-statement generation** with alias auto-resolving
+* ๐พ **Auto language string export** from templates & views
+* ๐งฐ **Helper classes and static utilities** included by default
-### All you need to do is [explained here](https://vdm.bz/how-to-get-free-vdm-package-keys)!
+### ๐ง Code Reuse & Blueprints
-To install these packages [watch this tutorial](https://vdm.bz/how-to-install-jcb-packages).
+* ๐งฑ **Demo component blueprints** for rapid prototyping
+* ๐ **Blueprint export/import** via JSON or Git sync
+* ๐ **Shared field types** serve as field templates
+* ๐งช **Test-friendly compiler mode** for internal checking
+* ๐งฉ **Template-based file creation** with dynamic variables
+* ๐ **Smart template merging** for updates
+* ๐ง **Field definitions drive DB schema**
+* ๐๏ธ **Custom scripting per field** on get/save
+* ๐ **Field view-type override (admin vs config)**
+### ๐ Joomla CMS Integration
-Where can you get support and help?
-====================
+* ๐ก๏ธ **Token integration** via Joomla methods
+* ๐ **ACL per view, field, item**
+* ๐งพ **Field-based Joomla config generation**
+* ๐ **Support for Joomla categories/tags/custom fields**
+* โ๏ธ **CLI-ready components** with native terminal support
+* ๐ฐ๏ธ **Joomla Update Server integration**
+* ๐งช **Version-aware language string compilation**
+* ๐ค **Remote publishing to custom repo update streams**
-- [Package](https://git.vdm.dev/joomla/pkg-component-builder).
-- [Download](https://git.vdm.dev/joomla/pkg-component-builder/archive/master.zip).
-- [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE).
-- [German](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7).
-- [Hello World](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45).
-- [Discussions](https://github.com/vdm-io/Joomla-Component-Builder/discussions).
-- [Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki).
-- [Issues](https://git.vdm.dev/joomla/Component-Builder/issues). ^^
-- [Issues Stream](https://t.me/jcb_issues).
-- [Updates](https://t.me/jcb_updates).
-- [User Group](https://t.me/jcb_group).
-- [Announcement](https://t.me/Joomla_component_builder).
-- [Beta](https://git.vdm.dev/joomla-beta/pkg-component-builder).
-- [Nightly Build](https://git.vdm.dev/joomla-beta/pkg-component-builder/archive/master.zip).
-- [Community Complaint](https://www.joomlacomponentbuilder.com/community-complaint).
-- [Security](https://www.vdm.io/report-security-issues).
+### ๐ง Visual GUI & UX
-^^ Then if you run into any issues, related to the [JCB](https://git.vdm.dev/joomla/Component-Builder/issues) code, like bugs, **start by searching** the (*open & closed*) issues over on [Gitea](https://git.vdm.dev/joomla/Component-Builder/issues), and if the issue has not been mentioned before, **then only** open a new issue, following the [community guidelines](https://git.vdm.dev/joomla/Component-Builder/src/branch/master/.github/CONTRIBUTING.md).
+* ๐จ **Layout builder** with inline layout reusability
+* ๐ **Template builder** with overrides
+* ๐ง **Snippets GUI** for code blocks linked to layouts/templates
+* ๐ **Custom documentation sections** linked into generated components
+* ๐งฌ **Field injection points in layout/template snippets**
+* ๐ **Dynamic reload on selection change** via JavaScript binding
+* ๐ฆ **Reusable custom admin view templates**
+* ๐ง **JS callback logic on field events**
+* ๐ **Inline help descriptions** from config
+* ๐ฑ๏ธ **Custom admin menus** and dashboard menu builders
-WHY GIVE IT AWAY LIKE THIS?
-====================
+### ๐ Internationalization
-> We are Open Source Enthusiast
-> Who Support the [Joomla](https://extensions.joomla.org/extension/component-builder/) Community
+* ๐ **Excel import/export for language strings**
+* ๐ **Per-field language control**
+* ๐งพ **Language string auto-indexing**
+* ๐ **Reverse engineering of language constants**
+* ๐ง **Per-Joomla-version lang key mapping**
+* ๐ง **GUI to rewrite or update lang string context**
-Our idea was to almost let this tool serve as a cheat sheet to how things can be done... and with the help of other developers end up formulating the way how things not only can, but must be done to insure secure, stable, scalable and maintainable code is produced.
+### ๐ฆ Packaging & Distribution
-MAKING IT BETTER!
-====================
+* ๐ค **Push component to Git repo**
+* ๐ **Auto-compile and auto-tag packages**
+* ๐๏ธ **Blueprints stored and versioned by metadata**
+* ๐ **Auto-generated changelog from commits**
+* ๐ **Signed zip packaging supported**
+* ๐ฌ **Component update URLs via GUI settings**
+* ๐ท๏ธ **Version-aware build ID assignment**
-Get involved on the forums, and the Gitea issues, and you can even help us develop/improve the pipeline of [JCB](https://www.joomlacomponentbuilder.com) for continues delivery. We really want to see [JCB](https://www.joomlacomponentbuilder.com) remain the tool of choice for all [Joomla Component Development](https://extensions.joomla.org/extension/component-builder/) needs and ideas.
+### โ๏ธ Compiler Engine Features
-TODO
-======
+* โก **Under-30-second build time** on large components
+* ๐ฆ **Memory-optimized ZIP builder**
+* ๐ **Repeatable fields** via subform templates
+* ๐ฅ **Fail-safe error protection** and rollback
+* ๐ **Detailed compiler logs with stack trace and UUIDs**
+* ๐ **Build summary report** after compilation
-- Add automatic unit testing. To nurture pipeline integration for all components build with [JCB](https://www.joomlacomponentbuilder.com).
-- Team collaborative development across [JCB](https://www.joomlacomponentbuilder.com) installations offline and online.
-- Documentation (maintained by the community) for [JCB](https://www.joomlacomponentbuilder.com). (help us select the best system for this)
+### ๐งฑ Custom Code System (Powerful Dual Feature)
-# Build Details
+* ๐ง **Universal reusable code blocks** (inject anywhere by key)
+* ๐ช **Update detection & visual diffing** on reused code
+* ๐งฌ **Multi-context custom code binding**
+* ๐ **Dynamic placeholder variable injection**
+* ๐ **Nested custom code support**
+* ๐ฅ **Advanced compiler hooks per code block**
+* ๐ง **Round-trip tag tracking in PHP/HTML**
+* ๐ [Learn more about this here](https://git.vdm.dev/joomla/Component-Builder/wiki/TIPS:-Custom-Code)
-+ *Community*: [Vast Development Method](https://dev.vdm.io)
-+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
-+ *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
-+ *First Build*: 30th April, 2015
-+ *Last Build*: 13th May, 2025
-+ *Version*: 5.1.1-alpha5
-+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
-+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
-+ *Line count*: **1032893**
-+ *Field count*: **2099**
-+ *File count*: **7002**
-+ *Folder count*: **678**
+### ๐ Field Type System
-> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com).
-> Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+* ๐งฌ **Field types define templates and data types**
+* ๐ก **GUI-defined rules (required, unique, nullable)**
+* ๐ง **Save/get hooks per field**
+* ๐ก๏ธ **Database schema auto-generated from field settings**
+* ๐ **Per-display field rendering config (list/edit)**
+* ๐งฉ **Create dynamic models with modals/selectors**
+* ๐ง **Conditional JS & CSS per field**
+
+### ๐ Dynamic GET (Visual SQL Engine)
+
+* ๐ **Design complex joins from GUI**
+* ๐ง **Multiple GETs per view**
+* ๐ **Reusable query sets**
+* ๐งพ **Where/group/order statements supported**
+* ๐ **Auto model method generation**
+* ๐ง **Switch between list/item GETs**
+* ๐ก๏ธ **Output Joomla-native query builder logic**
+
+### ๐ Snippets, Templates, Layouts, Libraries
+
+* ๐ง **Snippets = reusable HTML blocks**
+* ๐งฉ **Layouts = reusable PHP render templates**
+* ๐ผ๏ธ **Templates = page-level views linked to custom admin/site views**
+* ๐ฆ **Libraries = JS/CSS assets linked to UI**
+* ๐ **CDN/local toggle for library delivery**
+* ๐ **Media folder injection with override support**
+* ๐ง **Repository push/pull/reset workflow**
+* ๐ฅ **Init snippets/layouts/templates via GUI**
+
+### ๐ Documentation & Metadata
+
+* ๐ **Per-entity README auto-generation**
+* ๐ **Markdown + PHPDoc docblock support**
+* ๐งพ **Internal documentation tables**
+* ๐ **Update version history logs per entity**
+* ๐ง **Field reference mapping table output**
+* ๐ **Auto-documented component structure**
+
+### ๐ Analytics & Insights
+
+* ๐ **Track last build, size, line count, field count**
+* ๐ **Compare current vs previous builds**
+* ๐ง **Export component metadata as JSON**
+* ๐๏ธ **Stats per model/view**
+* ๐ **Total file/folder/line counters**
+
+
+
+---
+
+## ๐ฆ Get Started Now
+
+* ๐ฝ **Download**: [Stable Releases](https://git.vdm.dev/joomla/pkg-component-builder/releases) ยท [Nightly J5](https://git.vdm.dev/joomla/pkg-component-builder/archive/5.x.zip) ยท [Nightly J4](https://git.vdm.dev/joomla/pkg-component-builder/archive/4.x.zip)
+* ๐ฅ **Install**: Use Joomlaโs extension manager
+* ๐ **Learn**: [Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE) ยท [How to Install Demo Blueprints](https://vdm.bz/how-to-install-jcb-packages)
+
+---
+
+## ๐ค Get Help & Join the Community
+
+* ๐ฌ [GitHub Discussions](https://github.com/orgs/joomengine/discussions)
+* ๐ [Report Issues](https://git.vdm.dev/joomla/Component-Builder/issues)
+* ๐ [JCB Wiki](https://git.vdm.dev/joomla/Component-Builder/wiki)
+* ๐จโ๐ซ [Video Tutorials](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE)
+* ๐ฉ๐ช [German Series](https://www.youtube.com/playlist?list=PLQRGFI8XZ_wu0tDFxJtZFwW7AxA4JHQV7)
+* ๐ [Telegram Groups](https://t.me/jcb_group) ยท [Announcements](https://t.me/Joomla_component_builder)
+* ๐ถ [Status](https://status.vdm.dev/status/jcb)
+* ๐ก๏ธ [Security Reports](https://www.vdm.io/report-security-issues)
+
+---
+
+## ๐ฑ Why It's Free
+
+JCB is developed by developers for developers. Its purpose is to democratize high-performance Joomla development by empowering everyone โ from solo builders to large teams โ to work with clean, scalable, maintainable, and versionable code. This isnโt a template generator โ itโs a full-scale **extension engineering platform**.
+
+---
+
+## ๐งฉ Component Metadata
+
+* **Company:** [Vast Development Method](https://dev.vdm.io)
+* **Author:** [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+* **Component:** [Component Builder](https://git.vdm.dev/joomla/Component-Builder)
+* **Created:** 30th April, 2015 ยท **Last Build:** 18th June, 2025 ยท **Version:** 5.1.1-beta1
+* **License:** GNU General Public License version 2 or later; see LICENSE.txt ยท **Copyright:** Copyright (C) 2015 Vast Development Method. All rights reserved.
+* **Lines:** 1086732 ยท **Fields:** 2096 ยท **Files:** 7420 ยท **Folders:** 724
+
+> Generated with [JCB](https://www.joomlacomponentbuilder.com) โ The Smartest Way to Build Joomla Extensions.
## Contributors
diff --git a/admin/access.xml b/admin/access.xml
index 5c4881b40..69c857a56 100644
--- a/admin/access.xml
+++ b/admin/access.xml
@@ -78,6 +78,12 @@
+
+
+
+
+
+
@@ -98,6 +104,9 @@
+
+
+
@@ -323,6 +332,9 @@
+
+
+
@@ -355,12 +367,12 @@
-
-
-
+
+
+
@@ -469,6 +481,9 @@
+
+
+
@@ -689,6 +704,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -1032,17 +1058,6 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/admin/assets/js/initialization_selection.js b/admin/assets/js/initialization_selection.js
index ceac379f8..e9e0e952c 100644
--- a/admin/assets/js/initialization_selection.js
+++ b/admin/assets/js/initialization_selection.js
@@ -162,6 +162,16 @@ class InitializationManager {
}
}
+ _getInitFunctionName(area) {
+ const powers = [
+ 'Joomla.Fieldtype',
+ 'Joomla.Power',
+ 'Power'
+ ];
+
+ return powers.includes(area) ? 'initSelectedPowers' : 'initSelectedPackages';
+ }
+
async _handleRepoClick(event) {
const button = event.currentTarget;
const repo = button?.dataset?.repo;
@@ -186,12 +196,17 @@ class InitializationManager {
if (data.success && data.index && this.#buildTable) {
const repoData = data.index[0];
+ const {
+ path = 'joomla/super-powers',
+ read_branch = 'master',
+ target,
+ base = 'https://git.vdm.dev'
+ } = repoData;
- const repoBase = repoData.base || 'https://git.vdm.dev';
- const repoPath = repoData.path || 'joomla/super-powers';
- const repoBranch = repoData.read_branch || 'master';
+ const repo_base = (target === 'github') ? 'https://github.com' : base;
+ const repo_path = (target === 'github') ? 'tree' : 'src/branch';
- window.targetPowerRepoUrl = `${repoBase}/${repoPath}/src/branch/${repoBranch}/`;
+ window.targetPowerRepoUrl = `${repo_base}/${path}/${repo_path}/${read_branch}/`;
this.#buildTable(repoData.index);
@@ -228,6 +243,8 @@ class InitializationManager {
const area = this.currentArea || 'error';
const repo = this.currentRepo || 'error';
+ const func = this._getInitFunctionName(area);
+
try {
// Convert selected items to form data
const formData = new FormData();
@@ -239,7 +256,7 @@ class InitializationManager {
formData.append('area', area);
formData.append('repo', repo);
- const response = await fetch(`${UrlAjax}initSelectedPowers`, {
+ const response = await fetch(`${UrlAjax}${func}`, {
method: 'POST',
body: formData
});
diff --git a/admin/compiler/joomla_4/ADMIN_HELPER_EMAIL.php b/admin/compiler/joomla_4/ADMIN_HELPER_EMAIL.php
index 3576ca1a4..509746671 100644
--- a/admin/compiler/joomla_4/ADMIN_HELPER_EMAIL.php
+++ b/admin/compiler/joomla_4/ADMIN_HELPER_EMAIL.php
@@ -38,7 +38,7 @@ abstract class ###Component###Email
public static $active = [];
/**
- * Configuraiton object
+ * Configuration object
*
* @var Registry
*/
diff --git a/admin/compiler/joomla_4/INSTALLER_SCRIPT.php b/admin/compiler/joomla_4/INSTALLER_SCRIPT.php
index 472d9fbbf..347bff0df 100644
--- a/admin/compiler/joomla_4/INSTALLER_SCRIPT.php
+++ b/admin/compiler/joomla_4/INSTALLER_SCRIPT.php
@@ -16,12 +16,12 @@ defined('_JCB_TEMPLATE') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
-use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Installer\InstallerAdapter;
use Joomla\CMS\Installer\InstallerScriptInterface;
use Joomla\CMS\Log\Log;
use Joomla\CMS\Version;
use Joomla\CMS\HTML\HTMLHelper as Html;
+use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder;
use Joomla\Database\DatabaseInterface;
diff --git a/admin/forms/admin_view.xml b/admin/forms/admin_view.xml
index a92e8274b..0e2960b2e 100644
--- a/admin/forms/admin_view.xml
+++ b/admin/forms/admin_view.xml
@@ -243,7 +243,6 @@
name="icon"
label="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_LABEL"
description="COM_COMPONENTBUILDER_ADMIN_VIEW_ICON_DESCRIPTION"
- directory=""
/>
-
+
-
+
-
+
@@ -288,7 +300,6 @@
name="icon"
label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_LABEL"
description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_ICON_DESCRIPTION"
- directory=""
/>
@@ -301,6 +302,33 @@
message="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_MESSAGE"
hint="COM_COMPONENTBUILDER_REPOSITORY_READ_BRANCH_HINT"
/>
+
+
+
+
-
+
Get the key from %s for %s"
COM_COMPONENTBUILDER_BIMAGESB_NOT_MOVED_TO_CORRECT_LOCATION="Images not moved to correct location!"
COM_COMPONENTBUILDER_BMULTIPLE_FIELD_REPEATABLE_MODEB_IDS_MISMATCH_IN_BFIELDSB_AND_WAS_EMREMOVEDEM_FROM_THE_FIELD="Multiple Field (repeatable mode) id:%s mismatch in field:%s, and was removed from the field."
-COM_COMPONENTBUILDER_BOILERPLATE_PLUGIN_S_DATA_COULD_NOT_BE_SAVED="Boilerplate (plugin - %s) data could not be saved"
COM_COMPONENTBUILDER_BRANCH="Branch"
COM_COMPONENTBUILDER_BSBS_IN_BSB_HAS_ID_MISMATCH_SO_THE_BSB_WAS_REMOVED="%s->%s in %s has id mismatch. So the %s was removed!"
COM_COMPONENTBUILDER_BSB_COULD_NOT_BE_IMPORTEDS="%s could not be imported%s"
@@ -1387,6 +1387,8 @@ COM_COMPONENTBUILDER_CLASS_EXTENDS_GUID_LABEL="GUID"
COM_COMPONENTBUILDER_CLASS_EXTENDS_HEAD_DESCRIPTION="The class header to add any header values can be added."
COM_COMPONENTBUILDER_CLASS_EXTENDS_HEAD_LABEL="Class Header"
COM_COMPONENTBUILDER_CLASS_EXTENDS_ID="Id"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS="Class Extends Init Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
COM_COMPONENTBUILDER_CLASS_EXTENDS_MODIFIED_BY_DESC="The last user that modified this Class Extends."
COM_COMPONENTBUILDER_CLASS_EXTENDS_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_CLASS_EXTENDS_MODIFIED_DATE_DESC="The date this Class Extends was modified."
@@ -1402,6 +1404,10 @@ COM_COMPONENTBUILDER_CLASS_EXTENDS_PERMISSION="Permissions"
COM_COMPONENTBUILDER_CLASS_EXTENDS_PLUGINS="plugins"
COM_COMPONENTBUILDER_CLASS_EXTENDS_POWERS="powers"
COM_COMPONENTBUILDER_CLASS_EXTENDS_PUBLISHING="Publishing"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS="Class Extends Push Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS="Class Extends Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_CLASS_EXTENDS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Class Extends to customise the alias."
COM_COMPONENTBUILDER_CLASS_EXTENDS_SELECT_AN_OPTION="Select an option"
COM_COMPONENTBUILDER_CLASS_EXTENDS_STATUS="Status"
@@ -1476,7 +1482,14 @@ COM_COMPONENTBUILDER_CLASS_METHOD_GUID_DESCRIPTION="Globally Unique Identifier"
COM_COMPONENTBUILDER_CLASS_METHOD_GUID_HINT="Auto Generated"
COM_COMPONENTBUILDER_CLASS_METHOD_GUID_LABEL="GUID"
COM_COMPONENTBUILDER_CLASS_METHOD_ID="Id"
+COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS="Class Method Init Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_DESCRIPTION="Select a plugin group"
+COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_HINT="Select an Plugin Group"
COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_LABEL="Joomla Plugin Group"
+COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_TITLEEDIT="Edit Plugin Group"
+COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_TITLENEW="New Plugin Group"
+COM_COMPONENTBUILDER_CLASS_METHOD_JOOMLA_PLUGIN_GROUP_TITLESELECT="Select Plugin Group"
COM_COMPONENTBUILDER_CLASS_METHOD_MODIFIED_BY_DESC="The last user that modified this Class Method."
COM_COMPONENTBUILDER_CLASS_METHOD_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_CLASS_METHOD_MODIFIED_DATE_DESC="The date this Class Method was modified."
@@ -1498,6 +1511,10 @@ COM_COMPONENTBUILDER_CLASS_METHOD_PROTECTED_STATIC="protected static"
COM_COMPONENTBUILDER_CLASS_METHOD_PUBLIC="public"
COM_COMPONENTBUILDER_CLASS_METHOD_PUBLIC_STATIC="public static"
COM_COMPONENTBUILDER_CLASS_METHOD_PUBLISHING="Publishing"
+COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS="Class Method Push Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS="Class Method Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_CLASS_METHOD_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Class Method to customise the alias."
COM_COMPONENTBUILDER_CLASS_METHOD_SELECT_AN_OPTION="Select an option"
COM_COMPONENTBUILDER_CLASS_METHOD_STATUS="Status"
@@ -1573,7 +1590,14 @@ COM_COMPONENTBUILDER_CLASS_PROPERTY_GUID_DESCRIPTION="Globally Unique Identifier
COM_COMPONENTBUILDER_CLASS_PROPERTY_GUID_HINT="Auto Generated"
COM_COMPONENTBUILDER_CLASS_PROPERTY_GUID_LABEL="GUID"
COM_COMPONENTBUILDER_CLASS_PROPERTY_ID="Id"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS="Class Property Init Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_DESCRIPTION="Select a plugin group"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_HINT="Select an Plugin Group"
COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_LABEL="Joomla Plugin Group"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_TITLEEDIT="Edit Plugin Group"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_TITLENEW="New Plugin Group"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_JOOMLA_PLUGIN_GROUP_TITLESELECT="Select Plugin Group"
COM_COMPONENTBUILDER_CLASS_PROPERTY_MODIFIED_BY_DESC="The last user that modified this Class Property."
COM_COMPONENTBUILDER_CLASS_PROPERTY_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_CLASS_PROPERTY_MODIFIED_DATE_DESC="The date this Class Property was modified."
@@ -1595,6 +1619,10 @@ COM_COMPONENTBUILDER_CLASS_PROPERTY_PROTECTED_STATIC="protected static"
COM_COMPONENTBUILDER_CLASS_PROPERTY_PUBLIC="public"
COM_COMPONENTBUILDER_CLASS_PROPERTY_PUBLIC_STATIC="public static"
COM_COMPONENTBUILDER_CLASS_PROPERTY_PUBLISHING="Publishing"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS="Class Property Push Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS="Class Property Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_CLASS_PROPERTY_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Class Property to customise the alias."
COM_COMPONENTBUILDER_CLASS_PROPERTY_SELECT_AN_OPTION="Select an option"
COM_COMPONENTBUILDER_CLASS_PROPERTY_STATUS="Status"
@@ -3866,6 +3894,8 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_LOCK="Lock"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_LOOP="Loop"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MAIN_GET_DESCRIPTION="Select a main get"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MAIN_GET_LABEL="Main Get"
+COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MAIN_GET_TITLEEDIT="Edit Main Get"
+COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MAIN_GET_TITLESELECT="Select Targetview"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MENU="Menu"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MENU_2="Menu 2"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_MENU_3="Menu 3"
@@ -4171,6 +4201,7 @@ COM_COMPONENTBUILDER_CUSTOM_CODE_TYPE_DESCRIPTION="How To Add the Code to the fi
COM_COMPONENTBUILDER_CUSTOM_CODE_TYPE_LABEL="Add Type"
COM_COMPONENTBUILDER_CUSTOM_CODE_VERSION_DESC="A count of the number of times this Custom Code has been revised."
COM_COMPONENTBUILDER_CUSTOM_CODE_VERSION_LABEL="Version"
+COM_COMPONENTBUILDER_CUSTOM_GET="Custom Get"
COM_COMPONENTBUILDER_CUSTOM_PHP="Custom PHP"
COM_COMPONENTBUILDER_CUSTOM_SCRIPT="Custom Script"
COM_COMPONENTBUILDER_DASH="Dashboard"
@@ -5152,7 +5183,6 @@ COM_COMPONENTBUILDER_FILTER_SELECT_INDEXES_TYPE="Select Indexes Type"
COM_COMPONENTBUILDER_FILTER_SELECT_JOOMLA_PLUGIN_GROUP="Select Joomla Plugin Group"
COM_COMPONENTBUILDER_FILTER_SELECT_LIBRARY="Select Library"
COM_COMPONENTBUILDER_FILTER_SELECT_LOCATION="Select Location"
-COM_COMPONENTBUILDER_FILTER_SELECT_MAIN_GET="Select Main Get"
COM_COMPONENTBUILDER_FILTER_SELECT_MAIN_SOURCE="Select Main Source"
COM_COMPONENTBUILDER_FILTER_SELECT_MODELLING_METHOD="Select Modelling Method"
COM_COMPONENTBUILDER_FILTER_SELECT_NAME="Select Name"
@@ -5216,9 +5246,6 @@ COM_COMPONENTBUILDER_FOUR_SPACES="4 Spaces"
COM_COMPONENTBUILDER_FREEOPEN="Free/Open"
COM_COMPONENTBUILDER_FULL_WIDTH_IN_TAB="Full Width in Tab"
COM_COMPONENTBUILDER_FUNCTION_NAME_ALREADY_TAKEN_PLEASE_TRY_AGAIN="Function name already taken, please try again."
-COM_COMPONENTBUILDER_GETTING_JOOMLA_PLUGIN_BOILERPLATE_FAILED_IF_THE_ISSUE_CONTINUES_INFORM_YOUR_SYSTEM_ADMINISTRATOR="Getting joomla_plugin boilerplate failed, if the issue continues, inform your system administrator!"
-COM_COMPONENTBUILDER_GETTING_JOOMLA_PLUGIN_BOILERPLATE_WAS_SUCCESSFULLY="Getting joomla_plugin boilerplate was successfully!"
-COM_COMPONENTBUILDER_GET_BOILERPLATE="Get Boilerplate"
COM_COMPONENTBUILDER_GET_PACKAGE="Get Package"
COM_COMPONENTBUILDER_GET_TOKEN="Get Token"
COM_COMPONENTBUILDER_GET_TOKEN_FROM_VDM_TO_GET_UPDATE_NOTICE_AND_ADD_IT_TO_YOUR_GLOBAL_OPTIONS="Get token from VDM to get update notice, and add it to your global options."
@@ -5362,6 +5389,30 @@ COM_COMPONENTBUILDER_HR_HTHREEMULTI_FILTER_ERRORHTHREE="
Multi Filter E
COM_COMPONENTBUILDER_HR_HTHREES_WARNINGHTHREE="
You must at-least have two sections in your namespace, you just have one (%s). This is an unacceptable action, please see psr-4 for more info.
This %s was therefore removed, click here to fix this issue.
"
@@ -5389,6 +5440,9 @@ COM_COMPONENTBUILDER_INIT="Init"
COM_COMPONENTBUILDER_INITIALIZATION_SELECTION="Selection"
COM_COMPONENTBUILDER_INITIALIZATION_SELECTION_DESC="Initialization Selection"
COM_COMPONENTBUILDER_INITIALIZE_ADMIN_VIEWS="Initialize Admin Views"
+COM_COMPONENTBUILDER_INITIALIZE_CLASS_EXTENDS="Initialize Class Extends"
+COM_COMPONENTBUILDER_INITIALIZE_CLASS_METHODS="Initialize Class Methods"
+COM_COMPONENTBUILDER_INITIALIZE_CLASS_PROPERTIES="Initialize Class Properties"
COM_COMPONENTBUILDER_INITIALIZE_COMPONENTS="Initialize Components"
COM_COMPONENTBUILDER_INITIALIZE_CUSTOM_ADMIN_VIEWS="Initialize Custom Admin Views"
COM_COMPONENTBUILDER_INITIALIZE_CUSTOM_CODES="Initialize Custom Codes"
@@ -5399,6 +5453,7 @@ COM_COMPONENTBUILDER_INITIALIZE_JOOMLA_POWERS="Initialize Joomla Powers"
COM_COMPONENTBUILDER_INITIALIZE_LAYOUTS="Initialize Layouts"
COM_COMPONENTBUILDER_INITIALIZE_LIBRARIES="Initialize Libraries"
COM_COMPONENTBUILDER_INITIALIZE_MODULES="Initialize Modules"
+COM_COMPONENTBUILDER_INITIALIZE_PLACEHOLDERS="Initialize Placeholders"
COM_COMPONENTBUILDER_INITIALIZE_PLUGINS="Initialize Plugins"
COM_COMPONENTBUILDER_INITIALIZE_POWERS="Initialize Powers"
COM_COMPONENTBUILDER_INITIALIZE_SELECTED_S_ITEMS="Initialize selected [%s] items"
@@ -5662,14 +5717,6 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_DESCRIPTION="Set if a li
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_LABEL="Empty Contributor Fields"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ERROR_UNIQUE_ALIAS="Another Joomla Component has the same alias."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ERROR_UNIQUE_ALIAS_TRASHED="A trashed Joomla Component has the same alias ."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_DESCRIPTION="Enter link where your JCB package key can be bought."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_HINT="http://www.example.com/buy-keys"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_LABEL="Buy Link (to get key)"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_MESSAGE="Error! Please add link here."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_DESCRIPTION="The key used to lock the data during export."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_HINT="Export Key Here"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_LABEL="Export Key (encrypted field)"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_KEY_MESSAGE="Error! Please add export key here."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FRONT="Front"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GIT_FOLDER_PATH_DESCRIPTION="Here you can set the path to the git folder."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GIT_FOLDER_PATH_HINT="/home/user/git"
@@ -5688,16 +5735,10 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INIT_BUTTON_ACCESS_DESC="Allows the users
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INTELLIGENT_ADDREMOVEIF="Intelligent (add&remove+if)"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION="Add JavaScript for the entire back-end. Do not add the script tags."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL="Javascript"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_DESCRIPTION="The settings below are used when you export this component as a JCB Package, for more info on how this works please review the following tutorial (https://youtu.be/lkE0ZiSWufg)."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_LABEL="JCB Package Export Settings"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_DESCRIPTION="Here you can set the path to the powers folder. Recommended that you always place it inside the libraries. You don't need to add a full path here, so libraries/jcb_powers will mean /home/username/public_html/libraries/jcb_powers when installed. You should always use two folders here, libraries + one more for example: libraries/jcb_powers"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_HINT="libraries/jcb_powers"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_LABEL="JCB Powers Path example: libraries/jcb_powers"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_POWERS_PATH_MESSAGE="Error! Please add folder path here."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_DESCRIPTION="Enter link where this Joomla component's source code can be found on gitHub. Where those who want to use this package, can review and contribute to the code."
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_HINT="https://github.com/vdm-io/Joomla-Component-Builder"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_LABEL="Joomla Source Link (where the Joomla source code is found)"
-COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA_SOURCE_LINK_MESSAGE="Error! Please add link here."
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LIBS_HELPERS="Libs & Helpers"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_DESCRIPTION="Add License Here"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_HINT="Add License Here"
@@ -6158,6 +6199,8 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_GUID_LABEL="GUID"
COM_COMPONENTBUILDER_JOOMLA_MODULE_HELPER="Helper"
COM_COMPONENTBUILDER_JOOMLA_MODULE_HTML="HTML"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ID="Id"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS="Joomla Module Init Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
COM_COMPONENTBUILDER_JOOMLA_MODULE_LABEL_DESCRIPTION="Not mandatory, used to Label the Fieldset"
COM_COMPONENTBUILDER_JOOMLA_MODULE_LABEL_HINT="Name"
COM_COMPONENTBUILDER_JOOMLA_MODULE_LABEL_LABEL="Label"
@@ -6221,8 +6264,12 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_PREFLIGHT_UPDATE_LABEL="PHP in the prefli
COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_SCRIPT_CONSTRUCT_DESCRIPTION="PHP script that should run in __construct of script."
COM_COMPONENTBUILDER_JOOMLA_MODULE_PHP_SCRIPT_CONSTRUCT_LABEL="PHP Script Construct"
COM_COMPONENTBUILDER_JOOMLA_MODULE_PUBLISHING="Publishing"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS="Joomla Module Push Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
COM_COMPONENTBUILDER_JOOMLA_MODULE_README="Readme"
COM_COMPONENTBUILDER_JOOMLA_MODULE_README_LABEL="README.md"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS="Joomla Module Reset Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_JOOMLA_MODULE_SALES_SERVER_DESCRIPTION="Select your sales server for this component"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SALES_SERVER_LABEL="Sales Server"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Joomla Module to customise the alias."
@@ -6449,7 +6496,12 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGIN_ADD_SALES_SERVER_LABEL="Add Sales Server"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_ADD_SQL_LABEL="Add MySQL - (Install)"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_ADD_SQL_UNINSTALL_LABEL="Add MySQL - (Uninstall)"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_ADD_UPDATE_SERVER_LABEL="Add Update Server"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_DESCRIPTION="Enter a class extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_HINT="Select a Class Extends"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_LABEL="Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_TITLEEDIT="Edit Class Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_TITLENEW="New Class Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CLASS_EXTENDS_TITLESELECT="Select Class Extends"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CODE="Code"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_COMPONENT="Component"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_CREATED_BY_DESC="The user that created this Joomla Plugin."
@@ -6558,8 +6610,6 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FILE_DESCRIPTION="Leave default if you don't
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FILE_HINT="config"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FILE_LABEL="File Name"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_FORMS_FIELDS="Forms & Fields"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS="Joomla Plugin Get Boilerplate Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS_DESC="Allows the users in this group to access the get boilerplate button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP="Joomla Plugin Group"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS="Joomla Plugin Groups"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS="Joomla Plugin Groups Access"
@@ -6592,7 +6642,12 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_N_ITEMS_UNFEATURED="%s Joomla Plugin G
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_N_ITEMS_UNFEATURED_1="%s Joomla Plugin Group unfeatured."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_N_ITEMS_UNPUBLISHED="%s Joomla Plugin Groups unpublished."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_N_ITEMS_UNPUBLISHED_1="%s Joomla Plugin Group unpublished."
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_DESCRIPTION="Enter a class extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_HINT="Select a Class Extends"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_LABEL="Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_TITLEEDIT="Edit Class Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_TITLENEW="New Class Extends"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CLASS_EXTENDS_TITLESELECT="Select Class Extends"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CREATED_BY_DESC="The user that created this Joomla Plugin Group."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CREATED_BY_LABEL="Created By"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUP_CREATED_DATE_DESC="The date this Joomla Plugin Group was created."
@@ -6627,14 +6682,19 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GUID_LABEL="GUID"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_HEAD_DESCRIPTION="The class header to add any header values can be added."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_HEAD_LABEL="Class Header"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_ID="Id"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS="Joomla Plugin Init Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_DESCRIPTION="Select a plugin group"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_HINT="Select an Plugin Group"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_LABEL="Joomla Plugin Group"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_TITLEEDIT="Edit Plugin Group"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_TITLENEW="New Plugin Group"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_JOOMLA_PLUGIN_GROUP_TITLESELECT="Select Plugin Group"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_LABEL_DESCRIPTION="Not mandatory, used to Label the Fieldset"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_LABEL_HINT="Name"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_LABEL_LABEL="Label"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_MAIN_CLASS_CODE_DESCRIPTION="Add the properties & methods here."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_MAIN_CLASS_CODE_LABEL="Properties & Methods"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS="Joomla Plugin Methods Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS_DESC="Allows the users in this group to access the methods button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHOD_LABEL="Methods"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHOD_SELECTION_DESCRIPTION="Select methods you want to use in your joomla_plugin."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHOD_SELECTION_LABEL="Method Selection"
@@ -6686,14 +6746,16 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PLUGIN_VERSION_DESCRIPTION="Add Version Numbe
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PLUGIN_VERSION_HINT="1.0.0"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PLUGIN_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PLUGIN_VERSION_MESSAGE="Error! Please add version here."
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS="Joomla Plugin Properties Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS_DESC="Allows the users in this group to access the properties button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTY_LABEL="Properties"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTY_SELECTION_DESCRIPTION="Select properties you want to use in your joomla_plugin."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTY_SELECTION_LABEL="Property Selection"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUBLISHING="Publishing"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS="Joomla Plugin Push Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_README="Readme"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_README_LABEL="README.md"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS="Joomla Plugin Reset Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_SALES_SERVER_DESCRIPTION="Select your sales server for this component"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_SALES_SERVER_LABEL="Sales Server"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Joomla Plugin to customise the alias."
@@ -7510,6 +7572,7 @@ COM_COMPONENTBUILDER_LOCAL="Local"
COM_COMPONENTBUILDER_LOCAL_GET="Local (get)"
COM_COMPONENTBUILDER_LOCAL_POWERS_REPOSITORY_PATH="Local Powers Repository Path"
COM_COMPONENTBUILDER_LOGIN_FAILED="Login failed"
+COM_COMPONENTBUILDER_MAIN_GET="Main Get"
COM_COMPONENTBUILDER_MAIN_MENU="Main Menu"
COM_COMPONENTBUILDER_MAKE_A_DIFFERENCE_WITH_JCB="Make a Difference with JCB"
COM_COMPONENTBUILDER_MAKE_YOUR_SELECTION="Make your selection"
@@ -7520,7 +7583,6 @@ COM_COMPONENTBUILDER_MATCH_FIELD="Match Field"
COM_COMPONENTBUILDER_MATCH_OPTIONS="Match Options"
COM_COMPONENTBUILDER_MAX_LENGTH_ONLY_FOUR_TEXT_FIELD="Max Length (only 4 text_field)"
COM_COMPONENTBUILDER_MERGE="Merge"
-COM_COMPONENTBUILDER_METHODS="Methods"
COM_COMPONENTBUILDER_MINIFY_JAVASCRIPT="Minify JavaScript"
COM_COMPONENTBUILDER_MIN_LENGTH_ONLY_FOUR_TEXT_FIELD="Min Length (only 4 text_field)"
COM_COMPONENTBUILDER_MISSING_REPOSITORY_OR_AREA_DATA="Missing repository or area data."
@@ -7545,6 +7607,8 @@ COM_COMPONENTBUILDER_NONE_SELECTED="None selected"
COM_COMPONENTBUILDER_NONE_SET="None set"
COM_COMPONENTBUILDER_NOTRANSLATION="no-translation"
COM_COMPONENTBUILDER_NOT_FOUND_OR_ACCESS_DENIED="Not found, or access denied."
+COM_COMPONENTBUILDER_NOT_PUSHED="Not pushed!"
+COM_COMPONENTBUILDER_NOT_RESET="Not reset!"
COM_COMPONENTBUILDER_NOT_SAVED="Not saved!"
COM_COMPONENTBUILDER_NOT_SET="not set"
COM_COMPONENTBUILDER_NOT_TRANSLATED_IN="Not translated in"
@@ -7552,6 +7616,7 @@ COM_COMPONENTBUILDER_NO_ACCESS_GRANTED="No Access Granted!"
COM_COMPONENTBUILDER_NO_ACTIVE_REPOSITORIES_FOUND="No Active Repositories Found"
COM_COMPONENTBUILDER_NO_ACTIVE_REPOSITORIES_FOUND_FOR_THIS_AREA_YOU_CAN_ADD_REPOSITORIES_IN_THE_REPOSITORIES_SECTION_OF_JCB="No active repositories found for this area. You can add repositories in the Repositories section of JCB."
COM_COMPONENTBUILDER_NO_ADMIN_VIEWS_FOUND="No Admin Views Found"
+COM_COMPONENTBUILDER_NO_CHANGE_S_ITEM_S_IN_REPO_S_IS_ALREADY_IN_SYNC="NO CHANGE: %s item [%s] in repo (%s) is already in sync."
COM_COMPONENTBUILDER_NO_COMPONENTS_FOUND="No Components Found"
COM_COMPONENTBUILDER_NO_COMPONENT_DETAILS_FOUND_SO_IT_IS_NOT_SAFE_TO_CONTINUE="No component details found, so it is not safe to continue!"
COM_COMPONENTBUILDER_NO_CRONJOB_PATHS_WAS_REMOVED_WE_WILL_CHANGE_TO_WORKFLOWS_SOON="No cronjob paths was removed, we will change to workflows soon."
@@ -7578,61 +7643,6 @@ COM_COMPONENTBUILDER_NO_UPLOAD_SELECTED="No upload selected"
COM_COMPONENTBUILDER_NO_VALIDATION_RULES_FOUND="No validation rules found."
COM_COMPONENTBUILDER_NO_VALID_MODE_HAS_BEEN_SPECIFIED="No valid mode has been specified!"
COM_COMPONENTBUILDER_OFFICIAL_VDM_PACKAGES="Official VDM Packages"
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_ADMIN_VIEWS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Admin Views into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_CUSTOM_ADMIN_VIEWS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Custom Admin Views into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_CUSTOM_CODES_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Custom Codes into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_DYNAMIC_GETS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Dynamic Gets into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_FIELDS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Fields into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_JOOMLA_COMPONENTS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Joomla Components into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_LAYOUTS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Layouts into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_LIBRARIES_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Libraries into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_SITE_VIEWS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Site Views into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_SNIPPETS_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Snippets into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PULL_BOTH_DEMO_AND_USERCREATED_TEMPLATES_INTO_THIS_JCB_INSTANCE="Once completed, this feature will allow you to pull both demo and user-created Templates into this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_ADMIN_VIEWS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Admin Views from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_ADMIN_VIEW_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Admin View from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_CUSTOM_ADMIN_VIEWS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Custom Admin Views from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_CUSTOM_ADMIN_VIEW_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Custom Admin View from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_CUSTOM_CODES_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Custom Codes from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_CUSTOM_CODE_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Custom Code from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_DYNAMIC_GETS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Dynamic Gets from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_DYNAMIC_GET_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Dynamic Get from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_FIELDS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Fields from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_FIELD_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Field from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_JOOMLA_COMPONENTS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Joomla Components from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_JOOMLA_COMPONENT_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Joomla Component from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_LAYOUTS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Layouts from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_LAYOUT_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Layout from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_LIBRARIES_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Libraries from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_LIBRARY_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Library from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_SITE_VIEWS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Site Views from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_SITE_VIEW_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Site View from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_SNIPPETS_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Snippets from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_SNIPPET_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Snippet from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_TEMPLATES_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Templates from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_PUSH_USERCREATED_TEMPLATE_FROM_THIS_JCB_INSTANCE_TO_YOUR_CONFIGURED_REPOSITORIES="Once completed, this feature will allow you to push user-created Template from this JCB instance to your configured repositories."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_ADMIN_VIEWS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Admin Views within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_ADMIN_VIEW_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Admin View within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_CUSTOM_ADMIN_VIEWS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Custom Admin Views within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_CUSTOM_ADMIN_VIEW_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Custom Admin View within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_CUSTOM_CODES_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Custom Codes within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_CUSTOM_CODE_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Custom Code within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_DYNAMIC_GETS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Dynamic Gets within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_DYNAMIC_GET_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Dynamic Get within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_FIELDS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Fields within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_FIELD_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Field within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_JOOMLA_COMPONENTS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Joomla Components within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_JOOMLA_COMPONENT_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Joomla Component within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_LAYOUTS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Layouts within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_LAYOUT_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Layout within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_LIBRARIES_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Libraries within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_LIBRARY_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Library within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_SITE_VIEWS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Site Views within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_SITE_VIEW_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Site View within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_SNIPPETS_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Snippets within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_SNIPPET_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Snippet within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_TEMPLATES_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Templates within this JCB instance."
-COM_COMPONENTBUILDER_ONCE_COMPLETED_THIS_FEATURE_WILL_ALLOW_YOU_TO_RESET_BOTH_DEMO_AND_USERCREATED_TEMPLATE_WITHIN_THIS_JCB_INSTANCE="Once completed, this feature will allow you to reset both demo and user-created Template within this JCB instance."
COM_COMPONENTBUILDER_ONLY_IN_ADMIN_LIST_VIEW="Only in Admin List View"
COM_COMPONENTBUILDER_ONLY_IN_LINKED_LIST_VIEWS="Only in Linked List Views"
COM_COMPONENTBUILDER_ONLY_SZIP_FILE_WAS_REMOVED_THE_FROM_TMP_FOLDER_DURING_INSTALLATION="Only (%s.zip) file was removed the from tmp folder during installation!"
@@ -7651,7 +7661,7 @@ COM_COMPONENTBUILDER_PACKAGE_OWNER_DETAILS_NOT_FOUND="Package owner details not
COM_COMPONENTBUILDER_PAIDLOCKED="Paid/Locked"
COM_COMPONENTBUILDER_PERMISSIONS="Permissions"
COM_COMPONENTBUILDER_PERMISSION_DENIED="Permission Denied!"
-COM_COMPONENTBUILDER_PFILE_AT_BSSB_GAVE_THE_FOLLOWING_ERRORBR_SP="
"
@@ -7713,6 +7723,8 @@ COM_COMPONENTBUILDER_PLACEHOLDER_EDIT="Editing the Placeholder"
COM_COMPONENTBUILDER_PLACEHOLDER_ERROR_UNIQUE_ALIAS="Another Placeholder has the same alias."
COM_COMPONENTBUILDER_PLACEHOLDER_ERROR_UNIQUE_ALIAS_TRASHED="A trashed Placeholder has the same alias ."
COM_COMPONENTBUILDER_PLACEHOLDER_ID="Id"
+COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS="Placeholder Init Button Access"
+COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
COM_COMPONENTBUILDER_PLACEHOLDER_MODIFIED_BY_DESC="The last user that modified this Placeholder."
COM_COMPONENTBUILDER_PLACEHOLDER_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_PLACEHOLDER_MODIFIED_DATE_DESC="The date this Placeholder was modified."
@@ -7722,7 +7734,11 @@ COM_COMPONENTBUILDER_PLACEHOLDER_NOTE_PLACEHOLDERS_PLACEDIN_DESCRIPTION="
Package:content repository at %s/%s gave the following error! %s"
COM_COMPONENTBUILDER_PPOWER_BGUIDSB_NOT_FOUNDP="
Power guid:%s not found!
"
COM_COMPONENTBUILDER_PRE_RELEASE="Pre Release"
-COM_COMPONENTBUILDER_PROPERTIES="Properties"
COM_COMPONENTBUILDER_PROPERTIESBR_SMALLHERE_YOU_CAN_SET_THE_PROPERTIES_FOR_THIS_FIELDSMALL="Properties Here you can set the properties for this field."
COM_COMPONENTBUILDER_PROPERTY="Property"
COM_COMPONENTBUILDER_PROPERTY_ALREADY_SELECTED_TRY_ANOTHER="Property already selected, try another."
@@ -7946,6 +7962,7 @@ COM_COMPONENTBUILDER_PUBLISHED="Published"
COM_COMPONENTBUILDER_PUBLISHING="Publishing"
COM_COMPONENTBUILDER_PUSH="Push"
COM_COMPONENTBUILDER_PUSH_FAILED="Push Failed!"
+COM_COMPONENTBUILDER_PUSH_UNSUCCESSFUL="Push Unsuccessful!"
COM_COMPONENTBUILDER_PUSH_WAS_UNSUCCESSFUL="Push Was Unsuccessful!"
COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component"
COM_COMPONENTBUILDER_REFRESH="Refresh"
@@ -8007,10 +8024,18 @@ COM_COMPONENTBUILDER_REPOSITORIES_N_ITEMS_UNPUBLISHED_1="%s Repository unpublish
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU="Repositories Submenu"
COM_COMPONENTBUILDER_REPOSITORIES_SUBMENU_DESC="Allows the users in this group to submenu of repository"
COM_COMPONENTBUILDER_REPOSITORY="Repository"
-COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_DESCRIPTION="Set the access options to this repository"
+COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_DESCRIPTION="Set the access options to this repository. Global is only applicable to git.vdm.dev repos."
COM_COMPONENTBUILDER_REPOSITORY_ACCESS_REPO_LABEL="Access"
COM_COMPONENTBUILDER_REPOSITORY_ADDPLACEHOLDERS_DESCRIPTION="Set dnamic placeholders for this component."
COM_COMPONENTBUILDER_REPOSITORY_ADDPLACEHOLDERS_LABEL="Placeholders"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_DESCRIPTION="Enter Author Email"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_HINT="Author Email Here"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_LABEL="Author Email"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_EMAIL_MESSAGE="Error! Please author email address here."
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_DESCRIPTION="Enter Author Name"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_HINT="Author Name Here"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_LABEL="Author Name"
+COM_COMPONENTBUILDER_REPOSITORY_AUTHOR_NAME_MESSAGE="Error! Please author name here."
COM_COMPONENTBUILDER_REPOSITORY_BASE_DESCRIPTION="Enter Base URL"
COM_COMPONENTBUILDER_REPOSITORY_BASE_HINT="https://git.vdm.dev"
COM_COMPONENTBUILDER_REPOSITORY_BASE_LABEL="Base URL"
@@ -8024,6 +8049,7 @@ COM_COMPONENTBUILDER_REPOSITORY_EDIT="Editing the Repository"
COM_COMPONENTBUILDER_REPOSITORY_ERROR_UNIQUE_ALIAS="Another Repository has the same alias."
COM_COMPONENTBUILDER_REPOSITORY_ERROR_UNIQUE_ALIAS_TRASHED="A trashed Repository has the same alias ."
COM_COMPONENTBUILDER_REPOSITORY_GITEA="Gitea"
+COM_COMPONENTBUILDER_REPOSITORY_GITHUB="Github"
COM_COMPONENTBUILDER_REPOSITORY_GLOBAL="Global"
COM_COMPONENTBUILDER_REPOSITORY_GUID_DESCRIPTION="Globally Unique Identifier"
COM_COMPONENTBUILDER_REPOSITORY_GUID_HINT="Auto Generated"
@@ -8092,6 +8118,7 @@ COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_TO_BE_A_TELEPHONE_NUMBER_COMPLYING_WITH_
COM_COMPONENTBUILDER_REQUIRES_THE_VALUE_TO_BE_THE_SAME_AS_THAT_HELD_IN_THE_FIELD_NAMED_QUOTFIELDQUOT_EGS="Requires the value to be the same as that held in the field named "field", eg:%s"
COM_COMPONENTBUILDER_RESET="Reset"
COM_COMPONENTBUILDER_RESET_FAILED="Reset Failed!"
+COM_COMPONENTBUILDER_RESET_UNSUCCESSFUL="Reset Unsuccessful!"
COM_COMPONENTBUILDER_REVERTED_THE_B_ASSETSB_TABLE_RULES_COLUMN_BACK_TO_ITS_DEFAULT_SIZE_OF_VARCHARFIVE_THOUSAND_ONE_HUNDRED_AND_TWENTY="Reverted the #__assets table rules column back to its default size of varchar(5120)"
COM_COMPONENTBUILDER_RIGHT_IN_TAB="Right in Tab"
COM_COMPONENTBUILDER_RIGHT_OF_TABS="Right of Tabs"
@@ -8135,6 +8162,7 @@ COM_COMPONENTBUILDER_SELECT_A_SNIPPET="select a snippet"
COM_COMPONENTBUILDER_SELECT_BUILD_DATE="Select Build Date"
COM_COMPONENTBUILDER_SELECT_COMPONENT="Select Component"
COM_COMPONENTBUILDER_SELECT_EXTENSION="Select Extension"
+COM_COMPONENTBUILDER_SELECT_GET_GROUP="Select Get Group"
COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_TO_COMPILE="Select the component to compile"
COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_TO_SEARCH="Select the component to search"
COM_COMPONENTBUILDER_SELECT_THE_COMPONENT_YOUR_WOULD_LIKE_TO_IMPORT="Select the component your would like to import."
@@ -8531,6 +8559,8 @@ COM_COMPONENTBUILDER_SITE_VIEW_LOCK="Lock"
COM_COMPONENTBUILDER_SITE_VIEW_LOOP="Loop"
COM_COMPONENTBUILDER_SITE_VIEW_MAIN_GET_DESCRIPTION="Select a main get"
COM_COMPONENTBUILDER_SITE_VIEW_MAIN_GET_LABEL="Main Get"
+COM_COMPONENTBUILDER_SITE_VIEW_MAIN_GET_TITLEEDIT="Edit Main Get"
+COM_COMPONENTBUILDER_SITE_VIEW_MAIN_GET_TITLESELECT="Select Targetview"
COM_COMPONENTBUILDER_SITE_VIEW_MENU="Menu"
COM_COMPONENTBUILDER_SITE_VIEW_MENU_2="Menu 2"
COM_COMPONENTBUILDER_SITE_VIEW_MENU_3="Menu 3"
@@ -8923,8 +8953,12 @@ COM_COMPONENTBUILDER_SORRY_THIS_PLACEHOLDER_IS_ALREADY_IN_USE_IN_THE_COMPILER="S
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_AS_PART_OF_THE_JOOMLA_CORE_NO_NEED_TO_CREATE_IT_IF_YOU_ARE_ADAPTING_IT_GIVE_IT_YOUR_OWN_UNIQUE_NAME="Sorry this validation rule name (%s) already exist as part of the Joomla core! No need to create it, if you are adapting it give it your own unique name."
COM_COMPONENTBUILDER_SORRY_THIS_VALIDATION_RULE_NAME_S_ALREADY_EXIST_IN_YOUR_SYSTEM="Sorry this validation rule name (%s) already exist in your system!"
COM_COMPONENTBUILDER_SORTABLE="Sortable"
+COM_COMPONENTBUILDER_SS_COULD_NOT_BE_CREATED_OR_FOUND_IN_REPOS="%s:%s could not be ::created:: or ::found:: in repo(%s)."
+COM_COMPONENTBUILDER_SS_ENCOUNTERED_AN_ERROR_IN_REPOSBRBRBERROR_MESSAGEBBRS="%s:%s encountered an ::error:: in repo(%s).
Error Message: %s"
+COM_COMPONENTBUILDER_SS_IS_NOT_APPROVED_AND_THEREFORE_NOT_LINKED_TO_ANY_REPOSITORY="%s:%s is not ::approved:: and therefore not ::linked:: to any repository."
+COM_COMPONENTBUILDER_SS_S_COULD_NOT_BE_FOUND_AT_FULL_PATHS="%s:%s [%s] could not be ::found:: at full path:%s."
+COM_COMPONENTBUILDER_SS_S_COULD_NOT_BE_LOADED_FROM_FULL_PATHS="%s:%s [%s] could not be ::loaded:: from full path:%s."
COM_COMPONENTBUILDER_START_A_SEARCH="Start a Search"
-COM_COMPONENTBUILDER_STILL_IN_DEVELOPMENT="Still in development!"
COM_COMPONENTBUILDER_STOP_A_SEARCH="Stop a Search"
COM_COMPONENTBUILDER_SUBMENU="Submenu"
COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS="Admin Views"
@@ -8960,13 +8994,16 @@ COM_COMPONENTBUILDER_SUPPORT_JOOMLA_COMPONENT_BUILDER_JCB_WITH_A_BFINANCIAL_DONA
COM_COMPONENTBUILDER_SZIP_COULD_NOT_BE_INSTALLED="%s.zip could not be installed!"
COM_COMPONENTBUILDER_SZIP_WAS_REMOVED_THE_FROM_TMP_FOLDER_DURING_INSTALLATION="%s.zip was removed the from tmp folder during installation!"
COM_COMPONENTBUILDER_S_BEING_IMPORTED="%s Being Imported"
+COM_COMPONENTBUILDER_S_HAD_MISSING_VALUES_GUIDS_POINTER_S_VALUES_ENTITYS_TARGETS="%s had ::missing:: values [guid:%s, pointer: %s, value:%s, entity:%s, target:%s]."
COM_COMPONENTBUILDER_S_ITEM_S_DETAILS_IN_REPOS_DID_NOT_CHANGE_SO_NO_UPDATE_WAS_MADE="%s item [%s] details in repo(%s) did not change, so no update was made."
COM_COMPONENTBUILDER_S_ITEM_S_DETAILS_IN_REPOS_FAILED_TO_UPDATE="%s item [%s] details in repo(%s) failed to update."
COM_COMPONENTBUILDER_S_ITEM_S_ID_S_COULD_NOT_BE_CREATED_OR_FOUND_IN_REPOS="%s item [%s] id [%s] could not be ::created:: or ::found:: in repo(%s)."
+COM_COMPONENTBUILDER_S_ITEM_S_ID_S_ENCOUNTERED_AN_ERROR_IN_REPOSBRERROR_MESSAGEBRS="%s item [%s] id [%s] encountered an ::error:: in repo(%s). Error Message: %s"
COM_COMPONENTBUILDER_S_ITEM_S_ID_S_IS_NOT_APPROVED_AND_THEREFORE_NOT_LINKED_TO_ANY_REPOSITORY="%s item [%s] id [%s] is not ::approved:: and therefore not ::linked:: to any repository."
COM_COMPONENTBUILDER_S_ITEM_S_ID_S_MISSING_THE_S_KEY_VALUE="%s item [%s] id [%s] missing the ::%s:: key value."
COM_COMPONENTBUILDER_S_NOT_LINKED="%s Not Linked"
COM_COMPONENTBUILDER_S_PLEASE_WAIT="%s, please wait!"
+COM_COMPONENTBUILDER_S_S_BEEN_PUSHED_SUCCESSFULLY="%s %s been pushed successfully."
COM_COMPONENTBUILDER_S_S_NUMBER_BSB_COULD_NOT_BE_DOWNLOADED_SUCCESSFULLY_TO_THIS_JOOMLA_INSTALL="%s (%s) number %s could not be downloaded successfully to this Joomla Install!"
COM_COMPONENTBUILDER_S_WE_DETECTED_A_CHANGE_IN_BEXTERNALCODEB_BUT_YOU_DO_NOT_HAVE_PERMISSION_TO_ALLOW_THIS_CHANGE_SO_BSB_WAS_REMOVED_FROM_THE_COMPILATION_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFOBR_SMALLADMIN_ACCESS_REQUIREDSMALL="%s, we detected a change in EXTERNALCODE, but you do not have permission to allow this change so %s was removed from the compilation. Please contact your system administrator for more info! (admin access required)"
COM_COMPONENTBUILDER_S_WE_DETECTED_BNEW_EXTERNALCODEB_BUT_YOU_DO_NOT_HAVE_PERMISSION_TO_ALLOW_THIS_NEW_CODESTRING_SO_BSB_WAS_REMOVED_FROM_THE_COMPILATION_PLEASE_CONTACT_YOU_SYSTEM_ADMINISTRATOR_FOR_MORE_INFOBR_SMALLADMIN_ACCESS_REQUIREDSMALL="%s, we detected NEW EXTERNALCODE, but you do not have permission to allow this new code/string so %s was removed from the compilation. Please contact you system administrator for more info! (admin access required)"
@@ -9101,23 +9138,59 @@ COM_COMPONENTBUILDER_THERE_HAS_BEEN_AN_ERROR_PLEASE_TRY_AGAIN="There has been an
COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR_GETTING_THE_PACKAGE_INFO="There was an error getting the package info."
COM_COMPONENTBUILDER_THERE_WAS_AN_ERROR_UPLOADING_TO_THE_SERVER="There was an error uploading to the server."
COM_COMPONENTBUILDER_THERE_WAS_A_PROBLEM_BNO_VIEW_OR_ID_FOUND_IN_SESSION_OR_VIEW_NOT_ALLOWED_TO_ACCESS_AREAB_WE_COULD_NOT_LOAD_ANY_LINKED_TO_VALUES_PLEASE_INFORM_YOUR_SYSTEM_ADMINISTRATOR="There was a problem, no view or id found in session or view not allowed to access area, we could not load any linked to values. Please inform your system administrator!"
+COM_COMPONENTBUILDER_THESE_ADMIN_VIEWS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Admin Views have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_ADMIN_VIEWS_HAVE_SUCCESSFULLY_BEEN_RESET="These Admin Views have successfully been reset."
COM_COMPONENTBUILDER_THESE_ARE_THE_SAME_PACKAGES_FOUND_ON_A_S_GITHUBA_AND_CAN_BE_IMPORTED_BY_SIMPLY_MAKING_A_SELECTION_AND_THEN_CLICKING_THE_BGET_PACKAGEB_BUTTONBR_SOME_OF_THESE_PACKAGES_WOULD_REQUIRE_A_KEY_SINCE_THEY_ARE_NOT_FREE="These are the same packages found on gitHub and can be imported by simply making a selection and then clicking the [Get Package] button. Some of these packages would require a key, since they are not free."
COM_COMPONENTBUILDER_THESE_ARE_THE_SAME_PACKAGES_FOUND_ON_A_S_GITHUBA_AND_CAN_BE_IMPORTED_BY_SIMPLY_MAKING_A_SELECTION_AND_THEN_CLICKING_THE_BGET_PACKAGEB_BUTTONBR_SOME_OF_THESE_PACKAGES_WOULD_REQUIRE_A_KEY_SINCE_THEY_ARE_NOT_FREE_A_S_GET_A_KEY_TODAYA="These are the same packages found on gitHub and can be imported by simply making a selection and then clicking the [Get Package] button. Some of these packages would require a key, since they are not free. Get a key today!."
+COM_COMPONENTBUILDER_THESE_CLASS_EXTENDINGS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Class Extendings have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_CLASS_EXTENDINGS_HAVE_SUCCESSFULLY_BEEN_RESET="These Class Extendings have successfully been reset."
+COM_COMPONENTBUILDER_THESE_CLASS_METHODS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Class Methods have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_CLASS_METHODS_HAVE_SUCCESSFULLY_BEEN_RESET="These Class Methods have successfully been reset."
+COM_COMPONENTBUILDER_THESE_CLASS_PROPERTIES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Class Properties have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_CLASS_PROPERTIES_HAVE_SUCCESSFULLY_BEEN_RESET="These Class Properties have successfully been reset."
+COM_COMPONENTBUILDER_THESE_CUSTOM_ADMIN_VIEWS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Custom Admin Views have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_CUSTOM_ADMIN_VIEWS_HAVE_SUCCESSFULLY_BEEN_RESET="These Custom Admin Views have successfully been reset."
+COM_COMPONENTBUILDER_THESE_CUSTOM_CODES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Custom Codes have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_CUSTOM_CODES_HAVE_SUCCESSFULLY_BEEN_RESET="These Custom Codes have successfully been reset."
+COM_COMPONENTBUILDER_THESE_DYNAMIC_GETS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Dynamic Gets have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_DYNAMIC_GETS_HAVE_SUCCESSFULLY_BEEN_RESET="These Dynamic Gets have successfully been reset."
+COM_COMPONENTBUILDER_THESE_FIELDS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Fields have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_FIELDS_HAVE_SUCCESSFULLY_BEEN_RESET="These Fields have successfully been reset."
COM_COMPONENTBUILDER_THESE_ITEMS_COULD_NOT_BE_FOUND_IN_THE_REMOTE_REPOSITORY_AND_WERE_NOT_INITIALIZED="These items could not be found in the remote repository and were not initialized:"
COM_COMPONENTBUILDER_THESE_ITEMS_WERE_ALREADY_PRESENT_LOCALLY_AND_WERE_NOT_INITIALIZED="These items were already present locally and were not initialized:"
COM_COMPONENTBUILDER_THESE_ITEMS_WERE_SUCCESSFULLY_INITIALIZED="These items were successfully initialized:"
+COM_COMPONENTBUILDER_THESE_JOOMLA_COMPONENTS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Joomla Components have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_JOOMLA_COMPONENTS_HAVE_SUCCESSFULLY_BEEN_RESET="These Joomla Components have successfully been reset."
COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Joomla Field Types have successfully been pushed."
COM_COMPONENTBUILDER_THESE_JOOMLA_FIELD_TYPES_HAVE_SUCCESSFULLY_BEEN_RESET="These Joomla Field Types have successfully been reset."
+COM_COMPONENTBUILDER_THESE_JOOMLA_MODULES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Joomla Modules have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_JOOMLA_MODULES_HAVE_SUCCESSFULLY_BEEN_RESET="These Joomla Modules have successfully been reset."
+COM_COMPONENTBUILDER_THESE_JOOMLA_PLUGINS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Joomla Plugins have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_JOOMLA_PLUGINS_HAVE_SUCCESSFULLY_BEEN_RESET="These Joomla Plugins have successfully been reset."
COM_COMPONENTBUILDER_THESE_JOOMLA_POWERS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Joomla Powers have successfully been pushed."
COM_COMPONENTBUILDER_THESE_JOOMLA_POWERS_HAVE_SUCCESSFULLY_BEEN_RESET="These Joomla Powers have successfully been reset."
+COM_COMPONENTBUILDER_THESE_LAYOUTS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Layouts have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_LAYOUTS_HAVE_SUCCESSFULLY_BEEN_RESET="These Layouts have successfully been reset."
+COM_COMPONENTBUILDER_THESE_LIBRARIES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Libraries have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_LIBRARIES_HAVE_SUCCESSFULLY_BEEN_RESET="These Libraries have successfully been reset."
COM_COMPONENTBUILDER_THESE_OPTIONS_ARE_NOT_AVAILABLE_TO_THE_FIELD_IF_BNONE_DBB_OPTION_IS_SELECTED="These options are not available to the field if None DB option is selected."
COM_COMPONENTBUILDER_THESE_OPTIONS_ARE_ONLY_AVAILABLE_TO_THE_FIELD_IF_BSHOW_IN_LIST_VIEWB_OPTION_IS_SELECTED="These options are only available to the field if Show in list view option is selected."
+COM_COMPONENTBUILDER_THESE_PLACEHOLDERS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Placeholders have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_PLACEHOLDERS_HAVE_SUCCESSFULLY_BEEN_RESET="These Placeholders have successfully been reset."
COM_COMPONENTBUILDER_THESE_POWERS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Powers have successfully been pushed."
COM_COMPONENTBUILDER_THESE_POWERS_HAVE_SUCCESSFULLY_BEEN_RESET="These Powers have successfully been reset."
+COM_COMPONENTBUILDER_THESE_SITE_VIEWS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Site Views have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_SITE_VIEWS_HAVE_SUCCESSFULLY_BEEN_RESET="These Site Views have successfully been reset."
+COM_COMPONENTBUILDER_THESE_SNIPPETS_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Snippets have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_SNIPPETS_HAVE_SUCCESSFULLY_BEEN_RESET="These Snippets have successfully been reset."
+COM_COMPONENTBUILDER_THESE_TEMPLATES_HAVE_SUCCESSFULLY_BEEN_PUSHED="These Templates have successfully been pushed."
+COM_COMPONENTBUILDER_THESE_TEMPLATES_HAVE_SUCCESSFULLY_BEEN_RESET="These Templates have successfully been reset."
COM_COMPONENTBUILDER_THE_ADMIN_CUSTOM_TABS="The admin custom tabs"
COM_COMPONENTBUILDER_THE_ADMIN_FIELDS="The admin fields"
COM_COMPONENTBUILDER_THE_ADMIN_FIELDS_CONDITIONS="The admin fields conditions"
COM_COMPONENTBUILDER_THE_ADMIN_FIELDS_RELATIONS="The admin fields relations"
+COM_COMPONENTBUILDER_THE_ADMIN_VIEW_HAS_SUCCESSFULLY_BEEN_PUSHED="The Admin View has successfully been pushed."
+COM_COMPONENTBUILDER_THE_ADMIN_VIEW_HAS_SUCCESSFULLY_BEEN_RESET="The Admin View has successfully been reset."
COM_COMPONENTBUILDER_THE_AVAILABLE_VALIDATION_RULES_FOR_THE_VALIDATE_ATTRIBUTE_ARE="The available validation rules for the validate attribute are:"
COM_COMPONENTBUILDER_THE_BMULTI_FILTERB_SELECTION_OPTION_ALLOWS_THE_USER_TO_SELECT_MORE_THEN_ONE_VALUE_IN_THIS_FILTERFIELD_PLEASE_NOTE_THAT_THIS_OPTION_BONLY_WORKSB_WITH_THE_BNEWB_FILTERS_THAT_LOAD_ABOVE_THE_ADMIN_LIST_VIEW_YOU_CAN_SELECT_THE_NEW_FILTER_OPTION_WHENWHERE_YOU_ADD_THE_VIEW_TO_THE_COMPONENT="The multi filter selection option allows the user to select more then one value in this filter/field. Please note that this option only works with the new filters that load above the admin list view. You can select the new filter option when/where you add the view to the component."
COM_COMPONENTBUILDER_THE_BNONE_DBB_OPTION_WILL_REMOVE_THIS_FIELD_FROM_BEING_SAVED_IN_THE_DATABASE="The None DB option will remove this field from being saved in the database."
@@ -9135,6 +9208,12 @@ COM_COMPONENTBUILDER_THE_BSB_RETURNED_AN_INVALID_STRING="The %s returned
COM_COMPONENTBUILDER_THE_BSB_VALUE_FOR_THE_DYNAMIC_DASHBOARD_IS_INVALID="The %s value for the dynamic dashboard is invalid."
COM_COMPONENTBUILDER_THE_BSHOW_IN_ALL_LIST_VIEWSB_OPTION_WILL_ADD_THIS_FIELD_TO_ALL_LIST_VIEWS_ADMIN_AMP_LINKED="The Show in All List Views option will Add this field to all list views, admin & linked."
COM_COMPONENTBUILDER_THE_BSINGLE_FILTERB_SELECTION_OPTION_ALLOWS_THE_USER_TO_SELECT_JUST_ONE_VALUE_IN_THIS_FILTERFIELD="The single filter selection option allows the user to select just one value in this filter/field."
+COM_COMPONENTBUILDER_THE_CLASS_EXTENDS_HAS_SUCCESSFULLY_BEEN_PUSHED="The Class Extends has successfully been pushed."
+COM_COMPONENTBUILDER_THE_CLASS_EXTENDS_HAS_SUCCESSFULLY_BEEN_RESET="The Class Extends has successfully been reset."
+COM_COMPONENTBUILDER_THE_CLASS_METHOD_HAS_SUCCESSFULLY_BEEN_PUSHED="The Class Method has successfully been pushed."
+COM_COMPONENTBUILDER_THE_CLASS_METHOD_HAS_SUCCESSFULLY_BEEN_RESET="The Class Method has successfully been reset."
+COM_COMPONENTBUILDER_THE_CLASS_PROPERTY_HAS_SUCCESSFULLY_BEEN_PUSHED="The Class Property has successfully been pushed."
+COM_COMPONENTBUILDER_THE_CLASS_PROPERTY_HAS_SUCCESSFULLY_BEEN_RESET="The Class Property has successfully been reset."
COM_COMPONENTBUILDER_THE_CODESTRING_FROM_BSB_HAS_BEEN_ADDED_FOR_THE_BFIRST_TIMEB_PLEASE_IINVESTIGATEI_TO_ENSURE_THE_CORRECT_CODESTRING_WAS_USED_BSHOULD_YOU_NOT_KNOW_ABOUT_THIS_NEW_EXTERNAL_CODESTRING_BEING_ADDED_THEN_THIS_IS_A_SERIOUS_DANGER_AND_REQUIRES_IMMEDIATE_ATTENTIONB_DO_NOT_IGNORE_THIS_WARNING_AS_IT_WILL_ONLY_SHOW_BONCEB="The code/string from %s has been added for the first time. Please investigate to ensure the correct code/string was used! Should you not know about this NEW external code/string being added, then this is a serious danger! and requires immediate attention! Do not ignore this warning as it will only show once."
COM_COMPONENTBUILDER_THE_CODESTRING_FROM_BSB_HAS_BEEN_BCHANGEDB_SINCE_THE_LAST_COMPILATION_PLEASE_INVESTIGATE_TO_ENSURE_THE_CHANGES_ARE_SAFE_BSHOULD_YOU_NOT_EXPECT_THIS_CHANGE_TO_THE_EXTERNAL_CODESTRING_BEING_ADDED_THEN_THIS_IS_A_SERIOUS_ISSUE_AND_REQUIRES_IMMEDIATE_ATTENTIONB_DO_NOT_IGNORE_THIS_WARNING_AS_IT_WILL_ONLY_SHOW_BONCEB="The code/string from %s has been changed since the last compilation. Please investigate to ensure the changes are safe! Should you not expect this change to the external code/string being added, then this is a serious issue! and requires immediate attention! Do not ignore this warning as it will only show once."
COM_COMPONENTBUILDER_THE_COMPONENT="The Component"
@@ -9153,17 +9232,36 @@ COM_COMPONENTBUILDER_THE_COMPONENT_SITE_ROUTER="The component site router"
COM_COMPONENTBUILDER_THE_COMPONENT_SITE_VIEWS="The component site views"
COM_COMPONENTBUILDER_THE_COMPONENT_UPDATES="The component updates"
COM_COMPONENTBUILDER_THE_CONTINUED_SUPPORT_OF_INDIVIDUALS_LIKE_YOU_HAS_ALLOWED_JOOMLA_COMPONENT_BUILDER_JCB_TO_THRIVE_FOR_SEVEN_YEARS_SINCE_GOING_PUBLIC_YOUR_CONTRIBUTIONS_HAVE_BEEN_CRUCIAL_IN_ENSURING_THE_GROWTH_AND_RELEVANCE_OF_THIS_VITAL_TOOL_FOR_PHP_PROGRAMMERS_THANK_YOU_FOR_YOUR_SUPPORT_AND_FOR_BEING_A_PART_OF_JCBS_JOURNEY="The continued support of individuals like you has allowed Joomla Component Builder (JCB) to thrive for seven years since going public. Your contributions have been crucial in ensuring the growth and relevance of this vital tool for PHP programmers. Thank you for your support and for being a part of JCB's journey."
+COM_COMPONENTBUILDER_THE_CUSTOM_ADMIN_VIEW_HAS_SUCCESSFULLY_BEEN_PUSHED="The Custom Admin View has successfully been pushed."
+COM_COMPONENTBUILDER_THE_CUSTOM_ADMIN_VIEW_HAS_SUCCESSFULLY_BEEN_RESET="The Custom Admin View has successfully been reset."
+COM_COMPONENTBUILDER_THE_CUSTOM_CODE_HAS_SUCCESSFULLY_BEEN_PUSHED="The Custom Code has successfully been pushed."
+COM_COMPONENTBUILDER_THE_CUSTOM_CODE_HAS_SUCCESSFULLY_BEEN_RESET="The Custom Code has successfully been reset."
+COM_COMPONENTBUILDER_THE_DYNAMIC_GET_HAS_SUCCESSFULLY_BEEN_PUSHED="The Dynamic Get has successfully been pushed."
+COM_COMPONENTBUILDER_THE_DYNAMIC_GET_HAS_SUCCESSFULLY_BEEN_RESET="The Dynamic Get has successfully been reset."
+COM_COMPONENTBUILDER_THE_FIELD_HAS_SUCCESSFULLY_BEEN_PUSHED="The Field has successfully been pushed."
+COM_COMPONENTBUILDER_THE_FIELD_HAS_SUCCESSFULLY_BEEN_RESET="The Field has successfully been reset."
COM_COMPONENTBUILDER_THE_FILE_PATH_BSB_DOES_NOT_EXIST_AND_WAS_NOT_ADDED="The file path: %s does not exist, and was not added!"
COM_COMPONENTBUILDER_THE_FOLDER_PATH_BSB_DOES_NOT_EXIST_AND_WAS_NOT_ADDED="The folder path: %s does not exist, and was not added!"
COM_COMPONENTBUILDER_THE_FTP_CONNECTION_FOR_BSB_COULD_NOT_BE_MADE_PLEASE_CHECK_YOUR_SIGNATURE_DETAILS="The FTP connection for %s could not be made. Please check your signature details!"
COM_COMPONENTBUILDER_THE_FTP_SIGNATURE_FOR_BSB_WAS_NOT_WELL_FORMED_PLEASE_CHECK_YOUR_SIGNATURE_DETAILS="The FTP signature for %s was not well formed, please check your signature details!"
+COM_COMPONENTBUILDER_THE_INITIALIZATION_FAILED_PLEASE_TRY_AGAIN="The initialization failed, please try again."
+COM_COMPONENTBUILDER_THE_JOOMLA_COMPONENT_HAS_SUCCESSFULLY_BEEN_PUSHED="The Joomla Component has successfully been pushed."
+COM_COMPONENTBUILDER_THE_JOOMLA_COMPONENT_HAS_SUCCESSFULLY_BEEN_RESET="The Joomla Component has successfully been reset."
COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_PUSHED="The Joomla Field Type has successfully been pushed."
COM_COMPONENTBUILDER_THE_JOOMLA_FIELD_TYPE_HAS_SUCCESSFULLY_BEEN_RESET="The Joomla Field Type has successfully been reset."
+COM_COMPONENTBUILDER_THE_JOOMLA_MODULE_HAS_SUCCESSFULLY_BEEN_PUSHED="The Joomla Module has successfully been pushed."
+COM_COMPONENTBUILDER_THE_JOOMLA_MODULE_HAS_SUCCESSFULLY_BEEN_RESET="The Joomla Module has successfully been reset."
+COM_COMPONENTBUILDER_THE_JOOMLA_PLUGIN_HAS_SUCCESSFULLY_BEEN_PUSHED="The Joomla Plugin has successfully been pushed."
+COM_COMPONENTBUILDER_THE_JOOMLA_PLUGIN_HAS_SUCCESSFULLY_BEEN_RESET="The Joomla Plugin has successfully been reset."
COM_COMPONENTBUILDER_THE_JOOMLA_POWER_HAS_SUCCESSFULLY_BEEN_PUSHED="The Joomla Power has successfully been pushed."
COM_COMPONENTBUILDER_THE_JOOMLA_POWER_HAS_SUCCESSFULLY_BEEN_RESET="The Joomla Power has successfully been reset."
COM_COMPONENTBUILDER_THE_KEY_OF_THIS_PACKAGE="The key of this package."
+COM_COMPONENTBUILDER_THE_LAYOUT_HAS_SUCCESSFULLY_BEEN_PUSHED="The Layout has successfully been pushed."
+COM_COMPONENTBUILDER_THE_LAYOUT_HAS_SUCCESSFULLY_BEEN_RESET="The Layout has successfully been reset."
COM_COMPONENTBUILDER_THE_LIBRARY_CONFIG_FIELDS="The library config fields"
COM_COMPONENTBUILDER_THE_LIBRARY_FILES_FOLDERS_URLS="The library files, folders & URLs"
+COM_COMPONENTBUILDER_THE_LIBRARY_HAS_SUCCESSFULLY_BEEN_PUSHED="The Library has successfully been pushed."
+COM_COMPONENTBUILDER_THE_LIBRARY_HAS_SUCCESSFULLY_BEEN_RESET="The Library has successfully been reset."
COM_COMPONENTBUILDER_THE_LOGIN_TO_BSB_HAS_FAILED_PLEASE_CHECK_THAT_YOUR_DETAILS_ARE_CORRECT="The login to %s has failed, please check that your details are correct!"
COM_COMPONENTBUILDER_THE_MODULE_FILES_FOLDERS="The module files & folders"
COM_COMPONENTBUILDER_THE_MODULE_UPDATES="The module updates"
@@ -9171,6 +9269,8 @@ COM_COMPONENTBUILDER_THE_NAME_OF_THIS_LIBRARY_BSB_CAN_NOT_BE_CHANGED_TO_BSB_OR_T
COM_COMPONENTBUILDER_THE_NOTICE_BOARD_IS_LOADING="The notice board is loading"
COM_COMPONENTBUILDER_THE_OPTION_TO_ADD_A_DYNAMIC_BUTTON_IS_NOT_AVAILABLE_IN_BOWN_CUSTOM_FIELD_TYPESB_YOU_WILL_HAVE_TO_CUSTOM_CODE_IT="The option to add a dynamic button is not available in own custom field types, you will have to custom code it."
COM_COMPONENTBUILDER_THE_PHP_TEMPORARY_FOLDER_IS_NOT_SET="The PHP temporary folder is not set."
+COM_COMPONENTBUILDER_THE_PLACEHOLDER_HAS_SUCCESSFULLY_BEEN_PUSHED="The Placeholder has successfully been pushed."
+COM_COMPONENTBUILDER_THE_PLACEHOLDER_HAS_SUCCESSFULLY_BEEN_RESET="The Placeholder has successfully been reset."
COM_COMPONENTBUILDER_THE_PLUGIN_FILES_FOLDERS="The plugin files & folders"
COM_COMPONENTBUILDER_THE_PLUGIN_UPDATES="The plugin updates"
COM_COMPONENTBUILDER_THE_POWER_HAS_SUCCESSFULLY_BEEN_PUSHED="The power has successfully been pushed."
@@ -9180,26 +9280,173 @@ COM_COMPONENTBUILDER_THE_PRIVATE_KEY_FILE_COULD_NOT_BE_LOADEDFOUND_FOR_BSB_SERVE
COM_COMPONENTBUILDER_THE_PUSH_OF_THESE_JOOMLA_FIELD_TYPES_COULD_NOT_BE_COMPLETED="The push of these Joomla Field Types could not be completed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THESE_JOOMLA_POWERS_COULD_NOT_BE_COMPLETED="The push of these Joomla Powers could not be completed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THESE_POWERS_COULD_NOT_BE_COMPLETED="The push of these Powers could not be completed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_ADMIN_VIEWS_HAS_FAILED="The push of this Admin Views has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_ADMIN_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Admin Views has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_ADMIN_VIEW_HAS_FAILED="The push of this Admin View has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_ADMIN_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The push of this Admin View has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_EXTENDINGS_HAS_FAILED="The push of this Class Extendings has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_EXTENDINGS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Extendings has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_EXTENDS_HAS_FAILED="The push of this Class Extends has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_EXTENDS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Extends has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_METHODS_HAS_FAILED="The push of this Class Methods has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_METHODS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Methods has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_METHOD_HAS_FAILED="The push of this Class Method has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_METHOD_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Method has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_PROPERTIES_HAS_FAILED="The push of this Class Properties has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_PROPERTIES_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Properties has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_PROPERTY_HAS_FAILED="The push of this Class Property has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CLASS_PROPERTY_HAS_NOT_BEEN_SUCCESSFUL="The push of this Class Property has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_ADMIN_VIEWS_HAS_FAILED="The push of this Custom Admin Views has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_ADMIN_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Custom Admin Views has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_ADMIN_VIEW_HAS_FAILED="The push of this Custom Admin View has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_ADMIN_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The push of this Custom Admin View has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_CODES_HAS_FAILED="The push of this Custom Codes has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_CODES_HAS_NOT_BEEN_SUCCESSFUL="The push of this Custom Codes has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_CODE_HAS_FAILED="The push of this Custom Code has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_CUSTOM_CODE_HAS_NOT_BEEN_SUCCESSFUL="The push of this Custom Code has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_DYNAMIC_GETS_HAS_FAILED="The push of this Dynamic Gets has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_DYNAMIC_GETS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Dynamic Gets has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_DYNAMIC_GET_HAS_FAILED="The push of this Dynamic Get has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_DYNAMIC_GET_HAS_NOT_BEEN_SUCCESSFUL="The push of this Dynamic Get has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_FIELDS_HAS_FAILED="The push of this Fields has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_FIELDS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Fields has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_FIELD_HAS_FAILED="The push of this Field has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_FIELD_HAS_NOT_BEEN_SUCCESSFUL="The push of this Field has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_COMPONENTS_HAS_FAILED="The push of this Joomla Components has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_COMPONENTS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Components has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_COMPONENT_HAS_FAILED="The push of this Joomla Component has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_COMPONENT_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Component has not been successful."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_FIELD_TYPES_HAS_FAILED="The push of this Joomla Field Types has failed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_FIELD_TYPE_COULD_NOT_BE_COMPLETED="The push of this Joomla Field Type could not be completed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED="The push of this Joomla Field Type has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_MODULES_HAS_FAILED="The push of this Joomla Modules has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_MODULES_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Modules has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_MODULE_HAS_FAILED="The push of this Joomla Module has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_MODULE_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Module has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_PLUGINS_HAS_FAILED="The push of this Joomla Plugins has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_PLUGINS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Plugins has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_PLUGIN_HAS_FAILED="The push of this Joomla Plugin has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_PLUGIN_HAS_NOT_BEEN_SUCCESSFUL="The push of this Joomla Plugin has not been successful."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_POWERS_HAS_FAILED="The push of this Joomla Powers has failed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_POWER_COULD_NOT_BE_COMPLETED="The push of this Joomla Power could not be completed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_JOOMLA_POWER_HAS_FAILED="The push of this Joomla Power has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LAYOUTS_HAS_FAILED="The push of this Layouts has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LAYOUTS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Layouts has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LAYOUT_HAS_FAILED="The push of this Layout has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LAYOUT_HAS_NOT_BEEN_SUCCESSFUL="The push of this Layout has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LIBRARIES_HAS_FAILED="The push of this Libraries has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LIBRARIES_HAS_NOT_BEEN_SUCCESSFUL="The push of this Libraries has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LIBRARY_HAS_FAILED="The push of this Library has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_LIBRARY_HAS_NOT_BEEN_SUCCESSFUL="The push of this Library has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_PLACEHOLDERS_HAS_FAILED="The push of this Placeholders has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_PLACEHOLDERS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Placeholders has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_PLACEHOLDER_HAS_FAILED="The push of this Placeholder has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_PLACEHOLDER_HAS_NOT_BEEN_SUCCESSFUL="The push of this Placeholder has not been successful."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_POWERS_HAS_FAILED="The push of this Powers has failed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_POWER_COULD_NOT_BE_COMPLETED="The push of this power could not be completed."
COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_POWER_HAS_FAILED="The push of this power has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SITE_VIEWS_HAS_FAILED="The push of this Site Views has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SITE_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Site Views has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SITE_VIEW_HAS_FAILED="The push of this Site View has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SITE_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The push of this Site View has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SNIPPETS_HAS_FAILED="The push of this Snippets has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SNIPPETS_HAS_NOT_BEEN_SUCCESSFUL="The push of this Snippets has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SNIPPET_HAS_FAILED="The push of this Snippet has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_SNIPPET_HAS_NOT_BEEN_SUCCESSFUL="The push of this Snippet has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_TEMPLATES_HAS_FAILED="The push of this Templates has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_TEMPLATES_HAS_NOT_BEEN_SUCCESSFUL="The push of this Templates has not been successful."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_TEMPLATE_HAS_FAILED="The push of this Template has failed."
+COM_COMPONENTBUILDER_THE_PUSH_OF_THIS_TEMPLATE_HAS_NOT_BEEN_SUCCESSFUL="The push of this Template has not been successful."
COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading"
COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE="The replace process had an error with table"
COM_COMPONENTBUILDER_THE_REPO_INDEX_FAILED_TO_LOAD_PLEASE_TRY_AGAIN="The repo index failed to load, please try again."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_ADMIN_VIEWS_HAS_FAILED="The reset of these Admin Views has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_CLASS_EXTENDINGS_HAS_FAILED="The reset of these Class Extendings has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_CLASS_METHODS_HAS_FAILED="The reset of these Class Methods has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_CLASS_PROPERTIES_HAS_FAILED="The reset of these Class Properties has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_CUSTOM_ADMIN_VIEWS_HAS_FAILED="The reset of these Custom Admin Views has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_CUSTOM_CODES_HAS_FAILED="The reset of these Custom Codes has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_DYNAMIC_GETS_HAS_FAILED="The reset of these Dynamic Gets has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_FIELDS_HAS_FAILED="The reset of these Fields has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_COMPONENTS_HAS_FAILED="The reset of these Joomla Components has failed."
COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_FIELD_TYPES_HAS_FAILED="The reset of these Joomla Field Types has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_MODULES_HAS_FAILED="The reset of these Joomla Modules has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_PLUGINS_HAS_FAILED="The reset of these Joomla Plugins has failed."
COM_COMPONENTBUILDER_THE_RESET_OF_THESE_JOOMLA_POWERS_HAS_FAILED="The reset of these Joomla Powers has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_LAYOUTS_HAS_FAILED="The reset of these Layouts has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_LIBRARIES_HAS_FAILED="The reset of these Libraries has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_PLACEHOLDERS_HAS_FAILED="The reset of these Placeholders has failed."
COM_COMPONENTBUILDER_THE_RESET_OF_THESE_POWERS_HAS_FAILED="The reset of these Powers has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_SITE_VIEWS_HAS_FAILED="The reset of these Site Views has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_SNIPPETS_HAS_FAILED="The reset of these Snippets has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THESE_TEMPLATES_HAS_FAILED="The reset of these Templates has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_ADMIN_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Admin Views has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_ADMIN_VIEW_HAS_FAILED="The reset of this Admin View has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_ADMIN_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Admin View has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_EXTENDINGS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Class Extendings has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_EXTENDS_HAS_FAILED="The reset of this Class Extends has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_EXTENDS_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Class Extends has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_METHODS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Class Methods has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_METHOD_HAS_FAILED="The reset of this Class Method has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_METHOD_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Class Method has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_PROPERTIES_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Class Properties has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_PROPERTY_HAS_FAILED="The reset of this Class Property has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CLASS_PROPERTY_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Class Property has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_ADMIN_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Custom Admin Views has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_ADMIN_VIEW_HAS_FAILED="The reset of this Custom Admin View has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_ADMIN_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Custom Admin View has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_CODES_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Custom Codes has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_CODE_HAS_FAILED="The reset of this Custom Code has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_CUSTOM_CODE_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Custom Code has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_DYNAMIC_GETS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Dynamic Gets has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_DYNAMIC_GET_HAS_FAILED="The reset of this Dynamic Get has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_DYNAMIC_GET_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Dynamic Get has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_FIELDS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Fields has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_FIELD_HAS_FAILED="The reset of this Field has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_FIELD_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Field has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_COMPONENTS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Joomla Components has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_COMPONENT_HAS_FAILED="The reset of this Joomla Component has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_COMPONENT_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Joomla Component has not been successful."
COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_FIELD_TYPE_HAS_FAILED="The reset of this Joomla Field Type has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_MODULES_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Joomla Modules has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_MODULE_HAS_FAILED="The reset of this Joomla Module has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_MODULE_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Joomla Module has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_PLUGINS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Joomla Plugins has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_PLUGIN_HAS_FAILED="The reset of this Joomla Plugin has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_PLUGIN_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Joomla Plugin has not been successful."
COM_COMPONENTBUILDER_THE_RESET_OF_THIS_JOOMLA_POWER_HAS_FAILED="The reset of this Joomla Power has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LAYOUTS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Layouts has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LAYOUT_HAS_FAILED="The reset of this Layout has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LAYOUT_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Layout has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LIBRARIES_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Libraries has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LIBRARY_HAS_FAILED="The reset of this Library has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_LIBRARY_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Library has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_PLACEHOLDERS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Placeholders has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_PLACEHOLDER_HAS_FAILED="The reset of this Placeholder has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_PLACEHOLDER_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Placeholder has not been successful."
COM_COMPONENTBUILDER_THE_RESET_OF_THIS_POWER_HAS_FAILED="The reset of this power has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SITE_VIEWS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Site Views has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SITE_VIEW_HAS_FAILED="The reset of this Site View has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SITE_VIEW_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Site View has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SNIPPETS_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Snippets has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SNIPPET_HAS_FAILED="The reset of this Snippet has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_SNIPPET_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Snippet has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_TEMPLATES_HAS_NOT_BEEN_SUCCESSFUL="The reset of this Templates has not been successful."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_TEMPLATE_HAS_FAILED="The reset of this Template has failed."
+COM_COMPONENTBUILDER_THE_RESET_OF_THIS_TEMPLATE_HAS_NOT_BEEN_SUCCESSFUL="The Reset of this Template has not been successful."
COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE="The search process had an error with table"
COM_COMPONENTBUILDER_THE_SERVER_DETAILS_FOR_BID_SB_COULD_NOT_BE_RETRIEVED="The server details for (ID: %s) could not be retrieved!"
+COM_COMPONENTBUILDER_THE_SITE_VIEW_HAS_SUCCESSFULLY_BEEN_PUSHED="The Site View has successfully been pushed."
+COM_COMPONENTBUILDER_THE_SITE_VIEW_HAS_SUCCESSFULLY_BEEN_RESET="The Site View has successfully been reset."
+COM_COMPONENTBUILDER_THE_SNIPPET_HAS_SUCCESSFULLY_BEEN_PUSHED="The Snippet has successfully been pushed."
+COM_COMPONENTBUILDER_THE_SNIPPET_HAS_SUCCESSFULLY_BEEN_RESET="The Snippet has successfully been reset."
+COM_COMPONENTBUILDER_THE_S_ITEMS_COULD_NOT_BE_FOUND="The %s item(s) could not be found."
+COM_COMPONENTBUILDER_THE_S_ITEMS_DID_NOT_RESET="The %s item:%s did not reset."
+COM_COMPONENTBUILDER_THE_S_ITEMS_S_COULD_NOT_BE_STORED_LOCALLY="The %s item:%s [%s] could not be stored locally."
+COM_COMPONENTBUILDER_THE_S_ITEMS_WAS_RESET="The %s item(s) was reset."
+COM_COMPONENTBUILDER_THE_S_S_RESET="The %s %s reset."
+COM_COMPONENTBUILDER_THE_TEMPLATE_HAS_SUCCESSFULLY_BEEN_PUSHED="The Template has successfully been pushed."
+COM_COMPONENTBUILDER_THE_TEMPLATE_HAS_SUCCESSFULLY_BEEN_RESET="The Template has successfully been reset."
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_S_DATA="The url (%s) set to retrieve the packages did not return %s data!"
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DID_NOT_RETURN_VALID_DATA="The url (%s) set to retrieve the packages did not return valid data!"
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST="The url (%s) set to retrieve the packages does not exist!"
@@ -9418,20 +9665,70 @@ COM_COMPONENTBUILDER_YOU_CAN_DIRECTLY_DOWNLOAD_THE_LATEST_UPDATE_OR_USE_THE_JOOM
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSIONS_TO_UPLOAD_S="You do not have permissions to upload (%s)."
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_ACCESS_THE_SERVER_DETAILS_BS_DENIEDB_PLEASE_CONTACT_YOUR_SYSTEM_ADMINISTRATOR_FOR_MORE_INFO="You do not have permission to access the server details (%s - denied), please contact your system administrator for more info."
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_DOWNLOAD_THE_COMPILER_ANIMATIONS="You do not have permission to download the compiler animations!"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_ADMIN_VIEWS="You do not have permission to initialize Admin Views"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_CLASS_EXTENDINGS="You do not have permission to initialize Class Extendings"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_CLASS_METHODS="You do not have permission to initialize Class Methods"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_CLASS_PROPERTIES="You do not have permission to initialize Class Properties"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_CUSTOM_ADMIN_VIEWS="You do not have permission to initialize Custom Admin Views"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_CUSTOM_CODES="You do not have permission to initialize Custom Codes"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_DYNAMIC_GETS="You do not have permission to initialize Dynamic Gets"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_FIELDS="You do not have permission to initialize Fields"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_COMPONENTS="You do not have permission to initialize Joomla Components"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_FIELD_TYPES="You do not have permission to initialize Joomla Field Types"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_MODULES="You do not have permission to initialize Joomla Modules"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_PLUGINS="You do not have permission to initialize Joomla Plugins"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_JOOMLA_POWERS="You do not have permission to initialize Joomla Powers"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_LAYOUTS="You do not have permission to initialize Layouts"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_LIBRARIES="You do not have permission to initialize Libraries"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_PLACEHOLDERS="You do not have permission to initialize Placeholders"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_POWERS="You do not have permission to initialize Powers"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_SITE_VIEWS="You do not have permission to initialize Site Views"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_SNIPPETS="You do not have permission to initialize Snippets"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INITIALIZE_TEMPLATES="You do not have permission to initialize Templates"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THESE_EXTENSIONS="You do not have permission to install these extensions!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_COMPONENT="You do not have permission to install the component!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_MODULE="You do not have permission to install the module!"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_INSTALL_THE_PLUGIN="You do not have permission to install the plugin!"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_ADMIN_VIEW="You do not have permission to push this Admin View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_CLASS_EXTENDS="You do not have permission to push this Class Extends"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_CLASS_METHOD="You do not have permission to push this Class Method"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_CLASS_PROPERTY="You do not have permission to push this Class Property"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_CUSTOM_ADMIN_VIEW="You do not have permission to push this Custom Admin View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_CUSTOM_CODE="You do not have permission to push this Custom Code"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_DYNAMIC_GET="You do not have permission to push this Dynamic Get"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_FIELD="You do not have permission to push this Field"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_COMPONENT="You do not have permission to push this Joomla Component"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_FIELD_TYPE="You do not have permission to push this Joomla Field Type"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_MODULE="You do not have permission to push this Joomla Module"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_PLUGIN="You do not have permission to push this Joomla Plugin"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_JOOMLA_POWER="You do not have permission to push this Joomla Power"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_LAYOUT="You do not have permission to push this Layout"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_LIBRARY="You do not have permission to push this Library"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_PLACEHOLDER="You do not have permission to push this Placeholder"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_POWER="You do not have permission to push this power"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_SITE_VIEW="You do not have permission to push this Site View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_SNIPPET="You do not have permission to push this Snippet"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_PUSH_THIS_TEMPLATE="You do not have permission to push this Template"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_ADMIN_VIEW="You do not have permission to reset this Admin View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_CLASS_EXTENDS="You do not have permission to reset this Class Extends"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_CLASS_METHOD="You do not have permission to reset this Class Method"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_CLASS_PROPERTY="You do not have permission to reset this Class Property"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_CUSTOM_ADMIN_VIEW="You do not have permission to reset this Custom Admin View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_CUSTOM_CODE="You do not have permission to reset this Custom Code"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_DYNAMIC_GET="You do not have permission to reset this Dynamic Get"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_FIELD="You do not have permission to reset this Field"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_COMPONENT="You do not have permission to reset this Joomla Component"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_FIELD_TYPE="You do not have permission to reset this Joomla Field Type"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_MODULE="You do not have permission to reset this Joomla Module"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_PLUGIN="You do not have permission to reset this Joomla Plugin"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_JOOMLA_POWER="You do not have permission to reset this Joomla Power"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_LAYOUT="You do not have permission to reset this Layout"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_LIBRARY="You do not have permission to reset this Library"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_PLACEHOLDER="You do not have permission to reset this Placeholder"
COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_POWER="You do not have permission to reset this power"
-COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_GET_BOILERPLATE_MODULE="You do not have permission to run the get boilerplate module!"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_SITE_VIEW="You do not have permission to reset this Site View"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_SNIPPET="You do not have permission to reset this Snippet"
+COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RESET_THIS_TEMPLATE="You do not have permission to reset this Template"
COM_COMPONENTBUILDER_YOU_HAVE_S_S_ADDING_MORE_THAN_S_S_IS_CONSIDERED_BAD_PRACTICE="You have %s %s. Adding more than %s %s is considered bad practice."
COM_COMPONENTBUILDER_YOU_HAVE_S_S_ADDING_MORE_THAN_S_S_IS_CONSIDERED_BAD_PRACTICE_YOUR_S_PAGE_LOAD_IN_JCB_WILL_SLOW_DOWN_YOU_SHOULD_CONSIDER_DECOUPLING_SOME_OF_THESE_S="You have %s %s. Adding more than %s %s is considered bad practice. Your %s page load in JCB will slow down. You should consider decoupling some of these %s."
COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_FUNCTION_NAME="You must add an unique function name."
@@ -9439,9 +9736,26 @@ COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_PLACEHOLDER="You must add an unique
COM_COMPONENTBUILDER_YOU_MUST_ADD_AN_UNIQUE_VALIDATION_RULE_NAME="You must add an unique validation rule name."
COM_COMPONENTBUILDER_YOU_MUST_ENABLE_THE_BTIDYB_EXTENSION_IN_YOUR_PHPINI_FILE_SO_WE_CAN_TIDY_UP_YOUR_XML_IF_YOU_NEED_HELP_PLEASE_A_SSTART_HEREA="You must enable the Tidy extension in your php.ini file so we can tidy up your xml! If you need help please start here!"
COM_COMPONENTBUILDER_YOU_MUST_FIRST_LINK_AN_ADMIN_OR_A_CUSTOM_ADMIN_VIEW_TO_THIS_COMPONENT_THEN_YOU_CAN_SELECT_IT_HERE="You must first link an admin or a custom admin view to this component, then you can select it here"
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_ADMIN_VIEW_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Admin View, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_CLASS_EXTENDS_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Class Extends, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_CLASS_METHOD_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Class Method, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_CLASS_PROPERTY_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Class Property, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_CUSTOM_ADMIN_VIEW_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Custom Admin View, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_CUSTOM_CODE_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Custom Code, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_DYNAMIC_GET_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Dynamic Get, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_FIELD_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Field, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_COMPONENT_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Joomla Component, before you can use this feature."
COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_FIELD_TYPE_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Joomla Field Type, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_MODULE_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Joomla Module, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_PLUGIN_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Joomla Plugin, before you can use this feature."
COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_JOOMLA_POWER_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Joomla Power, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_LAYOUT_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Layout, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_LIBRARY_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Library, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_PLACEHOLDER_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Placeholder, before you can use this feature."
COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_POWER_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the power, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_SITE_VIEW_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Site View, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_SNIPPET_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Snippet, before you can use this feature."
+COM_COMPONENTBUILDER_YOU_MUST_FIRST_SAVE_THE_TEMPLATE_BEFORE_YOU_CAN_USE_THIS_FEATURE="You must first save the Template, before you can use this feature."
COM_COMPONENTBUILDER_YOU_MUST_SELECT_A_COMPONENT="You must select a component!"
COM_COMPONENTBUILDER_YOU_SHOULD_ONLY_CONTINUE_THIS_IMPORT_IF_YOU_HAVE_BACKUP_YOUR_COMPONENTS_AND_INSURED_THAT_THE_PACKAGE_OWNER_IS_REPUTABLE="You should only continue this import if you have backup your components, and insured that the package owner is reputable."
COM_COMPONENTBUILDER_YOU_WILL_REPLACE="You will replace"
diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
index bdbe5a1fe..7d77d859e 100644
--- a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
+++ b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini
@@ -129,6 +129,12 @@ COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE="Class Extendings Edit State"
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class extends"
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION="Class Extendings Edit Version"
COM_COMPONENTBUILDER_CLASS_EXTENDINGS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class extendings"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS="Class Extends Init Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS="Class Extends Push Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS="Class Extends Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_EXTENDS_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS="Class Methods Access"
COM_COMPONENTBUILDER_CLASS_METHODS_ACCESS_DESC="Allows the users in this group to access access class methods"
COM_COMPONENTBUILDER_CLASS_METHODS_BATCH_USE="Class Methods Batch Use"
@@ -149,6 +155,12 @@ COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_STATE="Class Methods Edit State"
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_STATE_DESC="Allows the users in this group to update the state of the class method"
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION="Class Methods Edit Version"
COM_COMPONENTBUILDER_CLASS_METHODS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class methods"
+COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS="Class Method Init Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS="Class Method Push Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS="Class Method Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_METHOD_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS="Class Properties Access"
COM_COMPONENTBUILDER_CLASS_PROPERTIES_ACCESS_DESC="Allows the users in this group to access access class properties"
COM_COMPONENTBUILDER_CLASS_PROPERTIES_BATCH_USE="Class Properties Batch Use"
@@ -169,6 +181,12 @@ COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE="Class Properties Edit State"
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_STATE_DESC="Allows the users in this group to update the state of the class property"
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION="Class Properties Edit Version"
COM_COMPONENTBUILDER_CLASS_PROPERTIES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version class properties"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS="Class Property Init Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS="Class Property Push Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS="Class Property Reset Button Access"
+COM_COMPONENTBUILDER_CLASS_PROPERTY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_COMPILER_ACCESS="Compiler Access"
COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC="Allows the users in this group to access compiler."
COM_COMPONENTBUILDER_COMPILER_CLEAR_TMP_BUTTON_ACCESS="Compiler Clear tmp Button Access"
@@ -700,6 +718,12 @@ COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE="Joomla Modules Updates E
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla module updates"
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION="Joomla Modules Updates Edit Version"
COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla modules updates"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS="Joomla Module Init Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS="Joomla Module Push Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS="Joomla Module Reset Button Access"
+COM_COMPONENTBUILDER_JOOMLA_MODULE_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS="Joomla Plugins Access"
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC="Allows the users in this group to access access joomla plugins"
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_BATCH_USE="Joomla Plugins Batch Use"
@@ -764,18 +788,18 @@ COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_STATE="Joomla Plugins Updates E
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla plugin updates"
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION="Joomla Plugins Updates Edit Version"
COM_COMPONENTBUILDER_JOOMLA_PLUGINS_UPDATES_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugins updates"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS="Joomla Plugin Get Boilerplate Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GET_BOILERPLATE_BUTTON_ACCESS_DESC="Allows the users in this group to access the get boilerplate button."
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS="Joomla Plugin Groups Access"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_ACCESS_DESC="Allows the users in this group to access access joomla plugin groups"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE="Joomla Plugin Groups Batch Use"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_BATCH_USE_DESC="Allows the users in this group to use batch copy/update method of batch joomla plugin groups"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION="Joomla Plugin Groups Edit Version"
COM_COMPONENTBUILDER_JOOMLA_PLUGIN_GROUPS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version joomla plugin groups"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS="Joomla Plugin Methods Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_METHODS_BUTTON_ACCESS_DESC="Allows the users in this group to access the methods button."
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS="Joomla Plugin Properties Button Access"
-COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PROPERTIES_BUTTON_ACCESS_DESC="Allows the users in this group to access the properties button."
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS="Joomla Plugin Init Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS="Joomla Plugin Push Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS="Joomla Plugin Reset Button Access"
+COM_COMPONENTBUILDER_JOOMLA_PLUGIN_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS="Joomla Powers Access"
COM_COMPONENTBUILDER_JOOMLA_POWERS_ACCESS_DESC="Allows the users in this group to access access joomla powers"
COM_COMPONENTBUILDER_JOOMLA_POWERS_BATCH_USE="Joomla Powers Batch Use"
@@ -940,6 +964,9 @@ COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS="Library Reset Button Access"
COM_COMPONENTBUILDER_LIBRARY_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_MENU="✓ Component Builder"
COM_COMPONENTBUILDER_MENU_ADMIN_VIEWS="Admin Views"
+COM_COMPONENTBUILDER_MENU_CLASS_EXTENDINGS="Class Extendings"
+COM_COMPONENTBUILDER_MENU_CLASS_METHODS="Class Methods"
+COM_COMPONENTBUILDER_MENU_CLASS_PROPERTIES="Class Properties"
COM_COMPONENTBUILDER_MENU_COMPILER="Compiler"
COM_COMPONENTBUILDER_MENU_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
COM_COMPONENTBUILDER_MENU_CUSTOM_CODES="Custom Codes"
@@ -985,6 +1012,12 @@ COM_COMPONENTBUILDER_PLACEHOLDERS_EDIT_VERSION="Placeholders Edit Version"
COM_COMPONENTBUILDER_PLACEHOLDERS_EDIT_VERSION_DESC="Allows the users in this group to edit versions of version placeholders"
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU="Placeholders Submenu"
COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU_DESC="Allows the users in this group to submenu of placeholder"
+COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS="Placeholder Init Button Access"
+COM_COMPONENTBUILDER_PLACEHOLDER_INIT_BUTTON_ACCESS_DESC="Allows the users in this group to access the init button."
+COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS="Placeholder Push Button Access"
+COM_COMPONENTBUILDER_PLACEHOLDER_PUSH_BUTTON_ACCESS_DESC="Allows the users in this group to access the push button."
+COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS="Placeholder Reset Button Access"
+COM_COMPONENTBUILDER_PLACEHOLDER_RESET_BUTTON_ACCESS_DESC="Allows the users in this group to access the reset button."
COM_COMPONENTBUILDER_POWERS_ACCESS="Powers Access"
COM_COMPONENTBUILDER_POWERS_ACCESS_DESC="Allows the users in this group to access access powers"
COM_COMPONENTBUILDER_POWERS_BATCH_USE="Powers Batch Use"
diff --git a/admin/layouts/fieldtype/fields_fullwidth.php b/admin/layouts/fieldtype/fields_fullwidth.php
index 9916fa211..ab75c6f5f 100644
--- a/admin/layouts/fieldtype/fields_fullwidth.php
+++ b/admin/layouts/fieldtype/fields_fullwidth.php
@@ -21,7 +21,7 @@ use Joomla\CMS\User\UserFactoryInterface;
defined('_JEXEC') or die;
// set the defaults
-$items = $displayData->vxlfields;
+$items = $displayData->vxifields;
$user = Factory::getApplication()->getIdentity();
$id = $displayData->item->id;
// set the edit URL
diff --git a/admin/layouts/joomla_component/settings_fullwidth.php b/admin/layouts/joomla_component/settings_fullwidth.php
index ce706bc13..d21edcad9 100644
--- a/admin/layouts/joomla_component/settings_fullwidth.php
+++ b/admin/layouts/joomla_component/settings_fullwidth.php
@@ -26,7 +26,6 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
- 'spacer_hr_8',
'note_on_contributors',
'addcontributors',
'emptycontributors',
diff --git a/admin/layouts/joomla_component/settings_right.php b/admin/layouts/joomla_component/settings_right.php
index 539523b70..c3912f186 100644
--- a/admin/layouts/joomla_component/settings_right.php
+++ b/admin/layouts/joomla_component/settings_right.php
@@ -36,11 +36,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'spacer_hr_6',
'to_ignore_note',
'toignore',
- 'spacer_hr_7',
- 'jcb_export_package_note',
- 'export_key',
- 'joomla_source_link',
- 'export_buy_link'
+ 'spacer_hr_7'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];
diff --git a/admin/layouts/powerselectiontable.php b/admin/layouts/powerselectiontable.php
index 1ee1ff7bb..aafb5115b 100644
--- a/admin/layouts/powerselectiontable.php
+++ b/admin/layouts/powerselectiontable.php
@@ -22,19 +22,18 @@ defined('JPATH_BASE') or die;
$table_id = $displayData['id'] ?? 'power_selection_table';
$headers = $displayData['headers'] ?? ['error'];
-$default_items_number = 10;
+$default_items_number = 13;
$unique_name = '';
?>
- $table_id,
'table_class' => 'table table-striped',
'table_container_class' => 'power-selection-table-container',
'name' => Text::_('COM_COMPONENTBUILDER_MAKE_YOUR_SELECTION'),
'headers' => $headers,
- 'items' => 10,
+ 'items' => [],
'default_items_number' => $default_items_number,
'init' => false
]
@@ -59,20 +58,39 @@ document.addEventListener("DOMContentLoaded", function() {
columnDefs: [
{ 'targets': [ -1 ], 'visible': false, 'searchable': false },
{ responsivePriority: 1, targets: 1 },
- { responsivePriority: 2, targets: -3 }
+ { responsivePriority: 2, targets: -4 }
],
columns: [
{
data: 'path',
render: function(data, type) {
- if (type === 'display') {
- return '' + data + ''
+ if (data !== '' && type === 'display') {
+ return '' + data + ''
+ } else if (data === '' && type !== 'display') {
+ return 'zzzzzzzzzzzz';
+ }
+ return data;
+ }
+ },
+ {
+ data: 'settings',
+ render: function(data, type) {
+ if (data !== '' && type === 'display') {
+ return '' + data + ''
+ } else if (data === '' && type !== 'display') {
+ return 'zzzzzzzzzzzz';
}
return data;
}
},
{
- data: ''
+ data: '',
+ render: function(data, type) {
+ if (data === '' && type !== 'display') {
+ return 'zzzzzzzzzzzz';
+ }
+ return data;
+ }
},
],
createdRow: function(row, data, dataIndex) {
@@ -121,11 +139,23 @@ function clearPowerSelectionTable() {
function buildPowerSelectionTable(items) {
let table = new jQuery.fn.dataTable.Api('#');
- // clear the table
- table.clear();
- // load the new items
+ table.clear().draw(true);
table.rows.add(getArrayFormat(items));
- // Draw the table
+ let emptyRow = ;
+ let currentRowCount = table.rows().count();
+ let emptyRowsNeeded = - currentRowCount;
+ if (emptyRowsNeeded > 0) {
+ for(let i = 0; i < emptyRowsNeeded; i++) {
+ table.row.add(emptyRow);
+ }
+ }
table.draw(true);
}
+
+function encodePath(path) {
+ return path
+ .split('/')
+ .map(encodeURIComponent)
+ .join('/');
+}
diff --git a/admin/layouts/repository/details_left.php b/admin/layouts/repository/details_left.php
index 6fb40bfe5..d8b6d51db 100644
--- a/admin/layouts/repository/details_left.php
+++ b/admin/layouts/repository/details_left.php
@@ -29,7 +29,9 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
'type',
'base',
'username',
- 'token'
+ 'token',
+ 'author_name',
+ 'author_email'
);
$hiddenFields = $displayData->get('hidden_fields') ?: [];
diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql
index c658da753..03572520b 100644
--- a/admin/sql/install.mysql.utf8.sql
+++ b/admin/sql/install.mysql.utf8.sql
@@ -57,14 +57,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
`description` TEXT NULL,
`email` VARCHAR(255) NULL DEFAULT '',
`emptycontributors` TINYINT(1) NOT NULL DEFAULT 0,
- `export_buy_link` VARCHAR(255) NOT NULL DEFAULT '',
- `export_key` TEXT NULL,
`git_folder_path` VARCHAR(255) NULL DEFAULT '',
`guid` VARCHAR(36) NULL DEFAULT '',
- `image` VARCHAR(255) NOT NULL DEFAULT '',
+ `image` VARCHAR(255) NULL DEFAULT '',
`javascript` TEXT NULL,
`jcb_powers_path` VARCHAR(255) NULL DEFAULT '',
- `joomla_source_link` VARCHAR(255) NOT NULL DEFAULT '',
`license` VARCHAR(255) NULL DEFAULT '',
`menu_prefix` VARCHAR(100) NULL DEFAULT '',
`modified` DATETIME NULL,
@@ -96,7 +93,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
`translation_tool` TINYINT(1) NOT NULL DEFAULT 0,
`update_server` INT(11) NOT NULL DEFAULT 0,
`update_server_target` TINYINT(1) NOT NULL DEFAULT 0,
- `update_server_url` VARCHAR(255) NOT NULL DEFAULT '',
+ `update_server_url` VARCHAR(255) NULL DEFAULT '',
`website` CHAR(255) NOT NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -114,25 +111,24 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
PRIMARY KEY (`id`),
KEY `idx_system_name` (`system_name`),
KEY `idx_name_code` (`name_code`),
+ KEY `idx_add_sales_server` (`add_sales_server`),
+ KEY `idx_add_jcb_powers_path` (`add_jcb_powers_path`),
+ KEY `idx_debug_linenr` (`debug_linenr`),
KEY `idx_mvc_versiondate` (`mvc_versiondate`),
KEY `idx_remove_line_breaks` (`remove_line_breaks`),
KEY `idx_add_placeholders` (`add_placeholders`),
- KEY `idx_debug_linenr` (`debug_linenr`),
- KEY `idx_add_sales_server` (`add_sales_server`),
- KEY `idx_add_jcb_powers_path` (`add_jcb_powers_path`),
KEY `idx_add_powers` (`add_powers`),
KEY `idx_addreadme` (`addreadme`),
KEY `idx_add_backup_folder_path` (`add_backup_folder_path`),
KEY `idx_translation_tool` (`translation_tool`),
- KEY `idx_add_namespace_prefix` (`add_namespace_prefix`),
- KEY `idx_namespace_prefix` (`namespace_prefix`),
- KEY `idx_add_php_helper_site` (`add_php_helper_site`),
KEY `idx_add_site_event` (`add_site_event`),
- KEY `idx_add_menu_prefix` (`add_menu_prefix`),
+ KEY `idx_add_namespace_prefix` (`add_namespace_prefix`),
KEY `idx_add_javascript` (`add_javascript`),
- KEY `idx_menu_prefix` (`menu_prefix`),
+ KEY `idx_namespace_prefix` (`namespace_prefix`),
KEY `idx_add_css_admin` (`add_css_admin`),
KEY `idx_add_css_site` (`add_css_site`),
+ KEY `idx_add_menu_prefix` (`add_menu_prefix`),
+ KEY `idx_menu_prefix` (`menu_prefix`),
KEY `idx_dashboard` (`dashboard`),
KEY `idx_add_php_preflight_install` (`add_php_preflight_install`),
KEY `idx_add_php_preflight_update` (`add_php_preflight_update`),
@@ -140,21 +136,22 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_component` (
KEY `idx_add_php_postflight_update` (`add_php_postflight_update`),
KEY `idx_add_php_method_uninstall` (`add_php_method_uninstall`),
KEY `idx_add_php_method_install` (`add_php_method_install`),
+ KEY `idx_emptycontributors` (`emptycontributors`),
KEY `idx_add_sql` (`add_sql`),
KEY `idx_add_sql_uninstall` (`add_sql_uninstall`),
- KEY `idx_emptycontributors` (`emptycontributors`),
KEY `idx_assets_table_fix` (`assets_table_fix`),
KEY `idx_add_update_server` (`add_update_server`),
KEY `idx_update_server_target` (`update_server_target`),
KEY `idx_creatuserhelper` (`creatuserhelper`),
- KEY `idx_add_git_folder_path` (`add_git_folder_path`),
KEY `idx_adduikit` (`adduikit`),
KEY `idx_addfootable` (`addfootable`),
+ KEY `idx_add_git_folder_path` (`add_git_folder_path`),
KEY `idx_add_email_helper` (`add_email_helper`),
KEY `idx_add_php_helper_both` (`add_php_helper_both`),
KEY `idx_add_php_helper_admin` (`add_php_helper_admin`),
- KEY `idx_guid` (`guid`),
KEY `idx_add_admin_event` (`add_admin_event`),
+ KEY `idx_guid` (`guid`),
+ KEY `idx_add_php_helper_site` (`add_php_helper_site`),
KEY `idx_access` (`access`),
KEY `idx_checkout` (`checked_out`),
KEY `idx_createdby` (`created_by`),
@@ -184,7 +181,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` (
`custom_get` TEXT NULL,
`default` MEDIUMTEXT NULL,
`description` TEXT NULL,
- `fields` TEXT NOT NULL,
+ `fields` TEXT NULL,
`guid` VARCHAR(36) NULL DEFAULT '',
`libraries` TEXT NULL,
`mod_code` TEXT NULL,
@@ -206,7 +203,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module` (
`target` TINYINT(1) NOT NULL DEFAULT 0,
`update_server` INT(11) NOT NULL DEFAULT 0,
`update_server_target` TINYINT(1) NOT NULL DEFAULT 0,
- `update_server_url` VARCHAR(255) NOT NULL DEFAULT '',
+ `update_server_url` VARCHAR(255) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -262,12 +259,12 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin` (
`addreadme` TINYINT(1) NOT NULL DEFAULT 0,
`class_extends` VARCHAR(36) NULL DEFAULT '',
`description` TEXT NULL,
- `fields` TEXT NOT NULL,
+ `fields` TEXT NULL,
`guid` VARCHAR(36) NULL DEFAULT '',
`head` TEXT NULL,
`joomla_plugin_group` VARCHAR(36) NULL DEFAULT '',
`main_class_code` MEDIUMTEXT NULL,
- `method_selection` TEXT NOT NULL,
+ `method_selection` TEXT NULL,
`name` VARCHAR(255) NULL DEFAULT '',
`php_method_uninstall` MEDIUMTEXT NULL,
`php_postflight_install` MEDIUMTEXT NULL,
@@ -277,7 +274,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin` (
`php_preflight_update` MEDIUMTEXT NULL,
`php_script_construct` MEDIUMTEXT NULL,
`plugin_version` CHAR(64) NULL DEFAULT '',
- `property_selection` TEXT NOT NULL,
+ `property_selection` TEXT NULL,
`readme` TEXT NULL,
`sales_server` INT(11) NOT NULL DEFAULT 0,
`sql` MEDIUMTEXT NULL,
@@ -285,7 +282,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin` (
`system_name` VARCHAR(255) NULL DEFAULT '',
`update_server` INT(11) NOT NULL DEFAULT 0,
`update_server_target` TINYINT(1) NOT NULL DEFAULT 0,
- `update_server_url` VARCHAR(255) NOT NULL DEFAULT '',
+ `update_server_url` VARCHAR(255) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -329,7 +326,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_power` (
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`description` TEXT NULL,
`guid` VARCHAR(36) NULL DEFAULT '',
- `settings` TEXT NOT NULL,
+ `settings` TEXT NULL,
`system_name` VARCHAR(255) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -447,16 +444,16 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_view` (
`addtables` TEXT NULL,
`addtabs` TEXT NULL,
`ajax_input` TEXT NULL,
- `alias_builder` VARCHAR(255) NOT NULL DEFAULT '',
+ `alias_builder` VARCHAR(255) NULL DEFAULT '',
`alias_builder_type` TINYINT(1) NOT NULL DEFAULT 0,
`css_view` TEXT NULL,
`css_views` TEXT NULL,
`custom_button` TEXT NULL,
`description` TEXT NULL,
`guid` VARCHAR(36) NULL DEFAULT '',
- `icon` VARCHAR(255) NOT NULL DEFAULT '',
- `icon_add` VARCHAR(255) NOT NULL DEFAULT '',
- `icon_category` VARCHAR(255) NOT NULL DEFAULT '',
+ `icon` VARCHAR(255) NULL DEFAULT '',
+ `icon_add` VARCHAR(255) NULL DEFAULT '',
+ `icon_category` VARCHAR(255) NULL DEFAULT '',
`javascript_view_file` TEXT NULL,
`javascript_view_footer` TEXT NULL,
`javascript_views_file` TEXT NULL,
@@ -580,7 +577,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_custom_admin_view` (
`description` VARCHAR(255) NULL DEFAULT '',
`dynamic_get` VARCHAR(36) NULL DEFAULT '',
`guid` VARCHAR(36) NULL DEFAULT '',
- `icon` VARCHAR(255) NOT NULL DEFAULT '',
+ `icon` VARCHAR(255) NULL DEFAULT '',
`javascript_file` TEXT NULL,
`js_document` TEXT NULL,
`libraries` TEXT NULL,
@@ -798,12 +795,12 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_dynamic_get` (
`add_php_router_parse` TINYINT(1) NOT NULL DEFAULT 0,
`addcalculation` TINYINT(1) NOT NULL DEFAULT 0,
`db_selection` TEXT NULL,
- `db_table_main` VARCHAR(255) NOT NULL DEFAULT '',
+ `db_table_main` VARCHAR(255) NULL DEFAULT '',
`filter` TEXT NULL,
`getcustom` VARCHAR(255) NULL DEFAULT '',
`gettype` TINYINT(1) NOT NULL DEFAULT 0,
`global` TEXT NULL,
- `group` TEXT NOT NULL,
+ `group` TEXT NULL,
`guid` VARCHAR(36) NULL DEFAULT '',
`join_db_table` TEXT NULL,
`join_view_table` TEXT NULL,
@@ -845,6 +842,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_dynamic_get` (
KEY `idx_add_php_before_getitems` (`add_php_before_getitems`),
KEY `idx_add_php_before_getitem` (`add_php_before_getitem`),
KEY `idx_add_php_after_getitem` (`add_php_after_getitem`),
+ KEY `idx_view_table_main` (`view_table_main`),
KEY `idx_add_php_getlistquery` (`add_php_getlistquery`),
KEY `idx_select_all` (`select_all`),
KEY `idx_getcustom` (`getcustom`),
@@ -900,6 +898,36 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_custom_code` (
KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `#__componentbuilder_class_extends` (
+ `id` INT(11) NOT NULL AUTO_INCREMENT,
+ `asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
+ `comment` TEXT NULL,
+ `extension_type` VARCHAR(64) NOT NULL DEFAULT '',
+ `guid` VARCHAR(36) NULL DEFAULT '',
+ `head` TEXT NULL,
+ `name` VARCHAR(255) NULL DEFAULT '',
+ `params` TEXT NULL,
+ `published` TINYINT(3) NULL DEFAULT 1,
+ `created_by` INT unsigned NULL,
+ `modified_by` INT unsigned,
+ `created` DATETIME DEFAULT CURRENT_TIMESTAMP,
+ `modified` DATETIME,
+ `checked_out` int unsigned,
+ `checked_out_time` DATETIME,
+ `version` INT(10) unsigned NULL DEFAULT 1,
+ `hits` INT(10) unsigned NULL DEFAULT 0,
+ `access` INT(10) unsigned NULL DEFAULT 0,
+ `ordering` INT(11) NULL DEFAULT 0,
+ PRIMARY KEY (`id`),
+ KEY `idx_name` (`name`),
+ KEY `idx_guid` (`guid`),
+ KEY `idx_access` (`access`),
+ KEY `idx_checkout` (`checked_out`),
+ KEY `idx_createdby` (`created_by`),
+ KEY `idx_modifiedby` (`modified_by`),
+ KEY `idx_state` (`published`)
+) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+
CREATE TABLE IF NOT EXISTS `#__componentbuilder_class_property` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
@@ -998,11 +1026,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_placeholder` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_library` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addconditions` MEDIUMTEXT NOT NULL,
+ `addconditions` MEDIUMTEXT NULL,
`description` VARCHAR(255) NULL DEFAULT '',
`guid` VARCHAR(36) NULL DEFAULT '',
`how` TINYINT(1) NOT NULL DEFAULT 1,
- `libraries` TEXT NOT NULL,
+ `libraries` TEXT NULL,
`name` VARCHAR(255) NULL DEFAULT '',
`php_setdocument` MEDIUMTEXT NULL,
`target` TINYINT(1) NOT NULL DEFAULT 1,
@@ -1044,7 +1072,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_snippet` (
`name` VARCHAR(255) NULL DEFAULT '',
`snippet` TEXT NULL,
`type` VARCHAR(36) NULL DEFAULT '',
- `url` VARCHAR(255) NOT NULL DEFAULT '',
+ `url` VARCHAR(255) NULL DEFAULT '',
`usage` TEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1121,7 +1149,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_field` (
`javascript_view_footer` TEXT NULL,
`javascript_views_footer` TEXT NULL,
`name` VARCHAR(255) NULL DEFAULT '',
- `null_switch` CHAR(64) NOT NULL DEFAULT '',
+ `null_switch` CHAR(64) NULL DEFAULT '',
`on_get_model_field` TEXT NULL,
`on_save_model_field` TEXT NULL,
`store` INT(11) NOT NULL DEFAULT 0,
@@ -1175,7 +1203,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_fieldtype` (
`has_defaults` TINYINT(1) NOT NULL DEFAULT 0,
`indexes` CHAR(64) NOT NULL DEFAULT '',
`name` VARCHAR(255) NULL DEFAULT '',
- `null_switch` CHAR(64) NOT NULL DEFAULT '',
+ `null_switch` CHAR(64) NULL DEFAULT '',
`properties` TEXT NULL,
`short_description` VARCHAR(255) NULL DEFAULT '',
`store` INT(11) NOT NULL DEFAULT 0,
@@ -1270,13 +1298,13 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_server` (
`authentication` TINYINT(1) NOT NULL DEFAULT 0,
`host` TEXT NULL,
`name` VARCHAR(255) NULL DEFAULT '',
- `password` TEXT NOT NULL,
+ `password` TEXT NULL,
`path` TEXT NULL,
`port` TEXT NULL,
`private` TEXT NULL,
`private_key` TEXT NULL,
`protocol` TINYINT(1) NOT NULL DEFAULT 0,
- `secret` TEXT NOT NULL,
+ `secret` TEXT NULL,
`signature` TEXT NULL,
`username` TEXT NULL,
`params` TEXT NULL,
@@ -1304,9 +1332,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_server` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_repository` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `access_repo` TINYINT(1) NULL DEFAULT 0,
+ `access_repo` TINYINT(1) NULL DEFAULT 1,
`addplaceholders` TEXT NULL,
- `base` VARCHAR(255) NOT NULL DEFAULT '',
+ `author_email` VARCHAR(255) NULL DEFAULT '',
+ `author_name` VARCHAR(255) NULL DEFAULT '',
+ `base` VARCHAR(255) NULL DEFAULT '',
`guid` VARCHAR(36) NULL DEFAULT '',
`organisation` VARCHAR(255) NULL DEFAULT '',
`read_branch` VARCHAR(255) NULL DEFAULT '',
@@ -1339,6 +1369,8 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_repository` (
KEY `idx_access_repo` (`access_repo`),
KEY `idx_write_branch` (`write_branch`),
KEY `idx_read_branch` (`read_branch`),
+ KEY `idx_author_email` (`author_email`),
+ KEY `idx_author_name` (`author_name`),
KEY `idx_token` (`token`),
KEY `idx_username` (`username`),
KEY `idx_access` (`access`),
@@ -1361,7 +1393,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_help_document` (
`target` TINYINT(1) NOT NULL DEFAULT 0,
`title` CHAR(64) NULL DEFAULT '',
`type` TINYINT(1) NOT NULL DEFAULT 0,
- `url` VARCHAR(255) NOT NULL DEFAULT '',
+ `url` VARCHAR(255) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -1389,7 +1421,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_help_document` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_fields` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addfields` MEDIUMTEXT NOT NULL,
+ `addfields` MEDIUMTEXT NULL,
`admin_view` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1415,7 +1447,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_fields` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_fields_conditions` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addconditions` MEDIUMTEXT NOT NULL,
+ `addconditions` MEDIUMTEXT NULL,
`admin_view` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1441,7 +1473,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_fields_conditions` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_fields_relations` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addrelations` MEDIUMTEXT NOT NULL,
+ `addrelations` MEDIUMTEXT NULL,
`admin_view` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1468,7 +1500,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_admin_custom_tabs` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`admin_view` VARCHAR(36) NULL DEFAULT '',
- `tabs` TEXT NOT NULL,
+ `tabs` TEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -1572,7 +1604,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_updates` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`joomla_component` VARCHAR(36) NULL DEFAULT '',
- `version_update` MEDIUMTEXT NOT NULL,
+ `version_update` MEDIUMTEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -1598,7 +1630,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_mysql_tweaks` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`joomla_component` VARCHAR(36) NULL DEFAULT '',
- `sql_tweak` TEXT NOT NULL,
+ `sql_tweak` TEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -1651,7 +1683,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_router` (
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`constructor_after_parent_code` MEDIUMTEXT NULL,
`constructor_before_parent_code` MEDIUMTEXT NULL,
- `constructor_before_parent_manual` TEXT NOT NULL,
+ `constructor_before_parent_manual` TEXT NULL,
`joomla_component` VARCHAR(36) NULL DEFAULT '',
`methods_code` MEDIUMTEXT NULL,
`mode_constructor_after_parent` TINYINT(1) NOT NULL DEFAULT 0,
@@ -1735,9 +1767,9 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_files_folders` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`addfiles` TEXT NULL,
- `addfilesfullpath` TEXT NOT NULL,
+ `addfilesfullpath` TEXT NULL,
`addfolders` TEXT NULL,
- `addfoldersfullpath` TEXT NOT NULL,
+ `addfoldersfullpath` TEXT NULL,
`joomla_component` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1789,7 +1821,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_placeholders` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_plugins` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addjoomla_plugins` TEXT NOT NULL,
+ `addjoomla_plugins` TEXT NULL,
`joomla_component` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1815,7 +1847,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_plugins` (
CREATE TABLE IF NOT EXISTS `#__componentbuilder_component_modules` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `addjoomla_modules` TEXT NOT NULL,
+ `addjoomla_modules` TEXT NULL,
`joomla_component` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1896,10 +1928,10 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_library_files_folders_urls` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`addfiles` TEXT NULL,
- `addfilesfullpath` TEXT NOT NULL,
+ `addfilesfullpath` TEXT NULL,
`addfolders` TEXT NULL,
- `addfoldersfullpath` TEXT NOT NULL,
- `addurls` TEXT NOT NULL,
+ `addfoldersfullpath` TEXT NULL,
+ `addurls` TEXT NULL,
`library` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -1922,41 +1954,11 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_library_files_folders_urls` (
KEY `idx_state` (`published`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-CREATE TABLE IF NOT EXISTS `#__componentbuilder_class_extends` (
- `id` INT(11) NOT NULL AUTO_INCREMENT,
- `asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
- `comment` TEXT NULL,
- `extension_type` VARCHAR(64) NOT NULL DEFAULT '',
- `guid` VARCHAR(36) NULL DEFAULT '',
- `head` TEXT NULL,
- `name` VARCHAR(255) NULL DEFAULT '',
- `params` TEXT NULL,
- `published` TINYINT(3) NULL DEFAULT 1,
- `created_by` INT unsigned NULL,
- `modified_by` INT unsigned,
- `created` DATETIME DEFAULT CURRENT_TIMESTAMP,
- `modified` DATETIME,
- `checked_out` int unsigned,
- `checked_out_time` DATETIME,
- `version` INT(10) unsigned NULL DEFAULT 1,
- `hits` INT(10) unsigned NULL DEFAULT 0,
- `access` INT(10) unsigned NULL DEFAULT 0,
- `ordering` INT(11) NULL DEFAULT 0,
- PRIMARY KEY (`id`),
- KEY `idx_name` (`name`),
- KEY `idx_guid` (`guid`),
- KEY `idx_access` (`access`),
- KEY `idx_checkout` (`checked_out`),
- KEY `idx_createdby` (`created_by`),
- KEY `idx_modifiedby` (`modified_by`),
- KEY `idx_state` (`published`)
-) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-
CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module_updates` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`joomla_module` VARCHAR(36) NULL DEFAULT '',
- `version_update` MEDIUMTEXT NOT NULL,
+ `version_update` MEDIUMTEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -1982,10 +1984,10 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_module_files_folders_urls
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`addfiles` TEXT NULL,
- `addfilesfullpath` TEXT NOT NULL,
+ `addfilesfullpath` TEXT NULL,
`addfolders` TEXT NULL,
- `addfoldersfullpath` TEXT NOT NULL,
- `addurls` TEXT NOT NULL,
+ `addfoldersfullpath` TEXT NULL,
+ `addurls` TEXT NULL,
`joomla_module` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -2041,7 +2043,7 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_updates` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`joomla_plugin` VARCHAR(36) NULL DEFAULT '',
- `version_update` MEDIUMTEXT NOT NULL,
+ `version_update` MEDIUMTEXT NULL,
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
`created_by` INT unsigned NULL,
@@ -2067,10 +2069,10 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_files_folders_urls
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
`addfiles` TEXT NULL,
- `addfilesfullpath` TEXT NOT NULL,
+ `addfilesfullpath` TEXT NULL,
`addfolders` TEXT NULL,
- `addfoldersfullpath` TEXT NOT NULL,
- `addurls` TEXT NOT NULL,
+ `addfoldersfullpath` TEXT NULL,
+ `addurls` TEXT NULL,
`joomla_plugin` VARCHAR(36) NULL DEFAULT '',
`params` TEXT NULL,
`published` TINYINT(3) NULL DEFAULT 1,
@@ -2097,8 +2099,8 @@ CREATE TABLE IF NOT EXISTS `#__componentbuilder_joomla_plugin_files_folders_urls
-- Dumping data for table `#__componentbuilder_joomla_component`
--
-INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_menu_prefix`, `add_namespace_prefix`, `menu_prefix`, `mvc_versiondate`, `add_css_admin`, `add_css_site`, `add_email_helper`, `add_git_folder_path`, `add_javascript`, `add_jcb_powers_path`, `add_php_helper_admin`, `add_php_helper_both`, `add_php_helper_site`, `add_php_method_install`, `add_php_postflight_install`, `add_php_method_uninstall`, `add_php_postflight_update`, `add_php_preflight_install`, `add_php_preflight_update`, `add_placeholders`, `add_powers`, `add_sql`, `add_sql_uninstall`, `addcontributors`, `addfootable`, `adduikit`, `assets_table_fix`, `add_admin_event`, `add_backup_folder_path`, `add_site_event`, `add_update_server`, `add_sales_server`, `sales_server`, `update_server`, `update_server_target`, `php_admin_event`, `php_site_event`, `preferred_joomla_version`, `addreadme`, `readme`, `remove_line_breaks`, `author`, `backup_folder_path`, `bom`, `buildcomp`, `buildcompsql`, `companyname`, `component_version`, `update_server_url`, `copyright`, `creatuserhelper`, `crowdin_account_api_key`, `crowdin_project_api_key`, `crowdin_project_identifier`, `crowdin_username`, `css_admin`, `css_site`, `dashboard`, `dashboard_type`, `debug_linenr`, `description`, `email`, `emptycontributors`, `export_buy_link`, `joomla_source_link`, `export_key`, `git_folder_path`, `guid`, `image`, `javascript`, `jcb_powers_path`, `license`, `name`, `system_name`, `toignore`, `translation_tool`, `name_code`, `namespace_prefix`, `number`, `php_helper_admin`, `php_helper_both`, `php_helper_site`, `php_method_install`, `php_postflight_install`, `php_method_uninstall`, `php_postflight_update`, `php_preflight_install`, `php_preflight_update`, `short_description`, `sql`, `sql_uninstall`, `website`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`, `metakey`, `metadesc`, `metadata`) VALUES
-(25, 1, 1, 'ยป', '', '', '', '', '', '', 1, '', 1, '', '', 1, '', 1, 1, 1, '', 1, '', '', '{}', '', 3, 3, '', '', '', 1, '', '', '', 2, '', '', 5, 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCltDVVNUT01DT0RFPXJlYWRNRWNvbnRyaWJ1dG9yc10=', 1, 'Llewellyn van der Merwe', '', 'default.txt', '', '', 'Vast Development Method', '5.0.1', 'https://raw.githubusercontent.com/Llewellynvdm/Joomla-Demo-Component/master/demo_updateserver.xml', 'Copyright (C) 2015. All Rights Reserved', '', '+CEfhGv7BCpJgqulP6WIdk1BO2IcIaYJSzEgEXyF2hE=', 'aXKb9zCIDNGHmdSNpdo7Mr75Xuv+SOQC8pETHg8lLBI=', '', 'cnqCiitw+U9zsOHvOHFlLdzzeTR9ouOmBf/E0lXwB5A=', '', '', '', 1, '', 'This is just a simple demonstration showcasing the most basic functionality of the [Joomla!](http://www.joomla.org) Component Builder (JCB). While this example covers the fundamentals, JCB offers a wide range of powerful features and customization options for building advanced Joomla! extensions with ease.', 'joomla@vdm.io', '', '', 'https://github.com/Llewellynvdm/Joomla-Demo-Component', '8zJ7SbinDc2vYboxjMoqsYPrGxAoby1yLWaG9pI9X30=', '', 'efde995e-60aa-4b39-b644-44349dfb660d', 'images/vdm/demo500.jpg', '', 'libraries/jcb_demo', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo J5', '.git', '', 'Demo', 'Demo', 4, '', 'W0NVU1RPTUNPREU9Z2V0SXRlbUltcG9ydEZpZWxkcysNCgkJLy8gSEVSRSBXRSBTRUxFQ1QgVEhFIFRBUkdFVCBUQUJMRVMgRk9SIE9VUiBJVEVNIElNUE9SVA0KCQkkcGFyZW50ICYjNjE7ICdsb29rJzsNCgkJJHRhYmxlcyAmIzYxOyAmIzkxOw0KCQkJJ2xvb2snICYjNjE7PiB0cnVlJiM0NDsNCgkJCSdkZXRhaWwnICYjNjE7PiBmYWxzZQ0KCQkmIzkzOzsNCiwkZmllbGRfbmFtZSAmIzYxOyYjNjE7JiM2MTsgJ2VudGl0eV90eXBlJyB8fCAkZmllbGRfbmFtZSAmIzYxOyYjNjE7JiM2MTsgJ2VudGl0eScgfHwNCgkJCQkJXQ0KW0NVU1RPTUNPREU9bmljZUZhbmN5RGF0ZV0=', '', '', 'W0NVU1RPTUNPREU9ZGF0YWJhc2VTY2hlbWFDaGVja0NhbGxdDQpbQ1VTVE9NQ09ERT11bmxvY2tUaGVQb3dlck9mSm9vbWxhRGV2ZWxvcG1lbnQrRGVtb10=', '', 'W0NVU1RPTUNPREU9ZGF0YWJhc2VTY2hlbWFDaGVja0NhbGxd', 'W0NVU1RPTUNPREU9cGhwQ29uZmlndXJhdGlvbkNoZWNrQ2FsbF0=', 'W0NVU1RPTUNPREU9cGhwQ29uZmlndXJhdGlvbkNoZWNrQ2FsbF0=', 'Demo Component', '', '', 'https://www.vdm.io/', '{\"language_options\":{\"activate\":\"0\",\"use_percentagelanguageadd\":\"1\",\"percentagelanguageadd\":\"50\"},\"joomla_component_headers\":{\"add_admin_component\":\"0\",\"admin_component\":\"\",\"power_admin_component\":[],\"add_site_component\":\"0\",\"site_component\":\"\",\"power_site_component\":[],\"add_admin_helper\":\"0\",\"admin_helper\":\"\",\"power_admin_helper\":[],\"add_site_helper\":\"0\",\"site_helper\":\"\",\"power_site_helper\":[]}}', 1, '2016-10-18 11:44:09', '2025-03-27 19:30:15', 91, '', 10, '', '', '{\"robots\":\"\",\"rights\":\"\"}');
+INSERT INTO `#__componentbuilder_joomla_component` (`id`, `add_menu_prefix`, `add_namespace_prefix`, `menu_prefix`, `mvc_versiondate`, `add_css_admin`, `add_css_site`, `add_email_helper`, `add_git_folder_path`, `add_javascript`, `add_jcb_powers_path`, `add_php_helper_admin`, `add_php_helper_both`, `add_php_helper_site`, `add_php_method_install`, `add_php_postflight_install`, `add_php_method_uninstall`, `add_php_postflight_update`, `add_php_preflight_install`, `add_php_preflight_update`, `add_placeholders`, `add_powers`, `add_sql`, `add_sql_uninstall`, `addcontributors`, `addfootable`, `adduikit`, `assets_table_fix`, `add_admin_event`, `add_backup_folder_path`, `add_site_event`, `add_update_server`, `add_sales_server`, `sales_server`, `update_server`, `update_server_target`, `php_admin_event`, `php_site_event`, `preferred_joomla_version`, `addreadme`, `readme`, `remove_line_breaks`, `author`, `backup_folder_path`, `bom`, `companyname`, `component_version`, `update_server_url`, `copyright`, `creatuserhelper`, `css_admin`, `css_site`, `dashboard`, `dashboard_type`, `debug_linenr`, `description`, `email`, `emptycontributors`, `git_folder_path`, `guid`, `image`, `javascript`, `jcb_powers_path`, `license`, `name`, `system_name`, `toignore`, `translation_tool`, `name_code`, `namespace_prefix`, `number`, `php_helper_admin`, `php_helper_both`, `php_helper_site`, `php_method_install`, `php_postflight_install`, `php_method_uninstall`, `php_postflight_update`, `php_preflight_install`, `php_preflight_update`, `short_description`, `sql`, `sql_uninstall`, `website`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`, `metakey`, `metadesc`, `metadata`) VALUES
+(25, 1, 1, 'ยป', '', '', '', '', '', '', 1, '', 1, '', '', 1, '', 1, 1, 1, '', 1, '', '', '{}', '', 3, 3, '', '', '', 1, '', '', '', 2, '', '', 5, 1, 'IyAjIyNDb21wb25lbnRfbmFtZSMjIyAoIyMjVkVSU0lPTiMjIykNCg0KIVsjIyNDb21wb25lbnRfbmFtZSMjIyBpbWFnZV0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25hbWliaWEvZGVtby1qb29tbGEtMy1jb21wb25lbnQvbWFzdGVyL2FkbWluL2Fzc2V0cy9pbWFnZXMvdmRtLWNvbXBvbmVudC5qcGcgIlRoZSAjIyNDb21wb25lbnRfbmFtZSMjIyIpDQoNCiMjI0RFU0NSSVBUSU9OIyMjDQoNCiMgQnVpbGQgRGV0YWlscw0KDQorICpDb21wYW55KjogWyMjI0NPTVBBTllOQU1FIyMjXSgjIyNBVVRIT1JXRUJTSVRFIyMjKQ0KKyAqQXV0aG9yKjogWyMjI0FVVEhPUiMjI10obWFpbHRvOiMjI0FVVEhPUkVNQUlMIyMjKQ0KKyAqTmFtZSo6IFsjIyNDb21wb25lbnRfbmFtZSMjI10oIyMjQVVUSE9SV0VCU0lURSMjIykNCisgKkZpcnN0IEJ1aWxkKjogIyMjQ1JFQVRJT05EQVRFIyMjDQorICpMYXN0IEJ1aWxkKjogIyMjQlVJTEREQVRFIyMjDQorICpWZXJzaW9uKjogIyMjVkVSU0lPTiMjIw0KKyAqQ29weXJpZ2h0KjogIyMjQ09QWVJJR0hUIyMjDQorICpMaWNlbnNlKjogIyMjTElDRU5TRSMjIw0KDQojIyBCdWlsZCBUaW1lDQoNCioqIyMjdG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjdG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqIChhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNhdmVkIC0NCmR1ZSB0byBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyKSkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gbmV2ZXIgbWFraW5nIG9uZSBtaXN0YWtlIG9yIHRha2luZyBhbnkgY29mZmVlIGJyZWFrLikNCg0KKyAqTGluZSBjb3VudCo6ICoqIyMjTElORV9DT1VOVCMjIyoqDQorICpGaWxlIGNvdW50KjogKiojIyNGSUxFX0NPVU5UIyMjKioNCisgKkZvbGRlciBjb3VudCo6ICoqIyMjRk9MREVSX0NPVU5UIyMjKioNCg0KKiojIyNhY3R1YWxIb3Vyc1NwZW50IyMjIEhvdXJzKiogb3IgKiojIyNhY3R1YWxEYXlzU3BlbnQjIyMgRWlnaHQgSG91ciBEYXlzKiogKHRoZSBhY3R1YWwgdGltZSB0aGUgYXV0aG9yIHNwZW50KQ0KDQo+ICh3aXRoIHRoZSBmb2xsb3dpbmcgYnJlYWsgZG93bjoNCj4gKipkZWJ1Z2dpbmcgQCMjI2RlYnVnZ2luZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA0Ow0KPiAqKnBsYW5uaW5nIEAjIyNwbGFubmluZ0hvdXJzIyMjaG91cnMqKiA9IGNvZGluZ3RpbWUgLyA3Ow0KPiAqKm1hcHBpbmcgQCMjI21hcHBpbmdIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gMTA7DQo+ICoqb2ZmaWNlIEAjIyNvZmZpY2VIb3VycyMjI2hvdXJzKiogPSBjb2Rpbmd0aW1lIC8gNjspDQoNCioqIyMjYWN0dWFsVG90YWxIb3VycyMjIyBIb3VycyoqIG9yICoqIyMjYWN0dWFsVG90YWxEYXlzIyMjIEVpZ2h0IEhvdXIgRGF5cyoqDQooYSB0b3RhbCBvZiB0aGUgcmVhbGlzdGljIHRpbWUgZnJhbWUgZm9yIHRoaXMgcHJvamVjdCkNCg0KPiAoaWYgY3JlYXRpbmcgYSBmb2xkZXIgYW5kIGZpbGUgdG9vayAqKjUgc2Vjb25kcyoqIGFuZCB3cml0aW5nIG9uZSBsaW5lIG9mIGNvZGUgdG9vayAqKjEwIHNlY29uZHMqKiwNCj4gd2l0aCB0aGUgbm9ybWFsIGV2ZXJ5ZGF5IHJlYWxpdGllcyBhdCB0aGUgb2ZmaWNlLCB0aGF0IGluY2x1ZGVzIHRoZSBjb21wb25lbnQgcGxhbm5pbmcsIG1hcHBpbmcgJiBkZWJ1Z2dpbmcuKQ0KDQpQcm9qZWN0IGR1cmF0aW9uOiAqKiMjI3Byb2plY3RXZWVrVGltZSMjIyB3ZWVrcyoqIG9yICoqIyMjcHJvamVjdE1vbnRoVGltZSMjIyBtb250aHMqKg0KDQo+IFRoaXMgKipjb21wb25lbnQqKiB3YXMgYnVpbGQgd2l0aCBhIEpvb21sYSBbQXV0b21hdGVkIENvbXBvbmVudCBCdWlsZGVyXShodHRwOi8vdmRtLmJ6L2NvbXBvbmVudC1idWlsZGVyKS4NCj4gRGV2ZWxvcGVkIGJ5IFtMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZV0obWFpbHRvOmpvb21sYUB2ZG0uaW8pDQoNCltDVVNUT01DT0RFPXJlYWRNRWNvbnRyaWJ1dG9yc10=', 1, 'Llewellyn van der Merwe', '', 'default.txt', 'Vast Development Method', '5.0.1', 'https://raw.githubusercontent.com/Llewellynvdm/Joomla-Demo-Component/master/demo_updateserver.xml', 'Copyright (C) 2015. All Rights Reserved', '', '', '', '', 1, '', 'This is just a simple demonstration showcasing the most basic functionality of the [Joomla!](http://www.joomla.org) Component Builder (JCB). While this example covers the fundamentals, JCB offers a wide range of powerful features and customization options for building advanced Joomla! extensions with ease.', 'joomla@vdm.io', '', '', 'efde995e-60aa-4b39-b644-44349dfb660d', 'images/vdm/demo500.jpg', '', 'libraries/jcb_demo', 'GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html', 'Demo', 'Demo J5', '.git', '', 'Demo', 'Demo', 4, '', 'W0NVU1RPTUNPREU9Z2V0SXRlbUltcG9ydEZpZWxkcysNCgkJLy8gSEVSRSBXRSBTRUxFQ1QgVEhFIFRBUkdFVCBUQUJMRVMgRk9SIE9VUiBJVEVNIElNUE9SVA0KCQkkcGFyZW50ICYjNjE7ICdsb29rJzsNCgkJJHRhYmxlcyAmIzYxOyAmIzkxOw0KCQkJJ2xvb2snICYjNjE7PiB0cnVlJiM0NDsNCgkJCSdkZXRhaWwnICYjNjE7PiBmYWxzZQ0KCQkmIzkzOzsNCiwkZmllbGRfbmFtZSAmIzYxOyYjNjE7JiM2MTsgJ2VudGl0eV90eXBlJyB8fCAkZmllbGRfbmFtZSAmIzYxOyYjNjE7JiM2MTsgJ2VudGl0eScgfHwNCgkJCQkJXQ0KW0NVU1RPTUNPREU9bmljZUZhbmN5RGF0ZV0=', '', '', 'W0NVU1RPTUNPREU9ZGF0YWJhc2VTY2hlbWFDaGVja0NhbGxdDQpbQ1VTVE9NQ09ERT11bmxvY2tUaGVQb3dlck9mSm9vbWxhRGV2ZWxvcG1lbnQrRGVtb10=', '', 'W0NVU1RPTUNPREU9ZGF0YWJhc2VTY2hlbWFDaGVja0NhbGxd', 'W0NVU1RPTUNPREU9cGhwQ29uZmlndXJhdGlvbkNoZWNrQ2FsbF0=', 'W0NVU1RPTUNPREU9cGhwQ29uZmlndXJhdGlvbkNoZWNrQ2FsbF0=', 'Demo Component', '', '', 'https://www.vdm.io/', '{\"language_options\":{\"activate\":\"0\",\"use_percentagelanguageadd\":\"1\",\"percentagelanguageadd\":\"50\"},\"joomla_component_headers\":{\"add_admin_component\":\"0\",\"admin_component\":\"\",\"power_admin_component\":[],\"add_site_component\":\"0\",\"site_component\":\"\",\"power_site_component\":[],\"add_admin_helper\":\"0\",\"admin_helper\":\"\",\"power_admin_helper\":[],\"add_site_helper\":\"0\",\"site_helper\":\"\",\"power_site_helper\":[]}}', 1, '2016-10-18 11:44:09', '2025-03-27 19:30:15', 91, '', 10, '', '', '{\"robots\":\"\",\"rights\":\"\"}');
--
-- Dumping data for table `#__componentbuilder_joomla_module`
@@ -2157,33 +2159,33 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t
(4, 'c4169332-3914-400e-b861-972b2d465963', 'JCB.Spreadsheet.Importer', 'Importer', 'final class', 'Spreadsheet Importer Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Spreadsheet.Importer', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"61d1146f-2c2e-4e42-8492-d076f945cf35\",\"as\":\"FileReader\"},\"use_selection1\":{\"use\":\"9ffc54fa-a71e-412f-bc8b-064fc3b69167\",\"as\":\"RowDataProcessor\"}}', 'CS8qKg0KCSAqIFRoZSBGaWxlUmVhZGVyIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEZpbGVSZWFkZXINCgkgKiBAc2luY2UgMy4wLjgNCgkgKi8NCglwcm90ZWN0ZWQgRmlsZVJlYWRlciAkZmlsZXJlYWRlcjsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIEZpbGVSZWFkZXIgICAkZmlsZXJlYWRlciAgIFRoZSBGaWxlUmVhZGVyIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDMuMC44DQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEZpbGVSZWFkZXIgJGZpbGVyZWFkZXIpDQoJew0KCQkkdGhpcy0+ZmlsZXJlYWRlciA9ICRmaWxlcmVhZGVyOw0KCX0NCg0KCS8qKg0KCSAqIFN0cmVhbSByb3dzIGZyb20gYSBDU1Ygb3IgRXhjZWwgZmlsZSBvbmUgYnkgb25lIHVzaW5nIHlpZWxkLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAkZmlsZVBhdGggICAgVGhlIHBhdGggdG8gdGhlIGZpbGUuDQoJICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAkc3RhcnRSb3cgICAgVGhlIHN0YXJ0aW5nIHJvdyBpbmRleC4NCgkgKiBAcGFyYW0gaW50ICAgICAgICAgICAgICAgICRjaHVua1NpemUgICBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gcmVhZCBwZXIgY2h1bmsuDQoJICogQHBhcmFtIFJvd0RhdGFQcm9jZXNzb3IgICAkcHJvY2Vzc29yICAgVGhlIHByb2Nlc3NvciB1c2VkIHRvIHRyYW5zZm9ybSB0aGUgcm93IGRhdGEgaW50byB0aGUgZGVzaXJlZCBmb3JtYXQuDQoJICoNCgkgKiBAcmV0dXJuIFxHZW5lcmF0b3IgICAgQSBnZW5lcmF0b3IgdGhhdCB5aWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0Lg0KCSAqIEB0aHJvd3MgXE91dE9mUmFuZ2VFeGNlcHRpb24gSWYgdGhlIHN0YXJ0IHJvdyBpcyBiZXlvbmQgdGhlIGhpZ2hlc3Qgcm93LCBubyByb3dzIGNhbiBiZSBwcm9jZXNzZWQuDQoJICogQHRocm93cyBSZWFkZXJFeGNlcHRpb24gSWYgdGhlcmUgaXMgYW4gZXJyb3IgaWRlbnRpZnlpbmcgb3IgcmVhZGluZyB0aGUgZmlsZS4NCgkgKiBAdGhyb3dzIFNwcmVhZHNoZWV0RXhjZXB0aW9uIElmIHRoZXJlIGlzIGFuIGVycm9yIHdvcmtpbmcgd2l0aCB0aGUgc3ByZWFkc2hlZXQuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoc3RyaW5nICRmaWxlUGF0aCwgaW50ICRzdGFydFJvdywgaW50ICRjaHVua1NpemUsIFJvd0RhdGFQcm9jZXNzb3IgJHByb2Nlc3Nvcik6IFxHZW5lcmF0b3INCgl7DQoJCWZvcmVhY2ggKCR0aGlzLT5maWxlcmVhZGVyLT5yZWFkKCRmaWxlUGF0aCwgJHN0YXJ0Um93LCAkY2h1bmtTaXplKSBhcyAkcm93KQ0KCQl7DQoJCQl5aWVsZCAkcHJvY2Vzc29yLT5wcm9jZXNzKCRyb3cpOw0KCQl9DQoJfQ==', '{}', '{}', '', 1, '2021-11-13 17:52:23', 26, '', 1),
(11, '4b225c51-d293-48e4-b3f6-5136cf5c3f18', 'Utilities Json Helper', 'JsonHelper', 'abstract class', 'The json checker\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.JsonHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIHlvdSBoYXZlIGEganNvbiBzdHJpbmcNCgkgKg0KCSAqIEBpbnB1dCAgICBzdHJpbmcgICRzdHJpbmcgIFRoZSBqc29uIHN0cmluZyB0byBjaGVjaw0KCSAqDQoJICogQHJldHVybnMgYm9vbCB0cnVlIG9uIHN1Y2Nlc3MNCgkgKiANCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjaGVjaygkc3RyaW5nKTogYm9vbA0KCXsNCgkJaWYgKFN0cmluZ0hlbHBlcjo6Y2hlY2soJHN0cmluZykpDQoJCXsNCgkJCWpzb25fZGVjb2RlKChzdHJpbmcpICRzdHJpbmcpOw0KCQkJcmV0dXJuIChqc29uX2xhc3RfZXJyb3IoKSA9PT0gSlNPTl9FUlJPUl9OT05FKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBDb252ZXJ0IGEganNvbiBvYmplY3QgdG8gYSBzdHJpbmcNCgkgKg0KCSAqIEBpbnB1dCAgICBzdHJpbmcgICR2YWx1ZSAgVGhlIGpzb24gc3RyaW5nIHRvIGNvbnZlcnQNCgkgKg0KCSAqIEByZXR1cm5zIGEgc3RyaW5nDQoJICogDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc3RyaW5nKCR2YWx1ZSwgJHNlcGFyYXRvciA9ICIsICIsICR0YWJsZSA9IG51bGwsICRpZCA9ICdpZCcsICRuYW1lID0gJ25hbWUnKQ0KCXsNCgkJLy8gZG8gc29tZSB0YWJsZSBmb290IHdvcmsNCgkJJGV4dGVybmFsID0gZmFsc2U7DQoJCWlmIChpc19zdHJpbmcoJHRhYmxlKSAmJiBzdHJwb3MoKHN0cmluZykgJHRhYmxlLCAnI19fJykgIT09IGZhbHNlKQ0KCQl7DQoJCQkkZXh0ZXJuYWwgPSB0cnVlOw0KCQkJJHRhYmxlID0gc3RyX3JlcGxhY2UoJyNfXycsICcnLCAoc3RyaW5nKSAkdGFibGUpOw0KCQl9DQoNCgkJLy8gY2hlY2sgaWYgc3RyaW5nIGlzIEpTT04NCgkJJHJlc3VsdCA9IGpzb25fZGVjb2RlKChzdHJpbmcpICR2YWx1ZSwgdHJ1ZSk7DQoJCWlmIChqc29uX2xhc3RfZXJyb3IoKSA9PT0gSlNPTl9FUlJPUl9OT05FKQ0KCQl7DQoJCQkvLyBpcyBKU09ODQoJCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRyZXN1bHQpKQ0KCQkJew0KCQkJCWlmIChTdHJpbmdIZWxwZXI6OmNoZWNrKCR0YWJsZSkpDQoJCQkJew0KCQkJCQkkbmFtZXMgPSBbXTsNCgkJCQkJZm9yZWFjaCAoJHJlc3VsdCBhcyAkdmFsKQ0KCQkJCQl7DQoJCQkJCQlpZiAoJGV4dGVybmFsKQ0KCQkJCQkJew0KCQkJCQkJCWlmICgkX25hbWUgPSBHZXRIZWxwZXI6OnZhcihudWxsLCAkdmFsLCAkaWQsICRuYW1lLCAnPScsICR0YWJsZSkpDQoJCQkJCQkJew0KCQkJCQkJCQkkbmFtZXNbXSA9ICRfbmFtZTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJaWYgKCRfbmFtZSA9IEdldEhlbHBlcjo6dmFyKCR0YWJsZSwgJHZhbCwgJGlkLCAkbmFtZSkpDQoJCQkJCQkJew0KCQkJCQkJCQkkbmFtZXNbXSA9ICRfbmFtZTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkbmFtZXMpKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gKHN0cmluZykgaW1wbG9kZSgkc2VwYXJhdG9yLCAkbmFtZXMpOw0KCQkJCQl9CQ0KCQkJCX0NCgkJCQlyZXR1cm4gKHN0cmluZykgaW1wbG9kZSgkc2VwYXJhdG9yLCAkcmVzdWx0KTsNCgkJCX0NCgkJCXJldHVybiAoc3RyaW5nKSBqc29uX2RlY29kZSgoc3RyaW5nKSAkdmFsdWUpOw0KCQl9DQoJCXJldHVybiAkdmFsdWU7DQoJfQ0K', '{\"load_selection0\":{\"load\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\"},\"load_selection1\":{\"load\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\"},\"load_selection2\":{\"load\":\"db87c339-5bb6-4291-a7ef-2c48ea1b06bc\"}}', '\"\"', '{\"source\":{\"guid\":\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56\"}}', 1, '2022-03-08 21:03:54', 27, '', 1),
(12, '1f28cb53-60d9-4db1-b517-3c7dc6b429ef', 'Utilities String Helper', 'StringHelper', 'abstract class', 'Some string tricks\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.StringHelper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcRmlsdGVyXElucHV0RmlsdGVyOw0KdXNlIEpvb21sYVxDTVNcTGFuZ3VhZ2VcTGFuZ3VhZ2VGYWN0b3J5SW50ZXJmYWNlOw0KdXNlIEpvb21sYVxDTVNcTGFuZ3VhZ2VcTGFuZ3VhZ2VGYWN0b3J5Ow==', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBNYWluIEFjdGl2ZSBMYW5ndWFnZQ0KCSAqIA0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgJGxhbmdUYWc7DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSB0aGF0IGlucHV0IGlzIGEgbm9uLWVtcHR5LCBub24td2hpdGVzcGFjZS1vbmx5IHN0cmluZy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAkaW5wdXQgVGhlIGlucHV0IHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqDQoJICogQHJldHVybnMgYm9vbCAgVHJ1ZSBpZiBpbnB1dCBpcyBhIG5vbi1lbXB0eSwgbm9uLXdoaXRlc3BhY2Utb25seSBzdHJpbmcsIG90aGVyd2lzZSBmYWxzZS4NCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjaGVjaygkaW5wdXQpOiBib29sDQoJew0KCQlyZXR1cm4gaXNfc3RyaW5nKCRpbnB1dCkgJiYgdHJpbSgkaW5wdXQpICE9PSAnJzsNCgl9DQoNCgkvKioNCgkgKiBTaG9ydGVucyBhIHN0cmluZyB0byBhIHNwZWNpZmllZCBsZW5ndGgsIG9wdGlvbmFsbHkgYWRkaW5nIGEgdG9vbHRpcCB3aXRoIHRoZSBmdWxsIHRleHQuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCBzYWZlbHkgc2hvcnRlbnMgdGhlIGlucHV0IHN0cmluZyB3aXRob3V0IGN1dHRpbmcgd29yZHMgYWJydXB0bHkuIElmIHRoZSBzdHJpbmcNCgkgKiBleGNlZWRzIHRoZSBzcGVjaWZpZWQgbGVuZ3RoLCBlbGxpcHNlcyAoLi4uKSBhcmUgYWRkZWQuIE9wdGlvbmFsbHksIGEgdG9vbHRpcCBjb250YWluaW5nIHRoZQ0KCSAqIGxvbmdlciBvcmlnaW5hbCBzdHJpbmcgY2FuIGJlIGluY2x1ZGVkLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICRzdHJpbmcgICBUaGUgc3RyaW5nIHlvdSB3b3VsZCBsaWtlIHRvIHNob3J0ZW4uDQoJICogQHBhcmFtIGludCAgICRsZW5ndGggICBUaGUgbWF4aW11bSBsZW5ndGggZm9yIHRoZSBzaG9ydGVuZWQgc3RyaW5nLiBEZWZhdWx0IGlzIDQwLg0KCSAqIEBwYXJhbSBib29sICAkYWRkVGlwICAgV2hldGhlciB0byBhZGQgYSB0b29sdGlwIHdpdGggdGhlIG9yaWdpbmFsIGxvbmdlciBzdHJpbmcuIERlZmF1bHQgdHJ1ZS4NCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nfG1peGVkICAgVGhlIHNob3J0ZW5lZCBzdHJpbmcsIG9wdGlvbmFsbHkgd2l0aCBhIHRvb2x0aXAuIE9yIG9yaWdpbmFsIHZhbHVlIHBhc3NlZA0KCSAqIEBzaW5jZSAgMy4yLjENCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNob3J0ZW4oJHN0cmluZywgaW50ICRsZW5ndGggPSA0MCwgYm9vbCAkYWRkVGlwID0gdHJ1ZSkNCgl7DQoJCS8vIFZhbGlkYXRlIHN0cmluZyBpbnB1dCBhbmQgcmV0dXJuIG9yaWdpbmFsIGlmIGludmFsaWQgb3Igc2hvcnQgZW5vdWdoLg0KCQlpZiAoIXNlbGY6OmNoZWNrKCRzdHJpbmcpIHx8IG1iX3N0cmxlbigkc3RyaW5nKSA8PSAkbGVuZ3RoKQ0KCQl7DQoJCQlyZXR1cm4gJHN0cmluZzsNCgkJfQ0KDQoJCS8vIFRydW5jYXRlIHN0cmluZyB0byBuZWFyZXN0IHdvcmQgYm91bmRhcnkNCgkJJHNob3J0ZW5lZCA9IG1iX3N1YnN0cigkc3RyaW5nLCAwLCAkbGVuZ3RoKTsNCg0KCQkvLyBGaW5kIHRoZSBsYXN0IHNwYWNlIHRvIGF2b2lkIGN1dHRpbmcgb2ZmIGEgd29yZA0KCQkkbGFzdFNwYWNlID0gbWJfc3RycnBvcygkc2hvcnRlbmVkLCAnICcpOw0KCQlpZiAoJGxhc3RTcGFjZSAhPT0gZmFsc2UpDQoJCXsNCgkJCSRzaG9ydGVuZWQgPSBtYl9zdWJzdHIoJHNob3J0ZW5lZCwgMCwgJGxhc3RTcGFjZSk7DQoJCX0NCg0KCQkvLyBQcmVwYXJlIHRyaW1tZWQgYW5kIHNob3J0ZW5lZCBvdXRwdXQgd2l0aCBlbGxpcHNlcw0KCQkkc2hvcnRlbmVkID0gdHJpbSgkc2hvcnRlbmVkKSAuICcuLi4nOw0KDQoJCS8vIEFkZCB0b29sdGlwIGlmIHJlcXVlc3RlZA0KCQlpZiAoJGFkZFRpcCkNCgkJew0KCQkJLy8gU2FmZWx5IGVzY2FwZSBvdXRwdXQgZm9yIEhUTUwNCgkJCSR0aXRsZSA9IHNlbGY6OnNob3J0ZW4oJHN0cmluZywgNDAwICwgZmFsc2UpOw0KCQkJJGVzY2FwZWRUaXRsZSA9IGh0bWxzcGVjaWFsY2hhcnMoJHRpdGxlLCBFTlRfUVVPVEVTLCAnVVRGLTgnKTsNCgkJCSRlc2NhcGVkU2hvcnQgPSBodG1sc3BlY2lhbGNoYXJzKCRzaG9ydGVuZWQsIEVOVF9RVU9URVMsICdVVEYtOCcpOw0KDQoJCQlyZXR1cm4gJzxzcGFuIGNsYXNzPSJoYXNUaXAiIHRpdGxlPSInIC4gJGVzY2FwZWRUaXRsZSAuICciIHN0eWxlPSJjdXJzb3I6aGVscCI+Jw0KCQkJCS4gJGVzY2FwZWRTaG9ydA0KCQkJCS4gJzwvc3Bhbj4nOw0KCQl9DQoNCgkJLy8gUmV0dXJuIHNob3J0ZW5lZCB2ZXJzaW9uIHdpdGhvdXQgdG9vbHRpcA0KCQlyZXR1cm4gJHNob3J0ZW5lZDsNCgl9DQoNCgkvKioNCgkgKiBNYWtlcyBhIHN0cmluZyBzYWZlIGJ5IHNhbml0aXppbmcgYW5kIGZvcm1hdHRpbmcgaXQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgdHlwZS4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIGNhbiByZW1vdmUgdW53YW50ZWQgY2hhcmFjdGVycywgdHJhbnNsaXRlcmF0ZSB0ZXh0LCByZXBsYWNlIG51bWJlcnMgd2l0aCANCgkgKiB0aGVpciBFbmdsaXNoIGVxdWl2YWxlbnRzLCBhbmQgYXBwbHkgZGlmZmVyZW50IGNhc2UgZm9ybWF0dGluZyBzdHlsZXMuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICAkc3RyaW5nICAgICAgICAgICAgVGhlIHN0cmluZyB0byBzYW5pdGl6ZSBhbmQgZm9ybWF0Lg0KCSAqIEBwYXJhbSBzdHJpbmcgICR0eXBlICAgICAgICAgICAgICBUaGUgZm9ybWF0dGluZyB0eXBlIHRvIGFwcGx5LiBTdXBwb3J0ZWQgdmFsdWVzOg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICdmaWxlbmFtZScgIDogUmVtb3ZlcyBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIGV4dHJhIHNwYWNlcy4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAnTCcgICAgICAgICA6IENvbnZlcnRzIHRvIGxvd2VyY2FzZSB3aXRoIHVuZGVyc2NvcmVzIHJlcGxhY2luZyBzcGFjZXMuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ3N0cnRvbG93ZXInOiBBbGlhcyBmb3IgJ0wnLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICdXJyAgICAgICAgIDogQ2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciBvZiBlYWNoIHdvcmQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ3cnICAgICAgICAgOiBDb252ZXJ0cyB0byBsb3dlcmNhc2UgKHNwYWNlcyByZW1haW4pLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICd3b3JkJyAgICAgIDogQWxpYXMgZm9yICd3Jy4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAnV3cnICAgICAgICA6IENhcGl0YWxpemVzIG9ubHkgdGhlIGZpcnN0IHdvcmQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ1dvcmQnICAgICAgOiBBbGlhcyBmb3IgJ1d3Jy4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAnV1cnICAgICAgICA6IENvbnZlcnRzIHRoZSBlbnRpcmUgc3RyaW5nIHRvIHVwcGVyY2FzZS4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAnV09SRCcgICAgICA6IEFsaWFzIGZvciAnV1cnLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICdVJyAgICAgICAgIDogQ29udmVydHMgdG8gdXBwZXJjYXNlIHdpdGggdW5kZXJzY29yZXMgcmVwbGFjaW5nIHNwYWNlcy4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAnc3RydG91cHBlcic6IEFsaWFzIGZvciAnVScuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ0YnICAgICAgICAgOiBDYXBpdGFsaXplcyBvbmx5IHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGVudGlyZSBzdHJpbmcuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ3VjZmlyc3QnICAgOiBBbGlhcyBmb3IgJ0YnLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICdjQScgICAgICAgIDogQ29udmVydHMgdG8gY2FtZWxDYXNlLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICdjQW1lbCcgICAgIDogQWxpYXMgZm9yICdjQScuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ2NhbWVsY2FzZScgOiBBbGlhcyBmb3IgJ2NBJy4NCgkgKiBAcGFyYW0gc3RyaW5nICAkc3BhY2VyICAgICAgICAgICAgVGhlIGNoYXJhY3RlciB0byByZXBsYWNlIHNwYWNlcyB3aXRoIChkZWZhdWx0OiAnXycpLg0KCSAqIEBwYXJhbSBib29sICAgICRyZXBsYWNlTnVtYmVycyAgICBXaGV0aGVyIHRvIHJlcGxhY2UgbnVtYmVycyB3aXRoIHRoZWlyIEVuZ2xpc2ggdGV4dCBlcXVpdmFsZW50cyAoZGVmYXVsdDogdHJ1ZSkuDQoJICogQHBhcmFtIGJvb2wgICAgJGtlZXBPbmx5Q2hhcmFjdGVycyBXaGV0aGVyIHRvIHJlbW92ZSBhbGwgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVycyAoZGVmYXVsdDogdHJ1ZSkuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyBUaGUgc2FuaXRpemVkIGFuZCBmb3JtYXR0ZWQgc3RyaW5nLg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmUoJHN0cmluZywgc3RyaW5nICR0eXBlID0gJ0wnLCBzdHJpbmcgJHNwYWNlciA9ICdfJywgYm9vbCAkcmVwbGFjZU51bWJlcnMgPSB0cnVlLCBib29sICRrZWVwT25seUNoYXJhY3RlcnMgPSB0cnVlKTogc3RyaW5nDQoJew0KCQlpZiAoJHJlcGxhY2VOdW1iZXJzKQ0KCQl7DQoJCQkvLyByZW1vdmUgYWxsIG51bWJlcnMgYW5kIHJlcGxhY2Ugd2l0aCBFbmdsaXNoIHRleHQgdmVyc2lvbiAod29ya3Mgd2VsbCBvbmx5IHVwIHRvIG1pbGxpb25zKQ0KCQkJJHN0cmluZyA9IHNlbGY6Om51bWJlcnMoJHN0cmluZyk7DQoJCX0NCg0KCQkvLyBPbmx5IGNvbnRpbnVlIGlmIHdlIGhhdmUgYSBzdHJpbmcNCgkJaWYgKCFzZWxmOjpjaGVjaygkc3RyaW5nKSkNCgkJew0KCQkJLy8gbm90IGEgc3RyaW5nDQoJCQlyZXR1cm4gJyc7DQoJCX0NCg0KCQkvLyBjcmVhdGUgZmlsZSBuYW1lIHdpdGhvdXQgdGhlIGV4dGVuc2lvbiB0aGF0IGlzIHNhZmUNCgkJaWYgKCR0eXBlID09PSAnZmlsZW5hbWUnKQ0KCQl7DQoJCQkvLyBtYWtlIHN1cmUgVkRNIGlzIG5vdCBpbiB0aGUgc3RyaW5nDQoJCQkkc3RyaW5nID0gc3RyX3JlcGxhY2UoJ1ZETScsICd2RG0nLCAoc3RyaW5nKSAkc3RyaW5nKTsNCgkJCS8vIFJlbW92ZSBhbnl0aGluZyB3aGljaCBpc24ndCBhIHdvcmQsIHdoaXRlc3BhY2UsIG51bWJlcg0KCQkJLy8gb3IgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2FyYWN0ZXJzIC1fKCkNCgkJCS8vIElmIHlvdSBkb24ndCBuZWVkIHRvIGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMNCgkJCS8vIHlvdSBjYW4gdXNlIHByZWdfcmVwbGFjZSByYXRoZXIgdGhhbiBtYl9lcmVnX3JlcGxhY2UNCgkJCS8vIFRoYW5rcyBAxYF1a2FzeiBSeXNpYWshDQoJCQkvLyAkc3RyaW5nID0gbWJfZXJlZ19yZXBsYWNlKCIoW15cd1xzXGRcLV9cKFwpXSkiLCAnJywgJHN0cmluZyk7DQoJCQkkc3RyaW5nID0gcHJlZ19yZXBsYWNlKCIoW15cd1xzXGRcLV9cKFwpXSkiLCAnJywgJHN0cmluZyk7DQoNCgkJCS8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIwMjE3MjkvMTQyOTY3Nw0KCQkJcmV0dXJuIHByZWdfcmVwbGFjZSgnL1xzKy8nLCAnICcsIChzdHJpbmcpICRzdHJpbmcpOw0KCQl9DQoJCS8vIHJlbW92ZSBhbGwgb3RoZXIgY2hhcmFjdGVycw0KCQkkc3RyaW5nID0gdHJpbSgoc3RyaW5nKSAkc3RyaW5nKTsNCgkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgnLycuJHNwYWNlci4nKy8nLCAnICcsICRzdHJpbmcpOw0KCQkkc3RyaW5nID0gcHJlZ19yZXBsYWNlKCcvXHMrLycsICcgJywgJHN0cmluZyk7DQoJCS8vIFRyYW5zbGl0ZXJhdGUgc3RyaW5nDQoJCSRzdHJpbmcgPSBzZWxmOjp0cmFuc2xpdGVyYXRlKCRzdHJpbmcpOw0KCQkvLyByZW1vdmUgYWxsIGFuZCBrZWVwIG9ubHkgY2hhcmFjdGVycw0KCQlpZiAoJGtlZXBPbmx5Q2hhcmFjdGVycykNCgkJew0KCQkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgiL1teQS1aYS16IF0vIiwgJycsIChzdHJpbmcpICRzdHJpbmcpOw0KCQl9DQoJCS8vIGtlZXAgYm90aCBudW1iZXJzIGFuZCBjaGFyYWN0ZXJzDQoJCWVsc2UNCgkJew0KCQkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgiL1teQS1aYS16MC05IF0vIiwgJycsIChzdHJpbmcpICRzdHJpbmcpOw0KCQl9DQoJCS8vIHNlbGVjdCBmaW5hbCBhZGFwdGF0aW9ucw0KCQlpZiAoJHR5cGUgPT09ICdMJyB8fCAkdHlwZSA9PT0gJ3N0cnRvbG93ZXInKQ0KCQl7DQoJCQkvLyByZXBsYWNlIHdoaXRlIHNwYWNlIHdpdGggdW5kZXJzY29yZQ0KCQkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgnL1xzKy8nLCAoc3RyaW5nKSAkc3BhY2VyLCAoc3RyaW5nKSAkc3RyaW5nKTsNCgkJCS8vIGRlZmF1bHQgaXMgdG8gcmV0dXJuIGxvd2VyDQoJCQlyZXR1cm4gc3RydG9sb3dlcigkc3RyaW5nKTsNCgkJfQ0KCQllbHNlaWYgKCR0eXBlID09PSAnVycpDQoJCXsNCgkJCS8vIHJldHVybiBhIHN0cmluZyB3aXRoIGFsbCBmaXJzdCBsZXR0ZXIgb2YgZWFjaCB3b3JkIHVwcGVyY2FzZShubyB1bmRlcnNjb3JlKQ0KCQkJcmV0dXJuIHVjd29yZHMoc3RydG9sb3dlcigkc3RyaW5nKSk7DQoJCX0NCgkJZWxzZWlmICgkdHlwZSA9PT0gJ3cnIHx8ICR0eXBlID09PSAnd29yZCcpDQoJCXsNCgkJCS8vIHJldHVybiBhIHN0cmluZyB3aXRoIGFsbCBsb3dlcmNhc2Uobm8gdW5kZXJzY29yZSkNCgkJCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOw0KCQl9DQoJCWVsc2VpZiAoJHR5cGUgPT09ICdXdycgfHwgJHR5cGUgPT09ICdXb3JkJykNCgkJew0KCQkJLy8gcmV0dXJuIGEgc3RyaW5nIHdpdGggZmlyc3QgbGV0dGVyIG9mIHRoZSBmaXJzdCB3b3JkIHVwcGVyY2FzZSBhbmQgYWxsIHRoZSByZXN0IGxvd2VyY2FzZShubyB1bmRlcnNjb3JlKQ0KCQkJcmV0dXJuIHVjZmlyc3Qoc3RydG9sb3dlcigkc3RyaW5nKSk7DQoJCX0NCgkJZWxzZWlmICgkdHlwZSA9PT0gJ1dXJyB8fCAkdHlwZSA9PT0gJ1dPUkQnKQ0KCQl7DQoJCQkvLyByZXR1cm4gYSBzdHJpbmcgd2l0aCBhbGwgdGhlIHVwcGVyY2FzZShubyB1bmRlcnNjb3JlKQ0KCQkJcmV0dXJuIHN0cnRvdXBwZXIoJHN0cmluZyk7DQoJCX0NCgkJZWxzZWlmICgkdHlwZSA9PT0gJ1UnIHx8ICR0eXBlID09PSAnc3RydG91cHBlcicpDQoJCXsNCgkJCQkvLyByZXBsYWNlIHdoaXRlIHNwYWNlIHdpdGggdW5kZXJzY29yZQ0KCQkJCSRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoJy9ccysvJywgKHN0cmluZykgJHNwYWNlciwgJHN0cmluZyk7DQoJCQkJLy8gcmV0dXJuIGFsbCB1cHBlcg0KCQkJCXJldHVybiBzdHJ0b3VwcGVyKCRzdHJpbmcpOw0KCQl9DQoJCWVsc2VpZiAoJHR5cGUgPT09ICdGJyB8fCAkdHlwZSA9PT0gJ3VjZmlyc3QnKQ0KCQl7DQoJCQkJLy8gcmVwbGFjZSB3aGl0ZSBzcGFjZSB3aXRoIHVuZGVyc2NvcmUNCgkJCQkkc3RyaW5nID0gcHJlZ19yZXBsYWNlKCcvXHMrLycsIChzdHJpbmcpICRzcGFjZXIsICRzdHJpbmcpOw0KCQkJCS8vIHJldHVybiB3aXRoIGZpcnN0IGNoYXJhY3RlciB0byB1cHBlcg0KCQkJCXJldHVybiB1Y2ZpcnN0KHN0cnRvbG93ZXIoJHN0cmluZykpOw0KCQl9DQoJCWVsc2VpZiAoJHR5cGUgPT09ICdjQScgfHwgJHR5cGUgPT09ICdjQW1lbCcgfHwgJHR5cGUgPT09ICdjYW1lbGNhc2UnKQ0KCQl7DQoJCQkvLyBjb252ZXJ0IGFsbCB3b3JkcyB0byBmaXJzdCBsZXR0ZXIgdXBwZXJjYXNlDQoJCQkkc3RyaW5nID0gdWN3b3JkcyhzdHJ0b2xvd2VyKCRzdHJpbmcpKTsNCgkJCS8vIHJlbW92ZSB3aGl0ZSBzcGFjZQ0KCQkJJHN0cmluZyA9IHByZWdfcmVwbGFjZSgnL1xzKy8nLCAnJywgJHN0cmluZyk7DQoJCQkvLyBub3cgcmV0dXJuIGZpcnN0IGxldHRlciBsb3dlcmNhc2UNCgkJCXJldHVybiBsY2ZpcnN0KCRzdHJpbmcpOw0KCQl9DQoJCS8vIHJldHVybiBzdHJpbmcNCgkJcmV0dXJuICRzdHJpbmc7DQoJfQ0KDQoJLyoqDQoJICogQ29udmVydCBub25lIEVuZ2xpc2ggc3RyaW5ncyB0byBjb2RlIHVzYWJsZSBzdHJpbmcNCgkgKg0KCSAqIEBpbnB1dCAgJHN0cmluZyAgYW4gc3RyaW5nDQoJICoNCgkgKiBAcmV0dXJucyBzdHJpbmcNCgkgKiBAc2luY2UgICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHJhbnNsaXRlcmF0ZSgkc3RyaW5nKTogc3RyaW5nDQoJew0KCQkvLyBzZXQgdGFnIG9ubHkgb25jZQ0KCQlpZiAoIXNlbGY6OmNoZWNrKHNlbGY6OiRsYW5nVGFnKSkNCgkJew0KCQkJLy8gZ2V0IGdsb2JhbCB2YWx1ZQ0KCQkJc2VsZjo6JGxhbmdUYWcgPSBIZWxwZXI6OmdldFBhcmFtcygpLT5nZXQoJ2xhbmd1YWdlJywgJ2VuLUdCJyk7DQoJCX0NCg0KCQkvKiogQHZhciAkbGFuZ0ZhY3RvcnkgTGFuZ3VhZ2VGYWN0b3J5ICoqLw0KCQkkbGFuZ0ZhY3RvcnkgPSBGYWN0b3J5OjpnZXRDb250YWluZXIoKS0+Z2V0KExhbmd1YWdlRmFjdG9yeUludGVyZmFjZTo6Y2xhc3MpOw0KCQkkbGFuZyA9ICRsYW5nRmFjdG9yeS0+Y3JlYXRlTGFuZ3VhZ2Uoc2VsZjo6JGxhbmdUYWcpOw0KDQoJCS8vIFRyYW5zbGl0ZXJhdGUgb24gdGhlIGxhbmd1YWdlIHJlcXVlc3RlZA0KCQlyZXR1cm4gJGxhbmctPnRyYW5zbGl0ZXJhdGUoJHN0cmluZyk7DQoJfQ0KDQoJLyoqDQoJICogRW5zdXJlcyBhIHN0cmluZyBpcyBzYWZlIGZvciBIVE1MIG91dHB1dCBieSBlbmNvZGluZyBlbnRpdGllcyBhbmQgYXBwbHlpbmcgYW4gaW5wdXQgZmlsdGVyLg0KCSAqDQoJICogVGhpcyBtZXRob2Qgc2FuaXRpemVzIHRoZSBpbnB1dCBzdHJpbmcsIGNvbnZlcnRpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMgDQoJICogYW5kIGFwcGx5aW5nIEpvb21sYSdzIGBJbnB1dEZpbHRlcmAgdG8gcmVtb3ZlIHBvdGVudGlhbGx5IHVuc2FmZSBIVE1MLg0KCSAqIE9wdGlvbmFsbHksIGl0IGNhbiBhbHNvIHNob3J0ZW4gdGhlIHN0cmluZyB3aGlsZSBwcmVzZXJ2aW5nIHdvcmQgaW50ZWdyaXR5Lg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgJHZhciAgICAgIFRoZSBpbnB1dCBzdHJpbmcgY29udGFpbmluZyBIVE1MIGNvbnRlbnQuDQoJICogQHBhcmFtIHN0cmluZyAgJGNoYXJzZXQgIFRoZSBjaGFyYWN0ZXIgc2V0IHRvIHVzZSBmb3IgZW5jb2RpbmcgKGRlZmF1bHQ6ICdVVEYtOCcpLg0KCSAqIEBwYXJhbSBib29sICAgICRzaG9ydGVuICBXaGV0aGVyIHRvIHNob3J0ZW4gdGhlIHN0cmluZyB0byBhIHNwZWNpZmllZCBsZW5ndGggKGRlZmF1bHQ6IGZhbHNlKS4NCgkgKiBAcGFyYW0gaW50ICAgICAkbGVuZ3RoICAgVGhlIG1heGltdW0gbGVuZ3RoIGZvciBzaG9ydGVuaW5nLCBpZiBlbmFibGVkIChkZWZhdWx0OiA0MCkuDQoJICogQHBhcmFtIGJvb2wgICAgJGFkZFRpcCAgIFdoZXRoZXIgdG8gYXBwZW5kIGEgdG9vbHRpcCAoZWxsaXBzaXMpIHdoZW4gc2hvcnRlbmluZyAoZGVmYXVsdDogdHJ1ZSkuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyBUaGUgc2FuaXRpemVkIGFuZCBvcHRpb25hbGx5IHNob3J0ZW5lZCBIVE1MLXNhZmUgc3RyaW5nLg0KCSAqIEBzaW5jZSAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaHRtbCgkdmFyLCAkY2hhcnNldCA9ICdVVEYtOCcsICRzaG9ydGVuID0gZmFsc2UsICRsZW5ndGggPSA0MCwgJGFkZFRpcCA9IHRydWUpOiBzdHJpbmcNCgl7DQoJCWlmIChzZWxmOjpjaGVjaygkdmFyKSkNCgkJew0KCQkJJGZpbHRlciA9IG5ldyBJbnB1dEZpbHRlcigpOw0KCQkJJHN0cmluZyA9ICRmaWx0ZXItPmNsZWFuKA0KCQkJCWh0bWxfZW50aXR5X2RlY29kZSgNCgkJCQkJaHRtbGVudGl0aWVzKA0KCQkJCQkJKHN0cmluZykgJHZhciwNCgkJCQkJCUVOVF9DT01QQVQsDQoJCQkJCQkkY2hhcnNldA0KCQkJCQkpDQoJCQkJKSwNCgkJCQknSFRNTCcNCgkJCSk7DQoJCQlpZiAoJHNob3J0ZW4pDQoJCQl7DQoJCQkJcmV0dXJuIHNlbGY6OnNob3J0ZW4oJHN0cmluZywgJGxlbmd0aCwgJGFkZFRpcCk7DQoJCQl9DQoJCQlyZXR1cm4gJHN0cmluZzsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCXJldHVybiAnJzsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIENvbnZlcnQgYWxsIGludCBpbiBhIHN0cmluZyB0byBhbiBFbmdsaXNoIHdvcmQgc3RyaW5nDQoJICoNCgkgKiBAaW5wdXQgICAgJHN0cmluZyAgYW4gc3RyaW5nIHdpdGggbnVtYmVycw0KCSAqDQoJICogQHJldHVybnMgIHN0cmluZ3xudWxsDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbnVtYmVycygkc3RyaW5nKTogP3N0cmluZw0KCXsNCgkJLy8gc2V0IG51bWJlcnMgYXJyYXkNCgkJJG51bWJlcnMgPSBbXTsNCgkJJHNlYXJjaF9yZXBsYWNlPSBbXTsNCg0KCQkvLyBmaXJzdCBnZXQgYWxsIG51bWJlcnMNCgkJcHJlZ19tYXRjaF9hbGwoJyFcZCshJywgKHN0cmluZykgJHN0cmluZywgJG51bWJlcnMpOw0KDQoJCS8vIGNoZWNrIGlmIHdlIGhhdmUgYW55IG51bWJlcnMNCgkJaWYgKGlzc2V0KCRudW1iZXJzWzBdKSAmJiBBcnJheUhlbHBlcjo6Y2hlY2soJG51bWJlcnNbMF0pKQ0KCQl7DQoJCQlmb3JlYWNoICgkbnVtYmVyc1swXSBhcyAkbnVtYmVyKQ0KCQkJew0KCQkJCSRzZWFyY2hfcmVwbGFjZVskbnVtYmVyXSA9IHNlbGY6Om51bWJlcigoaW50KSRudW1iZXIpOw0KCQkJfQ0KDQoJCQkvLyBub3cgcmVwbGFjZSBudW1iZXJzIGluIHN0cmluZw0KCQkJJHN0cmluZyA9IHN0cl9yZXBsYWNlKGFycmF5X2tleXMoJHNlYXJjaF9yZXBsYWNlKSwgYXJyYXlfdmFsdWVzKCRzZWFyY2hfcmVwbGFjZSksIChzdHJpbmcpICRzdHJpbmcpOw0KDQoJCQkvLyBjaGVjayBpZiB3ZSBtaXNzZWQgYW55LCBzdHJhbmdlIGlmIHdlIGRpZC4NCgkJCXJldHVybiBzZWxmOjpudW1iZXJzKCRzdHJpbmcpOw0KCQl9DQoNCgkJLy8gcmV0dXJuIHRoZSBzdHJpbmcgd2l0aCBubyBudW1iZXJzIHJlbWFpbmluZy4NCgkJcmV0dXJuICRzdHJpbmc7DQoJfQ0KDQoJLyoqDQoJICogQ29udmVydCBhbiBpbnRlZ2VyIGludG8gYW4gRW5nbGlzaCB3b3JkIHN0cmluZw0KCSAqIFRoYW5rcyB0byBUb20gTmljaG9sc29uIDxodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uc3RydmFsLnBocCM0MTk4OD4NCgkgKg0KCSAqIEBpbnB1dCAgICAkeCBhbiBpbnQNCgkgKiANCgkgKiBAcmV0dXJucyAgIHN0cmluZw0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG51bWJlcigkeCkNCgl7DQoJCSRud29yZHMgPSBbInplcm8iLCAib25lIiwgInR3byIsICJ0aHJlZSIsICJmb3VyIiwgImZpdmUiLCAic2l4IiwgInNldmVuIiwNCgkJCSJlaWdodCIsICJuaW5lIiwgInRlbiIsICJlbGV2ZW4iLCAidHdlbHZlIiwgInRoaXJ0ZWVuIiwNCgkJCSJmb3VydGVlbiIsICJmaWZ0ZWVuIiwgInNpeHRlZW4iLCAic2V2ZW50ZWVuIiwgImVpZ2h0ZWVuIiwNCgkJCSJuaW5ldGVlbiIsICJ0d2VudHkiLCAzMCA9PiAidGhpcnR5IiwgNDAgPT4gImZvcnR5IiwNCgkJCTUwID0+ICJmaWZ0eSIsIDYwID0+ICJzaXh0eSIsIDcwID0+ICJzZXZlbnR5IiwgODAgPT4gImVpZ2h0eSIsDQoJCQk5MCA9PiAibmluZXR5Il07DQoNCgkJaWYoIWlzX251bWVyaWMoJHgpKQ0KCQl7DQoJCQkkdyA9ICR4Ow0KCQl9DQoJCWVsc2VpZihmbW9kKCR4LCAxKSAhPSAwKQ0KCQl7DQoJCQkkdyA9ICR4Ow0KCQl9DQoJCWVsc2UNCgkJew0KCQkJaWYoJHggPCAwKQ0KCQkJew0KCQkJCSR3ID0gJ21pbnVzICc7DQoJCQkJJHggPSAtJHg7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHcgPSAnJzsNCgkJCQkvLyAuLi4gbm93ICR4IGlzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuDQoJCQl9DQoNCgkJCWlmKCR4IDwgMjEpICAgLy8gMCB0byAyMA0KCQkJew0KCQkJCSR3IC49ICRud29yZHNbJHhdOw0KCQkJfQ0KCQkJZWxzZWlmKCR4IDwgMTAwKSAgLy8gMjEgdG8gOTkNCgkJCXsgDQoJCQkJJHcgLj0gJG53b3Jkc1sxMCAqIGZsb29yKCR4LzEwKV07DQoJCQkJJHIgPSBmbW9kKCR4LCAxMCk7DQoJCQkJaWYoJHIgPiAwKQ0KCQkJCXsNCgkJCQkJJHcgLj0gJyAnIC4gJG53b3Jkc1skcl07DQoJCQkJfQ0KCQkJfQ0KCQkJZWxzZWlmKCR4IDwgMTAwMCkgIC8vIDEwMCB0byA5OTkNCgkJCXsNCgkJCQkkdyAuPSAkbndvcmRzW2Zsb29yKCR4LzEwMCldIC4nIGh1bmRyZWQnOw0KCQkJCSRyID0gZm1vZCgkeCwgMTAwKTsNCgkJCQlpZigkciA+IDApDQoJCQkJew0KCQkJCQkkdyAuPSAnIGFuZCAnLiBzZWxmOjpudW1iZXIoJHIpOw0KCQkJCX0NCgkJCX0NCgkJCWVsc2VpZigkeCA8IDEwMDAwMDApICAvLyAxMDAwIHRvIDk5OTk5OQ0KCQkJew0KCQkJCSR3IC49IHNlbGY6Om51bWJlcihmbG9vcigkeC8xMDAwKSkgLicgdGhvdXNhbmQnOw0KCQkJCSRyID0gZm1vZCgkeCwgMTAwMCk7DQoJCQkJaWYoJHIgPiAwKQ0KCQkJCXsNCgkJCQkJJHcgLj0gJyAnOw0KCQkJCQlpZigkciA8IDEwMCkNCgkJCQkJew0KCQkJCQkJJHcgLj0gJ2FuZCAnOw0KCQkJCQl9DQoJCQkJCSR3IC49IHNlbGY6Om51bWJlcigkcik7DQoJCQkJfQ0KCQkJfSANCgkJCWVsc2UgLy8gIG1pbGxpb25zDQoJCQl7DQoJCQkJJHcgLj0gc2VsZjo6bnVtYmVyKGZsb29yKCR4LzEwMDAwMDApKSAuJyBtaWxsaW9uJzsNCgkJCQkkciA9IGZtb2QoJHgsIDEwMDAwMDApOw0KCQkJCWlmKCRyID4gMCkNCgkJCQl7DQoJCQkJCSR3IC49ICcgJzsNCgkJCQkJaWYoJHIgPCAxMDApDQoJCQkJCXsNCgkJCQkJCSR3IC49ICdhbmQgJzsNCgkJCQkJfQ0KCQkJCQkkdyAuPSBzZWxmOjpudW1iZXIoJHIpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gJHc7DQoJfQ0KDQoJLyoqDQoJICogUmFuZG9tIEtleQ0KCSAqDQoJICogQGlucHV0ICAgaW50ICAkc2l6ZSAgIFRoZSBzaXplIG9mIHRoZSByYW5kb20gc3RyaW5nDQoJICoNCgkgKiBAcmV0dXJucyBzdHJpbmcNCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiByYW5kb20oaW50ICRzaXplKTogc3RyaW5nDQoJew0KCQkkYmFnID0gImFiY2VmZ2hpamtub3BxcnN0dXd4eXpBQkNEREVGR0hJSktMTE1NTk9QUVJTVFVWVldYWVphYmNkZGVmZ2hpamtsbG1tbm9wcXJzdHV2dnd4eXpBQkNFRkdISUpLTk9QUVJTVFVXWFlaIjsNCgkJJGtleSA9IFtdOw0KCQkkYmFnc2l6ZSA9IHN0cmxlbigkYmFnKSAtIDE7DQoNCgkJZm9yICgkaSA9IDA7ICRpIDwgJHNpemU7ICRpKyspDQoJCXsNCgkJCSRnZXQgPSByYW5kKDAsICRiYWdzaXplKTsNCgkJCSRrZXlbXSA9ICRiYWdbJGdldF07DQoJCX0NCg0KCQlyZXR1cm4gaW1wbG9kZSgka2V5KTsNCgl9DQo=', '{\"load_selection0\":{\"load\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\"}}', '{}', '{\"source\":{\"guid\":\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56\"}}', 1, '2022-03-08 21:35:37', 58, '', 1),
-(13, '0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a', 'Utilities Array Helper', 'ArrayHelper', 'abstract class', 'Some array tricks helper\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.ArrayHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYW4gYXJyYXkgd2l0aCBhIGxlbmd0aA0KCSAqDQoJICogQGlucHV0CWFycmF5ICAgVGhlIGFycmF5IHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBpbnR8ZmFsc2UgIG51bWJlciBvZiBpdGVtcyBpbiBhcnJheSBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjIuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hlY2soJGFycmF5LCAkcmVtb3ZlRW1wdHlTdHJpbmcgPSBmYWxzZSkNCgl7DQoJCWlmIChpc19hcnJheSgkYXJyYXkpICYmICgkbnIgPSBjb3VudCgoYXJyYXkpICRhcnJheSkpID4gMCkNCgkJew0KCQkJLy8gYWxzbyBtYWtlIHN1cmUgdGhlIGVtcHR5IHN0cmluZ3MgYXJlIHJlbW92ZWQNCgkJCWlmICgkcmVtb3ZlRW1wdHlTdHJpbmcpDQoJCQl7DQoJCQkJJGFycmF5ID0gYXJyYXlfZmlsdGVyKCRhcnJheSk7DQoNCgkJCQlpZiAoJGFycmF5ID09PSBbXSkNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoNCgkJCQlyZXR1cm4gY291bnQoJGFycmF5KTsNCgkJCX0NCg0KCQkJcmV0dXJuICRucjsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBNZXJnZSBhbiBhcnJheSBvZiBhcnJheSdzDQoJICoNCgkgKiBAaW5wdXQJYXJyYXkgICBUaGUgYXJyYXlzIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlDQoJICoNCgkgKiBAcmV0dXJucyBhcnJheXxudWxsICBtZXJnZWQgYXJyYXkgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1lcmdlKCRhcnJheXMpOiA/YXJyYXkNCgl7DQoJCWlmKHNlbGY6OmNoZWNrKCRhcnJheXMpKQ0KCQl7DQoJCQkkbWVyZ2VkID0gW107DQoJCQlmb3JlYWNoICgkYXJyYXlzIGFzICRhcnJheSkNCgkJCXsNCgkJCQlpZiAoc2VsZjo6Y2hlY2soJGFycmF5KSkNCgkJCQl7DQoJCQkJCSRtZXJnZWQgPSBhcnJheV9tZXJnZSgkbWVyZ2VkLCAkYXJyYXkpOw0KCQkJCX0NCgkJCX0NCgkJCXJldHVybiAkbWVyZ2VkOw0KCQl9DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIENoZWNrIGlmIGFycmF5cyBpbnRlcnNlY3QNCgkgKg0KCSAqIEBpbnB1dAlhcnJheSAgIFRoZSBmaXJzdCBhcnJheQ0KCSAqIEBpbnB1dAlhcnJheSAgIFRoZSBzZWNvbmQgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm5zIGJvb2wgIHRydWUgaWYgaW50ZXJzZWN0IGVsc2UgZmFsc2UNCgkgKiANCgkgKiBAc2luY2UgIDMuMS4xDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbnRlcnNlY3QoJGFfYXJyYXksICRiX2FycmF5KTogYm9vbA0KCXsNCgkJLy8gZmxpcCB0aGUgc2Vjb25kIGFycmF5DQoJCSRiX2FycmF5ID0gYXJyYXlfZmxpcCgkYl9hcnJheSk7DQoNCgkJLy8gbG9vcCB0aGUgZmlyc3QgYXJyYXkNCgkJZm9yZWFjaCAoJGFfYXJyYXkgYXMgJHYpDQoJCXsNCgkJCWlmIChpc3NldCgkYl9hcnJheVskdl0pKQ0KCQkJew0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQo=', '{}', '{}', '', 1, '2022-03-08 22:53:52', 23, '', 1),
+(13, '0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a', 'Utilities Array Helper', 'ArrayHelper', 'abstract class', 'Some array tricks helper\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.ArrayHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYW4gYXJyYXkgd2l0aCBhIGxlbmd0aA0KCSAqDQoJICogQGlucHV0CWFycmF5ICAgVGhlIGFycmF5IHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBpbnR8ZmFsc2UgIG51bWJlciBvZiBpdGVtcyBpbiBhcnJheSBvbiBzdWNjZXNzDQoJICogDQoJICogQHNpbmNlICAzLjIuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2hlY2soJGFycmF5LCAkcmVtb3ZlRW1wdHlTdHJpbmcgPSBmYWxzZSkNCgl7DQoJCWlmIChpc19hcnJheSgkYXJyYXkpICYmICgkbnIgPSBjb3VudCgoYXJyYXkpICRhcnJheSkpID4gMCkNCgkJew0KCQkJLy8gYWxzbyBtYWtlIHN1cmUgdGhlIGVtcHR5IHN0cmluZ3MgYXJlIHJlbW92ZWQNCgkJCWlmICgkcmVtb3ZlRW1wdHlTdHJpbmcpDQoJCQl7DQoJCQkJJGFycmF5ID0gYXJyYXlfZmlsdGVyKCRhcnJheSk7DQoNCgkJCQlpZiAoJGFycmF5ID09PSBbXSkNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoNCgkJCQlyZXR1cm4gY291bnQoJGFycmF5KTsNCgkJCX0NCg0KCQkJcmV0dXJuICRucjsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBNZXJnZSBhbiBhcnJheSBvZiBhcnJheSdzDQoJICoNCgkgKiBAaW5wdXQJYXJyYXkgICBUaGUgYXJyYXlzIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlDQoJICoNCgkgKiBAcmV0dXJucyBhcnJheXxudWxsICBtZXJnZWQgYXJyYXkgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1lcmdlKCRhcnJheXMpOiA/YXJyYXkNCgl7DQoJCWlmKHNlbGY6OmNoZWNrKCRhcnJheXMpKQ0KCQl7DQoJCQkkbWVyZ2VkID0gW107DQoJCQlmb3JlYWNoICgkYXJyYXlzIGFzICRhcnJheSkNCgkJCXsNCgkJCQlpZiAoc2VsZjo6Y2hlY2soJGFycmF5KSkNCgkJCQl7DQoJCQkJCSRtZXJnZWQgPSBhcnJheV9tZXJnZSgkbWVyZ2VkLCAkYXJyYXkpOw0KCQkJCX0NCgkJCX0NCgkJCXJldHVybiAkbWVyZ2VkOw0KCQl9DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIENoZWNrIGlmIGFycmF5cyBpbnRlcnNlY3QNCgkgKg0KCSAqIEBpbnB1dAlhcnJheSAgIFRoZSBmaXJzdCBhcnJheQ0KCSAqIEBpbnB1dAlhcnJheSAgIFRoZSBzZWNvbmQgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm5zIGJvb2wgIHRydWUgaWYgaW50ZXJzZWN0IGVsc2UgZmFsc2UNCgkgKiANCgkgKiBAc2luY2UgIDMuMS4xDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpbnRlcnNlY3QoJGFfYXJyYXksICRiX2FycmF5KTogYm9vbA0KCXsNCgkJLy8gZmxpcCB0aGUgc2Vjb25kIGFycmF5DQoJCSRiX2FycmF5ID0gYXJyYXlfZmxpcCgkYl9hcnJheSk7DQoNCgkJLy8gbG9vcCB0aGUgZmlyc3QgYXJyYXkNCgkJZm9yZWFjaCAoJGFfYXJyYXkgYXMgJHYpDQoJCXsNCgkJCWlmIChpc3NldCgkYl9hcnJheVskdl0pKQ0KCQkJew0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBEZWVwIGNsb25lIGFuIGFycmF5LCBpbmNsdWRpbmcgbmVzdGVkIGFycmF5cyBhbmQgb2JqZWN0cy4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IGNvcHkgb2YgdGhlIGdpdmVuIGFycmF5Lg0KCSAqIEl0IHJlY3Vyc2l2ZWx5IGNsb25lcyBuZXN0ZWQgYXJyYXlzIGFuZCB1c2VzIFBIUCdzIGBjbG9uZWAga2V5d29yZA0KCSAqIHRvIGNsb25lIGFueSBvYmplY3RzIGZvdW5kIHdpdGhpbiB0aGUgc3RydWN0dXJlLg0KCSAqDQoJICogTm90ZTogUmVzb3VyY2VzIGFuZCBjbG9zdXJlcyBhcmUgbm90IHN1cHBvcnRlZCBhbmQgd2lsbCBub3QgYmUgY29waWVkLg0KCSAqDQoJICogQHBhcmFtICBhcnJheSAgJGFycmF5ICBUaGUgYXJyYXkgdG8gYmUgZGVlcGx5IGNsb25lZC4NCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkgQSBmdWxseSBjbG9uZWQsIGluZGVwZW5kZW50IGNvcHkgb2YgdGhlIGlucHV0IGFycmF5Lg0KCSAqIEBzaW5jZSA1LjEuMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2xvbmUoYXJyYXkgJGFycmF5KTogYXJyYXkNCgl7DQoJCSRjb3B5ID0gW107DQoNCgkJZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKQ0KCQl7DQoJCQlpZiAoaXNfYXJyYXkoJHZhbHVlKSkNCgkJCXsNCgkJCQkkY29weVska2V5XSA9IHNlbGY6OmNsb25lKCR2YWx1ZSk7DQoJCQl9DQoJCQllbHNlaWYgKGlzX29iamVjdCgkdmFsdWUpKQ0KCQkJew0KCQkJCSRjb3B5WyRrZXldID0gY2xvbmUgJHZhbHVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRjb3B5WyRrZXldID0gJHZhbHVlOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICRjb3B5Ow0KCX0=', '{}', '{}', '', 1, '2022-03-08 22:53:52', 24, '', 1),
(14, 'ce8cf834-6bac-44fb-941c-861f7e046cc0', 'String Namespace Helper', 'NamespaceHelper', 'abstract class', 'Control the naming of a namespace helper\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.String.NamespaceHelper', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIE1ha2luZyBuYW1lc3BhY2Ugc2FmZQ0KCSAqDQoJICogQHBhcmFtICBzdHJpbmcgICAkc3RyaW5nICAgIFRoZSBuYW1lc3BhY2Ugc3RyaW5nIHlvdSB3b3VsZCBsaWtlIHRvIG1ha2Ugc2FmZQ0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgb24gc3VjY2Vzcw0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNhZmUoc3RyaW5nICRzdHJpbmcpOiBzdHJpbmcNCgl7DQoJCS8vIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBiYWNrc2xhc2hlcw0KCQkkc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXFwnKTsNCg0KCQkvLyBTcGxpdCB0aGUgc3RyaW5nIGludG8gbmFtZXNwYWNlIHNlZ21lbnRzDQoJCSRzZWdtZW50cyA9IGV4cGxvZGUoJ1xcJywgJHN0cmluZyk7DQoNCgkJLy8gbWFrZSBlYWNoIHNlZ21lbnQgc2FmZQ0KCQkkc2VnbWVudHMgPSBhcnJheV9tYXAoW3NlbGY6OmNsYXNzLCAnc2FmZVNlZ21lbnQnXSwgJHNlZ21lbnRzKTsNCg0KCQkvLyBKb2luIHRoZSBuYW1lc3BhY2Ugc2VnbWVudHMgYmFjayB0b2dldGhlcg0KCQlyZXR1cm4gaW1wbG9kZSgnXFwnLCAkc2VnbWVudHMpOw0KCX0NCg0KCS8qKg0KCSAqIE1ha2luZyBvbmUgbmFtZXNwYWNlIHNlZ21lbnQgc2FmZQ0KCSAqDQoJICogQHBhcmFtICBzdHJpbmcgICAkc3RyaW5nICAgIFRoZSBuYW1lc3BhY2Ugc2VnbWVudCBzdHJpbmcgeW91IHdvdWxkIGxpa2UgdG8gbWFrZSBzYWZlDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyBvbiBzdWNjZXNzDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2FmZVNlZ21lbnQoc3RyaW5nICRzdHJpbmcpOiBzdHJpbmcNCgl7DQoJCS8vIENoZWNrIGlmIHNlZ21lbnQgc3RhcnRzIHdpdGggYSBudW1iZXINCgkJaWYgKHByZWdfbWF0Y2goIi9eXGQvIiwgJHN0cmluZykpDQoJCXsNCgkJCS8vIEV4dHJhY3QgdGhlIHN0YXJ0aW5nIG51bWJlcihzKQ0KCQkJcHJlZ19tYXRjaCgiL15cZCsvIiwgJHN0cmluZywgJG1hdGNoZXMpOw0KDQoJCQlpZiAoaXNzZXQoJG1hdGNoZXNbMF0pKQ0KCQkJew0KCQkJCSRudW1iZXJXb3JkID0gU3RyaW5nSGVscGVyOjpudW1iZXJzKCRtYXRjaGVzWzBdKTsNCgkJCQkkc3RyaW5nID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbMF0sICRudW1iZXJXb3JkLCAkc3RyaW5nKTsNCgkJCX0NCgkJfQ0KDQoJCS8vIFRyYW5zbGl0ZXJhdGUgc3RyaW5nIFRPRE86IGxvb2sgYWdhaW4gYXMgdGhpcyBtYWtlcyBpdCBsb3dlcmNhc2UNCgkJLy8gJHNlZ21lbnQgPSBTdHJpbmdIZWxwZXI6OnRyYW5zbGl0ZXJhdGUoJHNlZ21lbnQpOw0KDQoJCS8vIE1ha2Ugc3VyZSBzZWdtZW50IG9ubHkgY29udGFpbnMgdmFsaWQgY2hhcmFjdGVycw0KCQlyZXR1cm4gcHJlZ19yZXBsYWNlKCIvW15BLVphLXowLTldLyIsICcnLCAkc3RyaW5nKTsNCgl9', '{}', '{}', '', 1, '2022-03-08 23:27:57', 24, '', 1),
(17, 'db87c339-5bb6-4291-a7ef-2c48ea1b06bc', 'Utilities GetHelper', 'GetHelper', 'abstract class', 'Some easy get...\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.GetHelper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTs=', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"9d76b8dc-3883-4755-b11c-131d19ca8a53\",\"as\":\"Data\"}}', 'CS8qKg0KCSAqIEdldCBhIFZhcmlhYmxlIA0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICR0YWJsZSAgICAgICAgVGhlIHRhYmxlIGZyb20gd2hpY2ggdG8gZ2V0IHRoZSB2YXJpYWJsZQ0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAkd2hlcmUgICAgICAgIFRoZSB2YWx1ZSB3aGVyZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAkd2hlcmVTdHJpbmcgIFRoZSB0YXJnZXQvZmllbGQgc3RyaW5nIHdoZXJlL25hbWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJHdoYXQgICAgICAgICBUaGUgcmV0dXJuIGZpZWxkDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICRvcGVyYXRvciAgICAgVGhlIG9wZXJhdG9yIGJldHdlZW4gJHdoZXJlU3RyaW5nL2ZpZWxkIGFuZCAkd2hlcmUvdmFsdWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJG1haW4gICAgICAgICBUaGUgY29tcG9uZW50IGluIHdoaWNoIHRoZSB0YWJsZSBpcyBmb3VuZA0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQgc3RyaW5nL2ludC9mbG9hdA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKg0KCSAqIEBkZXByZWNhdGVkIDUuMSAgVXNlICBEYXRhOjpfKCdEYXRhLkxvYWQnKS0+dGFibGUoJHRhYmxlKS0+dmFsdWUoLi4uKQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdmFyKD9zdHJpbmcgJHRhYmxlID0gbnVsbCwgJHdoZXJlID0gbnVsbCwNCgkJc3RyaW5nICR3aGVyZVN0cmluZyA9ICd1c2VyJywgc3RyaW5nICR3aGF0ID0gJ2lkJywNCgkJc3RyaW5nICRvcGVyYXRvciA9ICc9JywgP3N0cmluZyAkbWFpbiA9IG51bGwpDQoJew0KCQlpZihlbXB0eSgkd2hlcmUpKQ0KCQl7DQoJCQkkd2hlcmUgPSBGYWN0b3J5OjpnZXRVc2VyKCktPmlkOw0KCQl9DQoNCgkJaWYoZW1wdHkoJG1haW4pKQ0KCQl7DQoJCQkkbWFpbiA9IEhlbHBlcjo6Z2V0Q29kZSgpOw0KCQl9DQoNCgkJLy8gR2V0IGEgZGIgY29ubmVjdGlvbi4NCgkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoNCgkJLy8gQ3JlYXRlIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCgkJJHF1ZXJ5LT5zZWxlY3QoJGRiLT5xdW90ZU5hbWUoYXJyYXkoJHdoYXQpKSk7DQoNCgkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCXsNCgkJCSRxdWVyeS0+ZnJvbSgkZGItPnF1b3RlTmFtZSgnI19fJyAuICRtYWluKSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkcXVlcnktPmZyb20oJGRiLT5xdW90ZU5hbWUoJyNfXycgLiAkbWFpbiAuICdfJyAuICR0YWJsZSkpOw0KCQl9DQoNCgkJaWYgKGlzX251bWVyaWMoJHdoZXJlKSkNCgkJew0KCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgkd2hlcmVTdHJpbmcpIC4gJyAnIC4gJG9wZXJhdG9yIC4gJyAnIC4gKGludCkgJHdoZXJlKTsNCgkJfQ0KCQllbHNlaWYgKGlzX3N0cmluZygkd2hlcmUpKQ0KCQl7DQoJCQkkcXVlcnktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCR3aGVyZVN0cmluZykgLiAnICcgLiAkb3BlcmF0b3IgLiAnICcgLiAkZGItPnF1b3RlKChzdHJpbmcpJHdoZXJlKSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkkZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCSRkYi0+ZXhlY3V0ZSgpOw0KDQoJCWlmICgkZGItPmdldE51bVJvd3MoKSkNCgkJew0KCQkJcmV0dXJuICRkYi0+bG9hZFJlc3VsdCgpOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhcnJheSBvZiB2YXJpYWJsZXMNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkdGFibGUgICAgICAgIFRoZSB0YWJsZSBmcm9tIHdoaWNoIHRvIGdldCB0aGUgdmFyaWFibGVzDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICR3aGVyZSAgICAgICAgVGhlIHZhbHVlIHdoZXJlDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICR3aGVyZVN0cmluZyAgVGhlIHRhcmdldC9maWVsZCBzdHJpbmcgd2hlcmUvbmFtZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAkd2hhdCAgICAgICAgIFRoZSByZXR1cm4gZmllbGQNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJG9wZXJhdG9yICAgICBUaGUgb3BlcmF0b3IgYmV0d2VlbiAkd2hlcmVTdHJpbmcvZmllbGQgYW5kICR3aGVyZS92YWx1ZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAkbWFpbiAgICAgICAgIFRoZSBjb21wb25lbnQgaW4gd2hpY2ggdGhlIHRhYmxlIGlzIGZvdW5kDQoJICogQHBhcmFtICAgYm9vbCAgICAgICAgICR1bmlxdWUgICAgICAgVGhlIHN3aXRjaCB0byByZXR1cm4gYSB1bmlxdWUgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwNCgkgKiBAc2luY2UgIDMuMC45DQoJICoNCgkgKiBAZGVwcmVjYXRlZCA1LjEgIFVzZSAgRGF0YTo6XygnRGF0YS5Mb2FkJyktPnRhYmxlKCR0YWJsZSktPnZhbHVlcyguLi4pDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YXJzKD9zdHJpbmcgJHRhYmxlID0gbnVsbCwgJHdoZXJlID0gbnVsbCwNCgkJc3RyaW5nICR3aGVyZVN0cmluZyA9ICd1c2VyJywgc3RyaW5nICR3aGF0ID0gJ2lkJywgc3RyaW5nICRvcGVyYXRvciA9ICdJTicsDQoJCT9zdHJpbmcgJG1haW4gPSBudWxsLCBib29sICR1bmlxdWUgPSB0cnVlKTogP2FycmF5DQoJew0KCQlpZihlbXB0eSgkd2hlcmUpKQ0KCQl7DQoJCQkkd2hlcmUgPSBGYWN0b3J5OjpnZXRVc2VyKCktPmlkOw0KCQl9DQoNCgkJaWYoJG1haW4gPT09IG51bGwpDQoJCXsNCgkJCSRtYWluID0gSGVscGVyOjpnZXRDb2RlKCk7DQoJCX0NCg0KCQlpZiAoIUFycmF5SGVscGVyOjpjaGVjaygkd2hlcmUpICYmICR3aGVyZSA+IDApDQoJCXsNCgkJCSR3aGVyZSA9IFskd2hlcmVdOw0KCQl9DQoNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkd2hlcmUpKQ0KCQl7DQoJCQkvLyBwcmVwIG1haW4gPC0tIHdoeT8gd2VsbCBpZiAkbWFpbj0nJyBpcyBlbXB0eSB0aGVuICR0YWJsZSBjYW4gYmUgY2F0ZWdvcmllcyBvciB1c2Vycw0KCQkJaWYgKFN0cmluZ0hlbHBlcjo6Y2hlY2soJG1haW4pKQ0KCQkJew0KCQkJCSRtYWluID0gJ18nIC4gbHRyaW0oJG1haW4sICdfJyk7DQoJCQl9DQoNCgkJCS8vIEdldCBhIGRiIGNvbm5lY3Rpb24uDQoJCQkkZGIgPSBGYWN0b3J5OjpnZXREYm8oKTsNCg0KCQkJLy8gQ3JlYXRlIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRxdWVyeSA9ICRkYi0+Z2V0UXVlcnkodHJ1ZSk7DQoJCQkkcXVlcnktPnNlbGVjdCgkZGItPnF1b3RlTmFtZShhcnJheSgkd2hhdCkpKTsNCg0KCQkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCQl7DQoJCQkJJHF1ZXJ5LT5mcm9tKCRkYi0+cXVvdGVOYW1lKCcjX18nIC4gJG1haW4pKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkcXVlcnktPmZyb20oJGRiLT5xdW90ZU5hbWUoJyNfJyAuICRtYWluIC4gJ18nIC4gJHRhYmxlKSk7DQoJCQl9DQoNCgkJCS8vIGFkZCBzdHJpbmdzIHRvIGFycmF5IHNlYXJjaA0KCQkJaWYgKCdJTl9TVFJJTkdTJyA9PT0gJG9wZXJhdG9yIHx8ICdOT1QgSU5fU1RSSU5HUycgPT09ICRvcGVyYXRvcikNCgkJCXsNCgkJCQkkcXVlcnktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCR3aGVyZVN0cmluZykgLiAnICcgLiBzdHJfcmVwbGFjZSgnX1NUUklOR1MnLCAnJywgJG9wZXJhdG9yKSAuICcgKCInIC4gaW1wbG9kZSgnIiwiJywgJHdoZXJlKSAuICciKScpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRxdWVyeS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJHdoZXJlU3RyaW5nKSAuICcgJyAuICRvcGVyYXRvciAuICcgKCcgLiBpbXBsb2RlKCcsJywgJHdoZXJlKSAuICcpJyk7DQoJCQl9DQoNCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSRkYi0+ZXhlY3V0ZSgpOw0KDQoJCQlpZiAoJGRiLT5nZXROdW1Sb3dzKCkpDQoJCQl7DQoJCQkJaWYgKCR1bmlxdWUpDQoJCQkJew0KCQkJCQlyZXR1cm4gYXJyYXlfdW5pcXVlKCRkYi0+bG9hZENvbHVtbigpKTsNCgkJCQl9DQoJCQkJcmV0dXJuICRkYi0+bG9hZENvbHVtbigpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogZ2V0IGFsbCBzdHJpbmdzIGJldHdlZW4gdHdvIG90aGVyIHN0cmluZ3MNCgkgKiANCgkgKiBAcGFyYW0gIHN0cmluZyAgICAgICAkY29udGVudCAgICBUaGUgY29udGVudCB0byBzZWFyY2gNCgkgKiBAcGFyYW0gIHN0cmluZyAgICAgICAkc3RhcnQgICAgICBUaGUgc3RhcnRpbmcgdmFsdWUNCgkgKiBAcGFyYW0gIHN0cmluZyAgICAgICAkZW5kICAgICAgICBUaGUgZW5kaW5nIHZhbHVlDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsICAgICAgICAgIE9uIHN1Y2Nlc3MNCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhbGxCZXR3ZWVuKHN0cmluZyAkY29udGVudCwgc3RyaW5nICRzdGFydCwgc3RyaW5nICRlbmQpOiA/YXJyYXkNCgl7DQoJCS8vIHJlc2V0IGJ1Y2tldA0KCQkkYnVja2V0ID0gW107DQoJCWZvciAoJGkgPSAwOyA7ICRpKyspDQoJCXsNCgkJCS8vIHNlYXJjaCBmb3Igc3RyaW5nDQoJCQkkZm91bmQgPSBzZWxmOjpiZXR3ZWVuKCRjb250ZW50LCAkc3RhcnQsICRlbmQpOw0KDQoJCQlpZiAoU3RyaW5nSGVscGVyOjpjaGVjaygkZm91bmQpKQ0KCQkJew0KCQkJCS8vIGFkZCB0byBidWNrZXQNCgkJCQkkYnVja2V0W10gPSAkZm91bmQ7DQoNCgkJCQkvLyBidWlsZCByZW1vdmFsIHN0cmluZw0KCQkJCSRyZW1vdmUgPSAkc3RhcnQgLiAkZm91bmQgLiAkZW5kOw0KDQoJCQkJLy8gcmVtb3ZlIGZyb20gY29udGVudA0KCQkJCSRjb250ZW50ID0gc3RyX3JlcGxhY2UoJHJlbW92ZSwgJycsICRjb250ZW50KTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlicmVhazsNCgkJCX0NCg0KCQkJLy8gc2FmZXR5IGNhdGNoDQoJCQlpZiAoJGkgPT0gNTAwKQ0KCQkJew0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCgkJLy8gb25seSByZXR1cm4gdW5pcXVlIGFycmF5IG9mIHZhbHVlcw0KCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRidWNrZXQpKQ0KCQl7DQoJCQlyZXR1cm4gIGFycmF5X3VuaXF1ZSgkYnVja2V0KTsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIGdldCBhIHN0cmluZyBiZXR3ZWVuIHR3byBvdGhlciBzdHJpbmdzDQoJICogDQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgJGNvbnRlbnQgICAgVGhlIGNvbnRlbnQgdG8gc2VhcmNoDQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgJHN0YXJ0ICAgICAgVGhlIHN0YXJ0aW5nIHZhbHVlDQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgJGVuZCAgICAgICAgVGhlIGVuZGluZyB2YWx1ZQ0KCSAqIEBwYXJhbSAgc3RyaW5nICAgICAgICRkZWZhdWx0ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlmIG5vbmUgZm91bmQNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZyAgICAgICAgICBPbiBzdWNjZXNzIC8gZW1wdHkgc3RyaW5nIG9uIGZhaWx1cmUNCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBiZXR3ZWVuKHN0cmluZyAkY29udGVudCwgc3RyaW5nICRzdGFydCwgc3RyaW5nICRlbmQsIHN0cmluZyAkZGVmYXVsdCA9ICcnKTogc3RyaW5nDQoJew0KCQkkYXJyYXkgPSBleHBsb2RlKCRzdGFydCwgJGNvbnRlbnQpOw0KCQlpZiAoaXNzZXQoJGFycmF5WzFdKSAmJiBzdHJwb3MoJGFycmF5WzFdLCAkZW5kKSAhPT0gZmFsc2UpDQoJCXsNCgkJCSRhcnJheSA9IGV4cGxvZGUoJGVuZCwgJGFycmF5WzFdKTsNCg0KCQkJLy8gcmV0dXJuIHN0cmluZyBmb3VuZCBiZXR3ZWVuDQoJCQlyZXR1cm4gJGFycmF5WzBdOw0KCQl9DQoNCgkJcmV0dXJuICRkZWZhdWx0Ow0KCX0NCg==', '{\"load_selection0\":{\"load\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\"},\"load_selection1\":{\"load\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\"}}', '{}', '', 1, '2022-03-09 00:21:06', 31, '', 1),
-(18, '91004529-94a9-4590-b842-e7c6b624ecf5', 'Utilities Object Helper', 'ObjectHelper', 'abstract class', 'Some object tricks\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.ObjectHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYW4gb2JqZWN0IHdpdGggYSBsZW5ndGgNCgkgKg0KCSAqIEBpbnB1dAlvYmplY3QgICBUaGUgb2JqZWN0IHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBib29sIHRydWUgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrKCRvYmplY3QpDQoJew0KCQlpZiAoaXNfb2JqZWN0KCRvYmplY3QpKQ0KCQl7DQoJCQlyZXR1cm4gY291bnQoKGFycmF5KSAkb2JqZWN0KSA+IDA7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogQ2hlY2tzIGlmIHR3byBvYmplY3RzIGFyZSBlcXVhbCBieSBjb21wYXJpbmcgdGhlaXIgcHJvcGVydGllcyBhbmQgdmFsdWVzLg0KCSAqDQoJICogIFRoaXMgbWV0aG9kIGNvbnZlcnRzIGJvdGggaW5wdXQgb2JqZWN0cyB0bw0KCSAqICBhc3NvY2lhdGl2ZSBhcnJheXMsIHNvcnRzIHRoZSBhcnJheXMgYnkga2V5cywNCgkgKiAgYW5kIGNvbXBhcmVzIHRoZXNlIHNvcnRlZCBhcnJheXMuDQoJICoNCgkgKiAgSWYgdGhlIGFycmF5cyBhcmUgaWRlbnRpY2FsLCB0aGUgb2JqZWN0cyBhcmUgY29uc2lkZXJlZCBlcXVhbC4NCgkgKg0KCSAqIEBwYXJhbSBvYmplY3R8bnVsbCAgJG9iajEgIFRoZSBmaXJzdCBvYmplY3QgdG8gY29tcGFyZS4NCgkgKiBAcGFyYW0gb2JqZWN0fG51bGwgICRvYmoyICBUaGUgc2Vjb25kIG9iamVjdCB0byBjb21wYXJlLg0KCSAqDQoJICogQHJldHVybiBib29sICBUcnVlIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGVxdWFsKD9vYmplY3QgJG9iajEsID9vYmplY3QgJG9iajIpOiBib29sDQoJew0KCQkvLyBpZiBhbnkgaXMgbnVsbCB3ZSByZXR1cm4gZmFsc2UgYXMgdGhhdCBtZWFucyB0aGVyZSBpcyBhIG5vbmUgb2JqZWN0DQoJCS8vIHdlIGFyZSBub3QgY29tcGFyaW5nIG51bGwgYnV0IG9iamVjdHMNCgkJLy8gYnV0IHdlIGFsbG93IG51bGwgYXMgc29tZSBvYmplY3RzIHdoaWxlDQoJCS8vIG5vdCBpbnN0YW50aWF0ZSBhcmUgc3RpbGwgbnVsbA0KCQlpZiAoaXNfbnVsbCgkb2JqMSkgfHwgaXNfbnVsbCgkb2JqMikpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIENvbnZlcnQgYm90aCBvYmplY3RzIHRvIGFzc29jaWF0aXZlIGFycmF5cw0KCQkkYXJyYXkxID0ganNvbl9kZWNvZGUoanNvbl9lbmNvZGUoJG9iajEpLCB0cnVlKTsNCgkJJGFycmF5MiA9IGpzb25fZGVjb2RlKGpzb25fZW5jb2RlKCRvYmoyKSwgdHJ1ZSk7DQoNCgkJLy8gU29ydCB0aGUgYXJyYXlzIGJ5IGtleXMNCgkJc2VsZjo6cmVjdXJzaXZlS3NvcnQoJGFycmF5MSk7DQoJCXNlbGY6OnJlY3Vyc2l2ZUtzb3J0KCRhcnJheTIpOw0KDQoJCS8vIENvbXBhcmUgdGhlIHNvcnRlZCBhcnJheXMNCgkJcmV0dXJuICRhcnJheTEgPT09ICRhcnJheTI7DQoJfQ0KDQoJLyoqDQoJICogUmVjdXJzaXZlbHkgc29ydHMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgYnkga2V5cy4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIHdpbGwgc29ydCBhbiBhc3NvY2lhdGl2ZSBhcnJheSBieSBpdHMga2V5cyBhdCBhbGwgbGV2ZWxzLg0KCSAqDQoJICogQHBhcmFtIGFycmF5ICYkYXJyYXkgVGhlIGFycmF5IHRvIHNvcnQuDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiByZWN1cnNpdmVLc29ydChhcnJheSAmJGFycmF5KTogdm9pZA0KCXsNCgkJLy8gU29ydCB0aGUgYXJyYXkgYnkgaXRzIGtleXMNCgkJa3NvcnQoJGFycmF5KTsNCg0KCQkvLyBSZWN1cnNpdmVseSBzb3J0IG5lc3RlZCBhcnJheXMNCgkJZm9yZWFjaCAoJGFycmF5IGFzICYkdmFsdWUpDQoJCXsNCgkJCWlmIChpc19hcnJheSgkdmFsdWUpKQ0KCQkJew0KCQkJCXNlbGY6OnJlY3Vyc2l2ZUtzb3J0KCR2YWx1ZSk7DQoJCQl9DQoJCX0NCgl9', '{}', '{}', '', 1, '2022-03-09 00:35:23', 23, '', 1),
+(18, '91004529-94a9-4590-b842-e7c6b624ecf5', 'Utilities Object Helper', 'ObjectHelper', 'abstract class', 'Some object tricks\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.ObjectHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIGhhdmUgYW4gb2JqZWN0IHdpdGggYSBsZW5ndGgNCgkgKg0KCSAqIEBpbnB1dAlvYmplY3QgICBUaGUgb2JqZWN0IHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJucyBib29sIHRydWUgb24gc3VjY2Vzcw0KCSAqIA0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrKCRvYmplY3QpDQoJew0KCQlpZiAoaXNfb2JqZWN0KCRvYmplY3QpKQ0KCQl7DQoJCQlyZXR1cm4gY291bnQoKGFycmF5KSAkb2JqZWN0KSA+IDA7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogQ2hlY2tzIGlmIHR3byBvYmplY3RzIGFyZSBlcXVhbCBieSBjb21wYXJpbmcgdGhlaXIgcHJvcGVydGllcyBhbmQgdmFsdWVzLg0KCSAqDQoJICogVGhpcyBtZXRob2QgY29udmVydHMgYm90aCBpbnB1dCBvYmplY3RzIHRvDQoJICogYXNzb2NpYXRpdmUgYXJyYXlzLCBvcHRpb25hbGx5IHJlbW92ZXMgaWdub3JlZCBrZXlzLA0KCSAqIHNvcnRzIHRoZSBhcnJheXMgYnkga2V5cywgYW5kIGNvbXBhcmVzIHRoZW0uDQoJICoNCgkgKiBJZiB0aGUgYXJyYXlzIGFyZSBpZGVudGljYWwsIHRoZSBvYmplY3RzIGFyZSBjb25zaWRlcmVkIGVxdWFsLg0KCSAqDQoJICogQHBhcmFtIG9iamVjdHxudWxsICAkb2JqMSAgICBUaGUgZmlyc3Qgb2JqZWN0IHRvIGNvbXBhcmUuDQoJICogQHBhcmFtIG9iamVjdHxudWxsICAkb2JqMiAgICBUaGUgc2Vjb25kIG9iamVjdCB0byBjb21wYXJlLg0KCSAqIEBwYXJhbSBhcnJheXxudWxsICAgJGlnbm9yZSAgS2V5cyB0byBpZ25vcmUgZHVyaW5nIGNvbXBhcmlzb24uDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgIFRydWUgaWYgdGhlIG9iamVjdHMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXF1YWwoP29iamVjdCAkb2JqMSwgP29iamVjdCAkb2JqMiwgP2FycmF5ICRpZ25vcmUgPSBudWxsKTogYm9vbA0KCXsNCgkJLy8gUmV0dXJuIGZhbHNlIGlmIGVpdGhlciBpcyBudWxsDQoJCWlmIChpc19udWxsKCRvYmoxKSB8fCBpc19udWxsKCRvYmoyKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gQ29udmVydCBvYmplY3RzIHRvIGFzc29jaWF0aXZlIGFycmF5cw0KCQkkYXJyYXkxID0ganNvbl9kZWNvZGUoanNvbl9lbmNvZGUoJG9iajEpLCB0cnVlKTsNCgkJJGFycmF5MiA9IGpzb25fZGVjb2RlKGpzb25fZW5jb2RlKCRvYmoyKSwgdHJ1ZSk7DQoNCgkJLy8gUmVtb3ZlIGlnbm9yZWQga2V5cyByZWN1cnNpdmVseQ0KCQlpZiAoIWVtcHR5KCRpZ25vcmUpKQ0KCQl7DQoJCQlzZWxmOjpyZW1vdmVJZ25vcmVkS2V5cygkYXJyYXkxLCAkaWdub3JlKTsNCgkJCXNlbGY6OnJlbW92ZUlnbm9yZWRLZXlzKCRhcnJheTIsICRpZ25vcmUpOw0KCQl9DQoNCgkJLy8gU29ydCBib3RoIGFycmF5cyBieSBrZXlzDQoJCXNlbGY6OnJlY3Vyc2l2ZUtzb3J0KCRhcnJheTEpOw0KCQlzZWxmOjpyZWN1cnNpdmVLc29ydCgkYXJyYXkyKTsNCg0KCQkvLyBDb21wYXJlIHRoZSBzb3J0ZWQgYXJyYXlzDQoJCXJldHVybiAkYXJyYXkxID09PSAkYXJyYXkyOw0KCX0NCg0KCS8qKg0KCSAqIFJlY3Vyc2l2ZWx5IHJlbW92ZSBpZ25vcmVkIGtleXMgZnJvbSBhbiBhcnJheS4NCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgICAgICAkYXJyYXkgICBUaGUgYXJyYXkgdG8gbW9kaWZ5IChieSByZWZlcmVuY2UpLg0KCSAqIEBwYXJhbSBhcnJheSAgICAgICAkaWdub3JlICBUaGUgbGlzdCBvZiBrZXlzIHRvIGlnbm9yZS4NCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIHJlbW92ZUlnbm9yZWRLZXlzKGFycmF5ICYkYXJyYXksIGFycmF5ICRpZ25vcmUpOiB2b2lkDQoJew0KCQlmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAmJHZhbHVlKQ0KCQl7DQoJCQlpZiAoaW5fYXJyYXkoJGtleSwgJGlnbm9yZSwgdHJ1ZSkpDQoJCQl7DQoJCQkJdW5zZXQoJGFycmF5WyRrZXldKTsNCgkJCX0NCgkJCWVsc2VpZiAoaXNfYXJyYXkoJHZhbHVlKSkNCgkJCXsNCgkJCQlzZWxmOjpyZW1vdmVJZ25vcmVkS2V5cygkdmFsdWUsICRpZ25vcmUpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogUmVjdXJzaXZlbHkgc29ydCBhbiBhcnJheSBieSBrZXkuDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgICRhcnJheSAgVGhlIGFycmF5IHRvIHNvcnQuDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiByZWN1cnNpdmVLc29ydChhcnJheSAmJGFycmF5KTogdm9pZA0KCXsNCgkJa3NvcnQoJGFycmF5KTsNCg0KCQlmb3JlYWNoICgkYXJyYXkgYXMgJiR2YWx1ZSkNCgkJew0KCQkJaWYgKGlzX2FycmF5KCR2YWx1ZSkpDQoJCQl7DQoJCQkJc2VsZjo6cmVjdXJzaXZlS3NvcnQoJHZhbHVlKTsNCgkJCX0NCgkJfQ0KCX0NCg==', '{}', '{}', '', 1, '2022-03-09 00:35:23', 25, '', 1),
(21, '9c513baf-b279-43fd-ae29-a585c8cbc4f0', 'Utilities GuidHelper', 'GuidHelper', 'abstract class', 'Global Unique ID Helper\r\n\r\n@since 3.0.9', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.GuidHelper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTs=', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJldHVybnMgYSBHVUlEdjQgc3RyaW5nDQoJICogDQoJICogVGhhbmtzIHRvIERhdmUgUGVhcnNvbiAoYW5kIG90aGVyKQ0KCSAqIGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmNvbS1jcmVhdGUtZ3VpZC5waHAjMTE5MTY4IA0KCSAqDQoJICogVXNlcyB0aGUgYmVzdCBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgbWV0aG9kDQoJICogZm9yIGFsbCBzdXBwb3J0ZWQgcGxhdGZvcm1zIHdpdGggZmFsbGJhY2sgdG8gYW4gb2xkZXIsDQoJICogbGVzcyBzZWN1cmUgdmVyc2lvbi4NCgkgKg0KCSAqIEBwYXJhbSBib29sICR0cmltDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZw0KCSAqDQoJICogQHNpbmNlICAzLjAuOQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0KGJvb2wgJHRyaW0gPSB0cnVlKTogc3RyaW5nDQoJew0KCQkvLyBXaW5kb3dzDQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ2NvbV9jcmVhdGVfZ3VpZCcpKQ0KCQl7DQoJCQlpZiAoJHRyaW0pDQoJCQl7DQoJCQkJcmV0dXJuIHRyaW0oY29tX2NyZWF0ZV9ndWlkKCksICd7fScpOw0KCQkJfQ0KCQkJcmV0dXJuIGNvbV9jcmVhdGVfZ3VpZCgpOw0KCQl9DQoNCgkJLy8gc2V0IHRoZSBicmFjZXMgaWYgbmVlZGVkDQoJCSRsYnJhY2UgPSAkdHJpbSA/ICIiIDogY2hyKDEyMyk7ICAgIC8vICJ7Ig0KCQkkcmJyYWNlID0gJHRyaW0gPyAiIiA6IGNocigxMjUpOyAgICAvLyAifSINCg0KCQkvLyBPU1gvTGludXgNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzJykpDQoJCXsNCgkJCSRkYXRhID0gb3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzKDE2KTsNCgkJCSRkYXRhWzZdID0gY2hyKCBvcmQoJGRhdGFbNl0pICYgMHgwZiB8IDB4NDApOyAgICAvLyBzZXQgdmVyc2lvbiB0byAwMTAwDQoJCQkkZGF0YVs4XSA9IGNociggb3JkKCRkYXRhWzhdKSAmIDB4M2YgfCAweDgwKTsgICAgLy8gc2V0IGJpdHMgNi03IHRvIDEwDQoJCQlyZXR1cm4gJGxicmFjZSAuIHZzcHJpbnRmKCclcyVzLSVzLSVzLSVzLSVzJXMlcycsIHN0cl9zcGxpdChiaW4yaGV4KCRkYXRhKSwgNCkpIC4gJGxicmFjZTsNCgkJfQ0KDQoJCS8vIEZhbGxiYWNrIChQSFAgNC4yKykNCgkJbXRfc3JhbmQoKGRvdWJsZSkgbWljcm90aW1lKCkgKiAxMDAwMCk7DQoJCSRjaGFyaWQgPSBzdHJ0b2xvd2VyKCBtZDUoIHVuaXFpZCggcmFuZCgpLCB0cnVlKSkpOw0KCQkkaHlwaGVuID0gY2hyKDQ1KTsgICAgICAgICAgICAgICAgICAvLyAiLSINCgkJJGd1aWR2NCA9ICRsYnJhY2UuDQoJCQlzdWJzdHIoJGNoYXJpZCwgIDAsICA4KS4gJGh5cGhlbi4NCgkJCXN1YnN0cigkY2hhcmlkLCAgOCwgIDQpLiAkaHlwaGVuLg0KCQkJc3Vic3RyKCRjaGFyaWQsIDEyLCAgNCkuICRoeXBoZW4uDQoJCQlzdWJzdHIoJGNoYXJpZCwgMTYsICA0KS4gJGh5cGhlbi4NCgkJCXN1YnN0cigkY2hhcmlkLCAyMCwgMTIpLg0KCQkJJHJicmFjZTsNCgkJcmV0dXJuICRndWlkdjQ7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgdGhlIEdsb2JhbGx5IFVuaXF1ZSBJZGVudGlmaWVyICggYW5kIGNoZWNrIGlmIHRhYmxlIGFscmVhZHkgaGFzIHRoaXMgaWRlbnRpZmllcikNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICAgICAgJGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgICAgICAgJHRhYmxlDQoJICogQHBhcmFtIGludCAgICAgICAgICAgICRpZA0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkY29tcG9uZW50DQoJICoNCgkgKiBAcmV0dXJuIGJvb2wNCgkgKg0KCSAqIEBzaW5jZSAgMy4wLjkNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHZhbGlkKCRndWlkLCA/c3RyaW5nICR0YWJsZSA9IG51bGwsIGludCAkaWQgPSAwLCA/c3RyaW5nICRjb21wb25lbnQgPSBudWxsKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIHN0cmluZw0KCQlpZiAoc2VsZjo6dmFsaWRhdGUoJGd1aWQpKQ0KCQl7DQoJCQkvLyBjaGVjayBpZiB0YWJsZSBhbHJlYWR5IGhhcyB0aGlzIGlkZW50aWZpZXINCgkJCWlmIChTdHJpbmdIZWxwZXI6OmNoZWNrKCR0YWJsZSkpDQoJCQl7DQoJCQkJLy8gY2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBjb21wb25lbnQgY29kZSBuYW1lDQoJCQkJaWYgKCFpc19zdHJpbmcoJGNvbXBvbmVudCkpDQoJCQkJew0KCQkJCQkkY29tcG9uZW50ID0gKHN0cmluZykgSGVscGVyOjpnZXRDb2RlKCk7DQoJCQkJfQ0KCQkJCS8vIEdldCB0aGUgZGF0YWJhc2Ugb2JqZWN0IGFuZCBhIG5ldyBxdWVyeSBvYmplY3QuDQoJCQkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCgkJCQkkcXVlcnktPnNlbGVjdCgnQ09VTlQoKiknKQ0KCQkJCQktPmZyb20oJyNfXycgLiAoc3RyaW5nKSAkY29tcG9uZW50IC4gJ18nIC4gKHN0cmluZykgJHRhYmxlKQ0KCQkJCQktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCdndWlkJykgLiAnID0gJyAuICRkYi0+cXVvdGUoJGd1aWQpKTsNCg0KCQkJCS8vIHJlbW92ZSB0aGlzIGl0ZW0gZnJvbSB0aGUgbGlzdA0KCQkJCWlmICgkaWQgPiAwKQ0KCQkJCXsNCgkJCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgnaWQnKSAuICcgPD4gJyAuIChpbnQpICRpZCk7DQoJCQkJfQ0KDQoJCQkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCQkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJCSRkdXBsaWNhdGUgPSAoYm9vbCkgJGRiLT5sb2FkUmVzdWx0KCk7DQoNCgkJCQlpZiAoJGR1cGxpY2F0ZSkNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogZ2V0IHRoZSBpdGVtIGJ5IGd1aWQgaW4gYSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgJGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAkdGFibGUNCgkgKiBAcGFyYW0gc3RyaW5nfGFycmF5ICAkd2hhdA0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAgICAkY29tcG9uZW50DQoJICoNCgkgKiBAcmV0dXJuIG1peGVkDQoJICoNCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpdGVtKCRndWlkLCAkdGFibGUsICR3aGF0ID0gJ2EuaWQnLCA/c3RyaW5nICRjb21wb25lbnQgPSBudWxsKQ0KCXsNCgkJLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIHN0cmluZw0KCQkvLyBjaGVjayBpZiB0YWJsZSBhbHJlYWR5IGhhcyB0aGlzIGlkZW50aWZpZXINCgkJaWYgKHNlbGY6OnZhbGlkYXRlKCRndWlkKSAmJiBTdHJpbmdIZWxwZXI6OmNoZWNrKCR0YWJsZSkpDQoJCXsNCgkJCS8vIGNoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgY29tcG9uZW50IGNvZGUgbmFtZQ0KCQkJaWYgKCFpc19zdHJpbmcoJGNvbXBvbmVudCkpDQoJCQl7DQoJCQkJJGNvbXBvbmVudCA9IChzdHJpbmcpIEhlbHBlcjo6Z2V0Q29kZSgpOw0KCQkJfQ0KCQkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRkYiA9IEZhY3Rvcnk6OmdldERibygpOw0KCQkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkd2hhdCkpDQoJCQl7DQoJCQkJJHF1ZXJ5LT5zZWxlY3QoJGRiLT5xdW90ZU5hbWUoJHdoYXQpKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkcXVlcnktPnNlbGVjdCgkd2hhdCk7DQoJCQl9DQoNCgkJCSRxdWVyeS0+ZnJvbSgkZGItPnF1b3RlTmFtZSgnI19fJyAuIChzdHJpbmcpICRjb21wb25lbnQgLiAnXycgLiAoc3RyaW5nKSAkdGFibGUsICdhJykpDQoJCQkJLT53aGVyZSgkZGItPnF1b3RlTmFtZSgnYS5ndWlkJykgLiAnID0gJyAuICRkYi0+cXVvdGUoJGd1aWQpKTsNCg0KCQkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCQkkZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCQkkZGItPmV4ZWN1dGUoKTsNCg0KCQkJaWYgKCRkYi0+Z2V0TnVtUm93cygpKQ0KCQkJew0KCQkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHdoYXQpIHx8ICR3aGF0ID09PSAnYS4qJykNCgkJCQl7DQoJCQkJCXJldHVybiAkZGItPmxvYWRPYmplY3QoKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJcmV0dXJuICRkYi0+bG9hZFJlc3VsdCgpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIHRoZSBHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcg0KCSAqDQoJICogVGhhbmtzIHRvIExld2llDQoJICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE1MTU0NTYvMTQyOTY3Nw0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZA0KCSAqDQoJICogQHJldHVybiBib29sDQoJICoNCgkgKiBAc2luY2UgIDMuMC45DQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZSgkZ3VpZCkNCgl7DQoJCS8vIGNoZWNrIGlmIHdlIGhhdmUgYSBzdHJpbmcNCgkJaWYgKFN0cmluZ0hlbHBlcjo6Y2hlY2soJGd1aWQpKQ0KCQl7DQoJCQlyZXR1cm4gcHJlZ19tYXRjaCgiL14oXHspP1thLWZcZF17OH0oLVthLWZcZF17NH0pezR9W2EtZlxkXXs4fSg/KDEpXH0pJC9pIiwgJGd1aWQpOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQo=', '{\"load_selection0\":{\"load\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\"},\"load_selection1\":{\"load\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\"}}', '{}', '', 1, '2022-03-12 01:27:10', 21, '', 1),
(23, '640b5352-fb09-425f-a26e-cd44eda03f15', 'Utilities Component Helper', 'Helper', 'abstract class', 'Some component helper\r\n\r\n@since 3.0.11', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.Component.Helper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXENvbXBvbmVudFxDb21wb25lbnRIZWxwZXI7DQp1c2UgSm9vbWxhXENNU1xNVkNcTW9kZWxcQmFzZURhdGFiYXNlTW9kZWw7DQp1c2UgSm9vbWxhXElucHV0XElucHV0Ow0KdXNlIEpvb21sYVxSZWdpc3RyeVxSZWdpc3RyeTs=', '{\"use_selection0\":{\"use\":\"ce8cf834-6bac-44fb-941c-861f7e046cc0\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBjdXJyZW50IG9wdGlvbg0KCSAqDQoJICogQHZhciAgICBzdHJpbmd8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgP3N0cmluZyAkb3B0aW9uID0gbnVsbDsNCg0KCS8qKg0KCSAqIFRoZSBjb21wb25lbnQgbWFuaWZlc3QgbGlzdCBjYWNoZQ0KCSAqDQoJICogQHZhciAgICBhcnJheQ0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBhcnJheSAkbWFuaWZlc3QgPSBbXTsNCg0KCS8qKg0KCSAqIFRoZSBjb21wb25lbnQgcGFyYW1zIGxpc3QgY2FjaGUNCgkgKg0KCSAqIEB2YXIgICAgUmVnaXN0cnlbXQ0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXByb3RlY3RlZCBzdGF0aWMgYXJyYXkgJHBhcmFtcyA9IFtdOw0KDQoJLyoqDQoJICogU2V0cyBhIHBhcmFtZXRlciB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRhcmdldCBpbiB0aGUgc3BlY2lmaWVkIG9wdGlvbidzIHBhcmFtcy4NCgkgKiBJZiBubyBvcHRpb24gaXMgcHJvdmlkZWQsIGl0IGZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHQgb3B0aW9uLg0KCSAqDQoJICogVGhpcyBtZXRob2QgdXBkYXRlcyB0aGUgcGFyYW1ldGVycyBmb3IgYSBnaXZlbiBleHRlbnNpb24gaW4gdGhlIGRhdGFiYXNlLA0KCSAqIG9ubHkgaWYgdGhlIG5ldyB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIGV4aXN0aW5nIG9uZS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICAgICAkdGFyZ2V0IFRoZSBwYXJhbWV0ZXIgbmFtZSB0byBiZSB1cGRhdGVkLg0KCSAqIEBwYXJhbSBtaXhlZCAgICAgICAkdmFsdWUgIFRoZSB2YWx1ZSB0byBzZXQgZm9yIHRoZSBwYXJhbWV0ZXIuDQoJICogQHBhcmFtIHN0cmluZ3xudWxsICRvcHRpb24gVGhlIG9wdGlvbmFsIGV4dGVuc2lvbiBlbGVtZW50IG5hbWUuIERlZmF1bHRzIHRvIG51bGwsIHdoaWNoIHdpbGwgdXNlIHRoZSBkZWZhdWx0IG9wdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gbWl4ZWQgVGhlIHByZXZpb3VzIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYmVmb3JlIGl0IHdhcyB1cGRhdGVkLg0KCSAqIEBzaW5jZSAgNS4wLjMNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldFBhcmFtcyhzdHJpbmcgJHRhcmdldCwgJHZhbHVlLCA/c3RyaW5nICRvcHRpb24gPSBudWxsKQ0KCXsNCgkJLy8gRW5zdXJlIHRoYXQgYW4gb3B0aW9uIGlzIHNwZWNpZmllZCwgZGVmYXVsdGluZyB0byB0aGUgc3lzdGVtJ3Mgb3B0aW9uIGlmIG5vdCBwcm92aWRlZC4NCgkJaWYgKGVtcHR5KCRvcHRpb24pKQ0KCQl7DQoJCQkkb3B0aW9uID0gc3RhdGljOjpnZXRPcHRpb24oKTsNCgkJfQ0KDQoJCS8vIFJldHJpZXZlIGN1cnJlbnQgcGFyYW1ldGVycyBmb3IgdGhlIHNwZWNpZmllZCBvcHRpb24uDQoJCSRwYXJhbXMgPSBzdGF0aWM6OmdldFBhcmFtcygkb3B0aW9uKTsNCg0KCQkvLyBHZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHRhcmdldCBwYXJhbWV0ZXIuDQoJCSR3YXMgPSAkcGFyYW1zLT5nZXQoJHRhcmdldCwgbnVsbCk7DQoNCgkJLy8gT25seSBwcm9jZWVkIGlmIHRoZSBuZXcgdmFsdWUgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlLg0KCQlpZiAoJHdhcyAhPT0gJHZhbHVlKQ0KCQl7DQoJCQkvLyBVcGRhdGUgdGhlIHBhcmFtZXRlciB2YWx1ZS4NCgkJCSRwYXJhbXMtPnNldCgkdGFyZ2V0LCAkdmFsdWUpOw0KDQoJCQkvLyBPYnRhaW4gYSBkYXRhYmFzZSBjb25uZWN0aW9uIGluc3RhbmNlLg0KCQkJJGRiID0gRmFjdG9yeTo6Z2V0REJPKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkvLyBCdWlsZCBhbmQgZXhlY3V0ZSB0aGUgcXVlcnkgdG8gdXBkYXRlIHRoZSBwYXJhbWV0ZXJzIGluIHRoZSBkYXRhYmFzZS4NCgkJCSRxdWVyeS0+dXBkYXRlKCcjX19leHRlbnNpb25zIEFTIGEnKQ0KCQkJCSAgLT5zZXQoJ2EucGFyYW1zID0gJyAuICRkYi0+cXVvdGUoKHN0cmluZykgJHBhcmFtcykpDQoJCQkJICAtPndoZXJlKCdhLmVsZW1lbnQgPSAnIC4gJGRiLT5xdW90ZSgoc3RyaW5nKSAkb3B0aW9uKSk7DQoNCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSRkYi0+ZXhlY3V0ZSgpOw0KCQl9DQoNCgkJLy8gUmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLg0KCQlyZXR1cm4gJHdhczsNCgl9DQoNCgkvKioNCgkgKiBHZXRzIHRoZSBwYXJhbWV0ZXIgb2JqZWN0IGZvciB0aGUgY29tcG9uZW50DQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAgJG9wdGlvbiAgVGhlIG9wdGlvbiBmb3IgdGhlIGNvbXBvbmVudC4NCgkgKg0KCSAqIEByZXR1cm4gIFJlZ2lzdHJ5ICAgICBBIFJlZ2lzdHJ5IG9iamVjdC4NCgkgKiBAc2VlICAgICBSZWdpc3RyeQ0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0UGFyYW1zKD9zdHJpbmcgJG9wdGlvbiA9IG51bGwpOiBSZWdpc3RyeQ0KCXsNCgkJLy8gY2hlY2sgdGhhdCB3ZSBoYXZlIGFuIG9wdGlvbg0KCQlpZiAoZW1wdHkoJG9wdGlvbikpDQoJCXsNCgkJCSRvcHRpb24gPSBzdGF0aWM6OmdldE9wdGlvbigpOw0KCQl9DQoNCgkJLy8gZ2V0IGdsb2JhbCB2YWx1ZQ0KCQlpZiAoIWlzc2V0KHN0YXRpYzo6JHBhcmFtc1skb3B0aW9uXSkgfHwgIXN0YXRpYzo6JHBhcmFtc1skb3B0aW9uXSBpbnN0YW5jZW9mIFJlZ2lzdHJ5KQ0KCQl7DQoJCQlzdGF0aWM6OiRwYXJhbXNbJG9wdGlvbl0gPSBDb21wb25lbnRIZWxwZXI6OmdldFBhcmFtcygkb3B0aW9uKTsNCgkJfQ0KDQoJCXJldHVybiBzdGF0aWM6OiRwYXJhbXNbJG9wdGlvbl07DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBjb21wb25lbnQgb3B0aW9uDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAgJG9wdGlvbiAgVGhlIG9wdGlvbg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRPcHRpb24oP3N0cmluZyAkb3B0aW9uKTogdm9pZA0KCXsNCgkJc3RhdGljOjokb3B0aW9uID0gJG9wdGlvbjsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGNvbXBvbmVudCBvcHRpb24NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICAgJGRlZmF1bHQgIFRoZSBkZWZhdWx0IHJldHVybiB2YWx1ZSBpZiBub25lIGlzIGZvdW5kDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmd8bnVsbCAgICAgIEEgY29tcG9uZW50IG9wdGlvbg0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0T3B0aW9uKD9zdHJpbmcgJGRlZmF1bHQgPSAnZW1wdHknKTogP3N0cmluZw0KCXsNCgkJaWYgKGVtcHR5KHN0YXRpYzo6JG9wdGlvbikpDQoJCXsNCgkJCS8vIGdldCB0aGUgb3B0aW9uIGZyb20gdGhlIHVybCBpbnB1dA0KCQkJc3RhdGljOjokb3B0aW9uID0gKG5ldyBJbnB1dCktPmdldFN0cmluZygnb3B0aW9uJywgbnVsbCk7DQoJCX0NCg0KCQlpZiAoZW1wdHkoc3RhdGljOjokb3B0aW9uKSkNCgkJew0KCQkJJGFwcCA9IEZhY3Rvcnk6OmdldEFwcGxpY2F0aW9uKCk7DQoNCgkJCS8vIENoZWNrIGlmIHRoZSBnZXRJbnB1dCBtZXRob2QgZXhpc3RzIGluIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QNCgkJCWlmIChtZXRob2RfZXhpc3RzKCRhcHAsICdnZXRJbnB1dCcpKQ0KCQkJew0KCQkJCS8vIGdldCB0aGUgb3B0aW9uIGZyb20gdGhlIGFwcGxpY2F0aW9uDQoJCQkJc3RhdGljOjokb3B0aW9uID0gJGFwcC0+Z2V0SW5wdXQoKS0+Z2V0Q21kKCdvcHRpb24nLCAkZGVmYXVsdCk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJLy8gVXNlIHRoZSBkZWZhdWx0IHZhbHVlIGlmIGdldElucHV0IG1ldGhvZCBkb2VzIG5vdCBleGlzdA0KCQkJCXN0YXRpYzo6JG9wdGlvbiA9ICRkZWZhdWx0Ow0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHN0YXRpYzo6JG9wdGlvbjsNCgl9DQoNCgkvKioNCgkgKiBHZXRzIHRoZSBjb21wb25lbnQgY29kZSBuYW1lDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkb3B0aW9uICAgVGhlIG9wdGlvbiBmb3IgdGhlIGNvbXBvbmVudC4NCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkZGVmYXVsdCAgVGhlIGRlZmF1bHQgcmV0dXJuIHZhbHVlIGlmIG5vbmUgaXMgZm91bmQNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZ3xudWxsICAgIEEgY29tcG9uZW50IGNvZGUgbmFtZQ0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0Q29kZSg/c3RyaW5nICRvcHRpb24gPSBudWxsLCA/c3RyaW5nICRkZWZhdWx0ID0gbnVsbCk6ID9zdHJpbmcNCgl7DQoJCS8vIGNoZWNrIHRoYXQgd2UgaGF2ZSBhbiBvcHRpb24NCgkJaWYgKGVtcHR5KCRvcHRpb24pKQ0KCQl7DQoJCQkkb3B0aW9uID0gc3RhdGljOjpnZXRPcHRpb24oKTsNCgkJfQ0KCQkvLyBvcHRpb24gd2l0aCBjb21fDQoJCWlmIChpc19zdHJpbmcoJG9wdGlvbikgJiYgc3RycG9zKCRvcHRpb24sICdjb21fJykgPT09IDApDQoJCXsNCgkJCXJldHVybiBzdHJ0b2xvd2VyKHRyaW0oc3Vic3RyKCRvcHRpb24sIDQpKSk7DQoJCX0NCg0KCQlyZXR1cm4gJGRlZmF1bHQ7DQoJfQ0KDQoJLyoqDQoJICogR2V0cyB0aGUgY29tcG9uZW50IGFic3RyYWN0IGhlbHBlciBjbGFzcw0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJG9wdGlvbiAgIFRoZSBvcHRpb24gZm9yIHRoZSBjb21wb25lbnQuDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJGRlZmF1bHQgIFRoZSBkZWZhdWx0IHJldHVybiB2YWx1ZSBpZiBub25lIGlzIGZvdW5kDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmd8bnVsbCAgICBBIGNvbXBvbmVudCBoZWxwZXIgbmFtZQ0KCSAqDQoJICogQHNpbmNlICAgMy4wLjExDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXQoP3N0cmluZyAkb3B0aW9uID0gbnVsbCwgP3N0cmluZyAkZGVmYXVsdCA9IG51bGwpOiA/c3RyaW5nDQoJew0KCQkvLyBjaGVjayB0aGF0IHdlIGhhdmUgYW4gb3B0aW9uDQoJCS8vIGFuZCBnZXQgdGhlIGNvZGUgbmFtZSBmcm9tIGl0DQoJCWlmICgoJGNvZGVfbmFtZSA9IHN0YXRpYzo6Z2V0Q29kZSgkb3B0aW9uLCBudWxsKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIHdlIGJ1aWxkIHRoZSBoZWxwZXIgY2xhc3MgbmFtZQ0KCQkJJGhlbHBlcl9uYW1lID0gJ1xcJyAuIFx1Y2ZpcnN0KCRjb2RlX25hbWUpIC4gJ0hlbHBlcic7DQoNCgkJCS8vIGNoZWNrIGlmIGNsYXNzIGV4aXN0DQoJCQlpZiAoY2xhc3NfZXhpc3RzKCRoZWxwZXJfbmFtZSkpDQoJCQl7DQoJCQkJcmV0dXJuICRoZWxwZXJfbmFtZTsNCgkJCX0NCg0KCQkJLy8gdHJ5IGxvYWRpbmcgbmFtZXNwYWNlDQoJCQlpZiAoKCRuYW1lc3BhY2UgPSBzdGF0aWM6OmdldE5hbWVzcGFjZSgkb3B0aW9uKSkgIT09IG51bGwpDQoJCQl7DQoJCQkJJG5hbWUgPSBcdWNmaXJzdCgkY29kZV9uYW1lKSAuICdIZWxwZXInOw0KCQkJCSRuYW1lc3BhY2VfaGVscGVyID0gICdcXCcgLiAkbmFtZXNwYWNlIC4gJ1xBZG1pbmlzdHJhdG9yXEhlbHBlclxcJyAuIE5hbWVzcGFjZUhlbHBlcjo6c2FmZVNlZ21lbnQoJG5hbWUpOyAvLyBUT0RPIHRhcmdldCBzaXRlIG9yIGFkbWluIGxvY2F0aW9ucyBub3QganVzdCBhZG1pbi4uLg0KCQkJCWlmIChjbGFzc19leGlzdHMoJG5hbWVzcGFjZV9oZWxwZXIpKQ0KCQkJCXsNCgkJCQkJcmV0dXJuICRuYW1lc3BhY2VfaGVscGVyOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkZGVmYXVsdDsNCgl9DQoNCgkvKioNCgkgKiBHZXRzIHRoZSBjb21wb25lbnQgbmFtZXNwYWNlIGlmIHNldA0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJG9wdGlvbiAgIFRoZSBvcHRpb24gZm9yIHRoZSBjb21wb25lbnQuDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJGRlZmF1bHQgIFRoZSBkZWZhdWx0IHJldHVybiB2YWx1ZSBpZiBub25lIGlzIGZvdW5kDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmd8bnVsbCAgICBBIGNvbXBvbmVudCBuYW1lc3BhY2UNCgkgKg0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKD9zdHJpbmcgJG9wdGlvbiA9IG51bGwpOiA/c3RyaW5nDQoJew0KCQkkbWFuaWZlc3QgPSBzdGF0aWM6OmdldE1hbmlmZXN0KCRvcHRpb24pOw0KDQoJCXJldHVybiAkbWFuaWZlc3QtPm5hbWVzcGFjZSA/PyBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldHMgdGhlIGNvbXBvbmVudCBhYnN0cmFjdCBoZWxwZXIgY2xhc3MNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICRvcHRpb24gICBUaGUgb3B0aW9uIGZvciB0aGUgY29tcG9uZW50Lg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICRkZWZhdWx0ICBUaGUgZGVmYXVsdCByZXR1cm4gdmFsdWUgaWYgbm9uZSBpcyBmb3VuZA0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwgICAgQSBjb21wb25lbnQgaGVscGVyIG5hbWUNCgkgKg0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0TWFuaWZlc3QoP3N0cmluZyAkb3B0aW9uID0gbnVsbCk6ID9vYmplY3QNCgl7DQoJCWlmICgkb3B0aW9uID09PSBudWxsDQoJCQkmJiAoJG9wdGlvbiA9IHN0YXRpYzo6Z2V0T3B0aW9uKCRvcHRpb24pKSA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBnZXQgZ2xvYmFsIG1hbmlmZXN0X2NhY2hlIHZhbHVlcw0KCQlpZiAoIWlzc2V0KHN0YXRpYzo6JG1hbmlmZXN0WyRvcHRpb25dKSkNCgkJew0KCQkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCQkkcXVlcnktPnNlbGVjdCgkZGItPnF1b3RlTmFtZSgnbWFuaWZlc3RfY2FjaGUnKSkNCgkJCQkgIC0+ZnJvbSgkZGItPnF1b3RlTmFtZSgnI19fZXh0ZW5zaW9ucycpKQ0KCQkJCSAgLT53aGVyZSgkZGItPnF1b3RlTmFtZSgndHlwZScpIC4gJyA9ICcgLiAkZGItPnF1b3RlKCdjb21wb25lbnQnKSkNCgkJCQkgIC0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJ2VsZW1lbnQnKSAuICcgTElLRSAnIC4gJGRiLT5xdW90ZSgkb3B0aW9uKSk7DQoNCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCg0KCQkJdHJ5IHsNCgkJCQkkbWFuaWZlc3QgPSAkZGItPmxvYWRSZXN1bHQoKTsNCgkJCQlzdGF0aWM6OiRtYW5pZmVzdFskb3B0aW9uXSA9IGpzb25fZGVjb2RlKCRtYW5pZmVzdCk7DQoJCQl9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7DQoJCQkJLy8gSGFuZGxlIHRoZSBkYXRhYmFzZSBlcnJvciBhcHByb3ByaWF0ZWx5Lg0KCQkJCXN0YXRpYzo6JG1hbmlmZXN0WyRvcHRpb25dID0gbnVsbDsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBzdGF0aWM6OiRtYW5pZmVzdFskb3B0aW9uXTsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBpZiB0aGUgaGVscGVyIGNsYXNzIG9mIHRoaXMgY29tcG9uZW50IGhhcyBhIG1ldGhvZA0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICRtZXRob2QgIFRoZSBtZXRob2QgbmFtZSB0byBzZWFyY2ggZm9yDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICRvcHRpb24gIFRoZSBvcHRpb24gZm9yIHRoZSBjb21wb25lbnQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sICAgIHRydWUgaWYgbWV0aG9kIGV4aXN0DQoJICoNCgkgKiBAc2luY2UgICAzLjAuMTENCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1ldGhvZEV4aXN0cyhzdHJpbmcgJG1ldGhvZCwgP3N0cmluZyAkb3B0aW9uID0gbnVsbCk6IGJvb2wNCgl7DQoJCS8vIGdldCB0aGUgaGVscGVyIGNsYXNzDQoJCXJldHVybiAoJGhlbHBlciA9IHN0YXRpYzo6Z2V0KCRvcHRpb24sIG51bGwpKSAhPT0gbnVsbCAmJg0KCQkJbWV0aG9kX2V4aXN0cygkaGVscGVyLCAkbWV0aG9kKTsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBpZiB0aGUgaGVscGVyIGNsYXNzIG9mIHRoaXMgY29tcG9uZW50IGhhcyBhIG1ldGhvZCwgYW5kIGNhbGwgaXQgd2l0aCB0aGUgYXJndW1lbnRzDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICRtZXRob2QgICAgIFRoZSBtZXRob2QgbmFtZSB0byBzZWFyY2ggZm9yDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICAkYXJndW1lbnRzICBUaGUgYXJndW1lbnRzIGZvciBmdW5jdGlvbi4NCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICRvcHRpb24gICAgIFRoZSBvcHRpb24gZm9yIHRoZSBjb21wb25lbnQuDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZCAgICByZXR1cm4gd2hhdGV2ZXIgdGhlIG1ldGhvZCByZXR1cm5zIG9yIG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gXyhzdHJpbmcgJG1ldGhvZCwgYXJyYXkgJGFyZ3VtZW50cyA9IFtdLCA/c3RyaW5nICRvcHRpb24gPSBudWxsKQ0KCXsNCgkJLy8gZ2V0IHRoZSBoZWxwZXIgY2xhc3MNCgkJaWYgKCgkaGVscGVyID0gc3RhdGljOjpnZXQoJG9wdGlvbiwgbnVsbCkpICE9PSBudWxsICYmDQoJCQltZXRob2RfZXhpc3RzKCRoZWxwZXIsICRtZXRob2QpKQ0KCQl7DQoJCQkvLyB3ZSBrbm93IHRoaXMgaXMgbm90IGlkZWFsLi4uDQoJCQkvLyBzbyB3ZSBuZWVkIHRvIG1vdmUgdGhlc2UNCgkJCS8vIGZ1bmN0aW9ucyB0byB0aGVpciBvd24gY2xhc3Nlcw0KCQkJcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KFskaGVscGVyLCAkbWV0aG9kXSwgICRhcmd1bWVudHMpOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogUmV0dXJucyBhIE1vZGVsIG9iamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHR5cGUsIHByZWZpeCwgYW5kIGNvbmZpZ3VyYXRpb24uDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJHR5cGUgICAgIFRoZSBtb2RlbCB0eXBlIHRvIGluc3RhbnRpYXRlLiBNdXN0IG5vdCBiZSBlbXB0eS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJHByZWZpeCAgIFByZWZpeCBmb3IgdGhlIG1vZGVsIGNsYXNzIG5hbWUuIE9wdGlvbmFsLCBkZWZhdWx0cyB0byAnQWRtaW5pc3RyYXRvcicuDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICRvcHRpb24gICBUaGUgY29tcG9uZW50IG9wdGlvbi4gT3B0aW9uYWwsIGRlZmF1bHRzIHRvIHRoZSBjb21wb25lbnQncyBvcHRpb24uDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRjb25maWcgICBDb25maWd1cmF0aW9uIGFycmF5IGZvciB0aGUgbW9kZWwuIE9wdGlvbmFsLCBkZWZhdWx0cyB0byBhbiBlbXB0eSBhcnJheS4NCgkgKg0KCSAqIEByZXR1cm4gIEJhc2VEYXRhYmFzZU1vZGVsICAgVGhlIGluc3RhbnRpYXRlZCBtb2RlbCBvYmplY3QuDQoJICoNCgkgKiBAdGhyb3dzICBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICBJZiB0aGUgJHR5cGUgcGFyYW1ldGVyIGlzIGVtcHR5Lg0KCSAqIEB0aHJvd3MgIFxFeGNlcHRpb24gICAgICAgICAgICAgICAgIEZvciBvdGhlciBlcnJvcnMgdGhhdCBtYXkgb2NjdXIgZHVyaW5nIG1vZGVsIGNyZWF0aW9uLg0KCSAqDQoJICogQHNpbmNlICAgNS4wLjMNCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldE1vZGVsKHN0cmluZyAkdHlwZSwgc3RyaW5nICRwcmVmaXggPSAnQWRtaW5pc3RyYXRvcicsDQoJCT9zdHJpbmcgJG9wdGlvbiA9IG51bGwsIGFycmF5ICRjb25maWcgPSBbXSk6IEJhc2VEYXRhYmFzZU1vZGVsDQoJew0KCQkvLyBFbnN1cmUgdGhlICR0eXBlIHBhcmFtZXRlciBpcyBub3QgZW1wdHkNCgkJaWYgKGVtcHR5KCR0eXBlKSkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1RoZSAkdHlwZSBwYXJhbWV0ZXIgY2Fubm90IGJlIGVtcHR5IHdoZW4gY2FsbGluZyBDb21wb25lbnQgSGVscGVyIGdldE1vZGVsIG1ldGhvZC4nKTsNCgkJfQ0KDQoJCS8vIEVuc3VyZSB0aGUgJG9wdGlvbiBwYXJhbWV0ZXIgaXMgc2V0LCBkZWZhdWx0aW5nIHRvIHRoZSBjb21wb25lbnQncyBvcHRpb24gaWYgbm90IHByb3ZpZGVkDQoJCWlmIChlbXB0eSgkb3B0aW9uKSkNCgkJew0KCQkJJG9wdGlvbiA9IHN0YXRpYzo6Z2V0T3B0aW9uKCk7DQoJCX0NCg0KCQkvLyBOb3JtYWxpemUgdGhlIG1vZGVsIHR5cGUgbmFtZSBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIG5vdCB1cHBlcmNhc2UNCgkJaWYgKCFjdHlwZV91cHBlcigkdHlwZVswXSkpDQoJCXsNCgkJCSR0eXBlID0gU3RyaW5nSGVscGVyOjpzYWZlKCR0eXBlLCAnRicpOw0KCQl9DQoNCgkJLy8gTm9ybWFsaXplIHRoZSBwcmVmaXggaWYgaXQncyBub3QgJ1NpdGUnIG9yICdBZG1pbmlzdHJhdG9yJw0KCQlpZiAoJHByZWZpeCAhPT0gJ1NpdGUnICYmICRwcmVmaXggIT09ICdBZG1pbmlzdHJhdG9yJykNCgkJew0KCQkJJHByZWZpeCA9IHN0YXRpYzo6Z2V0UHJlZml4RnJvbU1vZGVsUGF0aCgkcHJlZml4KTsNCgkJfQ0KDQoJCS8vIEluc3RhbnRpYXRlIGFuZCByZXR1cm4gdGhlIG1vZGVsIHVzaW5nIHRoZSBNVkNGYWN0b3J5DQoJCXJldHVybiBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpDQoJCQktPmJvb3RDb21wb25lbnQoJG9wdGlvbikNCgkJCS0+Z2V0TVZDRmFjdG9yeSgpDQoJCQktPmNyZWF0ZU1vZGVsKCR0eXBlLCAkcHJlZml4LCAkY29uZmlnKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIHByZWZpeCBmcm9tIHRoZSBtb2RlbCBwYXRoDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRwYXRoICAgIFRoZSBtb2RlbCBwYXRoDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcgIFRoZSBwcmVmaXggdmFsdWUNCgkgKiBAc2luY2UgICA1LjAuMw0KCSAqLw0KCXByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldFByZWZpeEZyb21Nb2RlbFBhdGgoc3RyaW5nICRwYXRoKTogc3RyaW5nDQoJew0KCQkvLyBDaGVjayBpZiAkcGF0aCBzdGFydHMgd2l0aCBKUEFUSF9BRE1JTklTVFJBVE9SIHBhdGgNCgkJaWYgKHN0cl9zdGFydHNfd2l0aCgkcGF0aCwgSlBBVEhfQURNSU5JU1RSQVRPUiAuICcvY29tcG9uZW50cy8nKSkNCgkJew0KCQkJcmV0dXJuICdBZG1pbmlzdHJhdG9yJzsNCgkJfQ0KCQkvLyBDaGVjayBpZiAkcGF0aCBzdGFydHMgd2l0aCBKUEFUSF9TSVRFIHBhdGgNCgkJZWxzZWlmIChzdHJfc3RhcnRzX3dpdGgoJHBhdGgsIEpQQVRIX1NJVEUgLiAnL2NvbXBvbmVudHMvJykpDQoJCXsNCgkJCXJldHVybiAnU2l0ZSc7DQoJCX0NCgkJcmV0dXJuICdBZG1pbmlzdHJhdG9yJzsNCgl9', '{}', '{}', '', 1, '2022-05-13 05:36:32', 45, '', 1),
(25, 'd7600b43-771a-4747-9f5d-952765721799', 'Utilities UploadHelper', 'UploadHelper', 'abstract class', 'Upload Helper\r\n\r\n@since 3.0.11', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.UploadHelper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXExhbmd1YWdlXFRleHQ7DQp1c2UgSm9vbWxhXEZpbGVzeXN0ZW1cRmlsZTsNCnVzZSBKb29tbGFcRmlsZXN5c3RlbVxGb2xkZXI7DQp1c2UgSm9vbWxhXEZpbGVzeXN0ZW1cUGF0aDs=', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"f11dc790-713e-4706-9a85-a318ed3ad56e\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRydWUgdG8gdXNlIHN0cmVhbXMNCgkgKg0KCSAqIEB2YXIgICAgYm9vbA0KCSAqDQoJICogQHNpbmNlICAzLjAuMTENCgkgKi8NCglwdWJsaWMgc3RhdGljIGJvb2wgJHVzZVN0cmVhbXMgPSBmYWxzZTsNCg0KCS8qKg0KCSAqIEFsbG93IHRoZSB1cGxvYWQgb2YgdW5zYWZlIGZpbGVzDQoJICoNCgkgKiBAdmFyICAgIGJvb2wNCgkgKg0KCSAqIEBzaW5jZSAgMy4wLjExDQoJICovDQoJcHVibGljIHN0YXRpYyBib29sICRhbGxvd1Vuc2FmZSA9IGZhbHNlOw0KDQoJLyoqDQoJICogT3B0aW9ucyB0byBJbnB1dEZpbHRlcjo6aXNTYWZlRmlsZQ0KCSAqDQoJICogQHZhciAgICBhcnJheQ0KCSAqDQoJICogQHNpbmNlICAzLjAuMTENCgkgKi8NCglwdWJsaWMgc3RhdGljIGFycmF5ICRzYWZlRmlsZU9wdGlvbnMgPSBbXTsNCg0KCS8qKg0KCSAqIFNldCB0aGUgZXJyb3IgYmVoYXZpb3INCgkgKg0KCSAqIEB2YXIgICAgYm9vbA0KCSAqDQoJICogQHNpbmNlICAzLjAuMTENCgkgKi8NCglwdWJsaWMgc3RhdGljIGJvb2wgJGVucXVldWVFcnJvciA9IHRydWU7DQoNCgkvKioNCgkgKiBMZWdhbCBGb3JtYXRzDQoJICoNCgkgKiBAdmFyICAgIGFycmF5DQoJICoNCgkgKiBAc2luY2UgIDUuMC4zDQoJICovDQoJcHVibGljIHN0YXRpYyBhcnJheSAkbGVnYWxGb3JtYXRzID0gW107DQoNCgkvKioNCgkgKiBFcnJvcnMNCgkgKg0KCSAqIEB2YXIgICAgYXJyYXkNCgkgKg0KCSAqIEBzaW5jZSAgMy4wLjExDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBhcnJheSAkZXJyb3JzID0gW107DQoNCgkvKioNCgkgKiBHZXQgZmlsZS9maWxlcyBmcm9tIGEgSFRUUCB1cGxvYWQuDQoJICoNCgkgKiBAcGFyYW0gIHN0cmluZyAgICAgICAgJGZpZWxkICAgICAgIFRoZSBpbnB1dCBmaWVsZCBuYW1lDQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgICR0eXBlICAgICAgICBUaGUgZmlsZSB0eXBlDQoJICogQHBhcmFtICBzdHJpbmd8bnVsbCAgICRmaWx0ZXIgICAgICBUaGUgZmlsdGVyIHRvIHVzZSB3aGVuIHVwbG9hZGluZyB0aGUgZmlsZQ0KCSAqIEBwYXJhbSAgc3RyaW5nfG51bGwgICAkcGF0aCAgICAgICAgVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZmlsZSBtdXN0IGJlIHBsYWNlZA0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbCAgIEZpbGUgZGV0YWlscyBvciBmYWxzZSBvbiBmYWlsdXJlLg0KCSAqIEBzaW5jZSAgMy4wLjExDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0eXBlLCBzdHJpbmcgJGZpbHRlciA9IG51bGwsIHN0cmluZyAkcGF0aCA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIEdldCB0aGUgdXBsb2FkZWQgZmlsZSBpbmZvcm1hdGlvbi4NCgkJJGlucHV0ID0gRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKS0+aW5wdXQ7DQoNCgkJLy8gc2V0IHRoZSBkZWZhdWx0IGZpbHRlcg0KCQlpZiAoZW1wdHkoJGZpbHRlcikpDQoJCXsNCgkJCSRmaWx0ZXIgPSAnYXJyYXknOw0KCQl9DQoJCS8vIGlmIHJhdyB0aGVuIGFsc28gdW5zYWZlDQoJCS8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2pvb21sYS9qb29tbGEtY21zL2Jsb2IvNC4xLWRldi9hZG1pbmlzdHJhdG9yL2NvbXBvbmVudHMvY29tX2luc3RhbGxlci9zcmMvTW9kZWwvSW5zdGFsbE1vZGVsLnBocCNMMjU5DQoJCWVsc2VpZiAoJGZpbHRlciA9PT0gJ3JhdycpDQoJCXsNCgkJCXN0YXRpYzo6JGFsbG93VW5zYWZlID0gdHJ1ZTsNCgkJfQ0KDQoJCS8vIGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxlIGRlc3RpbmF0aW9uIG5hbWUgaW4gdGhlIGZpZWxkIG5hbWUNCgkJJG5hbWUgPSBudWxsOw0KCQlpZiAoc3RycG9zKCRmaWVsZCwgJzonKSAhPT0gZmFsc2UpDQoJCXsNCgkJCWxpc3QoJGZpZWxkLCAkbmFtZSkgPSBleHBsb2RlKCc6JywgJGZpZWxkKTsNCgkJfQ0KDQoJCS8vIFNlZSBKSW5wdXRGaWxlczo6Z2V0Lg0KCQkkdXNlcmZpbGUgPSAkaW5wdXQtPmZpbGVzLT5nZXQoJGZpZWxkLCBudWxsLCAkZmlsdGVyKTsNCg0KCQkvLyBNYWtlIHN1cmUgdGhhdCBmaWxlIHVwbG9hZHMgYXJlIGVuYWJsZWQgaW4gcGhwLg0KCQlpZiAoIShib29sKSBpbmlfZ2V0KCdmaWxlX3VwbG9hZHMnKSkNCgkJew0KCQkJc3RhdGljOjpzZXRFcnJvcihUZXh0OjpfKCdXYXJuaW5nLCB1cGxvYWQgZXJyb3IuJykpOw0KDQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIElmIHRoZXJlIGlzIG5vIHVwbG9hZGVkIGZpbGUsIHdlIGhhdmUgYSBwcm9ibGVtLi4uDQoJCWlmICghaXNfYXJyYXkoJHVzZXJmaWxlKSkNCgkJew0KCQkJc3RhdGljOjpzZXRFcnJvcihUZXh0OjpfKCdObyB1cGxvYWQgc2VsZWN0ZWQnKSk7DQoNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gSXMgdGhlIFBIUCB0bXAgZGlyZWN0b3J5IG1pc3Npbmc/DQoJCWlmICgkdXNlcmZpbGVbJ2Vycm9yJ10gJiYgKCR1c2VyZmlsZVsnZXJyb3InXSA9PSBVUExPQURfRVJSX05PX1RNUF9ESVIpKQ0KCQl7DQoJCQlzdGF0aWM6OnNldEVycm9yKFRleHQ6Ol8oJ1RoZXJlIHdhcyBhbiBlcnJvciB1cGxvYWRpbmcgdG8gdGhlIHNlcnZlci4nKSAuICc8YnI+JyAuIFRleHQ6Ol8oJ1RoZSBQSFAgdGVtcG9yYXJ5IGZvbGRlciBpcyBub3Qgc2V0LicpKTsNCg0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBJcyB0aGUgbWF4IHVwbG9hZCBzaXplIHRvbyBzbWFsbCBpbiBwaHAuaW5pPw0KCQlpZiAoJHVzZXJmaWxlWydlcnJvciddICYmICgkdXNlcmZpbGVbJ2Vycm9yJ10gPT0gVVBMT0FEX0VSUl9JTklfU0laRSkpDQoJCXsNCgkJCXN0YXRpYzo6c2V0RXJyb3IoVGV4dDo6XygnVGhlcmUgd2FzIGFuIGVycm9yIHVwbG9hZGluZyB0byB0aGUgc2VydmVyLicpIC4gJzxicj4nIC4gVGV4dDo6XygnWW91ciBmaWxlIHdhcyBpcyBsYXJnZXIgdGhhbiB0aGUgYWxsb3dlZCBzaXplLicpKTsNCg0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBDaGVjayBpZiB0aGVyZSB3YXMgYSBkaWZmZXJlbnQgcHJvYmxlbSB1cGxvYWRpbmcgdGhlIGZpbGUuDQoJCWlmICgkdXNlcmZpbGVbJ2Vycm9yJ10gfHwgJHVzZXJmaWxlWydzaXplJ10gPCAxKQ0KCQl7DQoJCQlzdGF0aWM6OnNldEVycm9yKFRleHQ6Ol8oJ1RoZXJlIHdhcyBhbiBlcnJvciB1cGxvYWRpbmcgdG8gdGhlIHNlcnZlci4nKSk7DQoNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gY2hlY2sgaWYgYSBwYXRoIHdhcyBwYXNzZWQgYW5kIGV4aXN0DQoJCWlmIChpc19zdHJpbmcoJHBhdGgpICYmIEZvbGRlcjo6Y3JlYXRlKCRwYXRoKSkNCgkJew0KCQkJLy8gc2V0IHRoZSBwYXRoDQoJCQkkdXNlcmZpbGVbJ3BhdGgnXSA9ICRwYXRoOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJLy8gZ2V0IHRoZSBKb29tbGEgY29uZmlnIGNsYXNzDQoJCQkkY29uZmlnID0gRmFjdG9yeTo6Z2V0Q29uZmlnKCk7DQoJCQkvLyBzZXQgdGhlIHBhdGgNCgkJCSR1c2VyZmlsZVsncGF0aCddID0gJGNvbmZpZy0+Z2V0KCd0bXBfcGF0aCcpOw0KCQl9DQoNCgkJLy8gc2V0IHRoZSByYW5kb20gcGFydCBvZiB0aGUgbmFtZQ0KCQkkdXNlcmZpbGVbJ3JhbmRvbSddID0gU3RyaW5nSGVscGVyOjpyYW5kb20oMTIpOw0KDQoJCS8vIHNldCB0aGUgZmlsZSBuYW1lDQoJCWlmIChlbXB0eSgkbmFtZSkpDQoJCXsNCgkJCS8vIHNldCB0aGUgZmlsZSBuYW1lDQoJCQkkdXNlcmZpbGVbJ2ZpbGVfbmFtZSddID0gJHVzZXJmaWxlWydyYW5kb20nXSAuICR1c2VyZmlsZVsnbmFtZSddOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJLy8gY2hlY2sgdGhhdCBoaXMgbmFtZSBoYXMgZmlsZSBmb3JtYXQNCgkJCWlmIChpc19zdHJpbmcoJG5hbWUpICYmIHN0cnBvcygkbmFtZSwgJy4nKSA9PT0gZmFsc2UpDQoJCQl7DQoJCQkJJG5hbWUgPSAkbmFtZSAuICcuJyAuIE1pbWVIZWxwZXI6OmV4dGVuc2lvbigkdXNlcmZpbGVbJ25hbWUnXSk7DQoJCQl9DQoJCQkkdXNlcmZpbGVbJ2ZpbGVfbmFtZSddID0gJG5hbWU7DQoJCX0NCg0KCQkvLyBzZXQgZnVsbCBwYXRoDQoJCSR1c2VyZmlsZVsnZnVsbF9wYXRoJ10gPSBQYXRoOjpjbGVhbigkdXNlcmZpbGVbJ3BhdGgnXSAuICcvJyAuICR1c2VyZmlsZVsnZmlsZV9uYW1lJ10pOw0KDQoJCS8vIFVwbG9hZCB0aGUgZmlsZS4NCgkJaWYgKEZpbGU6OnVwbG9hZCgkdXNlcmZpbGVbJ3RtcF9uYW1lJ10sICR1c2VyZmlsZVsnZnVsbF9wYXRoJ10sIHN0YXRpYzo6JHVzZVN0cmVhbXMsIHN0YXRpYzo6JGFsbG93VW5zYWZlKSkNCgkJew0KCQkJLy8gQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFsaWQgZmlsZQ0KCQkJcmV0dXJuIHN0YXRpYzo6Y2hlY2soJHVzZXJmaWxlLCAkdHlwZSk7DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGVycm9ycw0KCSAqDQoJICogQHBhcmFtICBib29sICAgICAgICAgJHRvU3RyaW5nICAgICAgVGhlIG9wdGlvbiB0byByZXR1cm4gZXJyb3JzIGFzIGEgc3RyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxzdHJpbmcNCgkgKiBAc2luY2UgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0RXJyb3IoYm9vbCAkdG9TdHJpbmcgPSBmYWxzZSkNCgl7DQoJCWlmICgkdG9TdHJpbmcpDQoJCXsNCgkJCXJldHVybiBpbXBsb2RlKCcgJyAuIFBIUF9FT0wsIHN0YXRpYzo6JGVycm9ycyk7DQoJCX0NCgkJcmV0dXJuIHN0YXRpYzo6JGVycm9yczsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBhIGZpbGUgYW5kIHZlcmlmaWVzIGl0IGFzIGEgYWxsb3dlZCBmaWxlIGZvcm1hdCBmaWxlDQoJICoNCgkgKiBAcGFyYW0gIGFycmF5ICAgICAgICAgJHVwbG9hZCAgICAgIFRoZSB1cGxvYWRlZCBkZXRhaWxzIGFycmF5DQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgICR0eXBlICAgICAgICAgIFRoZSBmaWxlIHR5cGUNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwgIG9mIGVsZW1lbnRzDQoJICogQHNpbmNlICAgMy4wLjExDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjaGVjayhhcnJheSAkdXBsb2FkLCBzdHJpbmcgJHR5cGUpOiA/YXJyYXkNCgl7DQoJCS8vIERlZmF1bHQgZXh0ZW5zaW9ucy9mb3JtYXRzDQoJCSRleHRlbnNpb25zID0gTWltZUhlbHBlcjo6Z2V0RmlsZUV4dGVuc2lvbnMoJHR5cGUpOw0KDQoJCS8vIENsZWFuIHRoZSBwYXRoDQoJCSR1cGxvYWRfcGF0aCA9IFBhdGg6OmNsZWFuKCR1cGxvYWRbJ2Z1bGxfcGF0aCddKTsNCg0KCQkvLyBHZXQgZmlsZSBleHRlbnNpb24vZm9ybWF0DQoJCSRleHRlbnNpb24gPSBNaW1lSGVscGVyOjpleHRlbnNpb24oJHVwbG9hZF9wYXRoKTsNCgkJJG1pbWUgPSAkdXBsb2FkWyd0eXBlJ107DQoNCgkJdW5zZXQoJHVwbG9hZFsndHlwZSddKTsNCg0KCQkvLyBzZXQgdG8gY2hlY2sNCgkJJGNoZWNraW5nX21pbWUgPSBNaW1lSGVscGVyOjptaW1lVHlwZSgkdXBsb2FkX3BhdGgpOw0KDQoJCS8vIExlZ2FsIGZpbGUgZm9ybWF0cw0KCQkkbGVnYWxfZXh0ZW5zaW9ucyA9IFtdOw0KDQoJCS8vIGNoZWNrIGlmIHRoZSBmaWxlIGZvcm1hdCBpcyBldmVuIGluIHRoZSBsaXN0DQoJCWlmIChpbl9hcnJheSgkZXh0ZW5zaW9uLCAkZXh0ZW5zaW9ucykpDQoJCXsNCgkJCS8vIGdldCBhbGxvd2VkIGZvcm1hdHMNCgkJCSRsZWdhbF9mb3JtYXRzID0gKGFycmF5KSBIZWxwZXI6OmdldFBhcmFtcygpLT5nZXQoJHR5cGUgLiAnX2Zvcm1hdHMnLCBbXSk7DQoJCQkkbGVnYWxfZXh0ZW5zaW9ucyA9IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJGxlZ2FsX2Zvcm1hdHMsIHN0YXRpYzo6JGxlZ2FsRm9ybWF0cykpKTsNCgkJfQ0KDQoJCS8vIGNoZWNrIHRoZSBleHRlbnNpb24NCgkJaWYgKCFpbl9hcnJheSgkZXh0ZW5zaW9uLCAkbGVnYWxfZXh0ZW5zaW9ucykpDQoJCXsNCgkJCS8vIENsZWFudXAgdGhlIGltcG9ydCBmaWxlDQoJCQlpZiAoIXN0YXRpYzo6cmVtb3ZlKCR1cGxvYWRbJ2Z1bGxfcGF0aCddKSkNCgkJCXsNCgkJCQlzdGF0aWM6OnNldEVycm9yKFRleHQ6Ol8oJ1VwbG9hZCBjb3VsZCBub3QgYmUgcmVtb3ZlZCB3aXRoIHRoZSBnaXZlbiBmdWxsIHBhdGguJykpOw0KCQkJfQ0KDQoJCQlzdGF0aWM6OnNldEVycm9yKFRleHQ6Ol8oJ1VwbG9hZCBpcyBub3QgYSB2YWxpZCB0eXBlLicpKTsNCg0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQlpZiAoJGNoZWNraW5nX21pbWUgPT09ICRtaW1lKQ0KCQl7DQoJCQkkdXBsb2FkWydtaW1lJ10gPSAkbWltZTsgLy8gVE9ETyB3ZSBzaG91bGQga2VlcCBhbmQgZXllIG9uIHRoaXMuDQoJCX0NCg0KCQkkdXBsb2FkWydleHRlbnNpb24nXSA9ICRleHRlbnNpb247DQoNCgkJcmV0dXJuICR1cGxvYWQ7DQoJfQ0KDQoJLyoqDQoJICogQ2xlYW4gdXAgdGVtcG9yYXJ5IHVwbG9hZGVkIGZpbGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGZ1bGxQYXRoICAgIFRoZSBmdWxsIHBhdGggb2YgdGhlIHVwbG9hZGVkIGZpbGUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgb24gc3VjY2Vzcw0KCSAqIEBzaW5jZSAgMy4wLjExDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiByZW1vdmUoc3RyaW5nICRmdWxsUGF0aCk6IGJvb2wNCgl7DQoJCS8vIElzIHRoZSBwYWNrYWdlIGZpbGUgYSB2YWxpZCBmaWxlPw0KCQlpZiAoaXNfZmlsZSgkZnVsbFBhdGgpKQ0KCQl7DQoJCQlyZXR1cm4gRmlsZTo6ZGVsZXRlKCRmdWxsUGF0aCk7DQoJCX0NCgkJZWxzZWlmIChpc19maWxlKFBhdGg6OmNsZWFuKCRmdWxsUGF0aCkpKQ0KCQl7DQoJCQkvLyBJdCBtaWdodCBhbHNvIGJlIGp1c3QgYSBiYXNlIGZpbGVuYW1lDQoJCQlyZXR1cm4gRmlsZTo6ZGVsZXRlKFBhdGg6OmNsZWFuKCRmdWxsUGF0aCkpOw0KCQl9DQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGVycm9ycw0KCSAqDQoJICogQHBhcmFtICBzdHJpbmcgICAgICAgICRtZXNzYWdlICAgVGhlIGVycm9yIG1lc3NhZ2UNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgIDMuMC4xMQ0KCSAqLw0KCXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gc2V0RXJyb3Ioc3RyaW5nICRtZXNzYWdlKTogdm9pZA0KCXsNCgkJaWYgKHN0YXRpYzo6JGVucXVldWVFcnJvcikNCgkJew0KCQkJRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKS0+ZW5xdWV1ZU1lc3NhZ2UoJG1lc3NhZ2UsICdlcnJvcicpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJc3RhdGljOjokZXJyb3JzW10gPSAkbWVzc2FnZTsNCgkJfQ0KCX0=', '{}', '{}', '', 1, '2022-05-16 13:20:50', 60, '', 1),
(26, 'f11dc790-713e-4706-9a85-a318ed3ad56e', 'Utilities MimeHelper', 'MimeHelper', 'abstract class', 'Mime Helper\r\n\r\n@since 3.0.11', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICAzcmQgU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.MimeHelper', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEZpbGUgRXh0ZW5zaW9ucyB0byBNaW1ldHlwZXMNCgkgKiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9MbGV3ZWxseW52ZG0vNzRiZTM3MzM1N2UxMzFiODc3NWE3NTgyYzNkZTUwOGINCgkgKiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2h0dHBkL2h0dHBkL3RydW5rL2RvY3MvY29uZi9taW1lLnR5cGVzDQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAgIDUuMC4zDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyAkZmlsZUV4dGVuc2lvblRvTWltZVR5cGUgPSBbDQoJCScxMjMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5sb3R1cy0xLTItMycsDQoJCSczZG1sJwkJCT0+ICd0ZXh0L3ZuZC5pbjNkLjNkbWwnLA0KCQknM2RzJwkJCT0+ICdpbWFnZS94LTNkcycsDQoJCSczZzInCQkJPT4gJ3ZpZGVvLzNncHAyJywNCgkJJzNncCcJCQk9PiAndmlkZW8vM2dwcCcsDQoJCSc3eicJCQk9PiAnYXBwbGljYXRpb24veC03ei1jb21wcmVzc2VkJywNCgkJJ2FhYicJCQk9PiAnYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpbicsDQoJCSdhYWMnCQkJPT4gJ2F1ZGlvL3gtYWFjJywNCgkJJ2FhbScJCQk9PiAnYXBwbGljYXRpb24veC1hdXRob3J3YXJlLW1hcCcsDQoJCSdhYXMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1zZWcnLA0KCQknYWJ3JwkJCT0+ICdhcHBsaWNhdGlvbi94LWFiaXdvcmQnLA0KCQknYWMnCQkJPT4gJ2FwcGxpY2F0aW9uL3BraXgtYXR0ci1jZXJ0JywNCgkJJ2FjYycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFtZXJpY2FuZHluYW1pY3MuYWNjJywNCgkJJ2FjZScJCQk9PiAnYXBwbGljYXRpb24veC1hY2UtY29tcHJlc3NlZCcsDQoJCSdhY3UnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hY3Vjb2JvbCcsDQoJCSdhY3V0YycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFjdWNvcnAnLA0KCQknYWRwJwkJCT0+ICdhdWRpby9hZHBjbScsDQoJCSdhZXAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hdWRpb2dyYXBoJywNCgkJJ2FmbScJCQk9PiAnYXBwbGljYXRpb24veC1mb250LXR5cGUxJywNCgkJJ2FmcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmlibS5tb2RjYXAnLA0KCQknYWhlYWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5haGVhZC5zcGFjZScsDQoJCSdhaScJCQk9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsDQoJCSdhaWYnCQkJPT4gJ2F1ZGlvL3gtYWlmZicsDQoJCSdhaWZjJwkJCT0+ICdhdWRpby94LWFpZmYnLA0KCQknYWlmZicJCQk9PiAnYXVkaW8veC1haWZmJywNCgkJJ2FpcicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFkb2JlLmFpci1hcHBsaWNhdGlvbi1pbnN0YWxsZXItcGFja2FnZSt6aXAnLA0KCQknYWl0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZHZiLmFpdCcsDQoJCSdhbWknCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hbWlnYS5hbWknLA0KCQknYXBrJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmUnLA0KCQknYXBwY2FjaGUnCQk9PiAndGV4dC9jYWNoZS1tYW5pZmVzdCcsDQoJCSdhcHBsaWNhdGlvbicJPT4gJ2FwcGxpY2F0aW9uL3gtbXMtYXBwbGljYXRpb24nLA0KCQknYXByJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubG90dXMtYXBwcm9hY2gnLA0KCQknYXJjJwkJCT0+ICdhcHBsaWNhdGlvbi94LWZyZWVhcmMnLA0KCQknYXNjJwkJCT0+ICdhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlJywNCgkJJ2FzZicJCQk9PiAndmlkZW8veC1tcy1hc2YnLA0KCQknYXNtJwkJCT0+ICd0ZXh0L3gtYXNtJywNCgkJJ2FzbycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFjY3BhYy5zaW1wbHkuYXNvJywNCgkJJ2FzeCcJCQk9PiAndmlkZW8veC1tcy1hc2YnLA0KCQknYXRjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYWN1Y29ycCcsDQoJCSdhdG9tJwkJCT0+ICdhcHBsaWNhdGlvbi9hdG9tK3htbCcsDQoJCSdhdG9tY2F0JwkJPT4gJ2FwcGxpY2F0aW9uL2F0b21jYXQreG1sJywNCgkJJ2F0b21zdmMnCQk9PiAnYXBwbGljYXRpb24vYXRvbXN2Yyt4bWwnLA0KCQknYXR4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYW50aXguZ2FtZS1jb21wb25lbnQnLA0KCQknYXUnCQkJPT4gJ2F1ZGlvL2Jhc2ljJywNCgkJJ2F2aScJCQk9PiAndmlkZW8veC1tc3ZpZGVvJywNCgkJJ2F2aWYnCQkJPT4gJ2ltYWdlL2F2aWYnLA0KCQknYXcnCQkJPT4gJ2FwcGxpY2F0aW9uL2FwcGxpeHdhcmUnLA0KCQknYXpmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYWlyemlwLmZpbGVzZWN1cmUuYXpmJywNCgkJJ2F6cycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFpcnppcC5maWxlc2VjdXJlLmF6cycsDQoJCSdhencnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hbWF6b24uZWJvb2snLA0KCQknYmF0JwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnLA0KCQknYmNwaW8nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtYmNwaW8nLA0KCQknYmRmJwkJCT0+ICdhcHBsaWNhdGlvbi94LWZvbnQtYmRmJywNCgkJJ2JkbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN5bmNtbC5kbSt3YnhtbCcsDQoJCSdiZWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5yZWFsdm5jLmJlZCcsDQoJCSdiaDInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzcHJzJywNCgkJJ2JpbicJCQk9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywNCgkJJ2JsYicJCQk9PiAnYXBwbGljYXRpb24veC1ibG9yYicsDQoJCSdibG9yYicJCQk9PiAnYXBwbGljYXRpb24veC1ibG9yYicsDQoJCSdibWknCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ibWknLA0KCQknYm1wJwkJCT0+ICdpbWFnZS9ibXAnLA0KCQknYm9vaycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXInLA0KCQknYm94JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucHJldmlld3N5c3RlbXMuYm94JywNCgkJJ2JveicJCQk9PiAnYXBwbGljYXRpb24veC1iemlwMicsDQoJCSdicGsnCQkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdidGlmJwkJCT0+ICdpbWFnZS9wcnMuYnRpZicsDQoJCSdieicJCQk9PiAnYXBwbGljYXRpb24veC1iemlwJywNCgkJJ2J6MicJCQk9PiAnYXBwbGljYXRpb24veC1iemlwMicsDQoJCSdjJwkJCQk9PiAndGV4dC94LWMnLA0KCQknYzExYW1jJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jbHVldHJ1c3QuY2FydG9tb2JpbGUtY29uZmlnJywNCgkJJ2MxMWFteicJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2x1ZXRydXN0LmNhcnRvbW9iaWxlLWNvbmZpZy1wa2cnLA0KCQknYzRkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cCcsDQoJCSdjNGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwJywNCgkJJ2M0ZycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmNsb25rLmM0Z3JvdXAnLA0KCQknYzRwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2xvbmsuYzRncm91cCcsDQoJCSdjNHUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jbG9uay5jNGdyb3VwJywNCgkJJ2NhYicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWNhYi1jb21wcmVzc2VkJywNCgkJJ2NhZicJCQk9PiAnYXVkaW8veC1jYWYnLA0KCQknY2FwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudGNwZHVtcC5wY2FwJywNCgkJJ2NhcicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmN1cmwuY2FyJywNCgkJJ2NhdCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXBraS5zZWNjYXQnLA0KCQknY2I3JwkJCT0+ICdhcHBsaWNhdGlvbi94LWNicicsDQoJCSdjYmEnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtY2JyJywNCgkJJ2NicicJCQk9PiAnYXBwbGljYXRpb24veC1jYnInLA0KCQknY2J0JwkJCT0+ICdhcHBsaWNhdGlvbi94LWNicicsDQoJCSdjYnonCQkJPT4gJ2FwcGxpY2F0aW9uL3gtY2JyJywNCgkJJ2NjJwkJCT0+ICd0ZXh0L3gtYycsDQoJCSdjY3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZGlyZWN0b3InLA0KCQknY2N4bWwnCQkJPT4gJ2FwcGxpY2F0aW9uL2NjeG1sK3htbCcsDQoJCSdjZGJjbXNnJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jb250YWN0LmNtc2cnLA0KCQknY2RmJwkJCT0+ICdhcHBsaWNhdGlvbi94LW5ldGNkZicsDQoJCSdjZGtleScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1lZGlhc3RhdGlvbi5jZGtleScsDQoJCSdjZG1pYScJCQk9PiAnYXBwbGljYXRpb24vY2RtaS1jYXBhYmlsaXR5JywNCgkJJ2NkbWljJwkJCT0+ICdhcHBsaWNhdGlvbi9jZG1pLWNvbnRhaW5lcicsDQoJCSdjZG1pZCcJCQk9PiAnYXBwbGljYXRpb24vY2RtaS1kb21haW4nLA0KCQknY2RtaW8nCQkJPT4gJ2FwcGxpY2F0aW9uL2NkbWktb2JqZWN0JywNCgkJJ2NkbWlxJwkJCT0+ICdhcHBsaWNhdGlvbi9jZG1pLXF1ZXVlJywNCgkJJ2NkeCcJCQk9PiAnY2hlbWljYWwveC1jZHgnLA0KCQknY2R4bWwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jaGVtZHJhdyt4bWwnLA0KCQknY2R5JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2luZGVyZWxsYScsDQoJCSdjZXInCQkJPT4gJ2FwcGxpY2F0aW9uL3BraXgtY2VydCcsDQoJCSdjZnMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtY2ZzLWNvbXByZXNzZWQnLA0KCQknY2dtJwkJCT0+ICdpbWFnZS9jZ20nLA0KCQknY2hhdCcJCQk9PiAnYXBwbGljYXRpb24veC1jaGF0JywNCgkJJ2NobScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWh0bWxoZWxwJywNCgkJJ2NocnQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rZGUua2NoYXJ0JywNCgkJJ2NpZicJCQk9PiAnY2hlbWljYWwveC1jaWYnLA0KCQknY2lpJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWNlcnRpZmljYXRlLWlzc3VlLWluaXRpYXRpb24nLA0KCQknY2lsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtYXJ0Z2FscnknLA0KCQknY2xhJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2xheW1vcmUnLA0KCQknY2xhc3MnCQkJPT4gJ2FwcGxpY2F0aW9uL2phdmEtdm0nLA0KCQknY2xraycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIua2V5Ym9hcmQnLA0KCQknY2xrcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmNyaWNrLmNsaWNrZXIucGFsZXR0ZScsDQoJCSdjbGt0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci50ZW1wbGF0ZScsDQoJCSdjbGt3JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlci53b3JkYmFuaycsDQoJCSdjbGt4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY3JpY2suY2xpY2tlcicsDQoJCSdjbHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbXNjbGlwJywNCgkJJ2NtYycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmNvc21vY2FsbGVyJywNCgkJJ2NtZGYnCQkJPT4gJ2NoZW1pY2FsL3gtY21kZicsDQoJCSdjbWwnCQkJPT4gJ2NoZW1pY2FsL3gtY21sJywNCgkJJ2NtcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnllbGxvd3JpdmVyLWN1c3RvbS1tZW51JywNCgkJJ2NteCcJCQk9PiAnaW1hZ2UveC1jbXgnLA0KCQknY29kJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucmltLmNvZCcsDQoJCSdjb20nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCcsDQoJCSdjb25mJwkJCT0+ICd0ZXh0L3BsYWluJywNCgkJJ2NwaW8nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtY3BpbycsDQoJCSdjcHAnCQkJPT4gJ3RleHQveC1jJywNCgkJJ2NwdCcJCQk9PiAnYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm8nLA0KCQknY3JkJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zY2FyZGZpbGUnLA0KCQknY3JsJwkJCT0+ICdhcHBsaWNhdGlvbi9wa2l4LWNybCcsDQoJCSdjcnQnCQkJPT4gJ2FwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0JywNCgkJJ2NyeXB0b25vdGUnCT0+ICdhcHBsaWNhdGlvbi92bmQucmlnLmNyeXB0b25vdGUnLA0KCQknY3NoJwkJCT0+ICdhcHBsaWNhdGlvbi94LWNzaCcsDQoJCSdjc21sJwkJCT0+ICdjaGVtaWNhbC94LWNzbWwnLA0KCQknY3NwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY29tbW9uc3BhY2UnLA0KCQknY3NzJwkJCT0+ICd0ZXh0L2NzcycsDQoJCSdjc3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZGlyZWN0b3InLA0KCQknY3N2JwkJCT0+ICd0ZXh0L2NzdicsDQoJCSdjdScJCQk9PiAnYXBwbGljYXRpb24vY3Utc2VlbWUnLA0KCQknY3VybCcJCQk9PiAndGV4dC92bmQuY3VybCcsDQoJCSdjd3cnCQkJPT4gJ2FwcGxpY2F0aW9uL3Bycy5jd3cnLA0KCQknY3h0JwkJCT0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywNCgkJJ2N4eCcJCQk9PiAndGV4dC94LWMnLA0KCQknZGFlJwkJCT0+ICdtb2RlbC92bmQuY29sbGFkYSt4bWwnLA0KCQknZGFmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLmRhZicsDQoJCSdkYXJ0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZGFydCcsDQoJCSdkYXRhbGVzcycJCT0+ICdhcHBsaWNhdGlvbi92bmQuZmRzbi5zZWVkJywNCgkJJ2Rhdm1vdW50JwkJPT4gJ2FwcGxpY2F0aW9uL2Rhdm1vdW50K3htbCcsDQoJCSdkYmsnCQkJPT4gJ2FwcGxpY2F0aW9uL2RvY2Jvb2sreG1sJywNCgkJJ2RjcicJCQk9PiAnYXBwbGljYXRpb24veC1kaXJlY3RvcicsDQoJCSdkY3VybCcJCQk9PiAndGV4dC92bmQuY3VybC5kY3VybCcsDQoJCSdkZDInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vbWEuZGQyK3htbCcsDQoJCSdkZGQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZGRkJywNCgkJJ2RlYicJCQk9PiAnYXBwbGljYXRpb24veC1kZWJpYW4tcGFja2FnZScsDQoJCSdkZWYnCQkJPT4gJ3RleHQvcGxhaW4nLA0KCQknZGVwbG95JwkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdkZXInCQkJPT4gJ2FwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0JywNCgkJJ2RmYWMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kcmVhbWZhY3RvcnknLA0KCQknZGdjJwkJCT0+ICdhcHBsaWNhdGlvbi94LWRnYy1jb21wcmVzc2VkJywNCgkJJ2RpYycJCQk9PiAndGV4dC94LWMnLA0KCQknZGlyJwkJCT0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywNCgkJJ2RpcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1vYml1cy5kaXMnLA0KCQknZGlzdCcJCQk9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywNCgkJJ2Rpc3R6JwkJCT0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLA0KCQknZGp2JwkJCT0+ICdpbWFnZS92bmQuZGp2dScsDQoJCSdkanZ1JwkJCT0+ICdpbWFnZS92bmQuZGp2dScsDQoJCSdkbGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCcsDQoJCSdkbWcnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtYXBwbGUtZGlza2ltYWdlJywNCgkJJ2RtcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcCcsDQoJCSdkbXMnCQkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdkbmEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kbmEnLA0KCQknZG9jJwkJCT0+ICdhcHBsaWNhdGlvbi9tc3dvcmQnLA0KCQknZG9jbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9lbmFibGVkLjEyJywNCgkJJ2RvY3gnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JywNCgkJJ2RvdCcJCQk9PiAnYXBwbGljYXRpb24vbXN3b3JkJywNCgkJJ2RvdG0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMicsDQoJCSdkb3R4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC50ZW1wbGF0ZScsDQoJCSdkcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9zZ2kuZHAnLA0KCQknZHBnJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZHBncmFwaCcsDQoJCSdkcmEnCQkJPT4gJ2F1ZGlvL3ZuZC5kcmEnLA0KCQknZHNjJwkJCT0+ICd0ZXh0L3Bycy5saW5lcy50YWcnLA0KCQknZHNzYycJCQk9PiAnYXBwbGljYXRpb24vZHNzYytkZXInLA0KCQknZHRiJwkJCT0+ICdhcHBsaWNhdGlvbi94LWR0Ym9vayt4bWwnLA0KCQknZHRkJwkJCT0+ICdhcHBsaWNhdGlvbi94bWwtZHRkJywNCgkJJ2R0cycJCQk9PiAnYXVkaW8vdm5kLmR0cycsDQoJCSdkdHNoZCcJCQk9PiAnYXVkaW8vdm5kLmR0cy5oZCcsDQoJCSdkdW1wJwkJCT0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLA0KCQknZHZiJwkJCT0+ICd2aWRlby92bmQuZHZiLmZpbGUnLA0KCQknZHZpJwkJCT0+ICdhcHBsaWNhdGlvbi94LWR2aScsDQoJCSdkd2YnCQkJPT4gJ21vZGVsL3ZuZC5kd2YnLA0KCQknZHdnJwkJCT0+ICdpbWFnZS92bmQuZHdnJywNCgkJJ2R4ZicJCQk9PiAnaW1hZ2Uvdm5kLmR4ZicsDQoJCSdkeHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5keHAnLA0KCQknZHhyJwkJCT0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywNCgkJJ2VjZWxwNDgwMCcJCT0+ICdhdWRpby92bmQubnVlcmEuZWNlbHA0ODAwJywNCgkJJ2VjZWxwNzQ3MCcJCT0+ICdhdWRpby92bmQubnVlcmEuZWNlbHA3NDcwJywNCgkJJ2VjZWxwOTYwMCcJCT0+ICdhdWRpby92bmQubnVlcmEuZWNlbHA5NjAwJywNCgkJJ2VjbWEnCQkJPT4gJ2FwcGxpY2F0aW9uL2VjbWFzY3JpcHQnLA0KCQknZWRtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubm92YWRpZ20uZWRtJywNCgkJJ2VkeCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmVkeCcsDQoJCSdlZmlmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucGljc2VsJywNCgkJJ2VpNicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnBnLm9zYXNsaScsDQoJCSdlbGMnCQkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdlbWYnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbXNtZXRhZmlsZScsDQoJCSdlbWwnCQkJPT4gJ21lc3NhZ2UvcmZjODIyJywNCgkJJ2VtbWEnCQkJPT4gJ2FwcGxpY2F0aW9uL2VtbWEreG1sJywNCgkJJ2VteicJCQk9PiAnYXBwbGljYXRpb24veC1tc21ldGFmaWxlJywNCgkJJ2VvbCcJCQk9PiAnYXVkaW8vdm5kLmRpZ2l0YWwtd2luZHMnLA0KCQknZW90JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtZm9udG9iamVjdCcsDQoJCSdlcHMnCQkJPT4gJ2FwcGxpY2F0aW9uL3Bvc3RzY3JpcHQnLA0KCQknZXB1YicJCQk9PiAnYXBwbGljYXRpb24vZXB1Yit6aXAnLA0KCQknZXMzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZXN6aWdubzMreG1sJywNCgkJJ2VzYScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9zZ2kuc3Vic3lzdGVtJywNCgkJJ2VzZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmVwc29uLmVzZicsDQoJCSdldDMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5lc3ppZ25vMyt4bWwnLA0KCQknZXR4JwkJCT0+ICd0ZXh0L3gtc2V0ZXh0JywNCgkJJ2V2YScJCQk9PiAnYXBwbGljYXRpb24veC1ldmEnLA0KCQknZXZ5JwkJCT0+ICdhcHBsaWNhdGlvbi94LWVudm95JywNCgkJJ2V4ZScJCQk9PiAnYXBwbGljYXRpb24veC1tc2Rvd25sb2FkJywNCgkJJ2V4aScJCQk9PiAnYXBwbGljYXRpb24vZXhpJywNCgkJJ2V4dCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5vdmFkaWdtLmV4dCcsDQoJCSdleicJCQk9PiAnYXBwbGljYXRpb24vYW5kcmV3LWluc2V0JywNCgkJJ2V6MicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmV6cGl4LWFsYnVtJywNCgkJJ2V6MycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmV6cGl4LXBhY2thZ2UnLA0KCQknZicJCQkJPT4gJ3RleHQveC1mb3J0cmFuJywNCgkJJ2Y0dicJCQk9PiAndmlkZW8veC1mNHYnLA0KCQknZjc3JwkJCT0+ICd0ZXh0L3gtZm9ydHJhbicsDQoJCSdmOTAnCQkJPT4gJ3RleHQveC1mb3J0cmFuJywNCgkJJ2ZicycJCQk9PiAnaW1hZ2Uvdm5kLmZhc3RiaWRzaGVldCcsDQoJCSdmY2R0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYWRvYmUuZm9ybXNjZW50cmFsLmZjZHQnLA0KCQknZmNzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaXNhYy5mY3MnLA0KCQknZmRmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZmRmJywNCgkJJ2ZlX2xhdW5jaCcJCT0+ICdhcHBsaWNhdGlvbi92bmQuZGVub3ZvLmZjc2VsYXlvdXQtbGluaycsDQoJCSdmZzUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzZ3AnLA0KCQknZmdkJwkJCT0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywNCgkJJ2ZoJwkJCT0+ICdpbWFnZS94LWZyZWVoYW5kJywNCgkJJ2ZoNCcJCQk9PiAnaW1hZ2UveC1mcmVlaGFuZCcsDQoJCSdmaDUnCQkJPT4gJ2ltYWdlL3gtZnJlZWhhbmQnLA0KCQknZmg3JwkJCT0+ICdpbWFnZS94LWZyZWVoYW5kJywNCgkJJ2ZoYycJCQk9PiAnaW1hZ2UveC1mcmVlaGFuZCcsDQoJCSdmaWcnCQkJPT4gJ2FwcGxpY2F0aW9uL3gteGZpZycsDQoJCSdmbGFjJwkJCT0+ICdhdWRpby94LWZsYWMnLA0KCQknZmxpJwkJCT0+ICd2aWRlby94LWZsaScsDQoJCSdmbG8nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmZsbycsDQoJCSdmbHYnCQkJPT4gJ3ZpZGVvL3gtZmx2JywNCgkJJ2ZsdycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5raXZpbycsDQoJCSdmbHgnCQkJPT4gJ3RleHQvdm5kLmZtaS5mbGV4c3RvcicsDQoJCSdmbHknCQkJPT4gJ3RleHQvdm5kLmZseScsDQoJCSdmbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmZyYW1lbWFrZXInLA0KCQknZm5jJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZnJvZ2Fucy5mbmMnLA0KCQknZm9yJwkJCT0+ICd0ZXh0L3gtZm9ydHJhbicsDQoJCSdmcHgnCQkJPT4gJ2ltYWdlL3ZuZC5mcHgnLA0KCQknZnJhbWUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mcmFtZW1ha2VyJywNCgkJJ2ZzYycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmZzYy53ZWJsYXVuY2gnLA0KCQknZnN0JwkJCT0+ICdpbWFnZS92bmQuZnN0JywNCgkJJ2Z0YycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmZsdXh0aW1lLmNsaXAnLA0KCQknZnRpJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYW5zZXItd2ViLWZ1bmRzLXRyYW5zZmVyLWluaXRpYXRpb24nLA0KCQknZnZ0JwkJCT0+ICd2aWRlby92bmQuZnZ0JywNCgkJJ2Z4cCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFkb2JlLmZ4cCcsDQoJCSdmeHBsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYWRvYmUuZnhwJywNCgkJJ2Z6cycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmZ1enp5c2hlZXQnLA0KCQknZzJ3JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2VvcGxhbicsDQoJCSdnMycJCQk9PiAnaW1hZ2UvZzNmYXgnLA0KCQknZzN3JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2Vvc3BhY2UnLA0KCQknZ2FjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWFjY291bnQnLA0KCQknZ2FtJwkJCT0+ICdhcHBsaWNhdGlvbi94LXRhZHMnLA0KCQknZ2JyJwkJCT0+ICdhcHBsaWNhdGlvbi9ycGtpLWdob3N0YnVzdGVycycsDQoJCSdnY2EnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZ2NhLWNvbXByZXNzZWQnLA0KCQknZ2RsJwkJCT0+ICdtb2RlbC92bmQuZ2RsJywNCgkJJ2dlbycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmR5bmFnZW8nLA0KCQknZ2V4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXInLA0KCQknZ2diJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEuZmlsZScsDQoJCSdnZ3MnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5nZW9nZWJyYS5zbGlkZXMnLA0KCQknZ2d0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2VvZ2VicmEudG9vbCcsDQoJCSdnaGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaGVscCcsDQoJCSdnaWYnCQkJPT4gJ2ltYWdlL2dpZicsDQoJCSdnaW0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtaWRlbnRpdHktbWVzc2FnZScsDQoJCSdnbWwnCQkJPT4gJ2FwcGxpY2F0aW9uL2dtbCt4bWwnLA0KCQknZ214JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ214JywNCgkJJ2dudW1lcmljJwkJPT4gJ2FwcGxpY2F0aW9uL3gtZ251bWVyaWMnLA0KCQknZ3BoJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZmxvZ3JhcGhpdCcsDQoJCSdncHgnCQkJPT4gJ2FwcGxpY2F0aW9uL2dweCt4bWwnLA0KCQknZ3FmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ3JhZmVxJywNCgkJJ2dxcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmdyYWZlcScsDQoJCSdncmFtJwkJCT0+ICdhcHBsaWNhdGlvbi9zcmdzJywNCgkJJ2dyYW1wcycJCT0+ICdhcHBsaWNhdGlvbi94LWdyYW1wcy14bWwnLA0KCQknZ3JlJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ2VvbWV0cnktZXhwbG9yZXInLA0KCQknZ3J2JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLWluamVjdG9yJywNCgkJJ2dyeG1sJwkJCT0+ICdhcHBsaWNhdGlvbi9zcmdzK3htbCcsDQoJCSdnc2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC1naG9zdHNjcmlwdCcsDQoJCSdndGFyJwkJCT0+ICdhcHBsaWNhdGlvbi94LWd0YXInLA0KCQknZ3RtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXRvb2wtbWVzc2FnZScsDQoJCSdndHcnCQkJPT4gJ21vZGVsL3ZuZC5ndHcnLA0KCQknZ3YnCQkJPT4gJ3RleHQvdm5kLmdyYXBodml6JywNCgkJJ2d4ZicJCQk9PiAnYXBwbGljYXRpb24vZ3hmJywNCgkJJ2d4dCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmdlb25leHQnLA0KCQknaCcJCQkJPT4gJ3RleHQveC1jJywNCgkJJ2gyNjEnCQkJPT4gJ3ZpZGVvL2gyNjEnLA0KCQknaDI2MycJCQk9PiAndmlkZW8vaDI2MycsDQoJCSdoMjY0JwkJCT0+ICd2aWRlby9oMjY0JywNCgkJJ2hhbCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhhbCt4bWwnLA0KCQknaGJjaScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhiY2knLA0KCQknaGRmJwkJCT0+ICdhcHBsaWNhdGlvbi94LWhkZicsDQoJCSdoaCcJCQk9PiAndGV4dC94LWMnLA0KCQknaGxwJwkJCT0+ICdhcHBsaWNhdGlvbi93aW5obHAnLA0KCQknaHBnbCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhwLWhwZ2wnLA0KCQknaHBpZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhwLWhwaWQnLA0KCQknaHBzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaHAtaHBzJywNCgkJJ2hxeCcJCQk9PiAnYXBwbGljYXRpb24vbWFjLWJpbmhleDQwJywNCgkJJ2h0a2UnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rZW5hbWVhYXBwJywNCgkJJ2h0bScJCQk9PiAndGV4dC9odG1sJywNCgkJJ2h0bWwnCQkJPT4gJ3RleHQvaHRtbCcsDQoJCSdodmQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtZGljJywNCgkJJ2h2cCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnlhbWFoYS5odi12b2ljZScsDQoJCSdodnMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC55YW1haGEuaHYtc2NyaXB0JywNCgkJJ2kyZycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmludGVyZ2VvJywNCgkJJ2ljYycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmljY3Byb2ZpbGUnLA0KCQknaWNlJwkJCT0+ICd4LWNvbmZlcmVuY2UveC1jb29sdGFsaycsDQoJCSdpY20nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pY2Nwcm9maWxlJywNCgkJJ2ljbycJCQk9PiAnaW1hZ2UveC1pY29uJywNCgkJJ2ljcycJCQk9PiAndGV4dC9jYWxlbmRhcicsDQoJCSdpZWYnCQkJPT4gJ2ltYWdlL2llZicsDQoJCSdpZmInCQkJPT4gJ3RleHQvY2FsZW5kYXInLA0KCQknaWZtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybWRhdGEnLA0KCQknaWdlcycJCQk9PiAnbW9kZWwvaWdlcycsDQoJCSdpZ2wnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pZ2xvYWRlcicsDQoJCSdpZ20nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pbnNvcnMuaWdtJywNCgkJJ2lncycJCQk9PiAnbW9kZWwvaWdlcycsDQoJCSdpZ3gnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5taWNyb2dyYWZ4LmlneCcsDQoJCSdpaWYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zaGFuYS5pbmZvcm1lZC5pbnRlcmNoYW5nZScsDQoJCSdpbXAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hY2NwYWMuc2ltcGx5LmltcCcsDQoJCSdpbXMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1pbXMnLA0KCQknaW4nCQkJPT4gJ3RleHQvcGxhaW4nLA0KCQknaW5rJwkJCT0+ICdhcHBsaWNhdGlvbi9pbmttbCt4bWwnLA0KCQknaW5rbWwnCQkJPT4gJ2FwcGxpY2F0aW9uL2lua21sK3htbCcsDQoJCSdpbnN0YWxsJwkJPT4gJ2FwcGxpY2F0aW9uL3gtaW5zdGFsbC1pbnN0cnVjdGlvbnMnLA0KCQknaW90YScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFzdHJhZWEtc29mdHdhcmUuaW90YScsDQoJCSdpcGZpeCcJCQk9PiAnYXBwbGljYXRpb24vaXBmaXgnLA0KCQknaXBrJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQucGFja2FnZScsDQoJCSdpcm0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pYm0ucmlnaHRzLW1hbmFnZW1lbnQnLA0KCQknaXJwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaXJlcG9zaXRvcnkucGFja2FnZSt4bWwnLA0KCQknaXNvJwkJCT0+ICdhcHBsaWNhdGlvbi94LWlzbzk2NjAtaW1hZ2UnLA0KCQknaXRwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc2hhbmEuaW5mb3JtZWQuZm9ybXRlbXBsYXRlJywNCgkJJ2l2cCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmltbWVydmlzaW9uLWl2cCcsDQoJCSdpdnUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pbW1lcnZpc2lvbi1pdnUnLA0KCQknamFkJwkJCT0+ICd0ZXh0L3ZuZC5zdW4uajJtZS5hcHAtZGVzY3JpcHRvcicsDQoJCSdqYW0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5qYW0nLA0KCQknamFyJwkJCT0+ICdhcHBsaWNhdGlvbi9qYXZhLWFyY2hpdmUnLA0KCQknamF2YScJCQk9PiAndGV4dC94LWphdmEtc291cmNlJywNCgkJJ2ppc3AnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5qaXNwJywNCgkJJ2psdCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhwLWpseXQnLA0KCQknam5scCcJCQk9PiAnYXBwbGljYXRpb24veC1qYXZhLWpubHAtZmlsZScsDQoJCSdqb2RhJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuam9vc3Quam9kYS1hcmNoaXZlJywNCgkJJ2pwZScJCQk9PiAnaW1hZ2UvanBlZycsDQoJCSdqcGVnJwkJCT0+ICdpbWFnZS9qcGVnJywNCgkJJ2pwZycJCQk9PiAnaW1hZ2UvanBlZycsDQoJCSdqcGdtJwkJCT0+ICd2aWRlby9qcG0nLA0KCQknanBndicJCQk9PiAndmlkZW8vanBlZycsDQoJCSdqcG0nCQkJPT4gJ3ZpZGVvL2pwbScsDQoJCSdqcycJCQk9PiAndGV4dC9qYXZhc2NyaXB0JywNCgkJJ2pzb24nCQkJPT4gJ2FwcGxpY2F0aW9uL2pzb24nLA0KCQknanNvbm1sJwkJPT4gJ2FwcGxpY2F0aW9uL2pzb25tbCtqc29uJywNCgkJJ2p4bCcJCQk9PiAnaW1hZ2UvanhsJywNCgkJJ2thcicJCQk9PiAnYXVkaW8vbWlkaScsDQoJCSdrYXJib24nCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5rYXJib24nLA0KCQkna2ZvJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQua2RlLmtmb3JtdWxhJywNCgkJJ2tpYScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtpZHNwaXJhdGlvbicsDQoJCSdrbWwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsDQoJCSdrbXonCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JywNCgkJJ2tuZScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtpbmFyJywNCgkJJ2tucCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtpbmFyJywNCgkJJ2tvbicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5rb250b3VyJywNCgkJJ2twcicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyJywNCgkJJ2twdCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5rcHJlc2VudGVyJywNCgkJJ2tweHgnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kcy1rZXlwb2ludCcsDQoJCSdrc3AnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rZGUua3NwcmVhZCcsDQoJCSdrdHInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rYWhvb3R6JywNCgkJJ2t0eCcJCQk9PiAnaW1hZ2Uva3R4JywNCgkJJ2t0eicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmthaG9vdHonLA0KCQkna3dkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQua2RlLmt3b3JkJywNCgkJJ2t3dCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtkZS5rd29yZCcsDQoJCSdsYXN4bWwnCQk9PiAnYXBwbGljYXRpb24vdm5kLmxhcy5sYXMreG1sJywNCgkJJ2xhdGV4JwkJCT0+ICdhcHBsaWNhdGlvbi94LWxhdGV4JywNCgkJJ2xiZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmxsYW1hZ3JhcGhpY3MubGlmZS1iYWxhbmNlLmRlc2t0b3AnLA0KCQknbGJlJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubGxhbWFncmFwaGljcy5saWZlLWJhbGFuY2UuZXhjaGFuZ2UreG1sJywNCgkJJ2xlcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmhoZS5sZXNzb24tcGxheWVyJywNCgkJJ2xoYScJCQk9PiAnYXBwbGljYXRpb24veC1semgtY29tcHJlc3NlZCcsDQoJCSdsaW5rNjYnCQk9PiAnYXBwbGljYXRpb24vdm5kLnJvdXRlNjYubGluazY2K3htbCcsDQoJCSdsaXN0JwkJCT0+ICd0ZXh0L3BsYWluJywNCgkJJ2xpc3QzODIwJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pYm0ubW9kY2FwJywNCgkJJ2xpc3RhZnAnCQk9PiAnYXBwbGljYXRpb24vdm5kLmlibS5tb2RjYXAnLA0KCQknbG5rJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zLXNob3J0Y3V0JywNCgkJJ2xvZycJCQk9PiAndGV4dC9wbGFpbicsDQoJCSdsb3N0eG1sJwkJPT4gJ2FwcGxpY2F0aW9uL2xvc3QreG1sJywNCgkJJ2xyZicJCQk9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywNCgkJJ2xybScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWxybScsDQoJCSdsdGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mcm9nYW5zLmx0ZicsDQoJCSdsdnAnCQkJPT4gJ2F1ZGlvL3ZuZC5sdWNlbnQudm9pY2UnLA0KCQknbHdwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubG90dXMtd29yZHBybycsDQoJCSdsemgnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbHpoLWNvbXByZXNzZWQnLA0KCQknbTEzJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zbWVkaWF2aWV3JywNCgkJJ20xNCcJCQk9PiAnYXBwbGljYXRpb24veC1tc21lZGlhdmlldycsDQoJCSdtMXYnCQkJPT4gJ3ZpZGVvL21wZWcnLA0KCQknbTIxJwkJCT0+ICdhcHBsaWNhdGlvbi9tcDIxJywNCgkJJ20yYScJCQk9PiAnYXVkaW8vbXBlZycsDQoJCSdtMnQnCQkJPT4gJ3ZpZGVvL21wMnQnLA0KCQknbTJ0cycJCQk9PiAndmlkZW8vbXAydCcsDQoJCSdtMnYnCQkJPT4gJ3ZpZGVvL21wZWcnLA0KCQknbTNhJwkJCT0+ICdhdWRpby9tcGVnJywNCgkJJ20zdScJCQk9PiAnYXVkaW8veC1tcGVndXJsJywNCgkJJ20zdTgnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsJywNCgkJJ200YScJCQk9PiAnYXVkaW8vbXA0JywNCgkJJ200dScJCQk9PiAndmlkZW8vdm5kLm1wZWd1cmwnLA0KCQknbTR2JwkJCT0+ICd2aWRlby94LW00dicsDQoJCSdtYScJCQk9PiAnYXBwbGljYXRpb24vbWF0aGVtYXRpY2EnLA0KCQknbWFkcycJCQk9PiAnYXBwbGljYXRpb24vbWFkcyt4bWwnLA0KCQknbWFnJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZWNvd2luLmNoYXJ0JywNCgkJJ21ha2VyJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZnJhbWVtYWtlcicsDQoJCSdtYW4nCQkJPT4gJ3RleHQvdHJvZmYnLA0KCQknbWFyJwkJCT0+ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLA0KCQknbWF0aG1sJwkJPT4gJ2FwcGxpY2F0aW9uL21hdGhtbCt4bWwnLA0KCQknbWInCQkJPT4gJ2FwcGxpY2F0aW9uL21hdGhlbWF0aWNhJywNCgkJJ21iaycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1vYml1cy5tYmsnLA0KCQknbWJveCcJCQk9PiAnYXBwbGljYXRpb24vbWJveCcsDQoJCSdtYzEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tZWRjYWxjZGF0YScsDQoJCSdtY2QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tY2QnLA0KCQknbWN1cmwnCQkJPT4gJ3RleHQvdm5kLmN1cmwubWN1cmwnLA0KCQknbWRiJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zYWNjZXNzJywNCgkJJ21kaScJCQk9PiAnaW1hZ2Uvdm5kLm1zLW1vZGknLA0KCQknbWUnCQkJPT4gJ3RleHQvdHJvZmYnLA0KCQknbWVzaCcJCQk9PiAnbW9kZWwvbWVzaCcsDQoJCSdtZXRhNCcJCQk9PiAnYXBwbGljYXRpb24vbWV0YWxpbms0K3htbCcsDQoJCSdtZXRhbGluaycJCT0+ICdhcHBsaWNhdGlvbi9tZXRhbGluayt4bWwnLA0KCQknbWV0cycJCQk9PiAnYXBwbGljYXRpb24vbWV0cyt4bWwnLA0KCQknbWZtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubWZtcCcsDQoJCSdtZnQnCQkJPT4gJ2FwcGxpY2F0aW9uL3Jwa2ktbWFuaWZlc3QnLA0KCQknbWdwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub3NnZW8ubWFwZ3VpZGUucGFja2FnZScsDQoJCSdtZ3onCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5wcm90ZXVzLm1hZ2F6aW5lJywNCgkJJ21pZCcJCQk9PiAnYXVkaW8vbWlkaScsDQoJCSdtaWRpJwkJCT0+ICdhdWRpby9taWRpJywNCgkJJ21pZScJCQk9PiAnYXBwbGljYXRpb24veC1taWUnLA0KCQknbWlmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubWlmJywNCgkJJ21pbWUnCQkJPT4gJ21lc3NhZ2UvcmZjODIyJywNCgkJJ21qMicJCQk9PiAndmlkZW8vbWoyJywNCgkJJ21qcDInCQkJPT4gJ3ZpZGVvL21qMicsDQoJCSdtanMnCQkJPT4gJ3RleHQvamF2YXNjcmlwdCcsDQoJCSdtazNkJwkJCT0+ICd2aWRlby94LW1hdHJvc2thJywNCgkJJ21rYScJCQk9PiAnYXVkaW8veC1tYXRyb3NrYScsDQoJCSdta3MnCQkJPT4gJ3ZpZGVvL3gtbWF0cm9za2EnLA0KCQknbWt2JwkJCT0+ICd2aWRlby94LW1hdHJvc2thJywNCgkJJ21scCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRvbGJ5Lm1scCcsDQoJCSdtbWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jaGlwbnV0cy5rYXJhb2tlLW1tZCcsDQoJCSdtbWYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zbWFmJywNCgkJJ21tcicJCQk9PiAnaW1hZ2Uvdm5kLmZ1aml4ZXJveC5lZG1pY3MtbW1yJywNCgkJJ21uZycJCQk9PiAndmlkZW8veC1tbmcnLA0KCQknbW55JwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zbW9uZXknLA0KCQknbW9iaScJCQk9PiAnYXBwbGljYXRpb24veC1tb2JpcG9ja2V0LWVib29rJywNCgkJJ21vZHMnCQkJPT4gJ2FwcGxpY2F0aW9uL21vZHMreG1sJywNCgkJJ21vdicJCQk9PiAndmlkZW8vcXVpY2t0aW1lJywNCgkJJ21vdmllJwkJCT0+ICd2aWRlby94LXNnaS1tb3ZpZScsDQoJCSdtcDInCQkJPT4gJ2F1ZGlvL21wZWcnLA0KCQknbXAyMScJCQk9PiAnYXBwbGljYXRpb24vbXAyMScsDQoJCSdtcDJhJwkJCT0+ICdhdWRpby9tcGVnJywNCgkJJ21wMycJCQk9PiAnYXVkaW8vbXBlZycsDQoJCSdtcDQnCQkJPT4gJ3ZpZGVvL21wNCcsDQoJCSdtcDRhJwkJCT0+ICdhdWRpby9tcDQnLA0KCQknbXA0cycJCQk9PiAnYXBwbGljYXRpb24vbXA0JywNCgkJJ21wNHYnCQkJPT4gJ3ZpZGVvL21wNCcsDQoJCSdtcGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tb3BodW4uY2VydGlmaWNhdGUnLA0KCQknbXBlJwkJCT0+ICd2aWRlby9tcGVnJywNCgkJJ21wZWcnCQkJPT4gJ3ZpZGVvL21wZWcnLA0KCQknbXBnJwkJCT0+ICd2aWRlby9tcGVnJywNCgkJJ21wZzQnCQkJPT4gJ3ZpZGVvL21wNCcsDQoJCSdtcGdhJwkJCT0+ICdhdWRpby9tcGVnJywNCgkJJ21wa2cnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hcHBsZS5pbnN0YWxsZXIreG1sJywNCgkJJ21wbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmJsdWVpY2UubXVsdGlwYXNzJywNCgkJJ21wbicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1vcGh1bi5hcHBsaWNhdGlvbicsDQoJCSdtcHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wcm9qZWN0JywNCgkJJ21wdCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXByb2plY3QnLA0KCQknbXB5JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaWJtLm1pbmlwYXknLA0KCQknbXF5JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1xeScsDQoJCSdtcmMnCQkJPT4gJ2FwcGxpY2F0aW9uL21hcmMnLA0KCQknbXJjeCcJCQk9PiAnYXBwbGljYXRpb24vbWFyY3htbCt4bWwnLA0KCQknbXMnCQkJPT4gJ3RleHQvdHJvZmYnLA0KCQknbXNjbWwnCQkJPT4gJ2FwcGxpY2F0aW9uL21lZGlhc2VydmVyY29udHJvbCt4bWwnLA0KCQknbXNlZWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mZHNuLm1zZWVkJywNCgkJJ21zZXEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tc2VxJywNCgkJJ21zZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmVwc29uLm1zZicsDQoJCSdtc2gnCQkJPT4gJ21vZGVsL21lc2gnLA0KCQknbXNpJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnLA0KCQknbXNsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLm1zbCcsDQoJCSdtc3R5JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXV2ZWUuc3R5bGUnLA0KCQknbXRzJwkJCT0+ICd2aWRlby9tcDJ0JywNCgkJJ211cycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm11c2ljaWFuJywNCgkJJ211c2ljeG1sJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5yZWNvcmRhcmUubXVzaWN4bWwreG1sJywNCgkJJ212YicJCQk9PiAnYXBwbGljYXRpb24veC1tc21lZGlhdmlldycsDQoJCSdtd2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tZmVyJywNCgkJJ214ZicJCQk9PiAnYXBwbGljYXRpb24vbXhmJywNCgkJJ214bCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnJlY29yZGFyZS5tdXNpY3htbCcsDQoJCSdteG1sJwkJCT0+ICdhcHBsaWNhdGlvbi94dit4bWwnLA0KCQknbXhzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudHJpc2NhcGUubXhzJywNCgkJJ214dScJCQk9PiAndmlkZW8vdm5kLm1wZWd1cmwnLA0KCQknbi1nYWdlJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ub2tpYS5uLWdhZ2Uuc3ltYmlhbi5pbnN0YWxsJywNCgkJJ24zJwkJCT0+ICd0ZXh0L24zJywNCgkJJ25iJwkJCT0+ICdhcHBsaWNhdGlvbi9tYXRoZW1hdGljYScsDQoJCSduYnAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC53b2xmcmFtLnBsYXllcicsDQoJCSduYycJCQk9PiAnYXBwbGljYXRpb24veC1uZXRjZGYnLA0KCQknbmN4JwkJCT0+ICdhcHBsaWNhdGlvbi94LWR0Ym5jeCt4bWwnLA0KCQknbmZvJwkJCT0+ICd0ZXh0L3gtbmZvJywNCgkJJ25nZGF0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubm9raWEubi1nYWdlLmRhdGEnLA0KCQknbml0ZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5pdGYnLA0KCQknbmx1JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubmV1cm9sYW5ndWFnZS5ubHUnLA0KCQknbm1sJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZW5saXZlbicsDQoJCSdubmQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ub2JsZW5ldC1kaXJlY3RvcnknLA0KCQknbm5zJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubm9ibGVuZXQtc2VhbGVyJywNCgkJJ25udycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5vYmxlbmV0LXdlYicsDQoJCSducHgnCQkJPT4gJ2ltYWdlL3ZuZC5uZXQtZnB4JywNCgkJJ25zYycJCQk9PiAnYXBwbGljYXRpb24veC1jb25mZXJlbmNlJywNCgkJJ25zZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmxvdHVzLW5vdGVzJywNCgkJJ250ZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5pdGYnLA0KCQknbnpiJwkJCT0+ICdhcHBsaWNhdGlvbi94LW56YicsDQoJCSdvYTInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMicsDQoJCSdvYTMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzMycsDQoJCSdvYXMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppdHN1Lm9hc3lzJywNCgkJJ29iZCcJCQk9PiAnYXBwbGljYXRpb24veC1tc2JpbmRlcicsDQoJCSdvYmonCQkJPT4gJ2FwcGxpY2F0aW9uL3gtdGdpZicsDQoJCSdvZGEnCQkJPT4gJ2FwcGxpY2F0aW9uL29kYScsDQoJCSdvZGInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZGF0YWJhc2UnLA0KCQknb2RjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmNoYXJ0JywNCgkJJ29kZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5mb3JtdWxhJywNCgkJJ29kZnQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZm9ybXVsYS10ZW1wbGF0ZScsDQoJCSdvZGcnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MnLA0KCQknb2RpJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LmltYWdlJywNCgkJJ29kbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC50ZXh0LW1hc3RlcicsDQoJCSdvZHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uJywNCgkJJ29kcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCcsDQoJCSdvZHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dCcsDQoJCSdvZ2EnCQkJPT4gJ2F1ZGlvL29nZycsDQoJCSdvZ2cnCQkJPT4gJ2F1ZGlvL29nZycsDQoJCSdvZ3YnCQkJPT4gJ3ZpZGVvL29nZycsDQoJCSdvZ3gnCQkJPT4gJ2FwcGxpY2F0aW9uL29nZycsDQoJCSdvbWRvYycJCQk9PiAnYXBwbGljYXRpb24vb21kb2MreG1sJywNCgkJJ29uZXBrZycJCT0+ICdhcHBsaWNhdGlvbi9vbmVub3RlJywNCgkJJ29uZXRtcCcJCT0+ICdhcHBsaWNhdGlvbi9vbmVub3RlJywNCgkJJ29uZXRvYycJCT0+ICdhcHBsaWNhdGlvbi9vbmVub3RlJywNCgkJJ29uZXRvYzInCQk9PiAnYXBwbGljYXRpb24vb25lbm90ZScsDQoJCSdvcGYnCQkJPT4gJ2FwcGxpY2F0aW9uL29lYnBzLXBhY2thZ2UreG1sJywNCgkJJ29wbWwnCQkJPT4gJ3RleHQveC1vcG1sJywNCgkJJ29wcmMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5wYWxtJywNCgkJJ29wdXMnCQkJPT4gJ2F1ZGlvL29nZycsDQoJCSdvcmcnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5sb3R1cy1vcmdhbml6ZXInLA0KCQknb3NmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQueWFtYWhhLm9wZW5zY29yZWZvcm1hdCcsDQoJCSdvc2ZwdmcnCQk9PiAnYXBwbGljYXRpb24vdm5kLnlhbWFoYS5vcGVuc2NvcmVmb3JtYXQub3NmcHZnK3htbCcsDQoJCSdvdGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuY2hhcnQtdGVtcGxhdGUnLA0KCQknb3RmJwkJCT0+ICdmb250L290ZicsDQoJCSdvdGcnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuZ3JhcGhpY3MtdGVtcGxhdGUnLA0KCQknb3RoJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQtd2ViJywNCgkJJ290aScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5pbWFnZS10ZW1wbGF0ZScsDQoJCSdvdHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQucHJlc2VudGF0aW9uLXRlbXBsYXRlJywNCgkJJ290cycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldC10ZW1wbGF0ZScsDQoJCSdvdHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQudGV4dC10ZW1wbGF0ZScsDQoJCSdveHBzJwkJCT0+ICdhcHBsaWNhdGlvbi9veHBzJywNCgkJJ294dCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9wZW5vZmZpY2VvcmcuZXh0ZW5zaW9uJywNCgkJJ3AnCQkJCT0+ICd0ZXh0L3gtcGFzY2FsJywNCgkJJ3AxMCcJCQk9PiAnYXBwbGljYXRpb24vcGtjczEwJywNCgkJJ3AxMicJCQk9PiAnYXBwbGljYXRpb24veC1wa2NzMTInLA0KCQkncDdiJwkJCT0+ICdhcHBsaWNhdGlvbi94LXBrY3M3LWNlcnRpZmljYXRlcycsDQoJCSdwN2MnCQkJPT4gJ2FwcGxpY2F0aW9uL3BrY3M3LW1pbWUnLA0KCQkncDdtJwkJCT0+ICdhcHBsaWNhdGlvbi9wa2NzNy1taW1lJywNCgkJJ3A3cicJCQk9PiAnYXBwbGljYXRpb24veC1wa2NzNy1jZXJ0cmVxcmVzcCcsDQoJCSdwN3MnCQkJPT4gJ2FwcGxpY2F0aW9uL3BrY3M3LXNpZ25hdHVyZScsDQoJCSdwOCcJCQk9PiAnYXBwbGljYXRpb24vcGtjczgnLA0KCQkncGFzJwkJCT0+ICd0ZXh0L3gtcGFzY2FsJywNCgkJJ3BhdycJCQk9PiAnYXBwbGljYXRpb24vdm5kLnBhd2FhZmlsZScsDQoJCSdwYmQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5wb3dlcmJ1aWxkZXI2JywNCgkJJ3BibScJCQk9PiAnaW1hZ2UveC1wb3J0YWJsZS1iaXRtYXAnLA0KCQkncGNhcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnRjcGR1bXAucGNhcCcsDQoJCSdwY2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC1wY2YnLA0KCQkncGNsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaHAtcGNsJywNCgkJJ3BjbHhsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaHAtcGNseGwnLA0KCQkncGN0JwkJCT0+ICdpbWFnZS94LXBpY3QnLA0KCQkncGN1cmwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5jdXJsLnBjdXJsJywNCgkJJ3BjeCcJCQk9PiAnaW1hZ2UveC1wY3gnLA0KCQkncGRiJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucGFsbScsDQoJCSdwZGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3BkZicsDQoJCSdwZmEnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC10eXBlMScsDQoJCSdwZmInCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC10eXBlMScsDQoJCSdwZm0nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC10eXBlMScsDQoJCSdwZnInCQkJPT4gJ2FwcGxpY2F0aW9uL2ZvbnQtdGRwZnInLA0KCQkncGZ4JwkJCT0+ICdhcHBsaWNhdGlvbi94LXBrY3MxMicsDQoJCSdwZ20nCQkJPT4gJ2ltYWdlL3gtcG9ydGFibGUtZ3JheW1hcCcsDQoJCSdwZ24nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtY2hlc3MtcGduJywNCgkJJ3BncCcJCQk9PiAnYXBwbGljYXRpb24vcGdwLWVuY3J5cHRlZCcsDQoJCSdwaWMnCQkJPT4gJ2ltYWdlL3gtcGljdCcsDQoJCSdwa2cnCQkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdwa2knCQkJPT4gJ2FwcGxpY2F0aW9uL3BraXhjbXAnLA0KCQkncGtpcGF0aCcJCT0+ICdhcHBsaWNhdGlvbi9wa2l4LXBraXBhdGgnLA0KCQkncGxiJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuM2dwcC5waWMtYnctbGFyZ2UnLA0KCQkncGxjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLnBsYycsDQoJCSdwbGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5wb2NrZXRsZWFybicsDQoJCSdwbHMnCQkJPT4gJ2FwcGxpY2F0aW9uL3Bscyt4bWwnLA0KCQkncG1sJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY3RjLXBvc21sJywNCgkJJ3BuZycJCQk9PiAnaW1hZ2UvcG5nJywNCgkJJ3BubScJCQk9PiAnaW1hZ2UveC1wb3J0YWJsZS1hbnltYXAnLA0KCQkncG9ydHBrZycJCT0+ICdhcHBsaWNhdGlvbi92bmQubWFjcG9ydHMucG9ydHBrZycsDQoJCSdwb3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JywNCgkJJ3BvdG0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvZW5hYmxlZC4xMicsDQoJCSdwb3R4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwudGVtcGxhdGUnLA0KCQkncHBhbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9lbmFibGVkLjEyJywNCgkJJ3BwZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmN1cHMtcHBkJywNCgkJJ3BwbScJCQk9PiAnaW1hZ2UveC1wb3J0YWJsZS1waXhtYXAnLA0KCQkncHBzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsDQoJCSdwcHNtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9lbmFibGVkLjEyJywNCgkJJ3Bwc3gnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cnLA0KCQkncHB0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsDQoJCSdwcHRtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9lbmFibGVkLjEyJywNCgkJJ3BwdHgnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLA0KCQkncHFhJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucGFsbScsDQoJCSdwcmMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbW9iaXBvY2tldC1lYm9vaycsDQoJCSdwcmUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5sb3R1cy1mcmVlbGFuY2UnLA0KCQkncHJmJwkJCT0+ICdhcHBsaWNhdGlvbi9waWNzLXJ1bGVzJywNCgkJJ3BzJwkJCT0+ICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JywNCgkJJ3BzYicJCQk9PiAnYXBwbGljYXRpb24vdm5kLjNncHAucGljLWJ3LXNtYWxsJywNCgkJJ3BzZCcJCQk9PiAnaW1hZ2Uvdm5kLmFkb2JlLnBob3Rvc2hvcCcsDQoJCSdwc2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC1saW51eC1wc2YnLA0KCQkncHNrY3htbCcJCT0+ICdhcHBsaWNhdGlvbi9wc2tjK3htbCcsDQoJCSdwdGlkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucHZpLnB0aWQxJywNCgkJJ3B1YicJCQk9PiAnYXBwbGljYXRpb24veC1tc3B1Ymxpc2hlcicsDQoJCSdwdmInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC4zZ3BwLnBpYy1idy12YXInLA0KCQkncHduJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuM20ucG9zdC1pdC1ub3RlcycsDQoJCSdweWEnCQkJPT4gJ2F1ZGlvL3ZuZC5tcy1wbGF5cmVhZHkubWVkaWEucHlhJywNCgkJJ3B5dicJCQk9PiAndmlkZW8vdm5kLm1zLXBsYXlyZWFkeS5tZWRpYS5weXYnLA0KCQkncWFtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZXBzb24ucXVpY2thbmltZScsDQoJCSdxYm8nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pbnR1LnFibycsDQoJCSdxZngnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pbnR1LnFmeCcsDQoJCSdxcHMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5wdWJsaXNoYXJlLWRlbHRhLXRyZWUnLA0KCQkncXQnCQkJPT4gJ3ZpZGVvL3F1aWNrdGltZScsDQoJCSdxd2QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdxd3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdxeGInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdxeGQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdxeGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdxeHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5xdWFyay5xdWFya3hwcmVzcycsDQoJCSdyYScJCQk9PiAnYXVkaW8veC1wbi1yZWFsYXVkaW8nLA0KCQkncmFtJwkJCT0+ICdhdWRpby94LXBuLXJlYWxhdWRpbycsDQoJCSdyYXInCQkJPT4gJ2FwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWQnLA0KCQkncmFzJwkJCT0+ICdpbWFnZS94LWNtdS1yYXN0ZXInLA0KCQkncmNwcm9maWxlJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5pcHVucGx1Z2dlZC5yY3Byb2ZpbGUnLA0KCQkncmRmJwkJCT0+ICdhcHBsaWNhdGlvbi9yZGYreG1sJywNCgkJJ3JkeicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRhdGEtdmlzaW9uLnJkeicsDQoJCSdyZXAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5idXNpbmVzc29iamVjdHMnLA0KCQkncmVzJwkJCT0+ICdhcHBsaWNhdGlvbi94LWR0YnJlc291cmNlK3htbCcsDQoJCSdyZ2InCQkJPT4gJ2ltYWdlL3gtcmdiJywNCgkJJ3JpZicJCQk9PiAnYXBwbGljYXRpb24vcmVnaW5mbyt4bWwnLA0KCQkncmlwJwkJCT0+ICdhdWRpby92bmQucmlwJywNCgkJJ3JpcycJCQk9PiAnYXBwbGljYXRpb24veC1yZXNlYXJjaC1pbmZvLXN5c3RlbXMnLA0KCQkncmwnCQkJPT4gJ2FwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzK3htbCcsDQoJCSdybGMnCQkJPT4gJ2ltYWdlL3ZuZC5mdWppeGVyb3guZWRtaWNzLXJsYycsDQoJCSdybGQnCQkJPT4gJ2FwcGxpY2F0aW9uL3Jlc291cmNlLWxpc3RzLWRpZmYreG1sJywNCgkJJ3JtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhJywNCgkJJ3JtaScJCQk9PiAnYXVkaW8vbWlkaScsDQoJCSdybXAnCQkJPT4gJ2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbicsDQoJCSdybXMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5qY3AuamF2YW1lLm1pZGxldC1ybXMnLA0KCQkncm12YicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnJuLXJlYWxtZWRpYS12YnInLA0KCQkncm5jJwkJCT0+ICdhcHBsaWNhdGlvbi9yZWxheC1uZy1jb21wYWN0LXN5bnRheCcsDQoJCSdyb2EnCQkJPT4gJ2FwcGxpY2F0aW9uL3Jwa2ktcm9hJywNCgkJJ3JvZmYnCQkJPT4gJ3RleHQvdHJvZmYnLA0KCQkncnA5JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY2xvYW50by5ycDknLA0KCQkncnBzcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldHMnLA0KCQkncnBzdCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm5va2lhLnJhZGlvLXByZXNldCcsDQoJCSdycScJCQk9PiAnYXBwbGljYXRpb24vc3BhcnFsLXF1ZXJ5JywNCgkJJ3JzJwkJCT0+ICdhcHBsaWNhdGlvbi9ybHMtc2VydmljZXMreG1sJywNCgkJJ3JzZCcJCQk9PiAnYXBwbGljYXRpb24vcnNkK3htbCcsDQoJCSdyc3MnCQkJPT4gJ2FwcGxpY2F0aW9uL3Jzcyt4bWwnLA0KCQkncnRmJwkJCT0+ICdhcHBsaWNhdGlvbi9ydGYnLA0KCQkncnR4JwkJCT0+ICd0ZXh0L3JpY2h0ZXh0JywNCgkJJ3MnCQkJCT0+ICd0ZXh0L3gtYXNtJywNCgkJJ3MzbScJCQk9PiAnYXVkaW8vczNtJywNCgkJJ3NhZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLWF1ZGlvJywNCgkJJ3NibWwnCQkJPT4gJ2FwcGxpY2F0aW9uL3NibWwreG1sJywNCgkJJ3NjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaWJtLnNlY3VyZS1jb250YWluZXInLA0KCQknc2NkJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zc2NoZWR1bGUnLA0KCQknc2NtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubG90dXMtc2NyZWVuY2FtJywNCgkJJ3NjcScJCQk9PiAnYXBwbGljYXRpb24vc2N2cC1jdi1yZXF1ZXN0JywNCgkJJ3NjcycJCQk9PiAnYXBwbGljYXRpb24vc2N2cC1jdi1yZXNwb25zZScsDQoJCSdzY3VybCcJCQk9PiAndGV4dC92bmQuY3VybC5zY3VybCcsDQoJCSdzZGEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uZHJhdycsDQoJCSdzZGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uY2FsYycsDQoJCSdzZGQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24uaW1wcmVzcycsDQoJCSdzZGtkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc29sZW50LnNka20reG1sJywNCgkJJ3Nka20nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zb2xlbnQuc2RrbSt4bWwnLA0KCQknc2RwJwkJCT0+ICdhcHBsaWNhdGlvbi9zZHAnLA0KCQknc2R3JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLndyaXRlcicsDQoJCSdzZWUnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zZWVtYWlsJywNCgkJJ3NlZWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mZHNuLnNlZWQnLA0KCQknc2VtYScJCQk9PiAnYXBwbGljYXRpb24vdm5kLnNlbWEnLA0KCQknc2VtZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnNlbWQnLA0KCQknc2VtZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnNlbWYnLA0KCQknc2VyJwkJCT0+ICdhcHBsaWNhdGlvbi9qYXZhLXNlcmlhbGl6ZWQtb2JqZWN0JywNCgkJJ3NldHBheScJCT0+ICdhcHBsaWNhdGlvbi9zZXQtcGF5bWVudC1pbml0aWF0aW9uJywNCgkJJ3NldHJlZycJCT0+ICdhcHBsaWNhdGlvbi9zZXQtcmVnaXN0cmF0aW9uLWluaXRpYXRpb24nLA0KCQknc2ZkLWhkc3R4JwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5oeWRyb3N0YXRpeC5zb2YtZGF0YScsDQoJCSdzZnMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zcG90ZmlyZS5zZnMnLA0KCQknc2Z2JwkJCT0+ICd0ZXh0L3gtc2Z2JywNCgkJJ3NnaScJCQk9PiAnaW1hZ2Uvc2dpJywNCgkJJ3NnbCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN0YXJkaXZpc2lvbi53cml0ZXItZ2xvYmFsJywNCgkJJ3NnbScJCQk9PiAndGV4dC9zZ21sJywNCgkJJ3NnbWwnCQkJPT4gJ3RleHQvc2dtbCcsDQoJCSdzaCcJCQk9PiAnYXBwbGljYXRpb24veC1zaCcsDQoJCSdzaGFyJwkJCT0+ICdhcHBsaWNhdGlvbi94LXNoYXInLA0KCQknc2hmJwkJCT0+ICdhcHBsaWNhdGlvbi9zaGYreG1sJywNCgkJJ3NpZCcJCQk9PiAnaW1hZ2UveC1tcnNpZC1pbWFnZScsDQoJCSdzaWcnCQkJPT4gJ2FwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUnLA0KCQknc2lsJwkJCT0+ICdhdWRpby9zaWxrJywNCgkJJ3NpbG8nCQkJPT4gJ21vZGVsL21lc2gnLA0KCQknc2lzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3ltYmlhbi5pbnN0YWxsJywNCgkJJ3Npc3gnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zeW1iaWFuLmluc3RhbGwnLA0KCQknc2l0JwkJCT0+ICdhcHBsaWNhdGlvbi94LXN0dWZmaXQnLA0KCQknc2l0eCcJCQk9PiAnYXBwbGljYXRpb24veC1zdHVmZml0eCcsDQoJCSdza2QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rb2FuJywNCgkJJ3NrbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmtvYW4nLA0KCQknc2twJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQua29hbicsDQoJCSdza3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5rb2FuJywNCgkJJ3NsZG0nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnNsaWRlLm1hY3JvZW5hYmxlZC4xMicsDQoJCSdzbGR4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUnLA0KCQknc2x0JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZXBzb24uc2FsdCcsDQoJCSdzbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN0ZXBtYW5pYS5zdGVwY2hhcnQnLA0KCQknc21mJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3RhcmRpdmlzaW9uLm1hdGgnLA0KCQknc21pJwkJCT0+ICdhcHBsaWNhdGlvbi9zbWlsK3htbCcsDQoJCSdzbWlsJwkJCT0+ICdhcHBsaWNhdGlvbi9zbWlsK3htbCcsDQoJCSdzbXYnCQkJPT4gJ3ZpZGVvL3gtc212JywNCgkJJ3NtemlwJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3RlcG1hbmlhLnBhY2thZ2UnLA0KCQknc25kJwkJCT0+ICdhdWRpby9iYXNpYycsDQoJCSdzbmYnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZm9udC1zbmYnLA0KCQknc28nCQkJPT4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsDQoJCSdzcGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtcGtjczctY2VydGlmaWNhdGVzJywNCgkJJ3NwZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnlhbWFoYS5zbWFmLXBocmFzZScsDQoJCSdzcGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZnV0dXJlc3BsYXNoJywNCgkJJ3Nwb3QnCQkJPT4gJ3RleHQvdm5kLmluM2Quc3BvdCcsDQoJCSdzcHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3NjdnAtdnAtcmVzcG9uc2UnLA0KCQknc3BxJwkJCT0+ICdhcHBsaWNhdGlvbi9zY3ZwLXZwLXJlcXVlc3QnLA0KCQknc3B4JwkJCT0+ICdhdWRpby9vZ2cnLA0KCQknc3FsJwkJCT0+ICdhcHBsaWNhdGlvbi94LXNxbCcsDQoJCSdzcmMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtd2Fpcy1zb3VyY2UnLA0KCQknc3J0JwkJCT0+ICdhcHBsaWNhdGlvbi94LXN1YnJpcCcsDQoJCSdzcnUnCQkJPT4gJ2FwcGxpY2F0aW9uL3NydSt4bWwnLA0KCQknc3J4JwkJCT0+ICdhcHBsaWNhdGlvbi9zcGFycWwtcmVzdWx0cyt4bWwnLA0KCQknc3NkbCcJCQk9PiAnYXBwbGljYXRpb24vc3NkbCt4bWwnLA0KCQknc3NlJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQua29kYWstZGVzY3JpcHRvcicsDQoJCSdzc2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5lcHNvbi5zc2YnLA0KCQknc3NtbCcJCQk9PiAnYXBwbGljYXRpb24vc3NtbCt4bWwnLA0KCQknc3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zYWlsaW5ndHJhY2tlci50cmFjaycsDQoJCSdzdGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMudGVtcGxhdGUnLA0KCQknc3RkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3LnRlbXBsYXRlJywNCgkJJ3N0ZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnd0LnN0ZicsDQoJCSdzdGknCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MudGVtcGxhdGUnLA0KCQknc3RrJwkJCT0+ICdhcHBsaWNhdGlvbi9oeXBlcnN0dWRpbycsDQoJCSdzdGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wa2kuc3RsJywNCgkJJ3N0cicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnBnLmZvcm1hdCcsDQoJCSdzdHcnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLndyaXRlci50ZW1wbGF0ZScsDQoJCSdzdWInCQkJPT4gJ3RleHQvdm5kLmR2Yi5zdWJ0aXRsZScsDQoJCSdzdXMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdXMtY2FsZW5kYXInLA0KCQknc3VzcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN1cy1jYWxlbmRhcicsDQoJCSdzdjRjcGlvJwkJPT4gJ2FwcGxpY2F0aW9uL3gtc3Y0Y3BpbycsDQoJCSdzdjRjcmMnCQk9PiAnYXBwbGljYXRpb24veC1zdjRjcmMnLA0KCQknc3ZjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZHZiLnNlcnZpY2UnLA0KCQknc3ZkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3ZkJywNCgkJJ3N2ZycJCQk9PiAnaW1hZ2Uvc3ZnK3htbCcsDQoJCSdzdmd6JwkJCT0+ICdpbWFnZS9zdmcreG1sJywNCgkJJ3N3YScJCQk9PiAnYXBwbGljYXRpb24veC1kaXJlY3RvcicsDQoJCSdzd2YnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJywNCgkJJ3N3aScJCQk9PiAnYXBwbGljYXRpb24vdm5kLmFyaXN0YW5ldHdvcmtzLnN3aScsDQoJCSdzeGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmNhbGMnLA0KCQknc3hkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5kcmF3JywNCgkJJ3N4ZycJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyLmdsb2JhbCcsDQoJCSdzeGknCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdW4ueG1sLmltcHJlc3MnLA0KCQknc3htJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3VuLnhtbC5tYXRoJywNCgkJJ3N4dycJCQk9PiAnYXBwbGljYXRpb24vdm5kLnN1bi54bWwud3JpdGVyJywNCgkJJ3QnCQkJCT0+ICd0ZXh0L3Ryb2ZmJywNCgkJJ3QzJwkJCT0+ICdhcHBsaWNhdGlvbi94LXQzdm0taW1hZ2UnLA0KCQkndGFnbGV0JwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5teW5mYycsDQoJCSd0YW8nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC50YW8uaW50ZW50LW1vZHVsZS1hcmNoaXZlJywNCgkJJ3RhcicJCQk9PiAnYXBwbGljYXRpb24veC10YXInLA0KCQkndGNhcCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLjNncHAyLnRjYXAnLA0KCQkndGNsJwkJCT0+ICdhcHBsaWNhdGlvbi94LXRjbCcsDQoJCSd0ZWFjaGVyJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zbWFydC50ZWFjaGVyJywNCgkJJ3RlaScJCQk9PiAnYXBwbGljYXRpb24vdGVpK3htbCcsDQoJCSd0ZWljb3JwdXMnCQk9PiAnYXBwbGljYXRpb24vdGVpK3htbCcsDQoJCSd0ZXgnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtdGV4JywNCgkJJ3RleGknCQkJPT4gJ2FwcGxpY2F0aW9uL3gtdGV4aW5mbycsDQoJCSd0ZXhpbmZvJwkJPT4gJ2FwcGxpY2F0aW9uL3gtdGV4aW5mbycsDQoJCSd0ZXh0JwkJCT0+ICd0ZXh0L3BsYWluJywNCgkJJ3RmaScJCQk9PiAnYXBwbGljYXRpb24vdGhyYXVkK3htbCcsDQoJCSd0Zm0nCQkJPT4gJ2FwcGxpY2F0aW9uL3gtdGV4LXRmbScsDQoJCSd0Z2EnCQkJPT4gJ2ltYWdlL3gtdGdhJywNCgkJJ3RobXgnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2V0aGVtZScsDQoJCSd0aWYnCQkJPT4gJ2ltYWdlL3RpZmYnLA0KCQkndGlmZicJCQk9PiAnaW1hZ2UvdGlmZicsDQoJCSd0bW8nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC50bW9iaWxlLWxpdmV0dicsDQoJCSd0b3JyZW50JwkJPT4gJ2FwcGxpY2F0aW9uL3gtYml0dG9ycmVudCcsDQoJCSd0cGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5ncm9vdmUtdG9vbC10ZW1wbGF0ZScsDQoJCSd0cHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC50cmlkLnRwdCcsDQoJCSd0cicJCQk9PiAndGV4dC90cm9mZicsDQoJCSd0cmEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC50cnVlYXBwJywNCgkJJ3RybScJCQk9PiAnYXBwbGljYXRpb24veC1tc3Rlcm1pbmFsJywNCgkJJ3RzJwkJCT0+ICd2aWRlby9tcDJ0JywNCgkJJ3RzZCcJCQk9PiAnYXBwbGljYXRpb24vdGltZXN0YW1wZWQtZGF0YScsDQoJCSd0c3YnCQkJPT4gJ3RleHQvdGFiLXNlcGFyYXRlZC12YWx1ZXMnLA0KCQkndHRjJwkJCT0+ICdmb250L2NvbGxlY3Rpb24nLA0KCQkndHRmJwkJCT0+ICdmb250L3R0ZicsDQoJCSd0dGwnCQkJPT4gJ3RleHQvdHVydGxlJywNCgkJJ3R3ZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnNpbXRlY2gtbWluZG1hcHBlcicsDQoJCSd0d2RzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc2ltdGVjaC1taW5kbWFwcGVyJywNCgkJJ3R4ZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmdlbm9tYXRpeC50dXhlZG8nLA0KCQkndHhmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubW9iaXVzLnR4ZicsDQoJCSd0eHQnCQkJPT4gJ3RleHQvcGxhaW4nLA0KCQkndTMyJwkJCT0+ICdhcHBsaWNhdGlvbi94LWF1dGhvcndhcmUtYmluJywNCgkJJ3VkZWInCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2UnLA0KCQkndWZkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudWZkbCcsDQoJCSd1ZmRsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudWZkbCcsDQoJCSd1bHgnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZ2x1bHgnLA0KCQkndW1qJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudW1hamluJywNCgkJJ3VuaXR5d2ViJwkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC51bml0eScsDQoJCSd1b21sJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudW9tbCt4bWwnLA0KCQkndXJpJwkJCT0+ICd0ZXh0L3VyaS1saXN0JywNCgkJJ3VyaXMnCQkJPT4gJ3RleHQvdXJpLWxpc3QnLA0KCQkndXJscycJCQk9PiAndGV4dC91cmktbGlzdCcsDQoJCSd1c3RhcicJCQk9PiAnYXBwbGljYXRpb24veC11c3RhcicsDQoJCSd1dHonCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC51aXEudGhlbWUnLA0KCQkndXUnCQkJPT4gJ3RleHQveC11dWVuY29kZScsDQoJCSd1dmEnCQkJPT4gJ2F1ZGlvL3ZuZC5kZWNlLmF1ZGlvJywNCgkJJ3V2ZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YScsDQoJCSd1dmYnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLmRhdGEnLA0KCQkndXZnJwkJCT0+ICdpbWFnZS92bmQuZGVjZS5ncmFwaGljJywNCgkJJ3V2aCcJCQk9PiAndmlkZW8vdm5kLmRlY2UuaGQnLA0KCQkndXZpJwkJCT0+ICdpbWFnZS92bmQuZGVjZS5ncmFwaGljJywNCgkJJ3V2bScJCQk9PiAndmlkZW8vdm5kLmRlY2UubW9iaWxlJywNCgkJJ3V2cCcJCQk9PiAndmlkZW8vdm5kLmRlY2UucGQnLA0KCQkndXZzJwkJCT0+ICd2aWRlby92bmQuZGVjZS5zZCcsDQoJCSd1dnQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLnR0bWwreG1sJywNCgkJJ3V2dScJCQk9PiAndmlkZW8vdm5kLnV2dnUubXA0JywNCgkJJ3V2dicJCQk9PiAndmlkZW8vdm5kLmRlY2UudmlkZW8nLA0KCQkndXZ2YScJCQk9PiAnYXVkaW8vdm5kLmRlY2UuYXVkaW8nLA0KCQkndXZ2ZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRlY2UuZGF0YScsDQoJCSd1dnZmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZGVjZS5kYXRhJywNCgkJJ3V2dmcnCQkJPT4gJ2ltYWdlL3ZuZC5kZWNlLmdyYXBoaWMnLA0KCQkndXZ2aCcJCQk9PiAndmlkZW8vdm5kLmRlY2UuaGQnLA0KCQkndXZ2aScJCQk9PiAnaW1hZ2Uvdm5kLmRlY2UuZ3JhcGhpYycsDQoJCSd1dnZtJwkJCT0+ICd2aWRlby92bmQuZGVjZS5tb2JpbGUnLA0KCQkndXZ2cCcJCQk9PiAndmlkZW8vdm5kLmRlY2UucGQnLA0KCQkndXZ2cycJCQk9PiAndmlkZW8vdm5kLmRlY2Uuc2QnLA0KCQkndXZ2dCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRlY2UudHRtbCt4bWwnLA0KCQkndXZ2dScJCQk9PiAndmlkZW8vdm5kLnV2dnUubXA0JywNCgkJJ3V2dnYnCQkJPT4gJ3ZpZGVvL3ZuZC5kZWNlLnZpZGVvJywNCgkJJ3V2dngnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkJywNCgkJJ3V2dnonCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLnppcCcsDQoJCSd1dngnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5kZWNlLnVuc3BlY2lmaWVkJywNCgkJJ3V2eicJCQk9PiAnYXBwbGljYXRpb24vdm5kLmRlY2UuemlwJywNCgkJJ3ZjYXJkJwkJCT0+ICd0ZXh0L3ZjYXJkJywNCgkJJ3ZjZCcJCQk9PiAnYXBwbGljYXRpb24veC1jZGxpbmsnLA0KCQkndmNmJwkJCT0+ICd0ZXh0L3gtdmNhcmQnLA0KCQkndmNnJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuZ3Jvb3ZlLXZjYXJkJywNCgkJJ3ZjcycJCQk9PiAndGV4dC94LXZjYWxlbmRhcicsDQoJCSd2Y3gnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC52Y3gnLA0KCQkndmlzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQudmlzaW9uYXJ5JywNCgkJJ3ZpdicJCQk9PiAndmlkZW8vdm5kLnZpdm8nLA0KCQkndm9iJwkJCT0+ICd2aWRlby94LW1zLXZvYicsDQoJCSd2b3InCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zdGFyZGl2aXNpb24ud3JpdGVyJywNCgkJJ3ZveCcJCQk9PiAnYXBwbGljYXRpb24veC1hdXRob3J3YXJlLWJpbicsDQoJCSd2cm1sJwkJCT0+ICdtb2RlbC92cm1sJywNCgkJJ3ZzZCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLnZpc2lvJywNCgkJJ3ZzZicJCQk9PiAnYXBwbGljYXRpb24vdm5kLnZzZicsDQoJCSd2c3MnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbycsDQoJCSd2c3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbycsDQoJCSd2c3cnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC52aXNpbycsDQoJCSd2dHUnCQkJPT4gJ21vZGVsL3ZuZC52dHUnLA0KCQkndnhtbCcJCQk9PiAnYXBwbGljYXRpb24vdm9pY2V4bWwreG1sJywNCgkJJ3czZCcJCQk9PiAnYXBwbGljYXRpb24veC1kaXJlY3RvcicsDQoJCSd3YWQnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtZG9vbScsDQoJCSd3YXNtJwkJCT0+ICdhcHBsaWNhdGlvbi93YXNtJywNCgkJJ3dhdicJCQk9PiAnYXVkaW8veC13YXYnLA0KCQknd2F4JwkJCT0+ICdhdWRpby94LW1zLXdheCcsDQoJCSd3Ym1wJwkJCT0+ICdpbWFnZS92bmQud2FwLndibXAnLA0KCQknd2JzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuY3JpdGljYWx0b29scy53YnMreG1sJywNCgkJJ3dieG1sJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQud2FwLndieG1sJywNCgkJJ3djbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzJywNCgkJJ3dkYicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXdvcmtzJywNCgkJJ3dkcCcJCQk9PiAnaW1hZ2Uvdm5kLm1zLXBob3RvJywNCgkJJ3dlYmEnCQkJPT4gJ2F1ZGlvL3dlYm0nLA0KCQknd2VibScJCQk9PiAndmlkZW8vd2VibScsDQoJCSd3ZWJwJwkJCT0+ICdpbWFnZS93ZWJwJywNCgkJJ3dnJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQucG1pLndpZGdldCcsDQoJCSd3Z3QnCQkJPT4gJ2FwcGxpY2F0aW9uL3dpZGdldCcsDQoJCSd3a3MnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JrcycsDQoJCSd3bScJCQk9PiAndmlkZW8veC1tcy13bScsDQoJCSd3bWEnCQkJPT4gJ2F1ZGlvL3gtbXMtd21hJywNCgkJJ3dtZCcJCQk9PiAnYXBwbGljYXRpb24veC1tcy13bWQnLA0KCQknd21mJwkJCT0+ICdhcHBsaWNhdGlvbi94LW1zbWV0YWZpbGUnLA0KCQknd21sJwkJCT0+ICd0ZXh0L3ZuZC53YXAud21sJywNCgkJJ3dtbGMnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC53YXAud21sYycsDQoJCSd3bWxzJwkJCT0+ICd0ZXh0L3ZuZC53YXAud21sc2NyaXB0JywNCgkJJ3dtbHNjJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQud2FwLndtbHNjcmlwdGMnLA0KCQknd212JwkJCT0+ICd2aWRlby94LW1zLXdtdicsDQoJCSd3bXgnCQkJPT4gJ3ZpZGVvL3gtbXMtd214JywNCgkJJ3dteicJCQk9PiAnYXBwbGljYXRpb24veC1tc21ldGFmaWxlJywNCgkJJ3dvZmYnCQkJPT4gJ2ZvbnQvd29mZicsDQoJCSd3b2ZmMicJCQk9PiAnZm9udC93b2ZmMicsDQoJCSd3cGQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC53b3JkcGVyZmVjdCcsDQoJCSd3cGwnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy13cGwnLA0KCQknd3BzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtd29ya3MnLA0KCQknd3FkJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQud3FkJywNCgkJJ3dyaScJCQk9PiAnYXBwbGljYXRpb24veC1tc3dyaXRlJywNCgkJJ3dybCcJCQk9PiAnbW9kZWwvdnJtbCcsDQoJCSd3c2RsJwkJCT0+ICdhcHBsaWNhdGlvbi93c2RsK3htbCcsDQoJCSd3c3BvbGljeScJCT0+ICdhcHBsaWNhdGlvbi93c3BvbGljeSt4bWwnLA0KCQknd3RiJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQud2VidHVyYm8nLA0KCQknd3Z4JwkJCT0+ICd2aWRlby94LW1zLXd2eCcsDQoJCSd4MzInCQkJPT4gJ2FwcGxpY2F0aW9uL3gtYXV0aG9yd2FyZS1iaW4nLA0KCQkneDNkJwkJCT0+ICdtb2RlbC94M2QreG1sJywNCgkJJ3gzZGInCQkJPT4gJ21vZGVsL3gzZCtiaW5hcnknLA0KCQkneDNkYnonCQkJPT4gJ21vZGVsL3gzZCtiaW5hcnknLA0KCQkneDNkdicJCQk9PiAnbW9kZWwveDNkK3ZybWwnLA0KCQkneDNkdnonCQkJPT4gJ21vZGVsL3gzZCt2cm1sJywNCgkJJ3gzZHonCQkJPT4gJ21vZGVsL3gzZCt4bWwnLA0KCQkneGFtbCcJCQk9PiAnYXBwbGljYXRpb24veGFtbCt4bWwnLA0KCQkneGFwJwkJCT0+ICdhcHBsaWNhdGlvbi94LXNpbHZlcmxpZ2h0LWFwcCcsDQoJCSd4YXInCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC54YXJhJywNCgkJJ3hiYXAnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtbXMteGJhcCcsDQoJCSd4YmQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzLmJpbmRlcicsDQoJCSd4Ym0nCQkJPT4gJ2ltYWdlL3gteGJpdG1hcCcsDQoJCSd4ZGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3hjYXAtZGlmZit4bWwnLA0KCQkneGRtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuc3luY21sLmRtK3htbCcsDQoJCSd4ZHAnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5hZG9iZS54ZHAreG1sJywNCgkJJ3hkc3NjJwkJCT0+ICdhcHBsaWNhdGlvbi9kc3NjK3htbCcsDQoJCSd4ZHcnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5mdWppeGVyb3guZG9jdXdvcmtzJywNCgkJJ3hlbmMnCQkJPT4gJ2FwcGxpY2F0aW9uL3hlbmMreG1sJywNCgkJJ3hlcicJCQk9PiAnYXBwbGljYXRpb24vcGF0Y2gtb3BzLWVycm9yK3htbCcsDQoJCSd4ZmRmJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuYWRvYmUueGZkZicsDQoJCSd4ZmRsJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQueGZkbCcsDQoJCSd4aHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsDQoJCSd4aHRtbCcJCQk9PiAnYXBwbGljYXRpb24veGh0bWwreG1sJywNCgkJJ3hodm1sJwkJCT0+ICdhcHBsaWNhdGlvbi94dit4bWwnLA0KCQkneGlmJwkJCT0+ICdpbWFnZS92bmQueGlmZicsDQoJCSd4bGEnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsDQoJCSd4bGFtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYWRkaW4ubWFjcm9lbmFibGVkLjEyJywNCgkJJ3hsYycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJywNCgkJJ3hsZicJCQk9PiAnYXBwbGljYXRpb24veC14bGlmZit4bWwnLA0KCQkneGxtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLA0KCQkneGxzJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLA0KCQkneGxzYicJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb2VuYWJsZWQuMTInLA0KCQkneGxzbScJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvZW5hYmxlZC4xMicsDQoJCSd4bHN4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsDQoJCSd4bHQnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsDQoJCSd4bHRtJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGVtcGxhdGUubWFjcm9lbmFibGVkLjEyJywNCgkJJ3hsdHgnCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJywNCgkJJ3hsdycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJywNCgkJJ3htJwkJCT0+ICdhdWRpby94bScsDQoJCSd4bWwnCQkJPT4gJ2FwcGxpY2F0aW9uL3htbCcsDQoJCSd4bycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm9scGMtc3VnYXInLA0KCQkneG9wJwkJCT0+ICdhcHBsaWNhdGlvbi94b3AreG1sJywNCgkJJ3hwaScJCQk9PiAnYXBwbGljYXRpb24veC14cGluc3RhbGwnLA0KCQkneHBsJwkJCT0+ICdhcHBsaWNhdGlvbi94cHJvYyt4bWwnLA0KCQkneHBtJwkJCT0+ICdpbWFnZS94LXhwaXhtYXAnLA0KCQkneHByJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaXMteHByJywNCgkJJ3hwcycJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1zLXhwc2RvY3VtZW50JywNCgkJJ3hwdycJCQk9PiAnYXBwbGljYXRpb24vdm5kLmludGVyY29uLmZvcm1uZXQnLA0KCQkneHB4JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaW50ZXJjb24uZm9ybW5ldCcsDQoJCSd4c2wnCQkJPT4gJ2FwcGxpY2F0aW9uL3htbCcsDQoJCSd4c2x0JwkJCT0+ICdhcHBsaWNhdGlvbi94c2x0K3htbCcsDQoJCSd4c20nCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC5zeW5jbWwreG1sJywNCgkJJ3hzcGYnCQkJPT4gJ2FwcGxpY2F0aW9uL3hzcGYreG1sJywNCgkJJ3h1bCcJCQk9PiAnYXBwbGljYXRpb24vdm5kLm1vemlsbGEueHVsK3htbCcsDQoJCSd4dm0nCQkJPT4gJ2FwcGxpY2F0aW9uL3h2K3htbCcsDQoJCSd4dm1sJwkJCT0+ICdhcHBsaWNhdGlvbi94dit4bWwnLA0KCQkneHdkJwkJCT0+ICdpbWFnZS94LXh3aW5kb3dkdW1wJywNCgkJJ3h5eicJCQk9PiAnY2hlbWljYWwveC14eXonLA0KCQkneHonCQkJPT4gJ2FwcGxpY2F0aW9uL3gteHonLA0KCQkneWFuZycJCQk9PiAnYXBwbGljYXRpb24veWFuZycsDQoJCSd5aW4nCQkJPT4gJ2FwcGxpY2F0aW9uL3lpbit4bWwnLA0KCQknejEnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejInCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejMnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejQnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejUnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejYnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejcnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknejgnCQkJPT4gJ2FwcGxpY2F0aW9uL3gtem1hY2hpbmUnLA0KCQknemF6JwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuenphenouZGVjayt4bWwnLA0KCQknemlwJwkJCT0+ICdhcHBsaWNhdGlvbi96aXAnLA0KCQknemlyJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuenVsJywNCgkJJ3ppcnonCQkJPT4gJ2FwcGxpY2F0aW9uL3ZuZC56dWwnLA0KCQknem1tJwkJCT0+ICdhcHBsaWNhdGlvbi92bmQuaGFuZGhlbGQtZW50ZXJ0YWlubWVudCt4bWwnDQoJXTsNCg0KCS8qKg0KCSAqIEdldCB0aGUgZmlsZSBleHRlbnNpb25zDQoJICogDQoJICogQHBhcmFtICAgc3RyaW5nICAgICR0YXJnZXQgICBUaGUgdGFyZ2V0ZWQvZmlsdGVyIG9wdGlvbg0KCSAqIEBwYXJhbSAgIGJvb2xlYW4gICAkc29ydGVkICAgVGhlIG11bHRpZGltZW5zaW9uYWwgZ3JvdXBpbmcgc29ydCAob25seSBpZiB0YXJnZXRlZCBmaWx0ZXIgaXMgdXNlZCkNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5ICAgICBBbGwgdGhlIGV4dGVuc2lvbnMgKHRhcmdldGVkICYgc29ydGVkKQ0KCSAqIEBzaW5jZSAgIDUuMC4zDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9ucygkdGFyZ2V0ID0gbnVsbCwgJHNvcnRlZCA9IGZhbHNlKQ0KCXsNCgkJLy8gd2UgaGF2ZSBzb21lIGluLWhvdXNlIGdyb3VwaW5nL2ZpbHRlcnMgOikNCgkJJGZpbHRlcnMgPSBbDQoJCQknaW1hZ2UnID0+IGFycmF5KCdpbWFnZScsICdmb250JywgJ21vZGVsJyksDQoJCQknZG9jdW1lbnQnID0+IGFycmF5KCdhcHBsaWNhdGlvbicsICd0ZXh0JywgJ2NoZW1pY2FsJywgJ21lc3NhZ2UnKSwNCgkJCSdtZWRpYScgPT4gYXJyYXkoJ3ZpZGVvJywgJ2F1ZGlvJyksDQoJCQknZmlsZScgPT4gYXJyYXkoJ2ltYWdlJywgJ2FwcGxpY2F0aW9uJywgJ3RleHQnLCAndmlkZW8nLCAnYXVkaW8nKSwNCgkJCSdhbGwnID0+IGFycmF5KCdhcHBsaWNhdGlvbicsICd0ZXh0JywgJ2NoZW1pY2FsJywgJ21lc3NhZ2UnLCAnaW1hZ2UnLCAnZm9udCcsICdtb2RlbCcsICd2aWRlbycsICdhdWRpbycsICd4LWNvbmZlcmVuY2UnKQ0KCQldOw0KCQkvLyBzb3VsZCB3ZSBmaWx0ZXINCgkJaWYgKCR0YXJnZXQpDQoJCXsNCgkJCS8vIHRoZSBidWNrZXQgdG8gZ2V0IGV4dGVuc2lvbnMNCgkJCSRmaWxlZXh0ZW5zaW9ucyA9IGFycmF5KCk7DQoJCQkvLyBjaGVjayBpZiBmaWx0ZXIgZXhpc3QgKGlmIG5vdCByZXR1cm4gZW1wdHkgYXJyYXkpDQoJCQlpZiAoaXNzZXQoJGZpbHRlcnNbJHRhcmdldF0pKQ0KCQkJew0KCQkJCWZvcmVhY2ggKHNlbGY6OiRmaWxlRXh0ZW5zaW9uVG9NaW1lVHlwZSBhcyAkZXh0ZW5zaW9uID0+ICRtaW1ldHlwZSkNCgkJCQl7DQoJCQkJCS8vIGdldCB0aGUga2V5IG1pbWUgdHlwZQ0KCQkJCQkkbWltZWFyciA9IGV4cGxvZGUoIi8iLCAkbWltZXR5cGUsIDIpOw0KCQkJCQkvLyBjaGVjayBpZiB0aGlzIGZpbGUgZXh0ZW5zaW9uIHNob3VsZCBiZSBhZGRlZA0KCQkJCQlpZiAoaW5fYXJyYXkoJG1pbWVhcnJbMF0sICRmaWx0ZXJzWyR0YXJnZXRdKSkNCgkJCQkJew0KCQkJCQkJaWYgKCRzb3J0ZWQpDQoJCQkJCQl7DQoJCQkJCQkJaWYgKCFpc3NldCgkZmlsZWV4dGVuc2lvbnNbJG1pbWVhcnJbMF1dKSkNCgkJCQkJCQl7DQoJCQkJCQkJCSRmaWxlZXh0ZW5zaW9uc1skbWltZWFyclswXV0gPSBhcnJheSgpOw0KCQkJCQkJCX0NCgkJCQkJCQkkZmlsZWV4dGVuc2lvbnNbJG1pbWVhcnJbMF1dWyRleHRlbnNpb25dID0gJGV4dGVuc2lvbjsNCgkJCQkJCX0NCgkJCQkJCWVsc2UNCgkJCQkJCXsNCgkJCQkJCQkkZmlsZWV4dGVuc2lvbnNbJGV4dGVuc2lvbl0gPSAkZXh0ZW5zaW9uOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJcmV0dXJuICRmaWxlZXh0ZW5zaW9uczsNCgkJfQ0KCQkvLyB3ZSBqdXN0IHJldHVybiBhbGwgZmlsZSBleHRlbnNpb25zDQoJCXJldHVybiBhcnJheV9rZXlzKHNlbGY6OiRmaWxlRXh0ZW5zaW9uVG9NaW1lVHlwZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBmcm9tIGEgZnVsbCBwYXRoIE9SIGZpbGUgbmFtZS4NCgkgKiANCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkZmlsZSAgVGhlIGZ1bGwgZmlsZSBwYXRoIG9yIGZpbGUgbmFtZS4NCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZyAgVGhlIGZpbGUgZXh0ZW5zaW9uIGluIGxvd2VyY2FzZSBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm9uZSBmb3VuZC4NCgkgKiBAc2luY2UgICA1LjAuMw0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZXh0ZW5zaW9uKHN0cmluZyAkZmlsZSk6IHN0cmluZw0KCXsNCgkJLy8gRW5zdXJlIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHN0cmluZyBhbmQgY29udGFpbnMgYSBmaWxlIGV4dGVuc2lvbg0KCQlpZiAoc3RycG9zKCRmaWxlLCAnLicpID09PSBmYWxzZSkNCgkJew0KCQkJcmV0dXJuICcnOw0KCQl9DQoNCgkJLy8gRXh0cmFjdCBhbmQgcmV0dXJuIHRoZSBleHRlbnNpb24gZnJvbSB0aGUgcGF0aA0KCQlyZXR1cm4gc3RydG9sb3dlcihwYXRoaW5mbygkZmlsZSwgUEFUSElORk9fRVhURU5TSU9OKSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBtaW1lIHR5cGUgYmFzZWQgb24gdGhlIGZ1bGwgZmlsZSBwYXRoLg0KCSAqIA0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRmaWxlIFRoZSBmdWxsIGZpbGUgcGF0aC4NCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZyAgVGhlIG1pbWUgdHlwZSBvciAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyBpZiBub25lIGZvdW5kLg0KCSAqIEBzaW5jZSAgIDUuMC4zDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtaW1lVHlwZShzdHJpbmcgJGZpbGUpOiBzdHJpbmcNCgl7DQoJCS8qKg0KCQkgKiAgICAgICAgICAgICAgICAgICoqRElTQ0xBSU1FUioqDQoJCSAqIFRoaXMgd2lsbCBqdXN0IG1hdGNoIHRoZSBmaWxlIGV4dGVuc2lvbiB0byB0aGUgZm9sbG93aW5nDQoJCSAqIGFycmF5LiBJdCBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUgZmlsZSBpcyBUUlVMWSB0aGF0DQoJCSAqIG9mIHRoZSBleHRlbnNpb24gdGhhdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMuDQoJCSAqIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0xsZXdlbGx5bnZkbS83NGJlMzczMzU3ZTEzMWI4Nzc1YTc1ODJjM2RlNTA4Yg0KCQkgKi8NCg0KCQkvLyBFbnN1cmUgdGhlIGZpbGUgZXhpc3RzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHByb2Nlc3NpbmcNCgkJaWYgKCFpc19maWxlKCRmaWxlKSB8fCAhaXNfcmVhZGFibGUoJGZpbGUpKQ0KCQl7DQoJCQlyZXR1cm4gIHNlbGY6Om1pbWVUeXBlRmlsZW5hbWUoJGZpbGUpOw0KCQl9DQoNCgkJLy8gVXNlIGZpbmZvIHRvIGdldCBNSU1FIHR5cGUgYmFzZWQgb24gZmlsZSBjb250ZW50IGlmIGF2YWlsYWJsZQ0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdmaW5mb19vcGVuJykpDQoJCXsNCgkJCSRmaW5mbyA9IGZpbmZvX29wZW4oRklMRUlORk9fTUlNRV9UWVBFKTsNCgkJCSRtaW1ldHlwZSA9IGZpbmZvX2ZpbGUoJGZpbmZvLCAkZmlsZSk7DQoJCQlmaW5mb19jbG9zZSgkZmluZm8pOw0KDQoJCQlpZiAoJG1pbWV0eXBlKQ0KCQkJew0KCQkJCXJldHVybiAkbWltZXR5cGU7DQoJCQl9DQoJCX0NCg0KCQkvLyBGYWxsYmFjayB0byBtaW1lX2NvbnRlbnRfdHlwZSgpIGlmIGF2YWlsYWJsZQ0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdtaW1lX2NvbnRlbnRfdHlwZScpKQ0KCQl7DQoJCQkkbWltZXR5cGUgPSBtaW1lX2NvbnRlbnRfdHlwZSgkZmlsZSk7DQoJCQlpZiAoJG1pbWV0eXBlKQ0KCQkJew0KCQkJCXJldHVybiAkbWltZXR5cGU7DQoJCQl9DQoJCX0NCg0KCQkvLyBGYWxsYmFjayB0byBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0gYXMgYSBnZW5lcmljIGJpbmFyeSBzdHJlYW0gdHlwZQ0KCQlyZXR1cm4gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSc7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBtaW1lIHR5cGUgYmFzZWQgb24gdGhlIGZpbGUgZXh0ZW5zaW9uIGZyb20gYSBmaWxlIG5hbWUuDQoJICogDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGZpbGUgVGhlIGZpbGUgbmFtZSAod2l0aG91dCBwYXRoKS4NCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZyBUaGUgbWltZSB0eXBlIG9yICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIGlmIG5vbmUgZm91bmQuDQoJICogQHNpbmNlICAgNS4wLjMNCgkgKi8NCglwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIG1pbWVUeXBlRmlsZW5hbWUoc3RyaW5nICRmaWxlKTogc3RyaW5nDQoJew0KCQkvLyBHZXQgdGhlIGV4dGVuc2lvbg0KCQkkZXh0ZW5zaW9uID0gc2VsZjo6ZXh0ZW5zaW9uKCRmaWxlKTsNCg0KCQkvLyBQcmVkZWZpbmVkIE1JTUUgdHlwZXMgYnkgZXh0ZW5zaW9uIGZvciBxdWljayBsb29rdXANCgkJaWYgKCFlbXB0eSgkZXh0ZW5zaW9uKSAmJiBpc3NldChzZWxmOjokZmlsZUV4dGVuc2lvblRvTWltZVR5cGVbJGV4dGVuc2lvbl0pKQ0KCQl7DQoJCQlyZXR1cm4gc2VsZjo6JGZpbGVFeHRlbnNpb25Ub01pbWVUeXBlWyRleHRlbnNpb25dOw0KCQl9DQoNCgkJLy8gRmFsbGJhY2sgdG8gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIGlmIGV4dGVuc2lvbiBpcyB1bmtub3duDQoJCXJldHVybiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzsNCgl9', '{}', '{}', '', 1, '2022-05-16 14:27:38', 12, '', 1),
(29, 'c4a188de-ad78-4a6d-9d5b-01866846d701', 'JCB.Service.Spreadsheet', 'Spreadsheet', 'class', 'Spreadsheet Service Provider\r\n\r\n@since 5.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Service.Spreadsheet', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"fd3f322a-082d-4579-93ad-3352c5adfc71\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"e250638e-4a50-41f9-9172-db3e7f174d26\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"c4169332-3914-400e-b861-972b2d465963\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"dcb0e061-f337-44f7-87f2-f5c5fb9ce917\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKEhlYWRlcjo6Y2xhc3MsICdTcHJlYWRzaGVldC5IZWFkZXInKQ0KCQkJLT5zaGFyZSgnU3ByZWFkc2hlZXQuSGVhZGVyJywgWyR0aGlzLCAnZ2V0SGVhZGVyJ10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKEV4cG9ydGVyOjpjbGFzcywgJ1NwcmVhZHNoZWV0LkV4cG9ydGVyJykNCgkJCS0+c2hhcmUoJ1NwcmVhZHNoZWV0LkV4cG9ydGVyJywgWyR0aGlzLCAnZ2V0RXhwb3J0ZXInXSwgdHJ1ZSk7DQoNCgkJJGNvbnRhaW5lci0+YWxpYXMoSW1wb3J0ZXI6OmNsYXNzLCAnU3ByZWFkc2hlZXQuSW1wb3J0ZXInKQ0KCQkJLT5zaGFyZSgnU3ByZWFkc2hlZXQuSW1wb3J0ZXInLCBbJHRoaXMsICdnZXRJbXBvcnRlciddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhGaWxlUmVhZGVyOjpjbGFzcywgJ1NwcmVhZHNoZWV0LkZpbGVSZWFkZXInKQ0KCQkJLT5zaGFyZSgnU3ByZWFkc2hlZXQuRmlsZVJlYWRlcicsIFskdGhpcywgJ2dldEZpbGVSZWFkZXInXSwgdHJ1ZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBIZWFkZXIgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBIZWFkZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SGVhZGVyKENvbnRhaW5lciAkY29udGFpbmVyKTogSGVhZGVyDQoJew0KCQlyZXR1cm4gbmV3IEhlYWRlcigpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgRXhwb3J0ZXIgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBFeHBvcnRlcg0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRFeHBvcnRlcihDb250YWluZXIgJGNvbnRhaW5lcik6IEV4cG9ydGVyDQoJew0KCQlyZXR1cm4gbmV3IEV4cG9ydGVyKCk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBJbXBvcnRlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIEltcG9ydGVyDQoJICogQHNpbmNlIDUuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEltcG9ydGVyKENvbnRhaW5lciAkY29udGFpbmVyKTogSW1wb3J0ZXINCgl7DQoJCXJldHVybiBuZXcgSW1wb3J0ZXIoDQoJCQkkY29udGFpbmVyLT5nZXQoJ1NwcmVhZHNoZWV0LkZpbGVSZWFkZXInKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgRmlsZVJlYWRlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIEZpbGVSZWFkZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0RmlsZVJlYWRlcihDb250YWluZXIgJGNvbnRhaW5lcik6IEZpbGVSZWFkZXINCgl7DQoJCXJldHVybiBuZXcgRmlsZVJlYWRlcigpOw0KCX0=', '{}', '{}', '', 1, '2022-07-09 10:21:53', 19, '', 1),
(103, '8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff', 'VDM.Interfaces.ModelInterface', 'ModelInterface', 'interface', 'Model Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.ModelInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICR0YWJsZSBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgYWN0aXZlDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoc3RyaW5nICR0YWJsZSk6IHNlbGY7DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+dmFsdWUodmFsdWUsICd2YWx1ZV9rZXknLCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgJHZhbHVlICAgIFRoZSB2YWx1ZSB0byBtb2RlbA0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgICRmaWVsZCAgICBUaGUgZmllbGQga2V5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJHRhYmxlICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWUoJHZhbHVlLCBzdHJpbmcgJGZpZWxkLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOw0KDQoJLyoqDQoJICogTW9kZWwgYSB2YWx1ZSBvZiBtdWx0aXBsZSBpdGVtcw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtcyhBcnJheSwgJ3ZhbHVlX2tleScsICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgICRpdGVtcyAgICBUaGUgYXJyYXkgb2YgdmFsdWVzDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAkZmllbGQgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJHRhYmxlICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZXMoP2FycmF5ICRpdGVtcywgc3RyaW5nICRmaWVsZCwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogP2FycmF5Ow0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBhbiBpdGVtDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW0oT2JqZWN0LCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0fG51bGwgICAgJGl0ZW0gICAgICBUaGUgaXRlbSBvYmplY3QNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbSg/b2JqZWN0ICRpdGVtLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/b2JqZWN0Ow0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBtdWx0aXBsZSBpdGVtcw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtcyhBcnJheSwgJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAgJGl0ZW1zICAgIFRoZSBhcnJheSBvZiBpdGVtIG9iamVjdHMNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyg/YXJyYXkgJGl0ZW1zID0gbnVsbCwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogP2FycmF5Ow0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBhbiByb3cNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbShBcnJheSwgJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAgICRpdGVtICAgICAgVGhlIGl0ZW0gYXJyYXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3coP2FycmF5ICRpdGVtLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWVzIG9mIG11bHRpcGxlIHJvd3MNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbXMoQXJyYXksICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgICAkaXRlbXMgICAgVGhlIGFycmF5IG9mIGl0ZW0gYXJyYXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoP2FycmF5ICRpdGVtcyA9IG51bGwsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9hcnJheTsNCg0KCS8qKg0KCSAqIEdldCBsYXN0IG1vZGVsZWQgSUQNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+bGFzdCgndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgICR0YWJsZSAgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBpbnR8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBsYXN0KD9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9pbnQ7DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICAgJHRhYmxlTmFtZSAgVGhlIHRhYmxlIG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0VGFibGUoc3RyaW5nICR0YWJsZU5hbWUpOiB2b2lkOw0KDQoJLyoqDQoJICogU2V0IHRoZSBzd2l0Y2ggdG8gY29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIGVtcHR5IHZhbHVlcw0KCSAqDQoJICogQHBhcmFtIGJvb2wgICAkYWxsb3dFbXB0eSAgVGhlIHN3aXRjaA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRBbGxvd0VtcHR5KGJvb2wgJGFsbG93RW1wdHkpOiB2b2lkOw==', '{}', '{}', '', 1, '2022-09-13 10:05:07', 21, '', 1),
-(104, '584747d1-3a86-453d-b7a3-a2219de8d777', 'VDM.Abstraction.Model', 'Model', 'abstract class', 'Base Model\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Model', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"2da6d6c4-eb29-4d69-8bc2-36d96e916adf\",\"as\":\"Table\"}}', 'CS8qKg0KCSAqIExhc3QgSUQNCgkgKg0KCSAqIEB2YXIgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGxhc3Q7DQoNCgkvKioNCgkgKiBTZWFyY2ggVGFibGUNCgkgKg0KCSAqIEB2YXIgICAgVGFibGUNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgVGFibGUgJHRhYmxlOw0KDQoJLyoqDQoJICogVGFibGUgTmFtZQ0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZU5hbWU7DQoNCgkvKioNCgkgKiBUaGUgc3dpdGNoIHRvIGNvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMNCgkgKg0KCSAqIEB2YXIgICAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByb3RlY3RlZCBib29sICRhbGxvd0VtcHR5ID0gdHJ1ZTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gVGFibGUgICAgICAgICAkdGFibGUgICAgICAgIFRoZSBzZWFyY2ggdGFibGUgb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAgICR0YWJsZU5hbWUgICAgVGhlIHRhYmxlDQoJICogQHBhcmFtIGJvb2x8bnVsbCAgICAgICAgICAkYWxsb3dFbXB0eSAgIFRoZSBzd2l0Y2ggdG8gY29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIGVtcHR5IHZhbHVlcyAoZGVmYXVsdCB0cnVlKQ0KCSAqDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFRhYmxlICR0YWJsZSwgP3N0cmluZyAkdGFibGVOYW1lID0gbnVsbCwgYm9vbCAkYWxsb3dFbXB0eSA9IG51bGwpDQoJew0KCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCWlmICgkdGFibGVOYW1lICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+c2V0VGFibGUoJHRhYmxlTmFtZSk7DQoJCX0NCgkJaWYgKCRhbGxvd0VtcHR5ICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+c2V0QWxsb3dFbXB0eSgkYWxsb3dFbXB0eSk7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgYWN0aXZlDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoc3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCSR0aGlzLT5zZXRUYWJsZSgkdGFibGUpOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+dmFsdWUodmFsdWUsICd2YWx1ZV9rZXknLCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgJHZhbHVlICAgIFRoZSB2YWx1ZSB0byBtb2RlbA0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgICRmaWVsZCAgICBUaGUgZmllbGQga2V5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJHRhYmxlICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gdmFsdWUoJHZhbHVlLCBzdHJpbmcgJGZpZWxkLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOw0KDQoJLyoqDQoJICogTW9kZWwgYSB2YWx1ZSBvZiBtdWx0aXBsZSBpdGVtcw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT52YWx1ZXMoQXJyYXksICd2YWx1ZV9rZXknLCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICAkaXRlbXMgICAgVGhlIGFycmF5IG9mIHZhbHVlcw0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgJGZpZWxkICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICR0YWJsZSAgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWVzKD9hcnJheSAkaXRlbXMsIHN0cmluZyAkZmllbGQsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gY2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIHRhYmxlDQoJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJGl0ZW1zKSkNCgkJew0KCQkJLy8gc2V0IHRoZSB0YWJsZSBuYW1lDQoJCQlpZiAoZW1wdHkoJHRhYmxlKSkNCgkJCXsNCgkJCQkkdGFibGUgPSAkdGhpcy0+Z2V0VGFibGUoKTsNCgkJCX0NCg0KCQkJLy8gdmFsaWRhdGUgaWYgZmllbGQgZXhpc3QgaW4gdGFibGUNCgkJCWlmICghJHRoaXMtPnRhYmxlLT5leGlzdCgkdGFibGUsICRmaWVsZCkpDQoJCQl7DQoJCQkJcmV0dXJuIG51bGw7DQoJCQl9DQoNCgkJCS8vIHZhbHVlIGNvdW50ZXINCgkJCSR2YWx1ZV9udW1iZXIgPSAwOw0KDQoJCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJCSRpdGVtX2J1Y2tldCA9IFtdOw0KDQoJCQlmb3JlYWNoICgkaXRlbXMgYXMgJHZhbHVlKQ0KCQkJew0KCQkJCWlmICghJHRoaXMtPnZhbGlkYXRlQmVmb3JlKCR2YWx1ZSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJCQkJJHZhbHVlID0gJHRoaXMtPnZhbHVlKCR2YWx1ZSwgJGZpZWxkLCAkdGFibGUpOw0KDQoJCQkJaWYgKCEkdGhpcy0+dmFsaWRhdGVBZnRlcigkdmFsdWUsICRmaWVsZCwgJHRhYmxlKSkNCgkJCQl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCg0KCQkJCSRpdGVtX2J1Y2tldFtdID0gJHZhbHVlOw0KDQoJCQkJJHZhbHVlX251bWJlcisrOw0KCQkJfQ0KDQoJCQkvLyBkbyB3ZSBoYXZlIGFueSB2YWx1ZXMgbGVmdA0KCQkJaWYgKCR2YWx1ZV9udW1iZXIgPiAwKQ0KCQkJew0KCQkJCXJldHVybiAkaXRlbV9idWNrZXQ7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWVzIG9mIGFuIGl0ZW0NCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbShPYmplY3QsICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3R8bnVsbCAgICAkaXRlbSAgICAgIFRoZSBpdGVtIG9iamVjdA0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICR0YWJsZSAgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBvYmplY3R8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtKD9vYmplY3QgJGl0ZW0sID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9vYmplY3QNCgl7DQoJCS8vIHdlIG11c3QgaGF2ZSBhbiBvYmplY3QNCgkJaWYgKGVtcHR5KCRpdGVtKSkNCgkJew0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBzZXQgdGhlIHRhYmxlIG5hbWUNCgkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCXsNCgkJCSR0YWJsZSA9ICR0aGlzLT5nZXRUYWJsZSgpOw0KCQl9DQoNCgkJaWYgKCgkZmllbGRzID0gJHRoaXMtPmdldFRhYmxlRmllbGRzKCR0YWJsZSwgdHJ1ZSkpICE9PSBudWxsKQ0KCQl7DQoJCQkvLyBmaWVsZCBjb3VudGVyDQoJCQkkZmllbGRfbnVtYmVyID0gMDsNCg0KCQkJLy8gY2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIHRhYmxlDQoJCQkkaXRlbV9idWNrZXQgPSBuZXcgXHN0ZENsYXNzKCk7DQoNCgkJCWZvcmVhY2ggKCRmaWVsZHMgYXMgJGZpZWxkKQ0KCQkJew0KCQkJCS8vIG1vZGVsIGEgdmFsdWUgaWYgaXQgZXhpc3RzDQoJCQkJaWYoaXNzZXQoJGl0ZW0tPnskZmllbGR9KSkNCgkJCQl7DQoJCQkJCWlmICghJHRoaXMtPnZhbGlkYXRlQmVmb3JlKCRpdGVtLT57JGZpZWxkfSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCQl7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfQ0KDQoJCQkJCSRpdGVtLT57JGZpZWxkfSA9ICR0aGlzLT52YWx1ZSgkaXRlbS0+eyRmaWVsZH0sICRmaWVsZCwgJHRhYmxlKTsNCg0KCQkJCQlpZiAoISR0aGlzLT52YWxpZGF0ZUFmdGVyKCRpdGVtLT57JGZpZWxkfSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCQl7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfQ0KDQoJCQkJCSRpdGVtX2J1Y2tldC0+eyRmaWVsZH0gPSAkaXRlbS0+eyRmaWVsZH07DQoNCgkJCQkJJGZpZWxkX251bWJlcisrOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gYWxsIGl0ZW1zIG11c3QgaGF2ZSBtb3JlIHRoYW4gb25lIGZpZWxkIG9yIGl0cyBlbXB0eSAoMSA9IGtleSkNCgkJCWlmICgkZmllbGRfbnVtYmVyID4gMSkNCgkJCXsNCgkJCQlyZXR1cm4gJGl0ZW1fYnVja2V0Ow0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBtdWx0aXBsZSBpdGVtcw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtcyhBcnJheSwgJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAgJGl0ZW1zICAgIFRoZSBhcnJheSBvZiBpdGVtIG9iamVjdHMNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyg/YXJyYXkgJGl0ZW1zID0gbnVsbCwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogP2FycmF5DQoJew0KCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkaXRlbXMpKQ0KCQl7DQoJCQkvLyBzZXQgdGhlIHRhYmxlIG5hbWUNCgkJCWlmIChlbXB0eSgkdGFibGUpKQ0KCQkJew0KCQkJCSR0YWJsZSA9ICR0aGlzLT5nZXRUYWJsZSgpOw0KCQkJfQ0KDQoJCQlmb3JlYWNoICgkaXRlbXMgYXMgJGlkID0+ICYkaXRlbSkNCgkJCXsNCgkJCQkvLyBtb2RlbCB0aGUgaXRlbQ0KCQkJCWlmICgoJGl0ZW0gPSAkdGhpcy0+aXRlbSgkaXRlbSwgJHRhYmxlKSkgIT09IG51bGwpDQoJCQkJew0KCQkJCQkvLyBhZGQgdGhlIGxhc3QgSUQNCgkJCQkJJHRoaXMtPmxhc3RbJHRhYmxlXSA9ICRpdGVtLT5pZCA/PyAkdGhpcy0+bGFzdFskdGFibGVdID8/IG51bGw7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCXVuc2V0KCRpdGVtc1skaWRdKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJGl0ZW1zKSkNCgkJCXsNCgkJCQlyZXR1cm4gJGl0ZW1zOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBhbiByb3cNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbShBcnJheSwgJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAgICRpdGVtICAgICAgVGhlIGl0ZW0gYXJyYXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3coP2FycmF5ICRpdGVtLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIHdlIG11c3QgaGF2ZSBhbiBhcnJheQ0KCQlpZiAoZW1wdHkoJGl0ZW0pKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIHNldCB0aGUgdGFibGUgbmFtZQ0KCQlpZiAoZW1wdHkoJHRhYmxlKSkNCgkJew0KCQkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCk7DQoJCX0NCg0KCQlpZiAoKCRmaWVsZHMgPSAkdGhpcy0+Z2V0VGFibGVGaWVsZHMoJHRhYmxlLCB0cnVlKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIGZpZWxkIGNvdW50ZXINCgkJCSRmaWVsZF9udW1iZXIgPSAwOw0KDQoJCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJCSRpdGVtX2J1Y2tldCA9IFtdOw0KDQoJCQlmb3JlYWNoICgkZmllbGRzIGFzICRmaWVsZCkNCgkJCXsNCgkJCQkvLyBtb2RlbCBhIHZhbHVlIGlmIGl0IGV4aXN0cw0KCQkJCWlmKGlzc2V0KCRpdGVtWyRmaWVsZF0pKQ0KCQkJCXsNCgkJCQkJaWYgKCEkdGhpcy0+dmFsaWRhdGVCZWZvcmUoJGl0ZW1bJGZpZWxkXSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCQl7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfQ0KDQoJCQkJCSRpdGVtWyRmaWVsZF0gPSAkdGhpcy0+dmFsdWUoJGl0ZW1bJGZpZWxkXSwgJGZpZWxkLCAkdGFibGUpOw0KDQoJCQkJCWlmICghJHRoaXMtPnZhbGlkYXRlQWZ0ZXIoJGl0ZW1bJGZpZWxkXSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCQl7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfQ0KDQoJCQkJCSRpdGVtX2J1Y2tldFskZmllbGRdID0gJGl0ZW1bJGZpZWxkXTsNCg0KCQkJCQkkZmllbGRfbnVtYmVyKys7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBhbGwgaXRlbXMgbXVzdCBoYXZlIG1vcmUgdGhhbiBvbmUgZmllbGQgb3IgaXRzIGVtcHR5ICgxID0gaWQgb3IgZ3VpZCkNCgkJCWlmICgkZmllbGRfbnVtYmVyID4gMSkNCgkJCXsNCgkJCQlyZXR1cm4gJGl0ZW1fYnVja2V0Ow0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTW9kZWwgdGhlIHZhbHVlcyBvZiBtdWx0aXBsZSByb3dzDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKEFycmF5LCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICAgJGl0ZW1zICAgIFRoZSBhcnJheSBvZiBpdGVtIGFycmF5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJHRhYmxlICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3dzKD9hcnJheSAkaXRlbXMgPSBudWxsLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCB0YWJsZQ0KCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRpdGVtcykpDQoJCXsNCgkJCS8vIHNldCB0aGUgdGFibGUgbmFtZQ0KCQkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCQl7DQoJCQkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCk7DQoJCQl9DQoNCgkJCWZvcmVhY2ggKCRpdGVtcyBhcyAkaWQgPT4gJiRpdGVtKQ0KCQkJew0KCQkJCS8vIG1vZGVsIHRoZSBpdGVtDQoJCQkJaWYgKCgkaXRlbSA9ICR0aGlzLT5yb3coJGl0ZW0sICR0YWJsZSkpICE9PSBudWxsKQ0KCQkJCXsNCgkJCQkJLy8gYWRkIHRoZSBsYXN0IElEDQoJCQkJCSR0aGlzLT5sYXN0WyR0YWJsZV0gPSAkaXRlbVsnaWQnXSA/PyAkdGhpcy0+bGFzdFskdGFibGVdID8/IG51bGw7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCXVuc2V0KCRpdGVtc1skaWRdKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJGl0ZW1zKSkNCgkJCXsNCgkJCQlyZXR1cm4gJGl0ZW1zOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogR2V0IGxhc3QgbW9kZWxlZCBJRA0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5sYXN0KCd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAgJHRhYmxlICAgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIGludHxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGxhc3QoP3N0cmluZyAkdGFibGUgPSBudWxsKTogP2ludA0KCXsNCgkJLy8gc2V0IHRoZSB0YWJsZSBuYW1lDQoJCWlmIChlbXB0eSgkdGFibGUpKQ0KCQl7DQoJCQkkdGFibGUgPSAkdGhpcy0+Z2V0VGFibGUoKTsNCgkJfQ0KDQoJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCB0YWJsZQ0KCQlpZiAoJHRhYmxlICYmIGlzc2V0KCR0aGlzLT5sYXN0WyR0YWJsZV0pKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmxhc3RbJHRhYmxlXTsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICAkdGFibGVOYW1lICBUaGUgdGFibGUgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRUYWJsZShzdHJpbmcgJHRhYmxlTmFtZSk6IHZvaWQNCgl7DQoJCSR0aGlzLT50YWJsZU5hbWUgPSAkdGFibGVOYW1lOw0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgc3dpdGNoIHRvIGNvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMNCgkgKg0KCSAqIEBwYXJhbSBib29sICAgJGFsbG93RW1wdHkgIFRoZSBzd2l0Y2gNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0QWxsb3dFbXB0eShib29sICRhbGxvd0VtcHR5KTogdm9pZA0KCXsNCgkJJHRoaXMtPmFsbG93RW1wdHkgPSAkYWxsb3dFbXB0eTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlTmFtZTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIHN3aXRjaCB0byBjb250cm9sIHRoZSBiZWhhdmlvdXIgb2YgZW1wdHkgdmFsdWVzDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEFsbG93RW1wdHkoKTogYm9vbA0KCXsNCgkJcmV0dXJuICR0aGlzLT5hbGxvd0VtcHR5Ow0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUncyBmaWVsZHMgKGluY2x1ZGluZyBkZWZhdWx0cykNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHRhYmxlICAgICBUaGUgYXJlYQ0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGRlZmF1bHQgICBBZGQgdGhlIGRlZmF1bHQgZmllbGRzDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRUYWJsZUZpZWxkcyhzdHJpbmcgJHRhYmxlLCBib29sICRkZWZhdWx0ID0gZmFsc2UpOiA/YXJyYXkNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGUtPmZpZWxkcygkdGFibGUsICRkZWZhdWx0KTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBiZWZvcmUgdGhlIHZhbHVlIGlzIG1vZGVsbGVkIChiYXNpYywgb3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3MpDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICR2YWx1ZSAgIFRoZSBmaWVsZCB2YWx1ZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJGZpZWxkICAgICBUaGUgZmllbGQga2V5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkdGFibGUgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVCZWZvcmUoJiR2YWx1ZSwgP3N0cmluZyAkZmllbGQgPSBudWxsLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiBib29sOw0KDQoJLyoqDQoJICogVmFsaWRhdGUgYWZ0ZXIgdGhlIHZhbHVlIGlzIG1vZGVsbGVkIChiYXNpYywgb3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3MpDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICR2YWx1ZSAgIFRoZSBmaWVsZCB2YWx1ZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJGZpZWxkICAgICBUaGUgZmllbGQga2V5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkdGFibGUgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVBZnRlcigmJHZhbHVlLCA/c3RyaW5nICRmaWVsZCA9IG51bGwsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6IGJvb2w7', '{}', '{}', '{\"source\":{\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-settings\":\"d0e288fa06bf1fb2326fc7508dd27bc2070e448e\",\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-power\":\"dc2d8b985257c2ce09e4328112e9c8a70eb5e184\",\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-readme\":\"3ad9612244d57ddd86f59f97436493e06b5ea6df\"}}', 1, '2022-09-13 10:05:47', 54, '', 1),
-(124, '06f8eada-d59b-441c-b287-0aea1793da5a', 'VDM.Database.Load', 'Load', 'final class', 'Database Load\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"2ad31f74-f579-499d-b98b-c4f54fd615dd\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Load', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIExvYWQgZGF0YSByb3dzIGFzIGFuIGFycmF5IG9mIGFzc29jaWF0ZWQgYXJyYXlzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJHNlbGVjdCwgYXJyYXkgJHRhYmxlcywgP2FycmF5ICR3aGVyZSA9IG51bGwsDQoJCT9hcnJheSAkb3JkZXIgPSBudWxsLCA/aW50ICRsaW1pdCA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIHNldCBrZXkgaWYgZm91bmQNCgkJJGtleSA9ICR0aGlzLT5nZXRLZXkoJHNlbGVjdCk7DQoNCgkJLy8gY2hlY2sgaWYgd2UgY2FuIGdldCBtYW55IHJvd3MNCgkJaWYgKCR0aGlzLT5tYW55KCRzZWxlY3QsICR0YWJsZXMsICR3aGVyZSwgJG9yZGVyLCAkbGltaXQpKQ0KCQl7DQoJCQkvLyByZXR1cm4gYXNzb2NpYXRlZCBhcnJheXMgZnJvbSB0aGUgdGFibGUgcmVjb3Jkcw0KCQkJcmV0dXJuICR0aGlzLT5kYi0+bG9hZEFzc29jTGlzdCgka2V5KTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvd3MgYXMgYW4gYXJyYXkgb2Ygb2JqZWN0cw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkdGFibGVzICAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkd2hlcmUgICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICogQHBhcmFtICAgaW50fG51bGwgICAgICRsaW1pdCAgICBMaW1pdCB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZA0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gc2V0IGtleSBpZiBmb3VuZA0KCQkka2V5ID0gJHRoaXMtPmdldEtleSgkc2VsZWN0KTsNCg0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG1hbnkgcm93cw0KCQlpZiAoJHRoaXMtPm1hbnkoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIsICRsaW1pdCkpDQoJCXsNCgkJCS8vIHJldHVybiBhc3NvY2lhdGVkIGFycmF5cyBmcm9tIHRoZSB0YWJsZSByZWNvcmRzDQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkT2JqZWN0TGlzdCgka2V5KTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvdyBhcyBhbiBhc3NvY2lhdGVkIGFycmF5DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIGNoZWNrIGlmIHdlIGNhbiBnZXQgb25lIHJvdw0KCQlpZiAoJHRoaXMtPm9uZSgkc2VsZWN0LCAkdGFibGVzLCAkd2hlcmUsICRvcmRlcikpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGItPmxvYWRBc3NvYygpOw0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93IGFzIGFuIG9iamVjdA0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICR0YWJsZXMgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkd2hlcmUgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/b2JqZWN0DQoJew0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG9uZSByb3cNCgkJaWYgKCR0aGlzLT5vbmUoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIpKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkT2JqZWN0KCk7DQoJCX0NCg0KCQkvLyBkYXRhIGRvZXMgbm90IGV4aXN0DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgbWF4IHZhbHVlIGJhc2VkIG9uIGEgZmlsdGVyZWQgcmVzdWx0IGZyb20gYSBnaXZlbiB0YWJsZQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkZmllbGQgICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICR0YWJsZXMgICAgVGhlIHRhYmxlcw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgJGZpbHRlciAgICBUaGUgZmlsdGVyIGtleXMNCgkgKg0KCSAqIEByZXR1cm4gIGludHxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIG1heCgkZmllbGQsIGFycmF5ICR0YWJsZXMsIGFycmF5ICRmaWx0ZXIpOiA/aW50DQoJew0KCQkvLyBvbmx5IGRvIGNoZWNrIGlmIHdlIGhhdmUgdGhlIHRhYmxlIHNldA0KCQlpZiAoaXNzZXQoJHRhYmxlc1snYSddKSkNCgkJew0KCQkJLy8gZ2V0IHRoZSBxdWVyeQ0KCQkJJHF1ZXJ5ID0gJHRoaXMtPnF1ZXJ5KFsiYWxsIiA9PiAiTUFYKGAkZmllbGRgKSJdLCAkdGFibGVzLCAkZmlsdGVyKTsNCg0KCQkJLy8gTG9hZCB0aGUgbWF4IG51bWJlcg0KCQkJJHRoaXMtPmRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJCS8vIGNoZWNrIGlmIHdlIGhhdmUgdmFsdWVzDQoJCQlpZiAoJHRoaXMtPmRiLT5nZXROdW1Sb3dzKCkpDQoJCQl7DQoJCQkJcmV0dXJuIChpbnQpICR0aGlzLT5kYi0+bG9hZFJlc3VsdCgpOw0KCQkJfQ0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBDb3VudCB0aGUgbnVtYmVyIG9mIGl0ZW1zIGJhc2VkIG9uIGZpbHRlciByZXN1bHQgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICR0YWJsZXMgICAgVGhlIHRhYmxlDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAkZmlsdGVyICAgIFRoZSBmaWx0ZXIga2V5cw0KCSAqDQoJICogQHJldHVybiAgaW50fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gY291bnQoYXJyYXkgJHRhYmxlcywgYXJyYXkgJGZpbHRlcik6ID9pbnQNCgl7DQoJCS8vIG9ubHkgZG8gY2hlY2sgaWYgd2UgaGF2ZSB0aGUgdGFibGUgc2V0DQoJCWlmIChpc3NldCgkdGFibGVzWydhJ10pKQ0KCQl7DQoJCQkvLyBnZXQgdGhlIHF1ZXJ5DQoJCQkkcXVlcnkgPSAkdGhpcy0+cXVlcnkoWyJhbGwiID0+ICdDT1VOVCgqKSddLCAkdGFibGVzLCAkZmlsdGVyKTsNCg0KCQkJLy8gTG9hZCB0aGUgbWF4IG51bWJlcg0KCQkJJHRoaXMtPmRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJCS8vIGNoZWNrIGlmIHdlIGhhdmUgdmFsdWVzDQoJCQlpZiAoJHRoaXMtPmRiLT5nZXROdW1Sb3dzKCkpDQoJCQl7DQoJCQkJcmV0dXJuIChpbnQpICR0aGlzLT5kYi0+bG9hZFJlc3VsdCgpOw0KCQkJfQ0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBMb2FkIG9uZSB2YWx1ZSBmcm9tIGEgcm93DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpDQoJew0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG9uZSB2YWx1ZQ0KCQlpZiAoJHRoaXMtPm9uZSgkc2VsZWN0LCAkdGFibGVzLCAkd2hlcmUsICRvcmRlcikpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGItPmxvYWRSZXN1bHQoKTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCB2YWx1ZXMgZnJvbSBtdWx0aXBsZSByb3dzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHZhbHVlcyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gY2hlY2sgaWYgd2UgY2FuIGdldCBtYW55IHJvd3MNCgkJaWYgKCR0aGlzLT5tYW55KCRzZWxlY3QsICR0YWJsZXMsICR3aGVyZSwgJG9yZGVyLCAkbGltaXQpKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkQ29sdW1uKCk7DQoJCX0NCg0KCQkvLyBkYXRhIGRvZXMgbm90IGV4aXN0DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIExvYWQgbWFueQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkdGFibGVzICAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkd2hlcmUgICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICogQHBhcmFtICAgaW50fG51bGwgICAgICRsaW1pdCAgICBMaW1pdCB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBtYW55KGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogYm9vbA0KCXsNCgkJLy8gb25seSBkbyBjaGVjayBpZiB3ZSBoYXZlIHRoZSB0YWJsZSBzZXQNCgkJaWYgKGlzc2V0KCR0YWJsZXNbJ2EnXSkpDQoJCXsNCgkJCS8vIGdldCB0aGUgcXVlcnkNCgkJCSRxdWVyeSA9ICR0aGlzLT5xdWVyeSgkc2VsZWN0LCAkdGFibGVzLCAkd2hlcmUsICRvcmRlciwgJGxpbWl0KTsNCg0KCQkJLy8gTG9hZCB0aGUgaXRlbXMNCgkJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCQkvLyBjaGVjayBpZiB3ZSBoYXZlIHZhbHVlcw0KCQkJaWYgKCR0aGlzLT5kYi0+Z2V0TnVtUm93cygpKQ0KCQkJew0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCBvbmUNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICRzZWxlY3QgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gb25lKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLCA/YXJyYXkgJG9yZGVyID0gbnVsbCk6IGJvb2wNCgl7DQoJCS8vIG9ubHkgZG8gY2hlY2sgaWYgd2UgaGF2ZSB0aGUgdGFibGUgc2V0DQoJCWlmIChpc3NldCgkdGFibGVzWydhJ10pKQ0KCQl7DQoJCQkvLyBnZXQgdGhlIHF1ZXJ5DQoJCQkkcXVlcnkgPSAkdGhpcy0+cXVlcnkoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIpOw0KDQoJCQkvLyBMb2FkIHRoZSBpdGVtDQoJCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSwgMCwgMSk7DQoJCQkkdGhpcy0+ZGItPmV4ZWN1dGUoKTsNCg0KCQkJLy8gY2hlY2sgaWYgd2UgaGF2ZSB2YWx1ZXMNCgkJCWlmICgkdGhpcy0+ZGItPmdldE51bVJvd3MoKSkNCgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgcXVlcnkgb2JqZWN0DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBvYmplY3R8bnVsbCAgIFRoZSBxdWVyeSBvYmplY3QgIChEYXRhYmFzZVF1ZXJ5KQ0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBxdWVyeShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9vYmplY3QNCgl7DQoJCSRxdWVyeSA9ICR0aGlzLT5kYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJLy8gY2hlY2sgaWYgd2UgaGF2ZSBhbiBhbGwgc2VsZWN0aW9uIHNldA0KCQlpZiAoaXNzZXQoJHNlbGVjdFsnYWxsJ10pKQ0KCQl7DQoJCQkvLyBhbGwgc2VsZWN0aW9uIGV4YW1wbGUgYXJyYXk6IFsnYWxsJyA9PiBbJ2EuKicsICdiLionXV0NCgkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHNlbGVjdFsnYWxsJ10pKQ0KCQkJew0KCQkJCWZvcmVhY2ggKCRzZWxlY3RbJ2FsbCddIGFzICRzZWxlY3RfYWxsKQ0KCQkJCXsNCgkJCQkJLy8gc2V0IHRhcmdldCBzZWxlY3Rpb24NCgkJCQkJJHF1ZXJ5LT5zZWxlY3QoDQoJCQkJCQkkc2VsZWN0X2FsbA0KCQkJCQkpOw0KCQkJCX0NCgkJCX0NCgkJCS8vIGFsbCBzZWxlY3Rpb24gZXhhbXBsZSBzdHJpbmc6IFsnYWxsJyA9PidhLionXQ0KCQkJZWxzZWlmIChpc19zdHJpbmcoJHNlbGVjdFsnYWxsJ10pKQ0KCQkJew0KCQkJCS8vIHNldCB0YXJnZXQgc2VsZWN0aW9uDQoJCQkJJHF1ZXJ5LT5zZWxlY3QoDQoJCQkJCSRzZWxlY3RbJ2FsbCddDQoJCQkJKTsNCgkJCX0NCgkJCXVuc2V0KCRzZWxlY3RbJ2FsbCddKTsNCgkJfQ0KDQoJCS8vIGxvYWQgdGhlIHRhYmxlIHdoZXJlIGpvaW4NCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkc2VsZWN0KSkNCgkJew0KCQkJLy8gc2V0IHRhcmdldCBzZWxlY3Rpb24NCgkJCSRxdWVyeS0+c2VsZWN0KA0KCQkJCSR0aGlzLT5kYi0+cXVvdGVOYW1lKA0KCQkJCQlhcnJheV9rZXlzKCRzZWxlY3QpLA0KCQkJCQlhcnJheV92YWx1ZXMoJHNlbGVjdCkNCgkJCQkpDQoJCQkpOw0KCQl9DQoNCgkJLy8gc2V0IG1haW4gdGFibGUNCgkJJHF1ZXJ5LT5mcm9tKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0aGlzLT5nZXRUYWJsZSgkdGFibGVzWydhJ10pLCAnYScpKTsNCg0KCQkvLyByZW1vdmUgbWFpbiB0YWJsZQ0KCQl1bnNldCgkdGFibGVzWydhJ10pOw0KDQoJCS8vIGxvYWQgdGhlIHRhYmxlIHdoZXJlIGpvaW4NCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkdGFibGVzKSkNCgkJew0KCQkJZm9yZWFjaCAoJHRhYmxlcyBhcyAkYXMgPT4gJHRhYmxlKQ0KCQkJew0KCQkJCSRxdWVyeS0+am9pbigNCgkJCQkJJ0xFRlQnLCAkdGhpcy0+ZGItPnF1b3RlTmFtZSgNCgkJCQkJCSR0aGlzLT5nZXRUYWJsZSgkdGFibGVbJ25hbWUnXSksICRhcw0KCQkJCQkpIC4gJyBPTiAoJyAuICR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0YWJsZVsnam9pbl9vbiddKQ0KCQkJCQkuICcgPSAnIC4gJHRoaXMtPmRiLT5xdW90ZU5hbWUoJHRhYmxlWydhc19vbiddKSAuICcpJw0KCQkJCSk7DQoJCQl9DQoJCX0NCg0KCQkvLyBsb2FkIHRoZSB0YWJsZSB3aGVyZSBnZXR0ZXJzDQoJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHdoZXJlKSkNCgkJew0KCQkJZm9yZWFjaCAoJHdoZXJlIGFzICRrZXkgPT4gJHZhbHVlKQ0KCQkJew0KCQkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHZhbHVlKSkNCgkJCQl7DQoJCQkJCWlmIChpc3NldCgkdmFsdWVbJ3ZhbHVlJ10pICYmIGlzc2V0KCR2YWx1ZVsnb3BlcmF0b3InXSkpDQoJCQkJCXsNCgkJCQkJCS8vIGNoZWNrIGlmIHZhbHVlIG5lZWRzIHRvIGJlIHF1b3RlZA0KCQkJCQkJJHF1b3RlID0gJHZhbHVlWydxdW90ZSddID8/IHRydWU7DQoJCQkJCQlpZiAoISRxdW90ZSkNCgkJCQkJCXsNCgkJCQkJCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCR2YWx1ZVsndmFsdWUnXSkpDQoJCQkJCQkJew0KCQkJCQkJCQkvLyBhZGQgdGhlIHdoZXJlIGJ5IGFycmF5DQoJCQkJCQkJCSRxdWVyeS0+d2hlcmUoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGtleSkgLiAnICcgLg0KCQkJCQkJCQkJJHZhbHVlWydvcGVyYXRvciddIC4gJyAoJyAuDQoJCQkJCQkJCQkJaW1wbG9kZSgnLCcsICR2YWx1ZVsndmFsdWUnXSkNCgkJCQkJCQkJCS4gJyknDQoJCQkJCQkJCSk7DQoJCQkJCQkJfQ0KCQkJCQkJCWVsc2UNCgkJCQkJCQl7DQoJCQkJCQkJCS8vIGFkZCB0aGUgd2hlcmUNCgkJCQkJCQkJJHF1ZXJ5LT53aGVyZSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KSAuICcgJyAuDQoJCQkJCQkJCQkkdmFsdWVbJ29wZXJhdG9yJ10gLiAnICcgLiAkdmFsdWVbJ3ZhbHVlJ10pOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJCWVsc2UNCgkJCQkJCXsNCgkJCQkJCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCR2YWx1ZVsndmFsdWUnXSkpDQoJCQkJCQkJew0KCQkJCQkJCQkvLyBhZGQgdGhlIHdoZXJlIGJ5IGFycmF5DQoJCQkJCQkJCSRxdWVyeS0+d2hlcmUoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGtleSkgLiAnICcgLg0KCQkJCQkJCQkJJHZhbHVlWydvcGVyYXRvciddIC4gJyAoJyAuDQoJCQkJCQkJCQkJaW1wbG9kZSgnLCcsDQoJCQkJCQkJCQkJCWFycmF5X21hcCgNCgkJCQkJCQkJCQkJCWZuKCR2YWwpID0+ICR0aGlzLT5xdW90ZSgkdmFsKSwNCgkJCQkJCQkJCQkJCSR2YWx1ZVsndmFsdWUnXQ0KCQkJCQkJCQkJCQkpDQoJCQkJCQkJCQkJKQ0KCQkJCQkJCQkJLiAnKScNCgkJCQkJCQkJKTsNCgkJCQkJCQl9DQoJCQkJCQkJZWxzZQ0KCQkJCQkJCXsNCgkJCQkJCQkJLy8gYWRkIHRoZSB3aGVyZQ0KCQkJCQkJCQkkcXVlcnktPndoZXJlKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCRrZXkpIC4gJyAnIC4NCgkJCQkJCQkJCSR2YWx1ZVsnb3BlcmF0b3InXSAuICcgJyAuICR0aGlzLT5xdW90ZSgkdmFsdWVbJ3ZhbHVlJ10pKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQkvLyB3ZSBzaG91bGQgdGhyb3VnaCBhbiBleGNlcHRpb24NCgkJCQkJCS8vIGZvciBzZWN1cml0eSB3ZSBqdXN0IHJldHVybiBub3RoaW5nIGZvciBub3cNCgkJCQkJCXJldHVybiBudWxsOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCS8vIGFkZCB0aGUgd2hlcmUNCgkJCQkJJHF1ZXJ5LT53aGVyZSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KSAuDQoJCQkJCQknID0gJyAuICR0aGlzLT5xdW90ZSgkdmFsdWUpKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQkvLyBsb2FkIHRoZSByb3cgb3JkZXJpbmcNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkb3JkZXIpKQ0KCQl7DQoJCQlmb3JlYWNoICgkb3JkZXIgYXMgJGtleSA9PiAkZGlyZWN0aW9uKQ0KCQkJew0KCQkJCS8vIGFkZCB0aGUgb3JkZXJpbmcNCgkJCQkkcXVlcnktPm9yZGVyKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCRrZXkpIC4NCgkJCQkJJyAnIC4gJGRpcmVjdGlvbik7DQoJCQl9DQoJCX0NCg0KCQkvLyBvbmx5IHJldHVybiBhIGxpbWl0ZWQgbnVtYmVyDQoJCWlmIChpc19udW1lcmljKCRsaW1pdCkpDQoJCXsNCgkJCSRxdWVyeS0+c2V0TGltaXQoJGxpbWl0KTsNCgkJfQ0KDQoJCXJldHVybiAkcXVlcnk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBrZXkgZnJvbSB0aGUgc2VsZWN0aW9uIGFycmF5Lg0KCSAqDQoJICogVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgYSBrZXkgZnJvbSB0aGUgcHJvdmlkZWQgc2VsZWN0aW9uIGFycmF5Lg0KCSAqIFRoZSBrZXkgaXMgcmVtb3ZlZCBmcm9tIHRoZSBhcnJheSBhZnRlciBiZWluZyByZXRyaWV2ZWQuDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cy4NCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZ3xudWxsICAgVGhlIGtleSwgb3IgbnVsbCBpZiBubyBrZXkgaXMgZm91bmQuDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEtleShhcnJheSAmJHNlbGVjdCk6ID9zdHJpbmcNCgl7DQoJCSRrZXkgPSBudWxsOw0KDQoJCS8vIENoZWNrIGZvciAna2V5JyBmaXJzdCBhbmQgZW5zdXJlIGl0J3MgYSBzdHJpbmcuDQoJCWlmIChpc3NldCgkc2VsZWN0WydrZXknXSkgJiYgaXNfc3RyaW5nKCRzZWxlY3RbJ2tleSddKSkNCgkJew0KCQkJJGtleSA9ICRzZWxlY3RbJ2tleSddOw0KCQkJdW5zZXQoJHNlbGVjdFsna2V5J10pOyAvLyBSZW1vdmUgJ2tleScgZnJvbSB0aGUgYXJyYXkuDQoJCX0NCg0KCQlyZXR1cm4gJGtleTsNCgl9', '{}', '{}', '', 1, '2022-09-03 19:19:27', 54, '', 1),
-(125, '2ad31f74-f579-499d-b98b-c4f54fd615dd', 'VDM.Interfaces.LoadInterface', 'LoadInterface', 'interface', 'Database Load Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.LoadInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIExvYWQgZGF0YSByb3dzIGFzIGFuIGFycmF5IG9mIGFzc29jaWF0ZWQgYXJyYXlzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJHNlbGVjdCwgYXJyYXkgJHRhYmxlcywgP2FycmF5ICR3aGVyZSA9IG51bGwsDQoJCT9hcnJheSAkb3JkZXIgPSBudWxsLCA/aW50ICRsaW1pdCA9IG51bGwpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93cyBhcyBhbiBhcnJheSBvZiBvYmplY3RzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogP2FycmF5Ow0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvdyBhcyBhbiBhc3NvY2lhdGVkIGFycmF5DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93IGFzIGFuIG9iamVjdA0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICR0YWJsZXMgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkd2hlcmUgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/b2JqZWN0Ow0KDQoJLyoqDQoJICogR2V0IHRoZSBtYXggdmFsdWUgYmFzZWQgb24gYSBmaWx0ZXJlZCByZXN1bHQgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJHRhYmxlcyAgICBUaGUgdGFibGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRmaWx0ZXIgICAgVGhlIGZpbHRlciBrZXlzDQoJICoNCgkgKiBAcmV0dXJuICBpbnR8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBtYXgoJGZpZWxkLCBhcnJheSAkdGFibGVzLCBhcnJheSAkZmlsdGVyKTogP2ludDsNCg0KCS8qKg0KCSAqIENvdW50IHRoZSBudW1iZXIgb2YgaXRlbXMgYmFzZWQgb24gZmlsdGVyIHJlc3VsdCBmcm9tIGEgZ2l2ZW4gdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJHRhYmxlcyAgICBUaGUgdGFibGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRmaWx0ZXIgICAgVGhlIGZpbHRlciBrZXlzDQoJICoNCgkgKiBAcmV0dXJuICBpbnR8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBjb3VudChhcnJheSAkdGFibGVzLCBhcnJheSAkZmlsdGVyKTogP2ludDsNCg0KCS8qKg0KCSAqIExvYWQgb25lIHZhbHVlIGZyb20gYSByb3cNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkc2VsZWN0ICAgQXJyYXkgb2Ygc2VsZWN0aW9uIGtleXMNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAkdGFibGVzICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJHdoZXJlICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHZhbHVlKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLCA/YXJyYXkgJG9yZGVyID0gbnVsbCk7DQoNCgkvKioNCgkgKiBMb2FkIHZhbHVlcyBmcm9tIG11bHRpcGxlIHJvd3MNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkc2VsZWN0ICAgQXJyYXkgb2Ygc2VsZWN0aW9uIGtleXMNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHRhYmxlcyAgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJHdoZXJlICAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqIEBwYXJhbSAgIGludHxudWxsICAgICAkbGltaXQgICAgTGltaXQgdGhlIG51bWJlciBvZiB2YWx1ZXMgcmV0dXJuZWQNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMg0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWVzKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogP2FycmF5Ow==', '{}', '{}', '', 1, '2022-10-22 19:20:18', 18, '', 1),
-(126, '6cbef8f8-4813-48e3-b05a-65e1aea95171', 'VDM.Abstraction.Database', 'Database', 'abstract class', 'Database\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Database', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcRGF0YWJhc2VcRGF0YWJhc2VJbnRlcmZhY2U7', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdCB0byBxdWVyeSBsb2NhbCBEQg0KCSAqDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkICRkYjsNCg0KCS8qKg0KCSAqIENvcmUgQ29tcG9uZW50IFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZTsNCg0KCS8qKg0KCSAqIERhdGUgZm9ybWF0IHRvIHJldHVybg0KCSAqDQoJICogQHZhciAgIHN0cmluZw0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJGRhdGVGb3JtYXQgPSAnWS1tLWQgSDppOnMnOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3INCgkgKg0KCSAqIEB0aHJvd3MgXEV4Y2VwdGlvbg0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQoJew0KCQkkdGhpcy0+ZGIgPSBGYWN0b3J5OjpnZXRDb250YWluZXIoKS0+Z2V0KERhdGFiYXNlSW50ZXJmYWNlOjpjbGFzcyk7DQoNCgkJLy8gc2V0IHRoZSBjb21wb25lbnQgdGFibGUNCgkJJHRoaXMtPnRhYmxlID0gJyNfXycgLiBIZWxwZXI6OmdldENvZGUoKTsNCgl9DQoNCgkvKioNCgkgKiBTZXQgYSB2YWx1ZSBiYXNlZCBvbiBkYXRhIHR5cGUNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkdmFsdWUgICBUaGUgdmFsdWUgdG8gc2V0DQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBxdW90ZSgkdmFsdWUpDQoJew0KCQlpZiAoJHZhbHVlID09PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gJ05VTEwnOw0KCQl9DQoNCgkJaWYgKGlzX251bWVyaWMoJHZhbHVlKSkNCgkJew0KCQkJLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtZXJpYyBzdHJpbmcgKGUuZy4sICIwMTIzIiksIHRyZWF0IGl0IGFzIGEgc3RyaW5nIHRvIHByZXNlcnZlIHRoZSBmb3JtYXQNCgkJCWlmIChpc19zdHJpbmcoJHZhbHVlKSAmJiBsdHJpbSgkdmFsdWUsICcwJykgIT09ICR2YWx1ZSkNCgkJCXsNCgkJCQlyZXR1cm4gJHRoaXMtPmRiLT5xdW90ZSgkdmFsdWUpOw0KCQkJfQ0KDQoJCQlpZiAoZmlsdGVyX3ZhcigkdmFsdWUsIEZJTFRFUl9WQUxJREFURV9JTlQpKQ0KCQkJew0KCQkJCXJldHVybiAoaW50KSAkdmFsdWU7DQoJCQl9DQoNCgkJCWlmIChmaWx0ZXJfdmFyKCR2YWx1ZSwgRklMVEVSX1ZBTElEQVRFX0ZMT0FUKSkNCgkJCXsNCgkJCQlyZXR1cm4gKGZsb2F0KSAkdmFsdWU7DQoJCQl9DQoJCX0NCg0KCQkvLyBIYW5kbGUgYm9vbGVhbiB2YWx1ZXMNCgkJaWYgKGlzX2Jvb2woJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQoJCX0NCg0KCQkvLyBGb3IgZGF0ZSBhbmQgZGF0ZXRpbWUgdmFsdWVzDQoJCWlmICgkdmFsdWUgaW5zdGFuY2VvZiBcRGF0ZVRpbWUpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGItPnF1b3RlKCR2YWx1ZS0+Zm9ybWF0KCR0aGlzLT5nZXREYXRlRm9ybWF0KCkpKTsNCgkJfQ0KDQoJCS8vIEZvciBvdGhlciB0eXBlcyBvZiB2YWx1ZXMsIHF1b3RlIGFzIHN0cmluZw0KCQlyZXR1cm4gJHRoaXMtPmRiLT5xdW90ZSgkdmFsdWUpOw0KCX0NCg0KCS8qKg0KCSAqIFNldCBhIHRhYmxlIG5hbWUsIGFkZGluZyB0aGUNCgkgKiAgICAgY29yZSBjb21wb25lbnQgYXMgbmVlZGVkDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgIFRoZSB0YWJsZSBzdHJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRUYWJsZShzdHJpbmcgJHRhYmxlKTogc3RyaW5nDQoJew0KCQlpZiAoc3RycG9zKCR0YWJsZSwgJyNfXycpID09PSBmYWxzZSkNCgkJew0KCQkJcmV0dXJuICR0aGlzLT50YWJsZSAuICdfJyAuICR0YWJsZTsNCgkJfQ0KDQoJCXJldHVybiAkdGFibGU7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBkYXRlIGZvcm1hdCB0byByZXR1cm4gaW4gdGhlIHF1b3RlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgICA1LjAuMg0KCSAqKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0RGF0ZUZvcm1hdCgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+ZGF0ZUZvcm1hdDsNCgl9', '{}', '{}', '', 1, '2018-10-05 17:01:41', 24, '', 1),
-(133, '524eb8f6-38d4-47dc-92ad-98b94e099ac0', 'VDM.Database.Insert', 'Insert', 'final class', 'Database Insert Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Insert', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRGF0ZVxEYXRlOw==', '{\"use_selection0\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFN3aXRjaCB0byBzZXQgdGhlIGRlZmF1bHRzDQoJICoNCgkgKiBAdmFyICAgIGJvb2wNCgkgKiBAc2luY2UgIDEuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBib29sICRkZWZhdWx0cyA9IHRydWU7DQoNCgkvKioNCgkgKiBTd2l0Y2ggdG8gcHJldmVudC9hbGxvdyBkZWZhdWx0cyBmcm9tIGJlaW5nIGFkZGVkLg0KCSAqDQoJICogQHBhcmFtICAgYm9vbCAgICAkdHJpZ2dlciAgICAgIHRvZ2dsZSB0aGUgZGVmYXVsdHMNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gZGVmYXVsdHMoYm9vbCAkdHJpZ2dlciA9IHRydWUpDQoJew0KCQkkdGhpcy0+ZGVmYXVsdHMgPSAkdHJpZ2dlcjsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgcm93cyB0byB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gc3RvcmUgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRjb2x1bW5zICAgRGF0YSBjb2x1bW5zIGZvciByZW1hcHBpbmcgYW5kIGZpbHRlcmluZw0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3dzKGFycmF5ICRkYXRhLCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbA0KCXsNCgkJaWYgKCFBcnJheUhlbHBlcjo6Y2hlY2soJGRhdGEpKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlpZiAoJGNvbHVtbnMgPT09IFtdKQ0KCQl7DQoJCQkkY29sdW1ucyA9ICR0aGlzLT5nZXRBcnJheUNvbHVtbnMoJGRhdGEpOw0KCQl9DQoNCgkJcmV0dXJuICgkY29sdW1ucyA9PT0gW10pID8gZmFsc2UgOiAkdGhpcy0+aW5zZXJ0KCRkYXRhLCAkdGFibGUsICRjb2x1bW5zLCB0cnVlKTsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgaXRlbXMgdG8gdGhlIGRhdGFiYXNlICh3aXRoIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nIGNvbHVtbnMgb3B0aW9uKQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGRhdGEgICAgICAgICBEYXRhIHRvIHN0b3JlIGluIGRhdGFiYXNlIChhcnJheSBvZiBvYmplY3RzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICAgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRkYXRhLCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbA0KCXsNCgkJaWYgKCFBcnJheUhlbHBlcjo6Y2hlY2soJGRhdGEpKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlpZiAoJGNvbHVtbnMgPT09IFtdKQ0KCQl7DQoJCQkkY29sdW1ucyA9ICR0aGlzLT5nZXRPYmplY3RzQ29sdW1ucygkZGF0YSk7DQoJCX0NCg0KCQlyZXR1cm4gKCRjb2x1bW5zID09PSBbXSkgPyBmYWxzZSA6ICR0aGlzLT5pbnNlcnQoJGRhdGEsICR0YWJsZSwgJGNvbHVtbnMsIGZhbHNlKTsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgcm93IHRvIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHN0b3JlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRkYXRhLCBzdHJpbmcgJHRhYmxlKTogYm9vbA0KCXsNCgkJcmV0dXJuICR0aGlzLT5yb3dzKFskZGF0YV0sICR0YWJsZSk7DQoJfQ0KDQoJLyoqDQoJICogSW5zZXJ0IGl0ZW0gdG8gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICAgJGRhdGEgICAgIERhdGFzZXQgdG8gc3RvcmUgaW4gZGF0YWJhc2UgKGtleSA9PiB2YWx1ZSkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtKG9iamVjdCAkZGF0YSwgc3RyaW5nICR0YWJsZSk6IGJvb2wNCgl7DQoJCXJldHVybiAkdGhpcy0+aXRlbXMoWyRkYXRhXSwgJHRhYmxlKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgY29sdW1ucyBmcm9tIGRhdGEgYXJyYXkNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGRhdGEgICBEYXRhIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuICBhcnJheQ0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRBcnJheUNvbHVtbnMoYXJyYXkgJiRkYXRhKTogYXJyYXkNCgl7DQoJCSRyb3cgPSBhcnJheV92YWx1ZXMoJGRhdGEpWzBdOw0KDQoJCWlmICghQXJyYXlIZWxwZXI6OmNoZWNrKCRyb3cpKQ0KCQl7DQoJCQlyZXR1cm4gW107DQoJCX0NCg0KCQkkY29sdW1ucyA9IGFycmF5X2tleXMoJHJvdyk7DQoNCgkJcmV0dXJuIGFycmF5X2NvbWJpbmUoJGNvbHVtbnMsICRjb2x1bW5zKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgY29sdW1ucyBmcm9tIGRhdGEgb2JqZWN0cw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkZGF0YSAgIERhdGEgb2JqZWN0cw0KCSAqDQoJICogQHJldHVybiAgYXJyYXkNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0T2JqZWN0c0NvbHVtbnMoYXJyYXkgJiRkYXRhKTogYXJyYXkNCgl7DQoJCSRyb3cgPSBhcnJheV92YWx1ZXMoJGRhdGEpWzBdOw0KDQoJCWlmICghaXNfb2JqZWN0KCRyb3cpKQ0KCQl7DQoJCQlyZXR1cm4gW107DQoJCX0NCg0KCQkkY29sdW1ucyA9IGdldF9vYmplY3RfdmFycygkcm93KTsNCg0KCQlyZXR1cm4gYXJyYXlfY29tYmluZShhcnJheV9rZXlzKCRjb2x1bW5zKSwgYXJyYXlfa2V5cygkY29sdW1ucykpOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBkYXRhIGludG8gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICRkYXRhICAgICAgRGF0YSB0byBzdG9yZSBpbiBkYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKiBAcGFyYW0gICBhcnJheSAgICRjb2x1bW5zICAgRGF0YSBjb2x1bW5zIGZvciByZW1hcHBpbmcgYW5kIGZpbHRlcmluZw0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGlzQXJyYXkgICBXaGV0aGVyIHRoZSBkYXRhIGlzIGFuIGFycmF5IG9mIGFycmF5cyBvciBhbiBhcnJheSBvZiBvYmplY3RzDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGluc2VydChhcnJheSAmJGRhdGEsIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zLCBib29sICRpc0FycmF5KTogYm9vbA0KCXsNCgkJLy8gc2V0IGpvb21sYSBkZWZhdWx0IGNvbHVtbnMNCgkJJGFkZF9jcmVhdGVkID0gZmFsc2U7DQoJCSRhZGRfdmVyc2lvbiA9IGZhbHNlOw0KCQkkYWRkX3B1Ymxpc2hlZCA9IGZhbHNlOw0KDQoJCS8vIGNoZWNrIGlmIHdlIHNob3VsZCBsb2FkIHRoZSBkZWZhdWx0cw0KCQlpZiAoJHRoaXMtPmRlZmF1bHRzKQ0KCQl7DQoJCQkvLyBnZXQgdGhlIGRhdGUNCgkJCSRkYXRlID0gKG5ldyBEYXRlKCkpLT50b1NxbCgpOw0KDQoJCQlpZiAoIWlzc2V0KCRjb2x1bW5zWydjcmVhdGVkJ10pKQ0KCQkJew0KCQkJCSRjb2x1bW5zWydjcmVhdGVkJ10gPSAnIChvX08pICc7DQoJCQkJJGFkZF9jcmVhdGVkID0gdHJ1ZTsNCgkJCX0NCg0KCQkJaWYgKCFpc3NldCgkY29sdW1uc1sndmVyc2lvbiddKSkNCgkJCXsNCgkJCQkkY29sdW1uc1sndmVyc2lvbiddID0gJyAob19PKSAnOw0KCQkJCSRhZGRfdmVyc2lvbiA9IHRydWU7DQoJCQl9DQoNCgkJCWlmICghaXNzZXQoJGNvbHVtbnNbJ3B1Ymxpc2hlZCddKSkNCgkJCXsNCgkJCQkkY29sdW1uc1sncHVibGlzaGVkJ10gPSAnIChvX08pICc7DQoJCQkJJGFkZF9wdWJsaXNoZWQgPSB0cnVlOw0KCQkJfQ0KCQkJLy8gdGhlIChvX08pIHByZXZlbnRzIGFuIGVtcHR5IHZhbHVlIGZyb20gYmVpbmcgbG9hZGVkDQoJCX0NCg0KCQkvLyBnZXQgYSBxdWVyeSBvYmplY3QNCgkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkvLyBzZXQgdGhlIHF1ZXJ5IHRhcmdldHMNCgkJJHF1ZXJ5LT5pbnNlcnQoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJHRoaXMtPmdldFRhYmxlKCR0YWJsZSkpKS0+Y29sdW1ucygkdGhpcy0+ZGItPnF1b3RlTmFtZShhcnJheV9rZXlzKCRjb2x1bW5zKSkpOw0KDQoJCS8vIGxpbWl0aW5nIGZhY3RvciBvbiB0aGUgYW1vdW50IG9mIHJvd3MgdG8gaW5zZXJ0IGJlZm9yZSB3ZSByZXNldCB0aGUgcXVlcnkNCgkJJGxpbWl0ID0gMzAwOw0KDQoJCS8vIHNldCB0aGUgaW5zZXJ0IHZhbHVlcw0KCQlmb3JlYWNoICgkZGF0YSBhcyAkbnIgPT4gJHZhbHVlKQ0KCQl7DQoJCQkvLyBjaGVjayB0aGUgbGltaXQNCgkJCWlmICgkbGltaXQgPD0gMSkNCgkJCXsNCgkJCQkvLyBleGVjdXRlIGFuZCByZXNldCB0aGUgcXVlcnkNCgkJCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCQkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJCQkvLyByZXNldCBsaW1pdA0KCQkJCSRsaW1pdCA9IDMwMDsNCg0KCQkJCS8vIGdldCBhIHF1ZXJ5IG9iamVjdA0KCQkJCSRxdWVyeSA9ICR0aGlzLT5kYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJCQkvLyBzZXQgdGhlIHF1ZXJ5IHRhcmdldHMNCgkJCQkkcXVlcnktPmluc2VydCgkdGhpcy0+ZGItPnF1b3RlTmFtZSgkdGhpcy0+Z2V0VGFibGUoJHRhYmxlKSkpLT5jb2x1bW5zKCR0aGlzLT5kYi0+cXVvdGVOYW1lKGFycmF5X2tleXMoJGNvbHVtbnMpKSk7DQoJCQl9DQoNCgkJCSRyb3cgPSBbXTsNCgkJCWZvcmVhY2ggKCRjb2x1bW5zIGFzICRjb2x1bW4gPT4gJGtleSkNCgkJCXsNCgkJCQlpZiAoJyAob19PKSAnICE9PSAka2V5KQ0KCQkJCXsNCgkJCQkJJHJvd1tdID0gKCRpc0FycmF5ICYmIGlzc2V0KCR2YWx1ZVska2V5XSkpID8gJHRoaXMtPnF1b3RlKCR2YWx1ZVska2V5XSkNCgkJCQkJCTogKCghJGlzQXJyYXkgJiYgaXNzZXQoJHZhbHVlLT57JGtleX0pKSA/ICR0aGlzLT5xdW90ZSgkdmFsdWUtPnska2V5fSkgOiAnJyk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBzZXQgam9vbWxhIGRlZmF1bHQgY29sdW1ucw0KCQkJaWYgKCRhZGRfY3JlYXRlZCkNCgkJCXsNCgkJCQkkcm93W10gPSAkdGhpcy0+ZGItPnF1b3RlKCRkYXRlKTsNCgkJCX0NCg0KCQkJaWYgKCRhZGRfdmVyc2lvbikNCgkJCXsNCgkJCQkkcm93W10gPSAxOw0KCQkJfQ0KDQoJCQlpZiAoJGFkZF9wdWJsaXNoZWQpDQoJCQl7DQoJCQkJJHJvd1tdID0gMTsNCgkJCX0NCg0KCQkJLy8gYWRkIHRvIHF1ZXJ5DQoJCQkkcXVlcnktPnZhbHVlcyhpbXBsb2RlKCcsJywgJHJvdykpOw0KDQoJCQkvLyBkZWNyZW1lbnQgdGhlIGxpbWl0ZXINCgkJCSRsaW1pdC0tOw0KDQoJCQkvLyBjbGVhciB0aGUgZGF0YSBmcm9tIG1lbW9yeQ0KCQkJdW5zZXQoJGRhdGFbJG5yXSk7DQoJCX0NCg0KCQkvLyBleGVjdXRlIHRoZSBmaW5hbCBxdWVyeQ0KCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCSR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCS8vIGFsd2F5cyByZXNldCB0aGUgZGVmYXVsdCBzd2l0Y2gNCgkJJHRoaXMtPmRlZmF1bHRzKCk7DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ==', '{}', '{}', '', 1, '2022-09-03 14:06:26', 32, '', 1),
-(134, 'ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48', 'VDM.Interfaces.InsertInterface', 'InsertInterface', 'interface', 'Database Insert Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.InsertInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFN3aXRjaCB0byBwcmV2ZW50L2FsbG93IGRlZmF1bHRzIGZyb20gYmVpbmcgYWRkZWQuDQoJICoNCgkgKiBAcGFyYW0gICBib29sICAgICR0cmlnZ2VyICAgICAgdG9nZ2xlIHRoZSBkZWZhdWx0cw0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBkZWZhdWx0cyhib29sICR0cmlnZ2VyID0gdHJ1ZSk7DQoNCgkvKioNCgkgKiBJbnNlcnQgcm93cyB0byB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gc3RvcmUgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRjb2x1bW5zICAgRGF0YSBjb2x1bW5zIGZvciByZW1hcHBpbmcgYW5kIGZpbHRlcmluZw0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3dzKGFycmF5ICRkYXRhLCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbDsNCg0KCS8qKg0KCSAqIEluc2VydCBpdGVtcyB0byB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgICAgIERhdGEgdG8gc3RvcmUgaW4gZGF0YWJhc2UgKGFycmF5IG9mIG9iamVjdHMpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgICAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGRhdGEsIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sOw0KDQoJLyoqDQoJICogSW5zZXJ0IHJvdyB0byB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byBzdG9yZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkZGF0YSwgc3RyaW5nICR0YWJsZSk6IGJvb2w7DQoNCgkvKioNCgkgKiBJbnNlcnQgaXRlbSB0byB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAkZGF0YSAgICAgRGF0YXNldCB0byBzdG9yZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0ob2JqZWN0ICRkYXRhLCBzdHJpbmcgJHRhYmxlKTogYm9vbDs=', '{}', '{}', '', 1, '2022-12-10 14:06:51', 11, '', 1),
+(104, '584747d1-3a86-453d-b7a3-a2219de8d777', 'VDM.Abstraction.Model', 'Model', 'abstract class', 'Base Model\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Model', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"2da6d6c4-eb29-4d69-8bc2-36d96e916adf\",\"as\":\"Table\"}}', 'CS8qKg0KCSAqIExhc3QgSUQNCgkgKg0KCSAqIEB2YXIgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGxhc3Q7DQoNCgkvKioNCgkgKiBTZWFyY2ggVGFibGUNCgkgKg0KCSAqIEB2YXIgICAgVGFibGUNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgVGFibGUgJHRhYmxlOw0KDQoJLyoqDQoJICogVGFibGUgTmFtZQ0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZU5hbWU7DQoNCgkvKioNCgkgKiBUaGUgc3dpdGNoIHRvIGNvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMNCgkgKg0KCSAqIEB2YXIgICAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByb3RlY3RlZCBib29sICRhbGxvd0VtcHR5ID0gdHJ1ZTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAcGFyYW0gVGFibGUgICAgICAgICAkdGFibGUgICAgICAgIFRoZSBzZWFyY2ggdGFibGUgb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAgICR0YWJsZU5hbWUgICAgVGhlIHRhYmxlDQoJICogQHBhcmFtIGJvb2x8bnVsbCAgICAgJGFsbG93RW1wdHkgICBUaGUgc3dpdGNoIHRvIGNvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMgKGRlZmF1bHQgdHJ1ZSkNCgkgKg0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChUYWJsZSAkdGFibGUsID9zdHJpbmcgJHRhYmxlTmFtZSA9IG51bGwsID9ib29sICRhbGxvd0VtcHR5ID0gbnVsbCkNCgl7DQoJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCgkJaWYgKCR0YWJsZU5hbWUgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT5zZXRUYWJsZSgkdGFibGVOYW1lKTsNCgkJfQ0KCQlpZiAoJGFsbG93RW1wdHkgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT5zZXRBbGxvd0VtcHR5KCRhbGxvd0VtcHR5KTsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZShzdHJpbmcgJHRhYmxlKTogc2VsZg0KCXsNCgkJJHRoaXMtPnNldFRhYmxlKCR0YWJsZSk7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIE1vZGVsIHRoZSB2YWx1ZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT52YWx1ZSh2YWx1ZSwgJ3ZhbHVlX2tleScsICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICAkdmFsdWUgICAgVGhlIHZhbHVlIHRvIG1vZGVsDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgJGZpZWxkICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCWFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiB2YWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk7DQoNCgkvKioNCgkgKiBNb2RlbCBhIHZhbHVlIG9mIG11bHRpcGxlIGl0ZW1zDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPnZhbHVlcyhBcnJheSwgJ3ZhbHVlX2tleScsICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgICRpdGVtcyAgICBUaGUgYXJyYXkgb2YgdmFsdWVzDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAkZmllbGQgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJHRhYmxlICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZXMoP2FycmF5ICRpdGVtcywgc3RyaW5nICRmaWVsZCwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogP2FycmF5DQoJew0KCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkaXRlbXMpKQ0KCQl7DQoJCQkvLyBzZXQgdGhlIHRhYmxlIG5hbWUNCgkJCWlmIChlbXB0eSgkdGFibGUpKQ0KCQkJew0KCQkJCSR0YWJsZSA9ICR0aGlzLT5nZXRUYWJsZSgpOw0KCQkJfQ0KDQoJCQkvLyB2YWxpZGF0ZSBpZiBmaWVsZCBleGlzdCBpbiB0YWJsZQ0KCQkJaWYgKCEkdGhpcy0+dGFibGUtPmV4aXN0KCR0YWJsZSwgJGZpZWxkKSkNCgkJCXsNCgkJCQlyZXR1cm4gbnVsbDsNCgkJCX0NCg0KCQkJLy8gdmFsdWUgY291bnRlcg0KCQkJJHZhbHVlX251bWJlciA9IDA7DQoNCgkJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCB0YWJsZQ0KCQkJJGl0ZW1fYnVja2V0ID0gW107DQoNCgkJCWZvcmVhY2ggKCRpdGVtcyBhcyAkdmFsdWUpDQoJCQl7DQoJCQkJaWYgKCEkdGhpcy0+dmFsaWRhdGVCZWZvcmUoJHZhbHVlLCAkZmllbGQsICR0YWJsZSkpDQoJCQkJew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQkkdmFsdWUgPSAkdGhpcy0+dmFsdWUoJHZhbHVlLCAkZmllbGQsICR0YWJsZSk7DQoNCgkJCQlpZiAoISR0aGlzLT52YWxpZGF0ZUFmdGVyKCR2YWx1ZSwgJGZpZWxkLCAkdGFibGUpKQ0KCQkJCXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJCQkJJGl0ZW1fYnVja2V0W10gPSAkdmFsdWU7DQoNCgkJCQkkdmFsdWVfbnVtYmVyKys7DQoJCQl9DQoNCgkJCS8vIGRvIHdlIGhhdmUgYW55IHZhbHVlcyBsZWZ0DQoJCQlpZiAoJHZhbHVlX251bWJlciA+IDApDQoJCQl7DQoJCQkJcmV0dXJuICRpdGVtX2J1Y2tldDsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIE1vZGVsIHRoZSB2YWx1ZXMgb2YgYW4gaXRlbQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtKE9iamVjdCwgJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdHxudWxsICAgICRpdGVtICAgICAgVGhlIGl0ZW0gb2JqZWN0DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAgJHRhYmxlICAgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdHxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0oP29iamVjdCAkaXRlbSwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogP29iamVjdA0KCXsNCgkJLy8gd2UgbXVzdCBoYXZlIGFuIG9iamVjdA0KCQlpZiAoZW1wdHkoJGl0ZW0pKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIHNldCB0aGUgdGFibGUgbmFtZQ0KCQlpZiAoZW1wdHkoJHRhYmxlKSkNCgkJew0KCQkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCk7DQoJCX0NCg0KCQlpZiAoKCRmaWVsZHMgPSAkdGhpcy0+Z2V0VGFibGVGaWVsZHMoJHRhYmxlLCB0cnVlKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIGZpZWxkIGNvdW50ZXINCgkJCSRmaWVsZF9udW1iZXIgPSAwOw0KDQoJCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJCSRpdGVtX2J1Y2tldCA9IG5ldyBcc3RkQ2xhc3MoKTsNCg0KCQkJZm9yZWFjaCAoJGZpZWxkcyBhcyAkZmllbGQpDQoJCQl7DQoJCQkJLy8gbW9kZWwgYSB2YWx1ZSBpZiBpdCBleGlzdHMNCgkJCQlpZihpc3NldCgkaXRlbS0+eyRmaWVsZH0pKQ0KCQkJCXsNCgkJCQkJaWYgKCEkdGhpcy0+dmFsaWRhdGVCZWZvcmUoJGl0ZW0tPnskZmllbGR9LCAkZmllbGQsICR0YWJsZSkpDQoJCQkJCXsNCgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9DQoNCgkJCQkJJGl0ZW0tPnskZmllbGR9ID0gJHRoaXMtPnZhbHVlKCRpdGVtLT57JGZpZWxkfSwgJGZpZWxkLCAkdGFibGUpOw0KDQoJCQkJCWlmICghJHRoaXMtPnZhbGlkYXRlQWZ0ZXIoJGl0ZW0tPnskZmllbGR9LCAkZmllbGQsICR0YWJsZSkpDQoJCQkJCXsNCgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9DQoNCgkJCQkJJGl0ZW1fYnVja2V0LT57JGZpZWxkfSA9ICRpdGVtLT57JGZpZWxkfTsNCg0KCQkJCQkkZmllbGRfbnVtYmVyKys7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBhbGwgaXRlbXMgbXVzdCBoYXZlIG1vcmUgdGhhbiBvbmUgZmllbGQgb3IgaXRzIGVtcHR5ICgxID0ga2V5KQ0KCQkJaWYgKCRmaWVsZF9udW1iZXIgPiAxKQ0KCQkJew0KCQkJCXJldHVybiAkaXRlbV9idWNrZXQ7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWVzIG9mIG11bHRpcGxlIGl0ZW1zDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKEFycmF5LCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICAkaXRlbXMgICAgVGhlIGFycmF5IG9mIGl0ZW0gb2JqZWN0cw0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICR0YWJsZSAgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKD9hcnJheSAkaXRlbXMgPSBudWxsLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCB0YWJsZQ0KCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRpdGVtcykpDQoJCXsNCgkJCS8vIHNldCB0aGUgdGFibGUgbmFtZQ0KCQkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCQl7DQoJCQkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCk7DQoJCQl9DQoNCgkJCWZvcmVhY2ggKCRpdGVtcyBhcyAkaWQgPT4gJiRpdGVtKQ0KCQkJew0KCQkJCS8vIG1vZGVsIHRoZSBpdGVtDQoJCQkJaWYgKCgkaXRlbSA9ICR0aGlzLT5pdGVtKCRpdGVtLCAkdGFibGUpKSAhPT0gbnVsbCkNCgkJCQl7DQoJCQkJCS8vIGFkZCB0aGUgbGFzdCBJRA0KCQkJCQkkdGhpcy0+bGFzdFskdGFibGVdID0gJGl0ZW0tPmlkID8/ICR0aGlzLT5sYXN0WyR0YWJsZV0gPz8gbnVsbDsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJdW5zZXQoJGl0ZW1zWyRpZF0pOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkaXRlbXMpKQ0KCQkJew0KCQkJCXJldHVybiAkaXRlbXM7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWVzIG9mIGFuIHJvdw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtKEFycmF5LCAndGFibGVfbmFtZScpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICAgJGl0ZW0gICAgICBUaGUgaXRlbSBhcnJheQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICR0YWJsZSAgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyg/YXJyYXkgJGl0ZW0sID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gd2UgbXVzdCBoYXZlIGFuIGFycmF5DQoJCWlmIChlbXB0eSgkaXRlbSkpDQoJCXsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gc2V0IHRoZSB0YWJsZSBuYW1lDQoJCWlmIChlbXB0eSgkdGFibGUpKQ0KCQl7DQoJCQkkdGFibGUgPSAkdGhpcy0+Z2V0VGFibGUoKTsNCgkJfQ0KDQoJCWlmICgoJGZpZWxkcyA9ICR0aGlzLT5nZXRUYWJsZUZpZWxkcygkdGFibGUsIHRydWUpKSAhPT0gbnVsbCkNCgkJew0KCQkJLy8gZmllbGQgY291bnRlcg0KCQkJJGZpZWxkX251bWJlciA9IDA7DQoNCgkJCS8vIGNoZWNrIGlmIHRoaXMgaXMgYSB2YWxpZCB0YWJsZQ0KCQkJJGl0ZW1fYnVja2V0ID0gW107DQoNCgkJCWZvcmVhY2ggKCRmaWVsZHMgYXMgJGZpZWxkKQ0KCQkJew0KCQkJCS8vIG1vZGVsIGEgdmFsdWUgaWYgaXQgZXhpc3RzDQoJCQkJaWYoaXNzZXQoJGl0ZW1bJGZpZWxkXSkpDQoJCQkJew0KCQkJCQlpZiAoISR0aGlzLT52YWxpZGF0ZUJlZm9yZSgkaXRlbVskZmllbGRdLCAkZmllbGQsICR0YWJsZSkpDQoJCQkJCXsNCgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9DQoNCgkJCQkJJGl0ZW1bJGZpZWxkXSA9ICR0aGlzLT52YWx1ZSgkaXRlbVskZmllbGRdLCAkZmllbGQsICR0YWJsZSk7DQoNCgkJCQkJaWYgKCEkdGhpcy0+dmFsaWRhdGVBZnRlcigkaXRlbVskZmllbGRdLCAkZmllbGQsICR0YWJsZSkpDQoJCQkJCXsNCgkJCQkJCWNvbnRpbnVlOw0KCQkJCQl9DQoNCgkJCQkJJGl0ZW1fYnVja2V0WyRmaWVsZF0gPSAkaXRlbVskZmllbGRdOw0KDQoJCQkJCSRmaWVsZF9udW1iZXIrKzsNCgkJCQl9DQoJCQl9DQoNCgkJCS8vIGFsbCBpdGVtcyBtdXN0IGhhdmUgbW9yZSB0aGFuIG9uZSBmaWVsZCBvciBpdHMgZW1wdHkgKDEgPSBpZCBvciBndWlkKQ0KCQkJaWYgKCRmaWVsZF9udW1iZXIgPiAxKQ0KCQkJew0KCQkJCXJldHVybiAkaXRlbV9idWNrZXQ7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBNb2RlbCB0aGUgdmFsdWVzIG9mIG11bHRpcGxlIHJvd3MNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbXMoQXJyYXksICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgICAkaXRlbXMgICAgVGhlIGFycmF5IG9mIGl0ZW0gYXJyYXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICAkdGFibGUgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoP2FycmF5ICRpdGVtcyA9IG51bGwsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gY2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIHRhYmxlDQoJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJGl0ZW1zKSkNCgkJew0KCQkJLy8gc2V0IHRoZSB0YWJsZSBuYW1lDQoJCQlpZiAoZW1wdHkoJHRhYmxlKSkNCgkJCXsNCgkJCQkkdGFibGUgPSAkdGhpcy0+Z2V0VGFibGUoKTsNCgkJCX0NCg0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpZCA9PiAmJGl0ZW0pDQoJCQl7DQoJCQkJLy8gbW9kZWwgdGhlIGl0ZW0NCgkJCQlpZiAoKCRpdGVtID0gJHRoaXMtPnJvdygkaXRlbSwgJHRhYmxlKSkgIT09IG51bGwpDQoJCQkJew0KCQkJCQkvLyBhZGQgdGhlIGxhc3QgSUQNCgkJCQkJJHRoaXMtPmxhc3RbJHRhYmxlXSA9ICRpdGVtWydpZCddID8/ICR0aGlzLT5sYXN0WyR0YWJsZV0gPz8gbnVsbDsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJdW5zZXQoJGl0ZW1zWyRpZF0pOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkaXRlbXMpKQ0KCQkJew0KCQkJCXJldHVybiAkaXRlbXM7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBHZXQgbGFzdCBtb2RlbGVkIElEDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPmxhc3QoJ3RhYmxlX25hbWUnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICAkdGFibGUgICAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgaW50fG51bGwNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gbGFzdCg/c3RyaW5nICR0YWJsZSA9IG51bGwpOiA/aW50DQoJew0KCQkvLyBzZXQgdGhlIHRhYmxlIG5hbWUNCgkJaWYgKGVtcHR5KCR0YWJsZSkpDQoJCXsNCgkJCSR0YWJsZSA9ICR0aGlzLT5nZXRUYWJsZSgpOw0KCQl9DQoNCgkJLy8gY2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIHRhYmxlDQoJCWlmICgkdGFibGUgJiYgaXNzZXQoJHRoaXMtPmxhc3RbJHRhYmxlXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+bGFzdFskdGFibGVdOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgICR0YWJsZU5hbWUgIFRoZSB0YWJsZSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHNldFRhYmxlKHN0cmluZyAkdGFibGVOYW1lKTogdm9pZA0KCXsNCgkJJHRoaXMtPnRhYmxlTmFtZSA9ICR0YWJsZU5hbWU7DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBzd2l0Y2ggdG8gY29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIGVtcHR5IHZhbHVlcw0KCSAqDQoJICogQHBhcmFtIGJvb2wgICAkYWxsb3dFbXB0eSAgVGhlIHN3aXRjaA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRBbGxvd0VtcHR5KGJvb2wgJGFsbG93RW1wdHkpOiB2b2lkDQoJew0KCQkkdGhpcy0+YWxsb3dFbXB0eSA9ICRhbGxvd0VtcHR5Ow0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGVOYW1lOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgc3dpdGNoIHRvIGNvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiBlbXB0eSB2YWx1ZXMNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QWxsb3dFbXB0eSgpOiBib29sDQoJew0KCQlyZXR1cm4gJHRoaXMtPmFsbG93RW1wdHk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZSdzIGZpZWxkcyAoaW5jbHVkaW5nIGRlZmF1bHRzKQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICAgIFRoZSBhcmVhDQoJICogQHBhcmFtICAgYm9vbCAgICAkZGVmYXVsdCAgIEFkZCB0aGUgZGVmYXVsdCBmaWVsZHMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5DQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFRhYmxlRmllbGRzKHN0cmluZyAkdGFibGUsIGJvb2wgJGRlZmF1bHQgPSBmYWxzZSk6ID9hcnJheQ0KCXsNCgkJcmV0dXJuICR0aGlzLT50YWJsZS0+ZmllbGRzKCR0YWJsZSwgJGRlZmF1bHQpOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGJlZm9yZSB0aGUgdmFsdWUgaXMgbW9kZWxsZWQgKGJhc2ljLCBvdmVycmlkZSBpbiBjaGlsZCBjbGFzcykNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgJHZhbHVlICAgVGhlIGZpZWxkIHZhbHVlDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkZmllbGQgICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICR0YWJsZSAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCWFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZUJlZm9yZSgmJHZhbHVlLCA/c3RyaW5nICRmaWVsZCA9IG51bGwsID9zdHJpbmcgJHRhYmxlID0gbnVsbCk6IGJvb2w7DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBhZnRlciB0aGUgdmFsdWUgaXMgbW9kZWxsZWQgKGJhc2ljLCBvdmVycmlkZSBpbiBjaGlsZCBjbGFzcykNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgJHZhbHVlICAgVGhlIGZpZWxkIHZhbHVlDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkZmllbGQgICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICR0YWJsZSAgIFRoZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCWFic3RyYWN0IHByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZGF0ZUFmdGVyKCYkdmFsdWUsID9zdHJpbmcgJGZpZWxkID0gbnVsbCwgP3N0cmluZyAkdGFibGUgPSBudWxsKTogYm9vbDs=', '{}', '{}', '{\"source\":{\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-settings\":\"d0e288fa06bf1fb2326fc7508dd27bc2070e448e\",\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-power\":\"dc2d8b985257c2ce09e4328112e9c8a70eb5e184\",\"1a1b6f3d-f16c-431a-b270-7a8a80cc7f56-readme\":\"3ad9612244d57ddd86f59f97436493e06b5ea6df\"}}', 1, '2022-09-13 10:05:47', 55, '', 1),
+(124, '06f8eada-d59b-441c-b287-0aea1793da5a', 'VDM.Database.Load', 'Load', 'final class', 'Database Load\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"2ad31f74-f579-499d-b98b-c4f54fd615dd\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Load', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIExvYWQgZGF0YSByb3dzIGFzIGFuIGFycmF5IG9mIGFzc29jaWF0ZWQgYXJyYXlzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJHNlbGVjdCwgYXJyYXkgJHRhYmxlcywgP2FycmF5ICR3aGVyZSA9IG51bGwsDQoJCT9hcnJheSAkb3JkZXIgPSBudWxsLCA/aW50ICRsaW1pdCA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIHNldCBrZXkgaWYgZm91bmQNCgkJJGtleSA9ICR0aGlzLT5nZXRLZXkoJHNlbGVjdCk7DQoNCgkJLy8gY2hlY2sgaWYgd2UgY2FuIGdldCBtYW55IHJvd3MNCgkJaWYgKCR0aGlzLT5tYW55KCRzZWxlY3QsICR0YWJsZXMsICR3aGVyZSwgJG9yZGVyLCAkbGltaXQpKQ0KCQl7DQoJCQkvLyByZXR1cm4gYXNzb2NpYXRlZCBhcnJheXMgZnJvbSB0aGUgdGFibGUgcmVjb3Jkcw0KCQkJcmV0dXJuICR0aGlzLT5kYi0+bG9hZEFzc29jTGlzdCgka2V5KTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvd3MgYXMgYW4gYXJyYXkgb2Ygb2JqZWN0cw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkdGFibGVzICAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkd2hlcmUgICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICogQHBhcmFtICAgaW50fG51bGwgICAgICRsaW1pdCAgICBMaW1pdCB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZA0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gc2V0IGtleSBpZiBmb3VuZA0KCQkka2V5ID0gJHRoaXMtPmdldEtleSgkc2VsZWN0KTsNCg0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG1hbnkgcm93cw0KCQlpZiAoJHRoaXMtPm1hbnkoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIsICRsaW1pdCkpDQoJCXsNCgkJCS8vIHJldHVybiBhc3NvY2lhdGVkIGFycmF5cyBmcm9tIHRoZSB0YWJsZSByZWNvcmRzDQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkT2JqZWN0TGlzdCgka2V5KTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvdyBhcyBhbiBhc3NvY2lhdGVkIGFycmF5DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/YXJyYXkNCgl7DQoJCS8vIGNoZWNrIGlmIHdlIGNhbiBnZXQgb25lIHJvdw0KCQlpZiAoJHRoaXMtPm9uZSgkc2VsZWN0LCAkdGFibGVzLCAkd2hlcmUsICRvcmRlcikpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGItPmxvYWRBc3NvYygpOw0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93IGFzIGFuIG9iamVjdA0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICR0YWJsZXMgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkd2hlcmUgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/b2JqZWN0DQoJew0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG9uZSByb3cNCgkJaWYgKCR0aGlzLT5vbmUoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIpKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkT2JqZWN0KCk7DQoJCX0NCg0KCQkvLyBkYXRhIGRvZXMgbm90IGV4aXN0DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgbWF4IHZhbHVlIGJhc2VkIG9uIGEgZmlsdGVyZWQgcmVzdWx0IGZyb20gYSBnaXZlbiB0YWJsZQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkZmllbGQgICAgIFRoZSBmaWVsZCBrZXkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICR0YWJsZXMgICAgVGhlIHRhYmxlcw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgJGZpbHRlciAgICBUaGUgZmlsdGVyIGtleXMNCgkgKg0KCSAqIEByZXR1cm4gIGludHxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIG1heCgkZmllbGQsIGFycmF5ICR0YWJsZXMsIGFycmF5ICRmaWx0ZXIpOiA/aW50DQoJew0KCQlpZiAoKCR0YWJsZXMgPSAkdGhpcy0+bm9ybWFsaXplVGFibGVzKCR0YWJsZXMpKSA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBnZXQgdGhlIHF1ZXJ5DQoJCSRxdWVyeSA9ICR0aGlzLT5xdWVyeShbImFsbCIgPT4gIk1BWChgJGZpZWxkYCkiXSwgJHRhYmxlcywgJGZpbHRlcik7DQoNCgkJLy8gTG9hZCB0aGUgbWF4IG51bWJlcg0KCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCSR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCS8vIGNoZWNrIGlmIHdlIGhhdmUgdmFsdWVzDQoJCWlmICgkdGhpcy0+ZGItPmdldE51bVJvd3MoKSkNCgkJew0KCQkJcmV0dXJuIChpbnQpICR0aGlzLT5kYi0+bG9hZFJlc3VsdCgpOw0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBDb3VudCB0aGUgbnVtYmVyIG9mIGl0ZW1zIGJhc2VkIG9uIGZpbHRlciByZXN1bHQgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICR0YWJsZXMgICAgVGhlIHRhYmxlDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAkZmlsdGVyICAgIFRoZSBmaWx0ZXIga2V5cw0KCSAqDQoJICogQHJldHVybiAgaW50fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gY291bnQoYXJyYXkgJHRhYmxlcywgYXJyYXkgJGZpbHRlcik6ID9pbnQNCgl7DQoJCWlmICgoJHRhYmxlcyA9ICR0aGlzLT5ub3JtYWxpemVUYWJsZXMoJHRhYmxlcykpID09PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIGdldCB0aGUgcXVlcnkNCgkJJHF1ZXJ5ID0gJHRoaXMtPnF1ZXJ5KFsiYWxsIiA9PiAnQ09VTlQoKiknXSwgJHRhYmxlcywgJGZpbHRlcik7DQoNCgkJLy8gTG9hZCB0aGUgbWF4IG51bWJlcg0KCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCSR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCS8vIGNoZWNrIGlmIHdlIGhhdmUgdmFsdWVzDQoJCWlmICgkdGhpcy0+ZGItPmdldE51bVJvd3MoKSkNCgkJew0KCQkJcmV0dXJuIChpbnQpICR0aGlzLT5kYi0+bG9hZFJlc3VsdCgpOw0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBMb2FkIG9uZSB2YWx1ZSBmcm9tIGEgcm93DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpDQoJew0KCQkvLyBjaGVjayBpZiB3ZSBjYW4gZ2V0IG9uZSB2YWx1ZQ0KCQlpZiAoJHRoaXMtPm9uZSgkc2VsZWN0LCAkdGFibGVzLCAkd2hlcmUsICRvcmRlcikpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGItPmxvYWRSZXN1bHQoKTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTG9hZCB2YWx1ZXMgZnJvbSBtdWx0aXBsZSByb3dzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHZhbHVlcyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9hcnJheQ0KCXsNCgkJLy8gY2hlY2sgaWYgd2UgY2FuIGdldCBtYW55IHJvd3MNCgkJaWYgKCR0aGlzLT5tYW55KCRzZWxlY3QsICR0YWJsZXMsICR3aGVyZSwgJG9yZGVyLCAkbGltaXQpKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5sb2FkQ29sdW1uKCk7DQoJCX0NCg0KCQkvLyBkYXRhIGRvZXMgbm90IGV4aXN0DQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIExvYWQgbWFueQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkdGFibGVzICAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkd2hlcmUgICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICogQHBhcmFtICAgaW50fG51bGwgICAgICRsaW1pdCAgICBMaW1pdCB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBtYW55KGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogYm9vbA0KCXsNCgkJaWYgKCgkdGFibGVzID0gJHRoaXMtPm5vcm1hbGl6ZVRhYmxlcygkdGFibGVzKSkgPT09IG51bGwpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIGdldCB0aGUgcXVlcnkNCgkJJHF1ZXJ5ID0gJHRoaXMtPnF1ZXJ5KCRzZWxlY3QsICR0YWJsZXMsICR3aGVyZSwgJG9yZGVyLCAkbGltaXQpOw0KDQoJCS8vIExvYWQgdGhlIGl0ZW1zDQoJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJLy8gY2hlY2sgaWYgd2UgaGF2ZSB2YWx1ZXMNCgkJaWYgKCR0aGlzLT5kYi0+Z2V0TnVtUm93cygpKQ0KCQl7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCS8vIGRhdGEgZG9lcyBub3QgZXhpc3QNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIExvYWQgb25lDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAkc2VsZWN0ICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICR0YWJsZXMgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkd2hlcmUgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIG9uZShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiBib29sDQoJew0KCQlpZiAoKCR0YWJsZXMgPSAkdGhpcy0+bm9ybWFsaXplVGFibGVzKCR0YWJsZXMpKSA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gZ2V0IHRoZSBxdWVyeQ0KCQkkcXVlcnkgPSAkdGhpcy0+cXVlcnkoJHNlbGVjdCwgJHRhYmxlcywgJHdoZXJlLCAkb3JkZXIpOw0KDQoJCS8vIExvYWQgdGhlIGl0ZW0NCgkJJHRoaXMtPmRiLT5zZXRRdWVyeSgkcXVlcnksIDAsIDEpOw0KCQkkdGhpcy0+ZGItPmV4ZWN1dGUoKTsNCg0KCQkvLyBjaGVjayBpZiB3ZSBoYXZlIHZhbHVlcw0KCQlpZiAoJHRoaXMtPmRiLT5nZXROdW1Sb3dzKCkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gZGF0YSBkb2VzIG5vdCBleGlzdA0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBxdWVyeSBvYmplY3QuDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkdGFibGVzICAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaC4NCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJHdoZXJlICAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QuDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGEuDQoJICogQHBhcmFtICAgaW50fG51bGwgICAgICRsaW1pdCAgICBMaW1pdCB0aGUgbnVtYmVyIG9mIHZhbHVlcyByZXR1cm5lZC4NCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdHxudWxsICBUaGUgcXVlcnkgb2JqZWN0IChEYXRhYmFzZVF1ZXJ5KS4NCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBxdWVyeShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwNCgkJP2FycmF5ICRvcmRlciA9IG51bGwsID9pbnQgJGxpbWl0ID0gbnVsbCk6ID9vYmplY3QNCgl7DQoJCSRxdWVyeSA9ICR0aGlzLT5kYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJJHRoaXMtPmFwcGx5U2VsZWN0KCRxdWVyeSwgJHNlbGVjdCk7DQoJCSR0aGlzLT5hcHBseUZyb21BbmRKb2lucygkcXVlcnksICR0YWJsZXMpOw0KCQkkdGhpcy0+YXBwbHlXaGVyZSgkcXVlcnksICR3aGVyZSk7DQoJCSR0aGlzLT5hcHBseU9yZGVyKCRxdWVyeSwgJG9yZGVyKTsNCgkJJHRoaXMtPmFwcGx5TGltaXQoJHF1ZXJ5LCAkbGltaXQpOw0KDQoJCXJldHVybiAkcXVlcnk7DQoJfQ0KDQoJLyoqDQoJICogQXBwbHkgU0VMRUNUIGNsYXVzZSB0byB0aGUgcXVlcnkuDQoJICoNCgkgKiBTdXBwb3J0cyBhdXRvLWFsaWFzaW5nIGFuZCBpbnRlbGxpZ2VudCBwcmVmaXhpbmcuDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICRxdWVyeSAgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgYXJyYXkgICAkc2VsZWN0ICBUaGUgc2VsZWN0IGRlZmluaXRpb24uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gYXBwbHlTZWxlY3Qob2JqZWN0ICRxdWVyeSwgYXJyYXkgJHNlbGVjdCk6IHZvaWQNCgl7DQoJCS8vIEhhbmRsZSAnYWxsJyBzZXBhcmF0ZWx5IGZpcnN0DQoJCWlmIChpc3NldCgkc2VsZWN0WydhbGwnXSkpDQoJCXsNCgkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHNlbGVjdFsnYWxsJ10pKQ0KCQkJew0KCQkJCWZvcmVhY2ggKCRzZWxlY3RbJ2FsbCddIGFzICRzZWxlY3RBbGwpDQoJCQkJew0KCQkJCQkkcXVlcnktPnNlbGVjdCgkc2VsZWN0QWxsKTsNCgkJCQl9DQoJCQl9DQoJCQllbHNlaWYgKGlzX3N0cmluZygkc2VsZWN0WydhbGwnXSkpDQoJCQl7DQoJCQkJJHF1ZXJ5LT5zZWxlY3QoJHNlbGVjdFsnYWxsJ10pOw0KCQkJfQ0KDQoJCQl1bnNldCgkc2VsZWN0WydhbGwnXSk7DQoJCX0NCg0KCQkvLyBOb3JtYWxpemUgdGhlIHNlbGVjdCBhcnJheSB0byBlbnN1cmUga2V5PT5hbGlhcyBwYWlycw0KCQkkbm9ybWFsaXplZCA9ICR0aGlzLT5ub3JtYWxpemVTZWxlY3RBcnJheSgkc2VsZWN0KTsNCg0KCQlpZiAoIUFycmF5SGVscGVyOjpjaGVjaygkbm9ybWFsaXplZCkpDQoJCXsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIFF1b3RlIGFuZCBhcHBseSB0byBxdWVyeQ0KCQkkcXVlcnktPnNlbGVjdCgNCgkJCSR0aGlzLT5kYi0+cXVvdGVOYW1lKA0KCQkJCWFycmF5X2tleXMoJG5vcm1hbGl6ZWQpLA0KCQkJCWFycmF5X3ZhbHVlcygkbm9ybWFsaXplZCkNCgkJCSkNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBBcHBseSBGUk9NIGFuZCBKT0lOIGNsYXVzZXMuDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICRxdWVyeSAgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgYXJyYXkgICAkdGFibGVzICBUaGUgdGFibGUgZGVmaW5pdGlvbnMuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gYXBwbHlGcm9tQW5kSm9pbnMob2JqZWN0ICRxdWVyeSwgYXJyYXkgJHRhYmxlcyk6IHZvaWQNCgl7DQoJCSRxdWVyeS0+ZnJvbSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgkdGhpcy0+Z2V0VGFibGUoJHRhYmxlc1snYSddKSwgJ2EnKSk7DQoJCXVuc2V0KCR0YWJsZXNbJ2EnXSk7DQoNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkdGFibGVzKSkNCgkJew0KCQkJZm9yZWFjaCAoJHRhYmxlcyBhcyAkYXMgPT4gJGRldGFpbHMpDQoJCQl7DQoJCQkJJHRhYmxlX25hbWUgPSAkZGV0YWlsc1snbmFtZSddID8/IG51bGw7DQoJCQkJJGpvaW5fb24gPSAkZGV0YWlsc1snam9pbl9vbiddID8/IG51bGw7DQoJCQkJJGFzX29uID0gJGRldGFpbHNbJ2FzX29uJ10gPz8gbnVsbDsNCgkJCQkkam9pbiA9IHN0cnRvdXBwZXIoJGRldGFpbHNbJ2pvaW4nXSA/PyAnTEVGVCcpOw0KDQoJCQkJaWYgKGVtcHR5KCR0YWJsZV9uYW1lKSB8fCBlbXB0eSgkam9pbl9vbikgfHwgZW1wdHkoJGFzX29uKSkNCgkJCQl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCg0KCQkJCS8vIGJhc2ljIGpvaW4gZm9yIG5vdyA6KQ0KCQkJCSRxdWVyeS0+am9pbigNCgkJCQkJJGpvaW4sDQoJCQkJCSR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0aGlzLT5nZXRUYWJsZSgkdGFibGVfbmFtZSksICRhcykNCgkJCQkJLiAnIE9OICgnIC4gJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGpvaW5fb24pDQoJCQkJCS4gJyA9ICcgLiAkdGhpcy0+ZGItPnF1b3RlTmFtZSgkYXNfb24pIC4gJyknDQoJCQkJKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIEFwcGx5IFdIRVJFIGNsYXVzZXMuDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICAgICAkcXVlcnkgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJHdoZXJlICBXaGVyZSBjbGF1c2UgYXJyYXkuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gYXBwbHlXaGVyZShvYmplY3QgJHF1ZXJ5LCA/YXJyYXkgJHdoZXJlKTogdm9pZA0KCXsNCgkJJHdoZXJlID0gJHRoaXMtPm5vcm1hbGl6ZUtleXMoJHdoZXJlID8/IFtdKTsNCgkJaWYgKCFBcnJheUhlbHBlcjo6Y2hlY2soJHdoZXJlKSkNCgkJew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJZm9yZWFjaCAoJHdoZXJlIGFzICRrZXkgPT4gJGNvbmRpdGlvbikNCgkJew0KCQkJJHRoaXMtPmhhbmRsZVdoZXJlQ29uZGl0aW9uKCRxdWVyeSwgJGtleSwgJGNvbmRpdGlvbik7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBBcHBseSBPUkRFUiBCWSBjbGF1c2UuDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICAgICAkcXVlcnkgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICBPcmRlciBieSBjbGF1c2UuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gYXBwbHlPcmRlcihvYmplY3QgJHF1ZXJ5LCA/YXJyYXkgJG9yZGVyKTogdm9pZA0KCXsNCgkJJG9yZGVyID0gJHRoaXMtPm5vcm1hbGl6ZUtleXMoJG9yZGVyID8/IFtdKTsNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkb3JkZXIpKQ0KCQl7DQoJCQlmb3JlYWNoICgkb3JkZXIgYXMgJGtleSA9PiAkZGlyZWN0aW9uKQ0KCQkJew0KCQkJCSRxdWVyeS0+b3JkZXIoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGtleSkgLiAnICcgLiAkZGlyZWN0aW9uKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIEFwcGx5IExJTUlUIGNsYXVzZS4NCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAkcXVlcnkgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgaW50fG51bGwgICRsaW1pdCAgTnVtYmVyIG9mIHJlY29yZHMgdG8gbGltaXQuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gYXBwbHlMaW1pdChvYmplY3QgJHF1ZXJ5LCA/aW50ICRsaW1pdCk6IHZvaWQNCgl7DQoJCWlmIChpc19udW1lcmljKCRsaW1pdCkpDQoJCXsNCgkJCSRxdWVyeS0+c2V0TGltaXQoJGxpbWl0KTsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUga2V5IGZyb20gdGhlIHNlbGVjdGlvbiBhcnJheS4NCgkgKg0KCSAqIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIGEga2V5IGZyb20gdGhlIHByb3ZpZGVkIHNlbGVjdGlvbiBhcnJheS4NCgkgKiBUaGUga2V5IGlzIHJlbW92ZWQgZnJvbSB0aGUgYXJyYXkgYWZ0ZXIgYmVpbmcgcmV0cmlldmVkLg0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkc2VsZWN0ICAgQXJyYXkgb2Ygc2VsZWN0aW9uIGtleXMuDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmd8bnVsbCAgIFRoZSBrZXksIG9yIG51bGwgaWYgbm8ga2V5IGlzIGZvdW5kLg0KCSAqIEBzaW5jZSAgIDMuMi4yDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRLZXkoYXJyYXkgJiRzZWxlY3QpOiA/c3RyaW5nDQoJew0KCQkka2V5ID0gbnVsbDsNCg0KCQkvLyBDaGVjayBmb3IgJ2tleScgZmlyc3QgYW5kIGVuc3VyZSBpdCdzIGEgc3RyaW5nLg0KCQlpZiAoaXNzZXQoJHNlbGVjdFsna2V5J10pICYmIGlzX3N0cmluZygkc2VsZWN0WydrZXknXSkpDQoJCXsNCgkJCSRrZXkgPSAkc2VsZWN0WydrZXknXTsNCgkJCXVuc2V0KCRzZWxlY3RbJ2tleSddKTsgLy8gUmVtb3ZlICdrZXknIGZyb20gdGhlIGFycmF5Lg0KCQl9DQoNCgkJcmV0dXJuICRrZXk7DQoJfQ0KDQoJLyoqDQoJICogTm9ybWFsaXplIG1peGVkLWZvcm1hdCB0YWJsZSBkZWZpbml0aW9ucyB0byBhIGNvbnNpc3RlbnQgc3RydWN0dXJlLg0KCSAqDQoJICogU3VwcG9ydGVkIGZvcm1hdHM6DQoJICogLSBbJ2EnID0+ICd0YWJsZSddDQoJICogLSBbJ2EnID0+ICd0YWJsZScsICdiJyA9PiBbJ25hbWUnID0+ICd0YWJsZTInLCAnam9pbl9vbicgPT4gJ2EuaWQnLCAnYXNfb24nID0+ICdiLmVudGl0eSddXQ0KCSAqIC0gWydhLnRhYmxlJywgJ2IudGFibGUyLmlkLmVudGl0eSddDQoJICogLSBbJ2E6dGFibGUnLCAnYjp0YWJsZTI6aWQ6ZW50aXR5J10NCgkgKiAtIFsndGFibGUnXQ0KCSAqIC0gWyd0YWJsZScsICd0YWJsZTIuaWQuZW50aXR5J10NCgkgKiAtIFsndGFibGUnLCAndGFibGUyOmlkOmVudGl0eSddDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgJHRhYmxlcyAgVGhlIHJhdyBpbnB1dA0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbCAgTm9ybWFsaXplZCBbJ2FsaWFzJyA9PiAndGFibGUnXSBhbmQgam9pbiBtYXBwaW5ncywgb3IgbnVsbCBpZiAnYScgaXMgbWlzc2luZw0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIG5vcm1hbGl6ZVRhYmxlcyhhcnJheSAkdGFibGVzKTogP2FycmF5DQoJew0KCQlpZiAoZW1wdHkoJHRhYmxlcykpDQoJCXsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJJG5vcm1hbGl6ZWQgPSBbXTsNCg0KCQlmb3JlYWNoICgkdGFibGVzIGFzICRrZXkgPT4gJHZhbHVlKQ0KCQl7DQoJCQlpZiAoaXNfaW50KCRrZXkpKQ0KCQkJew0KCQkJCSR0aGlzLT5wYXJzZVZhcmlvdXNTeW50YXgoJHZhbHVlLCAkbm9ybWFsaXplZCk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJHRoaXMtPnBhcnNlQXNzb2NTeW50YXgoJGtleSwgJHZhbHVlLCAkbm9ybWFsaXplZCk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gaXNzZXQoJG5vcm1hbGl6ZWRbJ2EnXSkgPyAkbm9ybWFsaXplZCA6IG51bGw7DQoJfQ0KDQoJLyoqDQoJICogTm9ybWFsaXplIGFsbCBLZXlzIGluIGFycmF5IGJ5IGVuc3VyaW5nOg0KCSAqIC0gQWxsIGtleXMgYXJlIGZ1bGx5IHF1YWxpZmllZCAoYWRkICJhLiIgaWYgbWlzc2luZykNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAkZGF0YSAgVGhlIHJhdyBkYXRlIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuICBhcnJheSAgTm9ybWFsaXplZCBhcnJheSB3aXRoICd0YWJsZS5jb2x1bW4nID0+ICR2YWx1ZQ0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBub3JtYWxpemVLZXlzKGFycmF5ICRkYXRhKTogYXJyYXkNCgl7DQoJCSRub3JtYWxpemVkID0gW107DQoNCgkJZm9yZWFjaCAoJGRhdGEgYXMgJGtleSA9PiAkdmFsdWUpDQoJCXsNCgkJCS8vIElmIGluZGV4ZWQgYXJyYXkgKG5vIGFsaWFzKSwgd2UgaWdub3JlIHRoaXMgcm93DQoJCQlpZiAoaXNfaW50KCRrZXkpKQ0KCQkJew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRjb2x1bW4gPSAkdGhpcy0+bm9ybWFsaXplQ29sdW1uKCdhJywgJGtleSk7DQoJCQl9DQoNCgkJCSRub3JtYWxpemVkWyRjb2x1bW5dID0gJHZhbHVlOw0KCQl9DQoNCgkJcmV0dXJuICRub3JtYWxpemVkOw0KCX0NCg0KCS8qKg0KCSAqIE5vcm1hbGl6ZSBTRUxFQ1QgYXJyYXkgYnkgZW5zdXJpbmc6DQoJICogLSBBbGwga2V5cyBhcmUgZnVsbHkgcXVhbGlmaWVkIChhZGQgImEuIiBpZiBtaXNzaW5nKQ0KCSAqIC0gQWxsIHZhbHVlcyBhcmUgYWxpYXNlcyAoZWl0aGVyIHByb3ZpZGVkIG9yIGV4dHJhY3RlZCBmcm9tIGtleSkNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAkc2VsZWN0ICBUaGUgcmF3IHNlbGVjdCBhcnJheQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXkgIE5vcm1hbGl6ZWQgYXJyYXkgd2l0aCAndGFibGUuY29sdW1uJyA9PiAnYWxpYXMnDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIG5vcm1hbGl6ZVNlbGVjdEFycmF5KGFycmF5ICRzZWxlY3QpOiBhcnJheQ0KCXsNCgkJJG5vcm1hbGl6ZWQgPSBbXTsNCg0KCQlmb3JlYWNoICgkc2VsZWN0IGFzICRrZXkgPT4gJHZhbHVlKQ0KCQl7DQoJCQkvLyBJZiBpbmRleGVkIGFycmF5IChubyBhbGlhcyksIHVzZSB0aGUgdmFsdWUgYXMga2V5DQoJCQlpZiAoaXNfaW50KCRrZXkpKQ0KCQkJew0KCQkJCSRjb2x1bW4gPSAkdGhpcy0+bm9ybWFsaXplQ29sdW1uKCdhJywgJHZhbHVlKTsNCgkJCQkkYWxpYXMgID0gJHRoaXMtPmV4dHJhY3RBbGlhcygkY29sdW1uKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkY29sdW1uID0gJHRoaXMtPm5vcm1hbGl6ZUNvbHVtbignYScsICRrZXkpOw0KCQkJCSRhbGlhcyAgPSBpc19zdHJpbmcoJHZhbHVlKSAmJiAkdmFsdWUgIT09ICcnID8gJHZhbHVlIDogJHRoaXMtPmV4dHJhY3RBbGlhcygkY29sdW1uKTsNCgkJCX0NCg0KCQkJJG5vcm1hbGl6ZWRbJGNvbHVtbl0gPSAkYWxpYXM7DQoJCX0NCg0KCQlyZXR1cm4gJG5vcm1hbGl6ZWQ7DQoJfQ0KDQoJLyoqDQoJICogRXh0cmFjdHMgdGhlIGFsaWFzIGZyb20gYSBjb2x1bW4gbmFtZS4NCgkgKiAoZS5nLiwgImEuaWQiIOKGkiAiaWQiLCAiYi51c2VyX25hbWUiIOKGkiAidXNlcl9uYW1lIiwgIm5hbWUiIOKGkiAibmFtZSIpDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb2x1bW4gIEZ1bGx5LXF1YWxpZmllZCBjb2x1bW4gbmFtZQ0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nICBBbGlhcw0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBleHRyYWN0QWxpYXMoc3RyaW5nICRjb2x1bW4pOiBzdHJpbmcNCgl7DQoJCSRwYXJ0cyA9IGV4cGxvZGUoJy4nLCAkY29sdW1uKTsNCgkJcmV0dXJuIGVuZCgkcGFydHMpOw0KCX0NCg0KCS8qKg0KCSAqIEhhbmRsZSBhIHNpbmdsZSB3aGVyZSBjb25kaXRpb24uDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICAgICRxdWVyeSAgICAgVGhlIHF1ZXJ5IG9iamVjdC4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRjb2x1bW4gICAgVGhlIGNvbHVtbiBuYW1lLg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgJGNvbmRpdGlvbiBUaGUgY29uZGl0aW9uIHZhbHVlIG9yIGNvbmZpZyBhcnJheS4NCgkgKiBAcGFyYW0gICBpbnQgICAgICAgICRjb3VudGVyICAgVGhlIGRlcHRoIGNvdW50ZXIuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGhhbmRsZVdoZXJlQ29uZGl0aW9uKG9iamVjdCAkcXVlcnksIHN0cmluZyAkY29sdW1uLCAkY29uZGl0aW9uLCBpbnQgJGNvdW50ZXIgPSAwKTogdm9pZA0KCXsNCgkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkY29uZGl0aW9uKSkNCgkJew0KCQkJaWYgKCFpc3NldCgkY29uZGl0aW9uWyd2YWx1ZSddLCAkY29uZGl0aW9uWydvcGVyYXRvciddKSkNCgkJCXsNCgkJCQkvLyBhbGxvdyBvbmx5IG9uZSBzdGVwIGRvd24sIHNvIG9uZSBjb2x1bW4gY2FuIGRpZmZlcmVudCB3aGVyZSBtYXBwaW5nDQoJCQkJaWYgKCRjb3VudGVyID09PSAwKQ0KCQkJCXsNCgkJCQkJJGNvdW50ZXIrKzsNCgkJCQkJZm9yZWFjaCAoJGNvbmRpdGlvbiBhcyAkY29sdW1uX2NvbmRpdGlvbikNCgkJCQkJew0KCQkJCQkJJHRoaXMtPmhhbmRsZVdoZXJlQ29uZGl0aW9uKCRxdWVyeSwgJGNvbHVtbiwgJGNvbHVtbl9jb25kaXRpb24sICRjb3VudGVyKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCSR0aGlzLT5oYW5kbGVBZHZhbmNlZENvbmRpdGlvbigNCgkJCQkkcXVlcnksDQoJCQkJJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGNvbHVtbiksDQoJCQkJJGNvbmRpdGlvblsndmFsdWUnXSwNCgkJCQkkY29uZGl0aW9uWydvcGVyYXRvciddLA0KCQkJCSRjb25kaXRpb25bJ3F1b3RlJ10gPz8gdHJ1ZQ0KCQkJKTsNCgkJfQ0KCQllbHNlDQoJCXsNCgkJCS8vIFNpbXBsZSBrZXkgPSB2YWx1ZSBjbGF1c2UNCgkJCSRxdWVyeS0+d2hlcmUoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGNvbHVtbikgLiAnID0gJyAuICR0aGlzLT5xdW90ZSgkY29uZGl0aW9uKSk7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBIYW5kbGUgYWR2YW5jZWQgKG9wZXJhdG9yLWJhc2VkKSB3aGVyZSBjb25kaXRpb25zLg0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgICAgICAkcXVlcnkgICAgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAkY29sdW1uICAgIFRoZSBxdW90ZWQgY29sdW1uIG5hbWUuDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAkdmFsdWUgICAgIFRoZSB2YWx1ZSB0byBjb21wYXJlLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgJG9wZXJhdG9yICBUaGUgU1FMIG9wZXJhdG9yIHRvIHVzZS4NCgkgKiBAcGFyYW0gICBib29sICAgICAgICAgICRxdW90ZSAgICAgV2hldGhlciB0byBxdW90ZSB0aGUgdmFsdWUocykuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGhhbmRsZUFkdmFuY2VkQ29uZGl0aW9uKA0KCQlvYmplY3QgJHF1ZXJ5LA0KCQlzdHJpbmcgJGNvbHVtbiwNCgkJJHZhbHVlLA0KCQlzdHJpbmcgJG9wZXJhdG9yLA0KCQlib29sICRxdW90ZSA9IHRydWUNCgkpOiB2b2lkDQoJew0KCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCR2YWx1ZSkpDQoJCXsNCgkJCSR0aGlzLT5oYW5kbGVBcnJheUNvbmRpdGlvbigkcXVlcnksICRjb2x1bW4sICR2YWx1ZSwgJG9wZXJhdG9yLCAkcXVvdGUpOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHRoaXMtPmhhbmRsZVNjYWxhckNvbmRpdGlvbigkcXVlcnksICRjb2x1bW4sICR2YWx1ZSwgJG9wZXJhdG9yLCAkcXVvdGUpOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogSGFuZGxlIGFuIGFycmF5LWJhc2VkIGNvbmRpdGlvbiwgZS5nLiwgSU4gKC4uLikgb3IgTk9UIElOICguLi4pLg0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgICAkcXVlcnkgICAgIFRoZSBxdWVyeSBvYmplY3QuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkY29sdW1uICAgIFRoZSBxdW90ZWQgY29sdW1uIG5hbWUuDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAkdmFsdWVzICAgIFRoZSBhcnJheSBvZiB2YWx1ZXMuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkb3BlcmF0b3IgIFRoZSBTUUwgb3BlcmF0b3IgKGUuZy4sIElOLCBOT1QgSU4pLg0KCSAqIEBwYXJhbSAgIGJvb2wgICAgICAgJHF1b3RlICAgICBXaGV0aGVyIHRvIHF1b3RlIHRoZSB2YWx1ZXMuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGhhbmRsZUFycmF5Q29uZGl0aW9uKA0KCQlvYmplY3QgJHF1ZXJ5LA0KCQlzdHJpbmcgJGNvbHVtbiwNCgkJYXJyYXkgJHZhbHVlcywNCgkJc3RyaW5nICRvcGVyYXRvciwNCgkJYm9vbCAkcXVvdGUgPSB0cnVlDQoJKTogdm9pZA0KCXsNCgkJJGxpc3QgPSAkcXVvdGUNCgkJCT8gaW1wbG9kZSgnLCcsIGFycmF5X21hcChmbigkdikgPT4gJHRoaXMtPnF1b3RlKCR2KSwgJHZhbHVlcykpDQoJCQk6IGltcGxvZGUoJywnLCAkdmFsdWVzKTsNCg0KCQkkcXVlcnktPndoZXJlKCJ7JGNvbHVtbn0geyRvcGVyYXRvcn0gKHskbGlzdH0pIik7DQoJfQ0KDQoJLyoqDQoJICogSGFuZGxlIGEgc2NhbGFyIHZhbHVlIGNvbmRpdGlvbi4NCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAgJHF1ZXJ5ICAgICBUaGUgcXVlcnkgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJGNvbHVtbiAgICBUaGUgcXVvdGVkIGNvbHVtbiBuYW1lLg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgJHZhbHVlICAgICBUaGUgdmFsdWUgdG8gY29tcGFyZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRvcGVyYXRvciAgVGhlIFNRTCBvcGVyYXRvciAoZS5nLiwgPSwgIT0sID4pLg0KCSAqIEBwYXJhbSAgIGJvb2wgICAgICAgJHF1b3RlICAgICBXaGV0aGVyIHRvIHF1b3RlIHRoZSB2YWx1ZS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaGFuZGxlU2NhbGFyQ29uZGl0aW9uKA0KCQlvYmplY3QgJHF1ZXJ5LA0KCQlzdHJpbmcgJGNvbHVtbiwNCgkJJHZhbHVlLA0KCQlzdHJpbmcgJG9wZXJhdG9yLA0KCQlib29sICRxdW90ZSA9IHRydWUNCgkpOiB2b2lkDQoJew0KCQkkZm9ybWF0dGVkID0gJHF1b3RlID8gJHRoaXMtPnF1b3RlKCR2YWx1ZSkgOiAkdmFsdWU7DQoJCSRxdWVyeS0+d2hlcmUoInskY29sdW1ufSB7JG9wZXJhdG9yfSB7JGZvcm1hdHRlZH0iKTsNCgl9DQoNCgkvKioNCgkgKiBQYXJzZSB2YXJpb3VzIHNob3J0IHN5bnRheGVzOiBjb2xvbiwgcGlwZSwgZG90LCBvciBmYWxsYmFjayBmbGF0IHZhbHVlLg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAkZW50cnkgICAgICAgVGhlIHJhdyBzdHJpbmcgZW50cnkNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgICYkbm9ybWFsaXplZCBUaGUgbm9ybWFsaXplZCBvdXRwdXQgcmVmZXJlbmNlDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkYWxpYXMgICAgICAgT3B0aW9uYWwgb3ZlcnJpZGUgYWxpYXMNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VWYXJpb3VzU3ludGF4KHN0cmluZyAkZW50cnksIGFycmF5ICYkbm9ybWFsaXplZCwgP3N0cmluZyAkYWxpYXMgPSBudWxsKTogdm9pZA0KCXsNCgkJJGVudHJ5ID0gdHJpbSgkZW50cnkpOw0KDQoJCWlmICgkZW50cnkgPT09ICcnKQ0KCQl7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoc3RycG9zKCRlbnRyeSwgJzonKSAhPT0gZmFsc2UpDQoJCXsNCgkJCSR0aGlzLT5wYXJzZUNvbG9uU3ludGF4KCRhbGlhcyA/ICJ7JGFsaWFzfTp7JGVudHJ5fSIgOiAkZW50cnksICRub3JtYWxpemVkKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmIChzdHJwb3MoJGVudHJ5LCAnfCcpICE9PSBmYWxzZSkNCgkJew0KCQkJJHRoaXMtPnBhcnNlUGlwZVN5bnRheCgkYWxpYXMgPyAieyRhbGlhc318eyRlbnRyeX0iIDogJGVudHJ5LCAkbm9ybWFsaXplZCk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoc3RycG9zKCRlbnRyeSwgJy4nKSAhPT0gZmFsc2UpDQoJCXsNCgkJCSR0aGlzLT5wYXJzZURvdFN5bnRheCgkYWxpYXMgPyAieyRhbGlhc30ueyRlbnRyeX0iIDogJGVudHJ5LCAkbm9ybWFsaXplZCk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBEZWZhdWx0OiBmbGF0IHRhYmxlIG5hbWUNCgkJaWYgKCFlbXB0eSgkYWxpYXMpKQ0KCQl7DQoJCQlpZiAoJGFsaWFzID09PSAnYScpIC8vIHN0b3AgaW5maW5pdGUgcmVjdXJzaW9uDQoJCQl7DQoJCQkJJHRoaXMtPmFkZFRhYmxlRW50cnkoJGFsaWFzLCAkZW50cnksICRub3JtYWxpemVkKTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR0aGlzLT5wYXJzZUZsYXRUYWJsZSgkZW50cnksICRub3JtYWxpemVkKTsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIFBhcnNlIGNvbG9uIHN5bnRheCBzdWNoIGFzICJhOnRhYmxlIiwgImI6dGFibGU6am9pbl9vbjphc19vbiIsIG9yICJ0YWJsZTpqb2luX29uOmFzX29uIg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkZW50cnkgICAgICAgVGhlIGNvbG9uLWRlbGltaXRlZCBzdHJpbmcNCgkgKiBAcGFyYW0gICBhcnJheSAgICYkbm9ybWFsaXplZCBUaGUgbm9ybWFsaXplZCBvdXRwdXQgcmVmZXJlbmNlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQ29sb25TeW50YXgoc3RyaW5nICRlbnRyeSwgYXJyYXkgJiRub3JtYWxpemVkKTogdm9pZA0KCXsNCgkJJHRoaXMtPnBhcnNlQXJyYXlFbnRyeShleHBsb2RlKCc6JywgJGVudHJ5KSwgJG5vcm1hbGl6ZWQpOw0KCX0NCg0KCS8qKg0KCSAqIFBhcnNlIGNvbG9uIHN5bnRheCBzdWNoIGFzICJhfHRhYmxlIiwgImJ8dGFibGV8am9pbl9vbnxhc19vbiIsIG9yICJ0YWJsZXxqb2luX29uOmFzX29uIg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkZW50cnkgICAgICAgVGhlIHBpcGUtZGVsaW1pdGVkIHN0cmluZw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJiRub3JtYWxpemVkIFRoZSBub3JtYWxpemVkIG91dHB1dCByZWZlcmVuY2UNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gcGFyc2VQaXBlU3ludGF4KHN0cmluZyAkZW50cnksIGFycmF5ICYkbm9ybWFsaXplZCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5wYXJzZUFycmF5RW50cnkoZXhwbG9kZSgnfCcsICRlbnRyeSksICRub3JtYWxpemVkKTsNCgl9DQoNCgkvKioNCgkgKiBQYXJzZSBkb3Qgc3ludGF4IHN1Y2ggYXMgImEudGFibGUiLCAiYi50YWJsZTIuaWQuZW50aXR5IiwgInRhYmxlLmpvaW5fb24uYXNfb24iDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRlbnRyeSAgICAgICBUaGUgZG90LWRlbGltaXRlZCBzdHJpbmcNCgkgKiBAcGFyYW0gICBhcnJheSAgICYkbm9ybWFsaXplZCBUaGUgbm9ybWFsaXplZCBvdXRwdXQgcmVmZXJlbmNlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRG90U3ludGF4KHN0cmluZyAkZW50cnksIGFycmF5ICYkbm9ybWFsaXplZCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5wYXJzZUFycmF5RW50cnkoZXhwbG9kZSgnLicsICRlbnRyeSksICRub3JtYWxpemVkKTsNCgl9DQoNCgkvKioNCgkgKiBDb21iaW5lIHRoZSBlbnRyeSBwYXJ0cyBpbnQgdGhlIGNvcnJldCBmb3JtYXQNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHBhcnRzICAgICAgIFRoZSBwYXJ0cyBvZiB0aGUgZW50cnkNCgkgKiBAcGFyYW0gICBhcnJheSAgICYkbm9ybWFsaXplZCBUaGUgbm9ybWFsaXplZCBvdXRwdXQgcmVmZXJlbmNlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlQXJyYXlFbnRyeShhcnJheSAkcGFydHMsIGFycmF5ICYkbm9ybWFsaXplZCk6IHZvaWQNCgl7DQoJCSRjb3VudCA9IGNvdW50KCRwYXJ0cyk7DQoNCgkJaWYgKCRjb3VudCA9PT0gMikNCgkJew0KCQkJWyRhbGlhcywgJHRhYmxlXSA9ICRwYXJ0czsNCgkJCSR0aGlzLT5hZGRUYWJsZUVudHJ5KCRhbGlhcywgJHRhYmxlLCAkbm9ybWFsaXplZCk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoJGNvdW50ID09PSAzKQ0KCQl7DQoJCQkkYWxpYXMgPSBjaHIoOTcgKyBjb3VudCgkbm9ybWFsaXplZCkpOw0KCQkJWyR0YWJsZSwgJGpvaW5fb24sICRhc19vbl0gPSAkcGFydHM7DQoJCQkkdGhpcy0+YWRkSm9pblRhYmxlRW50cnkoJGFsaWFzLCAkdGFibGUsICRqb2luX29uLCAkYXNfb24sIG51bGwsICRub3JtYWxpemVkKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICgkY291bnQgPT09IDQpDQoJCXsNCgkJCVskYWxpYXMsICR0YWJsZSwgJGpvaW5fb24sICRhc19vbl0gPSAkcGFydHM7DQoJCQkkdGhpcy0+YWRkSm9pblRhYmxlRW50cnkoJGFsaWFzLCAkdGFibGUsICRqb2luX29uLCAkYXNfb24sIG51bGwsICRub3JtYWxpemVkKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICgkY291bnQgPT09IDUpDQoJCXsNCgkJCVskYWxpYXMsICR0YWJsZSwgJGpvaW5fb24sICRhc19vbiwgJGpvaW5dID0gJHBhcnRzOw0KCQkJJHRoaXMtPmFkZEpvaW5UYWJsZUVudHJ5KCRhbGlhcywgJHRhYmxlLCAkam9pbl9vbiwgJGFzX29uLCAkam9pbiwgJG5vcm1hbGl6ZWQpOw0KCQkJcmV0dXJuOw0KCQl9DQoJCS8vIHNpbGVudGx5IGlnbm9yZSBtYWxmb3JtZWQgaW5wdXQNCgl9DQoNCgkvKioNCgkgKiBQYXJzZSBmbGF0IGVudHJ5IGxpa2UgInRhYmxlIiB3aXRoIGF1dG9tYXRpYyBhbGlhc2luZw0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICAgICAgVGhlIHRhYmxlIG5hbWUNCgkgKiBAcGFyYW0gICBhcnJheSAgICYkbm9ybWFsaXplZCBUaGUgbm9ybWFsaXplZCBvdXRwdXQgcmVmZXJlbmNlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlRmxhdFRhYmxlKHN0cmluZyAkdGFibGUsIGFycmF5ICYkbm9ybWFsaXplZCk6IHZvaWQNCgl7DQoJCSRhbGlhcyA9IGNocig5NyArIGNvdW50KCRub3JtYWxpemVkKSk7DQoJCSR0aGlzLT5hZGRUYWJsZUVudHJ5KCRhbGlhcywgJHRhYmxlLCAkbm9ybWFsaXplZCk7DQoJfQ0KDQoJLyoqDQoJICogUGFyc2UgYXNzb2NpYXRpdmUgYXJyYXkgZW50cnksIGVpdGhlciBhIHJhdyBzdHJpbmcgb3IgYSBqb2luIHN0cnVjdHVyZQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgJGFsaWFzICAgICAgIFRhYmxlIGFsaWFzDQoJICogQHBhcmFtICAgc3RyaW5nfGFycmF5ICAgJHZhbHVlICAgICAgIFRoZSB0YWJsZSBkZWZpbml0aW9uIG9yIGpvaW4gYXJyYXkNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgICAmJG5vcm1hbGl6ZWQgVGhlIG5vcm1hbGl6ZWQgb3V0cHV0IHJlZmVyZW5jZQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZUFzc29jU3ludGF4KHN0cmluZyAkYWxpYXMsICR2YWx1ZSwgYXJyYXkgJiRub3JtYWxpemVkKTogdm9pZA0KCXsNCgkJaWYgKGlzX2FycmF5KCR2YWx1ZSkpDQoJCXsNCgkJCSR0aGlzLT5hZGRKb2luVGFibGVFbnRyeSgNCgkJCQkkYWxpYXMsDQoJCQkJJHZhbHVlWyduYW1lJ10gPz8gJycsDQoJCQkJJHZhbHVlWydqb2luX29uJ10gPz8gJycsDQoJCQkJJHZhbHVlWydhc19vbiddID8/ICcnLA0KCQkJCSR2YWx1ZVsnam9pbiddID8/IG51bGwsDQoJCQkJJG5vcm1hbGl6ZWQNCgkJCSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkdGhpcy0+YWRkVGFibGVFbnRyeSgkYWxpYXMsICR2YWx1ZSwgJG5vcm1hbGl6ZWQpOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogQWRkIGEgZ2l2ZW4gc2V0IG9mIGVudHJpZXMgdG8gdGhlIG5vcm1hbGl6ZWQgYXJyYXkNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJGFsaWFzICAgICAgIFRhYmxlIGFsaWFzDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkdGFibGUgICAgICAgVGFibGUgbmFtZQ0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgJiRub3JtYWxpemVkIFRoZSBub3JtYWxpemVkIG91dHB1dCByZWZlcmVuY2UNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gYWRkVGFibGVFbnRyeShzdHJpbmcgJGFsaWFzLCBzdHJpbmcgJHRhYmxlLCBhcnJheSAmJG5vcm1hbGl6ZWQpOiB2b2lkDQoJew0KCQkkYWxpYXMgPSB0cmltKCRhbGlhcyk7DQoJCSR0YWJsZSA9IHRyaW0oJHRhYmxlKTsNCg0KCQlpZiAoJGFsaWFzID09PSAnYScgJiYgJHRhYmxlICE9PSAnJykNCgkJew0KCQkJaWYgKGlzc2V0KCRub3JtYWxpemVkWyRhbGlhc10pKQ0KCQkJew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJJG5vcm1hbGl6ZWRbJGFsaWFzXSA9ICR0YWJsZTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCSR0aGlzLT5wYXJzZVZhcmlvdXNTeW50YXgoJHRhYmxlLCAkbm9ybWFsaXplZCwgJGFsaWFzKTsNCgl9DQoNCgkvKioNCgkgKiBBZGQgYSBnaXZlbiBzZXQgb2YgZW50cmllcyB0byB0aGUgbm9ybWFsaXplZCBhcnJheQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICRhbGlhcyAgICAgICBUYWJsZSBhbGlhcw0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAkdGFibGUgICAgICAgVGFibGUgbmFtZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAkam9pbk9uICAgICAgVGhlIGpvaW4gb24gY29sdW1uIG5hbWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJGFzT24gICAgICAgIFRoZSBhcyBvbiBjb2x1bW4gbmFtZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkam9pbiAgICAgICAgVGhlIGpvaW4gdHlwZQ0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAmJG5vcm1hbGl6ZWQgVGhlIG5vcm1hbGl6ZWQgb3V0cHV0IHJlZmVyZW5jZQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBhZGRKb2luVGFibGVFbnRyeSgNCgkJc3RyaW5nICRhbGlhcywNCgkJc3RyaW5nICR0YWJsZSwNCgkJc3RyaW5nICRqb2luT24sDQoJCXN0cmluZyAkYXNPbiwNCgkJP3N0cmluZyAkam9pbiwNCgkJYXJyYXkgJiRub3JtYWxpemVkDQoJKTogdm9pZA0KCXsNCgkJJGFsaWFzICAgICA9IHRyaW0oJGFsaWFzKTsNCgkJJHRhYmxlTmFtZSA9IHRyaW0oJHRhYmxlKTsNCgkJJGpvaW5PbiAgICA9IHRyaW0oJGpvaW5Pbik7DQoJCSRhc09uICAgICAgPSB0cmltKCRhc09uKTsNCg0KCQlpZiAoDQoJCQkkYWxpYXMgPT09ICcnIHx8ICRhbGlhcyA9PT0gJ2EnIHx8DQoJCQkkdGFibGUgPT09ICcnIHx8ICRqb2luT24gPT09ICcnIHx8ICRhc09uID09PSAnJw0KCQkpIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmIChpc3NldCgkbm9ybWFsaXplZFskYWxpYXNdKSkNCgkJew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCRqb2luICE9PSBudWxsKQ0KCQl7DQoJCQkkam9pbiA9IHRyaW0oJGpvaW4pOw0KCQl9DQoNCgkJJG5vcm1hbGl6ZWRbJGFsaWFzXSA9IFsNCgkJCSduYW1lJyAgICA9PiAkdGFibGUsDQoJCQknam9pbl9vbicgPT4gJHRoaXMtPm5vcm1hbGl6ZUNvbHVtbignYScsICRqb2luT24pLA0KCQkJJ2FzX29uJyAgID0+ICR0aGlzLT5ub3JtYWxpemVDb2x1bW4oJGFsaWFzLCAkYXNPbiksDQoJCQknam9pbicgICA9PiAkam9pbg0KCQldOw0KCX0NCg0KCS8qKg0KCSAqIEFkZCB0YWJsZSBhbGlhcyB0byBjb2x1bW4gaWYgbm90IGFscmVhZHkgcHJlc2VudC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGFsaWFzICAgVGhlIHRhYmxlIGFsaWFzDQoJICogQHBhcmFtICAgc3RyaW5nICAkY29sdW1uICBUaGUgY29sdW1uIG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBub3JtYWxpemVDb2x1bW4oc3RyaW5nICRhbGlhcywgc3RyaW5nICRjb2x1bW4pOiBzdHJpbmcNCgl7DQoJCXJldHVybiAoc3RycG9zKCRjb2x1bW4sICcuJykgIT09IGZhbHNlKQ0KCQkJPyAkY29sdW1uDQoJCQk6ICJ7JGFsaWFzfS57JGNvbHVtbn0iOw0KCX0=', '{}', '{}', '', 1, '2022-09-03 19:19:27', 69, '', 1),
+(125, '2ad31f74-f579-499d-b98b-c4f54fd615dd', 'VDM.Interfaces.Database.LoadInterface', 'LoadInterface', 'interface', 'Database Load Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.LoadInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIExvYWQgZGF0YSByb3dzIGFzIGFuIGFycmF5IG9mIGFzc29jaWF0ZWQgYXJyYXlzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJHNlbGVjdCwgYXJyYXkgJHRhYmxlcywgP2FycmF5ICR3aGVyZSA9IG51bGwsDQoJCT9hcnJheSAkb3JkZXIgPSBudWxsLCA/aW50ICRsaW1pdCA9IG51bGwpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93cyBhcyBhbiBhcnJheSBvZiBvYmplY3RzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICR0YWJsZXMgICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICR3aGVyZSAgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAgJGxpbWl0ICAgIExpbWl0IHRoZSBudW1iZXIgb2YgdmFsdWVzIHJldHVybmVkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogP2FycmF5Ow0KDQoJLyoqDQoJICogTG9hZCBkYXRhIHJvdyBhcyBhbiBhc3NvY2lhdGVkIGFycmF5DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHNlbGVjdCAgIEFycmF5IG9mIHNlbGVjdGlvbiBrZXlzDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgJHRhYmxlcyAgQXJyYXkgb2YgdGFibGVzIHRvIHNlYXJjaA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICR3aGVyZSAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkb3JkZXIgICAgQXJyYXkgb2YgaG93IHRvIG9yZGVyIHRoZSBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBMb2FkIGRhdGEgcm93IGFzIGFuIG9iamVjdA0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICRzZWxlY3QgICBBcnJheSBvZiBzZWxlY3Rpb24ga2V5cw0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICR0YWJsZXMgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAkd2hlcmUgICBBcnJheSBvZiB3aGVyZSBrZXk9PnZhbHVlIG1hdGNoIGV4aXN0DQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShhcnJheSAkc2VsZWN0LCBhcnJheSAkdGFibGVzLCA/YXJyYXkgJHdoZXJlID0gbnVsbCwgP2FycmF5ICRvcmRlciA9IG51bGwpOiA/b2JqZWN0Ow0KDQoJLyoqDQoJICogR2V0IHRoZSBtYXggdmFsdWUgYmFzZWQgb24gYSBmaWx0ZXJlZCByZXN1bHQgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJHRhYmxlcyAgICBUaGUgdGFibGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRmaWx0ZXIgICAgVGhlIGZpbHRlciBrZXlzDQoJICoNCgkgKiBAcmV0dXJuICBpbnR8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBtYXgoJGZpZWxkLCBhcnJheSAkdGFibGVzLCBhcnJheSAkZmlsdGVyKTogP2ludDsNCg0KCS8qKg0KCSAqIENvdW50IHRoZSBudW1iZXIgb2YgaXRlbXMgYmFzZWQgb24gZmlsdGVyIHJlc3VsdCBmcm9tIGEgZ2l2ZW4gdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJHRhYmxlcyAgICBUaGUgdGFibGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRmaWx0ZXIgICAgVGhlIGZpbHRlciBrZXlzDQoJICoNCgkgKiBAcmV0dXJuICBpbnR8bnVsbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBjb3VudChhcnJheSAkdGFibGVzLCBhcnJheSAkZmlsdGVyKTogP2ludDsNCg0KCS8qKg0KCSAqIExvYWQgb25lIHZhbHVlIGZyb20gYSByb3cNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkc2VsZWN0ICAgQXJyYXkgb2Ygc2VsZWN0aW9uIGtleXMNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAkdGFibGVzICBBcnJheSBvZiB0YWJsZXMgdG8gc2VhcmNoDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgJHdoZXJlICAgQXJyYXkgb2Ygd2hlcmUga2V5PT52YWx1ZSBtYXRjaCBleGlzdA0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICRvcmRlciAgICBBcnJheSBvZiBob3cgdG8gb3JkZXIgdGhlIGRhdGENCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHZhbHVlKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLCA/YXJyYXkgJG9yZGVyID0gbnVsbCk7DQoNCgkvKioNCgkgKiBMb2FkIHZhbHVlcyBmcm9tIG11bHRpcGxlIHJvd3MNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAkc2VsZWN0ICAgQXJyYXkgb2Ygc2VsZWN0aW9uIGtleXMNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICAgJHRhYmxlcyAgIEFycmF5IG9mIHRhYmxlcyB0byBzZWFyY2gNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJHdoZXJlICAgIEFycmF5IG9mIHdoZXJlIGtleT0+dmFsdWUgbWF0Y2ggZXhpc3QNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJG9yZGVyICAgIEFycmF5IG9mIGhvdyB0byBvcmRlciB0aGUgZGF0YQ0KCSAqIEBwYXJhbSAgIGludHxudWxsICAgICAkbGltaXQgICAgTGltaXQgdGhlIG51bWJlciBvZiB2YWx1ZXMgcmV0dXJuZWQNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwNCgkgKiBAc2luY2UgICAzLjIuMg0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWVzKGFycmF5ICRzZWxlY3QsIGFycmF5ICR0YWJsZXMsID9hcnJheSAkd2hlcmUgPSBudWxsLA0KCQk/YXJyYXkgJG9yZGVyID0gbnVsbCwgP2ludCAkbGltaXQgPSBudWxsKTogP2FycmF5Ow==', '{}', '{}', '', 1, '2022-10-22 19:20:18', 19, '', 1),
+(126, '6cbef8f8-4813-48e3-b05a-65e1aea95171', 'VDM.Abstraction.Database', 'Database', 'abstract class', 'Database\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Database', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcRGF0YWJhc2VcRGF0YWJhc2VJbnRlcmZhY2UgYXMgSm9vbWxhRGF0YWJhc2U7', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdCB0byBxdWVyeSBsb2NhbCBEQg0KCSAqDQoJICogQHZhciBKb29tbGFEYXRhYmFzZQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBKb29tbGFEYXRhYmFzZSAkZGI7DQoNCgkvKioNCgkgKiBEYXRlIGZvcm1hdCB0byByZXR1cm4NCgkgKg0KCSAqIEB2YXIgICBzdHJpbmcNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICRkYXRlRm9ybWF0ID0gJ1ktbS1kIEg6aTpzJzsNCg0KCS8qKg0KCSAqIEN1cnJlbnQgY29tcG9uZW50IGNvZGUgbmFtZQ0KCSAqDQoJICogQHZhciAgICAgc3RyaW5nDQoJICogQHNpbmNlIDUuMS4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkY29tcG9uZW50Q29kZTsNCg0KCS8qKg0KCSAqIENvcmUgQ29tcG9uZW50IFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yDQoJICoNCgkgKiBAdGhyb3dzIFxFeGNlcHRpb24NCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoP0pvb21sYURhdGFiYXNlICRkYiA9IG51bGwpDQoJew0KCQkkdGhpcy0+ZGIgPSAkZGIgPzogRmFjdG9yeTo6Z2V0Q29udGFpbmVyKCktPmdldChKb29tbGFEYXRhYmFzZTo6Y2xhc3MpOw0KDQoJCSR0aGlzLT5jb21wb25lbnRDb2RlID0gSGVscGVyOjpnZXRDb2RlKCk7DQoJCSR0aGlzLT50YWJsZSA9ICcjX18nIC4gJHRoaXMtPmNvbXBvbmVudENvZGU7DQoJfQ0KDQoJLyoqDQoJICogU2FmZWx5IHF1b3RlIGEgdmFsdWUgZm9yIGRhdGFiYXNlIHVzZSwgcHJlc2VydmluZyBkYXRhIGludGVncml0eS4NCgkgKg0KCSAqIC0gTmF0aXZlIGludHMvZmxvYXRzIHBhc3NlZCBhcy1pcw0KCSAqIC0gQ2xlYW4gaW50ZWdlciBzdHJpbmdzIGFyZSBjYXN0IHRvIGludA0KCSAqIC0gQ2xlYW4gZmxvYXQgc3RyaW5ncyBhcmUgY2FzdCB0byBmbG9hdA0KCSAqIC0gU2NpZW50aWZpYyBub3RhdGlvbiBpcyBxdW90ZWQgdG8gcHJlc2VydmUgb3JpZ2luYWwgZm9ybQ0KCSAqIC0gTGVhZGluZy16ZXJvIGludGVnZXJzIGFyZSBxdW90ZWQNCgkgKiAtIERhdGVzIGFyZSBmb3JtYXR0ZWQgYW5kIHF1b3RlZA0KCSAqIC0gQm9vbGVhbnMgYXJlIGNvbnZlcnRlZCB0byBUUlVFL0ZBTFNFDQoJICogLSBOdWxsIGlzIGNvbnZlcnRlZCB0byBOVUxMDQoJICogLSBBbGwgZWxzZSBpcyBxdW90ZWQgd2l0aCBKb29tbGEncyBkYiBxdW90ZQ0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIHF1b3RlLg0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBxdW90ZSgkdmFsdWUpDQoJew0KCQkvLyBOVUxMIGhhbmRsaW5nDQoJCWlmICgkdmFsdWUgPT09IG51bGwpDQoJCXsNCgkJCXJldHVybiAnTlVMTCc7DQoJCX0NCg0KCQkvLyBEYXRlVGltZSBoYW5kbGluZw0KCQlpZiAoJHZhbHVlIGluc3RhbmNlb2YgXERhdGVUaW1lSW50ZXJmYWNlKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmRiLT5xdW90ZSgkdmFsdWUtPmZvcm1hdCgkdGhpcy0+Z2V0RGF0ZUZvcm1hdCgpKSk7DQoJCX0NCg0KCQkvLyBOYXRpdmUgbnVtZXJpYyB0eXBlcw0KCQlpZiAoaXNfaW50KCR2YWx1ZSkgfHwgaXNfZmxvYXQoJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZTsNCgkJfQ0KDQoJCS8vIFN0cmluZ2lmaWVkIG51bWVyaWMgdmFsdWVzDQoJCWlmIChpc19zdHJpbmcoJHZhbHVlKSAmJiBpc19udW1lcmljKCR2YWx1ZSkpDQoJCXsNCgkJCS8vIENhc2UgMTogTGVhZGluZy16ZXJvIGludGVnZXJzIGxpa2UgIjAwNyINCgkJCWlmICgkdmFsdWVbMF0gPT09ICcwJyAmJiBzdHJsZW4oJHZhbHVlKSA+IDEgJiYgY3R5cGVfZGlnaXQoJHZhbHVlKSkNCgkJCXsNCgkJCQlyZXR1cm4gJHRoaXMtPmRiLT5xdW90ZSgkdmFsdWUpOw0KCQkJfQ0KDQoJCQkvLyBDYXNlIDI6IFNjaWVudGlmaWMgbm90YXRpb24gLSBwcmVzZXJ2ZSBleGFjdCBmb3JtYXQNCgkJCWlmIChzdHJpcG9zKCR2YWx1ZSwgJ2UnKSAhPT0gZmFsc2UpDQoJCQl7DQoJCQkJcmV0dXJuICR0aGlzLT5kYi0+cXVvdGUoJHZhbHVlKTsNCgkJCX0NCg0KCQkJLy8gQ2FzZSAzOiBEZWNpbWFsIGZsb2F0IHN0cmluZyAobm90IHNjaWVudGlmaWMpDQoJCQlpZiAoc3RyX2NvbnRhaW5zKCR2YWx1ZSwgJy4nKSkNCgkJCXsNCgkJCQlyZXR1cm4gKGZsb2F0KSAkdmFsdWU7DQoJCQl9DQoNCgkJCS8vIENhc2UgNDogUHVyZSBpbnRlZ2VyIHN0cmluZw0KCQkJaWYgKGN0eXBlX2RpZ2l0KCR2YWx1ZSkpDQoJCQl7DQoJCQkJcmV0dXJuIChpbnQpICR2YWx1ZTsNCgkJCX0NCgkJfQ0KDQoJCS8vIEJvb2xlYW4gaGFuZGxpbmcNCgkJaWYgKGlzX2Jvb2woJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZSA/ICdUUlVFJyA6ICdGQUxTRSc7DQoJCX0NCg0KCQkvLyBFdmVyeXRoaW5nIGVsc2UNCgkJcmV0dXJuICR0aGlzLT5kYi0+cXVvdGUoJHZhbHVlKTsNCgl9DQoNCgkvKioNCgkgKiBTZXQgYSB0YWJsZSBuYW1lLCBhZGRpbmcgdGhlDQoJICogICAgIGNvcmUgY29tcG9uZW50IGFzIG5lZWRlZA0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICBUaGUgdGFibGUgc3RyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0VGFibGUoc3RyaW5nICR0YWJsZSk6IHN0cmluZw0KCXsNCgkJaWYgKHN0cnBvcygkdGFibGUsICcjX18nKSA9PT0gZmFsc2UpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+dGFibGUgLiAnXycgLiAkdGFibGU7DQoJCX0NCg0KCQlyZXR1cm4gJHRhYmxlOw0KCX0=', '{}', '{}', '', 1, '2018-10-05 17:01:41', 49, '', 1),
+(133, '524eb8f6-38d4-47dc-92ad-98b94e099ac0', 'VDM.Database.Insert', 'Insert', 'final class', 'Database Insert Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', 'd9839333-a8f1-4a36-9256-5df4d349b3f6', '', '', '', '{\"0\":\"ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Insert', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRGF0ZVxEYXRlOw==', '{\"use_selection0\":{\"use\":\"b8176bdf-5615-4d91-8dfa-990d42f44127\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIERlZmF1bHQgU3dpdGNoDQoJICoNCgkgKiBAc2luY2UgNS4xLjENCgkgKi8NCgl1c2UgRGVmYXVsdFRyYWl0Ow0KDQoJLyoqDQoJICogVGhlIGhpc3RvcnkgdHJhY2tlciBidWNrZXQNCgkgKg0KCSAqIEB2YXIgICAgICBhcnJheQ0KCSAqIEBzaW5jZSAgNS4xLjENCgkgKiovDQoJcHJvdGVjdGVkIGFycmF5ICRoaXN0b3J5R3VpZDsNCg0KCS8qKg0KCSAqIEluc2VydCByb3dzIHRvIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byBzdG9yZSBpbiBkYXRhYmFzZSBbYXJyYXkgb2YgYXJyYXlzIChrZXkgPT4gdmFsdWUpXQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJGRhdGEsIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sDQoJew0KCQlpZiAoIUFycmF5SGVscGVyOjpjaGVjaygkZGF0YSkpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICgkY29sdW1ucyA9PT0gW10pDQoJCXsNCgkJCSRjb2x1bW5zID0gJHRoaXMtPmdldEFycmF5Q29sdW1ucygkZGF0YSk7DQoJCX0NCg0KCQlyZXR1cm4gKCRjb2x1bW5zID09PSBbXSkgPyBmYWxzZSA6ICR0aGlzLT5pbnNlcnQoJGRhdGEsICR0YWJsZSwgJGNvbHVtbnMsIHRydWUpOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBpdGVtcyB0byB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgICAgIERhdGEgdG8gc3RvcmUgaW4gZGF0YWJhc2UgKGFycmF5IG9mIG9iamVjdHMpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgICAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGRhdGEsIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sDQoJew0KCQlpZiAoIUFycmF5SGVscGVyOjpjaGVjaygkZGF0YSkpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICgkY29sdW1ucyA9PT0gW10pDQoJCXsNCgkJCSRjb2x1bW5zID0gJHRoaXMtPmdldE9iamVjdHNDb2x1bW5zKCRkYXRhKTsNCgkJfQ0KDQoJCXJldHVybiAoJGNvbHVtbnMgPT09IFtdKSA/IGZhbHNlIDogJHRoaXMtPmluc2VydCgkZGF0YSwgJHRhYmxlLCAkY29sdW1ucywgZmFsc2UpOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCByb3cgdG8gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gc3RvcmUgaW4gZGF0YWJhc2UgKGtleSA9PiB2YWx1ZSkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3coYXJyYXkgJGRhdGEsIHN0cmluZyAkdGFibGUpOiBib29sDQoJew0KCQlyZXR1cm4gJHRoaXMtPnJvd3MoWyRkYXRhXSwgJHRhYmxlKTsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgaXRlbSB0byB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAkZGF0YSAgICAgRGF0YXNldCB0byBzdG9yZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0ob2JqZWN0ICRkYXRhLCBzdHJpbmcgJHRhYmxlKTogYm9vbA0KCXsNCgkJcmV0dXJuICR0aGlzLT5pdGVtcyhbJGRhdGFdLCAkdGFibGUpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBjb2x1bW5zIGZyb20gZGF0YSBhcnJheQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkZGF0YSAgIERhdGEgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5DQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEFycmF5Q29sdW1ucyhhcnJheSAmJGRhdGEpOiBhcnJheQ0KCXsNCgkJJHJvdyA9IGFycmF5X3ZhbHVlcygkZGF0YSlbMF07DQoNCgkJaWYgKCFBcnJheUhlbHBlcjo6Y2hlY2soJHJvdykpDQoJCXsNCgkJCXJldHVybiBbXTsNCgkJfQ0KDQoJCSRjb2x1bW5zID0gYXJyYXlfa2V5cygkcm93KTsNCg0KCQlyZXR1cm4gYXJyYXlfY29tYmluZSgkY29sdW1ucywgJGNvbHVtbnMpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBjb2x1bW5zIGZyb20gZGF0YSBvYmplY3RzDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICRkYXRhICAgRGF0YSBvYmplY3RzDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheQ0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRPYmplY3RzQ29sdW1ucyhhcnJheSAmJGRhdGEpOiBhcnJheQ0KCXsNCgkJJHJvdyA9IGFycmF5X3ZhbHVlcygkZGF0YSlbMF07DQoNCgkJaWYgKCFpc19vYmplY3QoJHJvdykpDQoJCXsNCgkJCXJldHVybiBbXTsNCgkJfQ0KDQoJCSRjb2x1bW5zID0gZ2V0X29iamVjdF92YXJzKCRyb3cpOw0KDQoJCXJldHVybiBhcnJheV9jb21iaW5lKGFycmF5X2tleXMoJGNvbHVtbnMpLCBhcnJheV9rZXlzKCRjb2x1bW5zKSk7DQoJfQ0KDQoJLyoqDQoJICogSW5zZXJ0IGRhdGEgaW50byB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGRhdGEgICAgICBEYXRhIHRvIHN0b3JlIGluIGRhdGFiYXNlDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICogQHBhcmFtICAgYm9vbCAgICAkaXNBcnJheSAgIFdoZXRoZXIgdGhlIGRhdGEgaXMgYW4gYXJyYXkgb2YgYXJyYXlzIG9yIGFuIGFycmF5IG9mIG9iamVjdHMNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0KGFycmF5ICYkZGF0YSwgc3RyaW5nICR0YWJsZSwgYXJyYXkgJGNvbHVtbnMsIGJvb2wgJGlzQXJyYXkpOiBib29sDQoJew0KCQkvLyBzZXQgam9vbWxhIGRlZmF1bHQgY29sdW1ucw0KCQkkYWRkX2NyZWF0ZWQgPSBmYWxzZTsNCgkJJGFkZF9jcmVhdGVkX2J5ID0gZmFsc2U7DQoJCSRhZGRfdmVyc2lvbiA9IGZhbHNlOw0KCQkkYWRkX3B1Ymxpc2hlZCA9IGZhbHNlOw0KDQoJCS8vIGNoZWNrIGlmIHdlIHNob3VsZCBsb2FkIHRoZSBkZWZhdWx0cw0KCQlpZiAoJHRoaXMtPmRlZmF1bHRzKQ0KCQl7DQoJCQkvLyBnZXQgdGhlIGRhdGUNCgkJCSRkYXRlID0gKG5ldyBEYXRlKCkpLT50b1NxbCgpOw0KDQoJCQlpZiAoIWlzc2V0KCRjb2x1bW5zWydjcmVhdGVkJ10pKQ0KCQkJew0KCQkJCSRjb2x1bW5zWydjcmVhdGVkJ10gPSAnIChvX08pICc7DQoJCQkJJGFkZF9jcmVhdGVkID0gdHJ1ZTsNCgkJCX0NCg0KCQkJaWYgKCFpc3NldCgkY29sdW1uc1snY3JlYXRlZF9ieSddKSkNCgkJCXsNCgkJCQkkY29sdW1uc1snY3JlYXRlZF9ieSddID0gJyAob19PKSAnOw0KCQkJCSRhZGRfY3JlYXRlZF9ieSA9IHRydWU7DQoJCQl9DQoNCgkJCWlmICghaXNzZXQoJGNvbHVtbnNbJ3ZlcnNpb24nXSkpDQoJCQl7DQoJCQkJJGNvbHVtbnNbJ3ZlcnNpb24nXSA9ICcgKG9fTykgJzsNCgkJCQkkYWRkX3ZlcnNpb24gPSB0cnVlOw0KCQkJfQ0KDQoJCQlpZiAoIWlzc2V0KCRjb2x1bW5zWydwdWJsaXNoZWQnXSkpDQoJCQl7DQoJCQkJJGNvbHVtbnNbJ3B1Ymxpc2hlZCddID0gJyAob19PKSAnOw0KCQkJCSRhZGRfcHVibGlzaGVkID0gdHJ1ZTsNCgkJCX0NCgkJCS8vIHRoZSAob19PKSBwcmV2ZW50cyBhbiBlbXB0eSB2YWx1ZSBmcm9tIGJlaW5nIGxvYWRlZA0KCQl9DQoNCgkJLy8gc2V0IGhpc3RvcnkgdmFycw0KCQkkdGhpcy0+ZW50aXR5ID0gJHRoaXMtPmdldFRhYmxlRW50aXR5TmFtZSgkdGFibGUpOw0KCQkkdGhpcy0+aGlzdG9yeUd1aWQgPSBbXTsNCg0KCQkvLyBnZXQgYSBxdWVyeSBvYmplY3QNCgkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5nZXRRdWVyeSh0cnVlKTsNCgkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCR0YWJsZSk7DQoNCgkJLy8gc2V0IHRoZSBxdWVyeSB0YXJnZXRzDQoJCSRxdWVyeS0+aW5zZXJ0KCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0YWJsZSkpLT5jb2x1bW5zKCR0aGlzLT5kYi0+cXVvdGVOYW1lKGFycmF5X2tleXMoJGNvbHVtbnMpKSk7DQoNCgkJLy8gbGltaXRpbmcgZmFjdG9yIG9uIHRoZSBhbW91bnQgb2Ygcm93cyB0byBpbnNlcnQgYmVmb3JlIHdlIHJlc2V0IHRoZSBxdWVyeQ0KCQkkbGltaXQgPSAzMDA7DQoNCgkJLy8gc2V0IHRoZSBpbnNlcnQgdmFsdWVzDQoJCWZvcmVhY2ggKCRkYXRhIGFzICRuciA9PiAkdmFsdWUpDQoJCXsNCgkJCS8vIGNoZWNrIHRoZSBsaW1pdA0KCQkJaWYgKCRsaW1pdCA8PSAxKQ0KCQkJew0KCQkJCS8vIGV4ZWN1dGUgYW5kIHJlc2V0IHRoZSBxdWVyeQ0KCQkJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCQkkdGhpcy0+ZGItPmV4ZWN1dGUoKTsNCg0KCQkJCS8vIHJlc2V0IGxpbWl0DQoJCQkJJGxpbWl0ID0gMzAwOw0KDQoJCQkJLy8gZ2V0IGEgcXVlcnkgb2JqZWN0DQoJCQkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkJCS8vIHNldCB0aGUgcXVlcnkgdGFyZ2V0cw0KCQkJCSRxdWVyeS0+aW5zZXJ0KCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0YWJsZSkpLT5jb2x1bW5zKCR0aGlzLT5kYi0+cXVvdGVOYW1lKGFycmF5X2tleXMoJGNvbHVtbnMpKSk7DQoJCQl9DQoNCgkJCSRyb3cgPSBbXTsNCgkJCWZvcmVhY2ggKCRjb2x1bW5zIGFzICRjb2x1bW4gPT4gJGtleSkNCgkJCXsNCgkJCQlpZiAoJyAob19PKSAnID09PSAka2V5KQ0KCQkJCXsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJCQkJJHZhbCA9ICgkaXNBcnJheSAmJiBpc3NldCgkdmFsdWVbJGtleV0pKSA/ICR2YWx1ZVska2V5XQ0KCQkJCQk6ICgoISRpc0FycmF5ICYmIGlzc2V0KCR2YWx1ZS0+eyRrZXl9KSkgPyAkdmFsdWUtPnska2V5fSA6ICcnKTsNCg0KCQkJCS8vIHdlIGNhbiBvbmx5IHNldCBoaXN0b3J5IGlmIHdlIGhhdmUgYSBndWlkIGluIHRoZSBkYXRhIHNldA0KCQkJCWlmICgkY29sdW1uID09PSAnZ3VpZCcgJiYgIWVtcHR5KCR0aGlzLT5lbnRpdHkpICYmICR0aGlzLT5oaXN0b3J5ICYmICFlbXB0eSgkdmFsKSkNCgkJCQl7DQoJCQkJCSR0aGlzLT5oaXN0b3J5R3VpZFskdmFsXSA9IDE7DQoJCQkJfQ0KDQoJCQkJJHJvd1tdID0gJHRoaXMtPnF1b3RlKCR2YWwpOw0KCQkJfQ0KDQoJCQkvLyBzZXQgam9vbWxhIGRlZmF1bHQgY29sdW1ucw0KCQkJaWYgKCRhZGRfY3JlYXRlZCkNCgkJCXsNCgkJCQkkcm93W10gPSAkdGhpcy0+ZGItPnF1b3RlKCRkYXRlKTsNCgkJCX0NCg0KCQkJaWYgKCRhZGRfY3JlYXRlZF9ieSkNCgkJCXsNCgkJCQkkcm93W10gPSAkdGhpcy0+dXNlcklkOw0KCQkJfQ0KDQoJCQlpZiAoJGFkZF92ZXJzaW9uKQ0KCQkJew0KCQkJCSRyb3dbXSA9IDE7DQoJCQl9DQoNCgkJCWlmICgkYWRkX3B1Ymxpc2hlZCkNCgkJCXsNCgkJCQkkcm93W10gPSAxOw0KCQkJfQ0KDQoJCQkvLyBhZGQgdG8gcXVlcnkNCgkJCSRxdWVyeS0+dmFsdWVzKGltcGxvZGUoJywnLCAkcm93KSk7DQoNCgkJCS8vIGRlY3JlbWVudCB0aGUgbGltaXRlcg0KCQkJJGxpbWl0LS07DQoNCgkJCS8vIGNsZWFyIHRoZSBkYXRhIGZyb20gbWVtb3J5DQoJCQl1bnNldCgkZGF0YVskbnJdKTsNCgkJfQ0KDQoJCS8vIGV4ZWN1dGUgdGhlIGZpbmFsIHF1ZXJ5DQoJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJLy8gdHJhY2sgdmVyc2lvbiBoaXN0b3J5DQoJCWlmICgkdGhpcy0+aGlzdG9yeSAmJiAhZW1wdHkoJHRoaXMtPmVudGl0eSkgJiYgJHRoaXMtPmhpc3RvcnlHdWlkICE9PSBbXSkNCgkJew0KCQkJJHRoaXMtPnRyYWNrSGlzdG9yeShhcnJheV9rZXlzKCR0aGlzLT5oaXN0b3J5R3VpZCksICR0YWJsZSk7DQoJCX0NCg0KCQkvLyBhbHdheXMgcmVzZXQgdGhlIHN3aXRjaCdzDQoJCSR0aGlzLT5kZWZhdWx0cygpLT5oaXN0b3J5KCk7DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogQXR0ZW1wdCB0byBzZXQgaGlzdG9yeSByZWNvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGVudGl0eS4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiBoaXN0b3J5IHRyYWNraW5nIGlzIGVuYWJsZWQgYW5kIHRoZSBwcm92aWRlZCBgJGVudGl0eWAgaGFzDQoJICogY29ycmVzcG9uZGluZyBHVUlEcyBpbiB0aGUgYCRoaXN0b3J5YCBhcnJheS4gSXQgdGhlbiBmZXRjaGVzIHRoZSBJRHMgZm9yIHRoZQ0KCSAqIG1hdGNoaW5nIEdVSURzIGZyb20gdGhlIGRhdGFiYXNlIGFuZCB0cmlnZ2VycyBoaXN0b3J5IHNldHRpbmcgb24gdGhlbS4NCgkgKg0KCSAqIEFueSBleGNlcHRpb25zIGR1cmluZyB0aGlzIHByb2Nlc3MgYXJlIHNpbGVudGx5IGNhdWdodCBhbmQgaWdub3JlZC4NCgkgKg0KCSAqIEBwYXJhbSAgYXJyYXkgICAkaGlzdG9yeSAgVGhlIGhpc3RvcnkgbWFwIHdpdGggZW50aXR5IEdVSURzIGFzIHZhbHVlcy4NCgkgKiBAcGFyYW0gIHN0cmluZyAgJHRhYmxlICAgIFRoZSBmdWxsIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgIDUuMS4xDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIHRyYWNrSGlzdG9yeShhcnJheSAkaGlzdG9yeSwgc3RyaW5nICR0YWJsZSk6IHZvaWQNCgl7DQoJCXRyeQ0KCQl7DQoJCQkkcXVlcnkgPSAkdGhpcy0+ZGItPmdldFF1ZXJ5KHRydWUpDQoJCQkJLT5zZWxlY3QoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJ2lkJykpDQoJCQkJLT5mcm9tKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0YWJsZSkpDQoJCQkJLT53aGVyZSgNCgkJCQkJJHRoaXMtPmRiLT5xdW90ZU5hbWUoJ2d1aWQnKSAuICcgSU4gKCcgLg0KCQkJCQlpbXBsb2RlKCcsJywgYXJyYXlfbWFwKGZuKCR2KSA9PiAkdGhpcy0+cXVvdGUoJHYpLCAkaGlzdG9yeSkpIC4NCgkJCQkJJyknDQoJCQkJKTsNCg0KCQkJJHRoaXMtPmRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJJHRoaXMtPmRiLT5leGVjdXRlKCk7DQoNCgkJCWlmICgkdGhpcy0+ZGItPmdldE51bVJvd3MoKSkNCgkJCXsNCgkJCQkkdGhpcy0+c2V0TXVsdGlwbGVIaXN0b3J5KA0KCQkJCQkkdGhpcy0+ZGItPmxvYWRDb2x1bW4oKQ0KCQkJCSk7DQoJCQl9DQoJCX0NCgkJY2F0Y2ggKFxUaHJvd2FibGUgJGUpDQoJCXsNCgkJCS8vIFNpbGVudGx5IGlnbm9yZSBhbGwgZXJyb3JzDQoJCX0NCgl9', '{}', '{}', '', 1, '2022-09-03 14:06:26', 44, '', 1),
+(134, 'ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48', 'VDM.Interfaces.Database.InsertInterface', 'InsertInterface', 'interface', 'Database Insert Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '{\"0\":\"78931d43-9fb9-4cc1-a2ca-b3e189ef842e\",\"1\":\"ac77cee7-7018-4496-a453-9757623e3849\"}', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.InsertInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEluc2VydCByb3dzIHRvIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byBzdG9yZSBpbiBkYXRhYmFzZSBbYXJyYXkgb2YgYXJyYXlzIChrZXkgPT4gdmFsdWUpXQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIGFkZGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJGRhdGEsIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sOw0KDQoJLyoqDQoJICogSW5zZXJ0IGl0ZW1zIHRvIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgICAgRGF0YSB0byBzdG9yZSBpbiBkYXRhYmFzZSAoYXJyYXkgb2Ygb2JqZWN0cykNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBhZGRlZA0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRjb2x1bW5zICAgICAgRGF0YSBjb2x1bW5zIGZvciByZW1hcHBpbmcgYW5kIGZpbHRlcmluZw0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAkZGF0YSwgc3RyaW5nICR0YWJsZSwgYXJyYXkgJGNvbHVtbnMgPSBbXSk6IGJvb2w7DQoNCgkvKioNCgkgKiBJbnNlcnQgcm93IHRvIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHN0b3JlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRkYXRhLCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIEluc2VydCBpdGVtIHRvIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgICRkYXRhICAgICBEYXRhc2V0IHRvIHN0b3JlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgYWRkZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShvYmplY3QgJGRhdGEsIHN0cmluZyAkdGFibGUpOiBib29sOw==', '{}', '{}', '', 1, '2022-12-10 14:06:51', 20, '', 1),
(135, 'caf33c5d-858c-4f9a-894f-ab302ec5445a', 'VDM.Interfaces.FactoryInterface', 'FactoryInterface', 'interface', 'The Container Factory Interface\r\n\r\n@since 0.0.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.FactoryInterface', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7', '{}', 'CS8qKg0KCSAqIEdldCBhbnkgY2xhc3MgZnJvbSB0aGUgY29udGFpbmVyDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRrZXkgIFRoZSBjb250YWluZXIgY2xhc3Mga2V5DQoJICoNCgkgKiBAcmV0dXJuICBNaXhlZA0KCSAqIEBzaW5jZSAwLjAuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gXyhzdHJpbmcgJGtleSk7DQoNCgkvKioNCgkgKiBHZXQgdGhlIGdsb2JhbCBjb250YWluZXINCgkgKg0KCSAqIEByZXR1cm4gIENvbnRhaW5lcg0KCSAqIEBzaW5jZSAwLjAuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0Q29udGFpbmVyKCk6IENvbnRhaW5lcjs=', '{}', '{}', '', 1, '2022-12-14 07:12:55', 19, '', 1),
(136, 'bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8', 'VDM.Table', 'Table', 'class', '[[[Component]]] Tables\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '2.0.0', 'e0f6ddbe-2a35-4537-942c-faff2ebd04f6', '', '', '', '{\"0\":\"2da6d6c4-eb29-4d69-8bc2-36d96e916adf\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEFsbCBhcmVhcy92aWV3cy90YWJsZXMgd2l0aCB0aGVpciBmaWVsZCBkZXRhaWxzDQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgYXJyYXkgJHRhYmxlcyA9ICMjI0FMTF9DT01QT05FTlRfRklFTERTIyMjOw==', '{}', '{}', '', 1, '2022-12-14 07:30:10', 21, '', 1),
(137, '2da6d6c4-eb29-4d69-8bc2-36d96e916adf', 'VDM.Interfaces.TableInterface', 'TableInterface', 'interface', 'The VDM Core Table Interface', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.TableInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEdldCBhbnkgdmFsdWUgZnJvbSBhIGl0ZW0vZmllbGQvY29sdW1uIG9mIGFuIGFyZWEvdmlldy90YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoJ3RhYmxlX25hbWUnLCAnZmllbGRfbmFtZScsICd2YWx1ZV9rZXknKTsNCgkgKiBHZXQgYW4gaXRlbS9maWVsZC9jb2x1bW4gb2YgYW4gYXJlYS92aWV3L3RhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPmdldCgndGFibGVfbmFtZScsICdmaWVsZF9uYW1lJyk7DQoJICogR2V0IGFsbCBpdGVtcy9maWVsZHMvY29sdW1ucyBvZiBhbiBhcmVhL3ZpZXcvdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+Z2V0KCd0YWJsZV9uYW1lJyk7DQoJICogR2V0IGFsbCBhcmVhcy92aWV3cy90YWJsZXMgd2l0aCBhbGwgdGhlaXIgaXRlbS9maWVsZC9jb2x1bW4gZGV0YWlscw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoJ0FsbCcpOw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoKTsNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkdGFibGUgIFRoZSB0YWJsZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkZmllbGQgIFRoZSBmaWVsZA0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAka2V5ICAgIFRoZSB2YWx1ZSBrZXkNCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldCg/c3RyaW5nICR0YWJsZSA9IG51bGwsID9zdHJpbmcgJGZpZWxkID0gbnVsbCwgP3N0cmluZyAka2V5ID0gbnVsbCk7DQoNCgkvKioNCgkgKiBHZXQgdGl0bGUgZmllbGQgZnJvbSBhbiBhcmVhL3ZpZXcvdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgVGhlIGFyZWENCgkgKg0KCSAqIEByZXR1cm4gID9hcnJheQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0aXRsZShzdHJpbmcgJHRhYmxlKTogP2FycmF5Ow0KDQoJLyoqDQoJICogR2V0IHRpdGxlIGZpZWxkIG5hbWUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgVGhlIGFyZWENCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0aXRsZU5hbWUoc3RyaW5nICR0YWJsZSk6IHN0cmluZzsNCg0KCS8qKg0KCSAqIEdldCBhbGwgdGFibGVzDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZXMoKTogYXJyYXk7DQoNCgkvKioNCgkgKiBDaGVjayBpZiBhIHRhYmxlIChhbmQgZmllbGQpIGV4aXN0DQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJHRhYmxlICBUaGUgYXJlYQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkZmllbGQgIFRoZSBhcmVhDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGV4aXN0KHN0cmluZyAkdGFibGUsID9zdHJpbmcgJGZpZWxkID0gbnVsbCk6IGJvb2w7DQoNCgkvKioNCgkgKiBHZXQgYWxsIGZpZWxkcyBvZiBhbiBhcmVhL3ZpZXcvdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHRhYmxlICAgICBUaGUgYXJlYQ0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGRlZmF1bHQgICBBZGQgdGhlIGRlZmF1bHQgZmllbGRzDQoJICogQHBhcmFtICAgYm9vbCAgICAkZGV0YWlscyAgIEFkZC9MZWF2ZSBmaWVsZHMgdGhlIGRldGFpbHMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwgICBPbiBzdWNjZXNzIGFuIGFycmF5IG9mIGZpZWxkcw0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBmaWVsZHMoc3RyaW5nICR0YWJsZSwgYm9vbCAkZGVmYXVsdCA9IGZhbHNlLCBib29sICRkZXRhaWxzID0gZmFsc2UpOiA/YXJyYXk7', '{}', '{}', '', 1, '2022-12-14 07:42:16', 12, '', 1),
(154, '4815e1c7-a433-443d-a112-d1e03d7df84b', 'JCB.Service.Database', 'Database', 'class', 'Database Service Provider\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', 'Registry', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\Service.Database', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"06f8eada-d59b-441c-b287-0aea1793da5a\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"524eb8f6-38d4-47dc-92ad-98b94e099ac0\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"cce56585-58b0-4f72-a92c-e2635ea52d83\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"92291f1f-f248-4ec0-9f2a-3d47c49eeac1\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKExvYWQ6OmNsYXNzLCAnTG9hZCcpDQoJCQktPnNoYXJlKCdMb2FkJywgWyR0aGlzLCAnZ2V0TG9hZCddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhJbnNlcnQ6OmNsYXNzLCAnSW5zZXJ0JykNCgkJCS0+c2hhcmUoJ0luc2VydCcsIFskdGhpcywgJ2dldEluc2VydCddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhVcGRhdGU6OmNsYXNzLCAnVXBkYXRlJykNCgkJCS0+c2hhcmUoJ1VwZGF0ZScsIFskdGhpcywgJ2dldFVwZGF0ZSddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhEZWxldGU6OmNsYXNzLCAnRGVsZXRlJykNCgkJCS0+c2hhcmUoJ0RlbGV0ZScsIFskdGhpcywgJ2dldERlbGV0ZSddLCB0cnVlKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIENvcmUgTG9hZCBEYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgTG9hZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRMb2FkKENvbnRhaW5lciAkY29udGFpbmVyKTogTG9hZA0KCXsNCgkJcmV0dXJuIG5ldyBMb2FkKCk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBDb3JlIEluc2VydCBEYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgSW5zZXJ0DQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEluc2VydChDb250YWluZXIgJGNvbnRhaW5lcik6IEluc2VydA0KCXsNCgkJcmV0dXJuIG5ldyBJbnNlcnQoKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIENvcmUgVXBkYXRlIERhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBVcGRhdGUNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VXBkYXRlKENvbnRhaW5lciAkY29udGFpbmVyKTogVXBkYXRlDQoJew0KCQlyZXR1cm4gbmV3IFVwZGF0ZSgpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgQ29yZSBEZWxldGUgRGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIERlbGV0ZQ0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXREZWxldGUoQ29udGFpbmVyICRjb250YWluZXIpOiBEZWxldGUNCgl7DQoJCXJldHVybiBuZXcgRGVsZXRlKCk7DQoJfQ==', '{}', '{}', '', 1, '2022-12-30 21:27:57', 11, '', 1),
(379, '1198aecf-84c6-45d2-aea8-d531aa4afdfa', 'Utilities FormHelper', 'FormHelper', 'abstract class', 'Form Helper\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Utilities.FormHelper', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRm9ybVxGb3JtSGVscGVyIGFzIEpvb21sYUZvcm1IZWxwZXI7DQp1c2UgSm9vbWxhXENNU1xGb3JtXEZvcm1GaWVsZDs=', '{}', 'CS8qKg0KCSAqIGdldCB0aGUgZmllbGQgeG1sDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRhdHRyaWJ1dGVzICAgVGhlIGFycmF5IG9mIGF0dHJpYnV0ZXMNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRvcHRpb25zICAgICAgVGhlIG9wdGlvbnMgdG8gYXBwbHkgdG8gdGhlIFhNTCBlbGVtZW50DQoJICoNCgkgKiBAcmV0dXJuICBcU2ltcGxlWE1MRWxlbWVudHxudWxsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB4bWwoYXJyYXkgJGF0dHJpYnV0ZXMsID9hcnJheSAkb3B0aW9ucyA9IG51bGwpOiA/XFNpbXBsZVhNTEVsZW1lbnQNCgl7DQoJCS8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGF0dHJpYnV0ZXMgYW5kIGEgdHlwZSB2YWx1ZQ0KCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRhdHRyaWJ1dGVzKSkNCgkJew0KCQkJLy8gc3RhcnQgZmllbGQgeG1sDQoJCQkkWE1MID0gbmV3IFxTaW1wbGVYTUxFbGVtZW50KCc8ZmllbGQvPicpOw0KDQoJCQkvLyBsb2FkIHRoZSBhdHRyaWJ1dGVzDQoJCQlzZWxmOjphdHRyaWJ1dGVzKCRYTUwsICRhdHRyaWJ1dGVzKTsNCg0KCQkJLy8gY2hlY2sgaWYgd2UgaGF2ZSBvcHRpb25zDQoJCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCRvcHRpb25zKSkNCgkJCXsNCgkJCQkvLyBsb2FkIHRoZSBvcHRpb25zDQoJCQkJc2VsZjo6b3B0aW9ucygkWE1MLCAkb3B0aW9ucyk7DQoJCQl9DQoNCgkJCS8vIHJldHVybiB0aGUgZmllbGQgeG1sDQoJCQlyZXR1cm4gJFhNTDsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIHhtbEFwcGVuZA0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICAkeG1sICAgICAgVGhlIFhNTCBlbGVtZW50IHJlZmVyZW5jZSBpbiB3aGljaCB0byBpbmplY3QgYSBjb21tZW50DQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgICAgICRub2RlICAgICBBIFNpbXBsZVhNTEVsZW1lbnQgbm9kZSB0byBhcHBlbmQgdG8gdGhlIFhNTCBlbGVtZW50IHJlZmVyZW5jZSwNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgYSBzdGRDbGFzcyBvYmplY3QgY29udGFpbmluZyBhIGNvbW1lbnQgYXR0cmlidXRlIHRvIGJlIGluamVjdGVkDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSB0aGUgWE1MIG5vZGUgYW5kIGEgZmllbGRYTUwgYXR0cmlidXRlIGNvbnRhaW5pbmcgYSBTaW1wbGVYTUxFbGVtZW50DQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhcHBlbmQoXFNpbXBsZVhNTEVsZW1lbnQgJiR4bWwsICRub2RlKQ0KCXsNCgkJaWYgKCEkbm9kZSkNCgkJew0KCQkJLy8gZWxlbWVudCB3YXMgbm90IHJldHVybmVkDQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoJG5vZGUgaW5zdGFuY2VvZiBcc3RkQ2xhc3MpDQoJCXsNCgkJCWlmIChwcm9wZXJ0eV9leGlzdHMoJG5vZGUsICdjb21tZW50JykpDQoJCQl7DQoJCQkJc2VsZjo6Y29tbWVudCgkeG1sLCAkbm9kZS0+Y29tbWVudCk7DQoJCQl9DQoJCQlpZiAocHJvcGVydHlfZXhpc3RzKCRub2RlLCAnZmllbGRYTUwnKSkNCgkJCXsNCgkJCQlzZWxmOjphcHBlbmQoJHhtbCwgJG5vZGUtPmZpZWxkWE1MKTsNCgkJCX0NCgkJfQ0KCQllbHNlaWYgKCRub2RlIGluc3RhbmNlb2YgXFNpbXBsZVhNTEVsZW1lbnQpDQoJCXsNCgkJCSRkb21YTUwgPSBcZG9tX2ltcG9ydF9zaW1wbGV4bWwoJHhtbCk7DQoJCQkkZG9tTm9kZSA9IFxkb21faW1wb3J0X3NpbXBsZXhtbCgkbm9kZSk7DQoJCQkkZG9tWE1MLT5hcHBlbmRDaGlsZCgkZG9tWE1MLT5vd25lckRvY3VtZW50LT5pbXBvcnROb2RlKCRkb21Ob2RlLCB0cnVlKSk7DQoJCQkkeG1sID0gXHNpbXBsZXhtbF9pbXBvcnRfZG9tKCRkb21YTUwpOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogeG1sQ29tbWVudA0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICAkeG1sICAgICAgICBUaGUgWE1MIGVsZW1lbnQgcmVmZXJlbmNlIGluIHdoaWNoIHRvIGluamVjdCBhIGNvbW1lbnQNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICAgICAgJGNvbW1lbnQgICAgVGhlIGNvbW1lbnQgdG8gaW5qZWN0DQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb21tZW50KFxTaW1wbGVYTUxFbGVtZW50ICYkeG1sLCBzdHJpbmcgJGNvbW1lbnQpDQoJew0KCQkkZG9tWE1MID0gXGRvbV9pbXBvcnRfc2ltcGxleG1sKCR4bWwpOw0KCQkkZG9tQ29tbWVudCA9IG5ldyBcRE9NQ29tbWVudCgkY29tbWVudCk7DQoJCSRub2RlVGFyZ2V0ID0gJGRvbVhNTC0+b3duZXJEb2N1bWVudC0+aW1wb3J0Tm9kZSgkZG9tQ29tbWVudCwgdHJ1ZSk7DQoJCSRkb21YTUwtPmFwcGVuZENoaWxkKCRub2RlVGFyZ2V0KTsNCgkJJHhtbCA9IFxzaW1wbGV4bWxfaW1wb3J0X2RvbSgkZG9tWE1MKTsNCgl9DQoNCgkvKioNCgkgKiB4bWxBZGRBdHRyaWJ1dGVzDQoJICoNCgkgKiBAcGFyYW0gICBcU2ltcGxlWE1MRWxlbWVudCAgICR4bWwgICAgICAgICAgVGhlIFhNTCBlbGVtZW50IHJlZmVyZW5jZSBpbiB3aGljaCB0byBpbmplY3QgYSBjb21tZW50DQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICAgICAgICRhdHRyaWJ1dGVzICAgVGhlIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIFhNTCBlbGVtZW50DQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBhdHRyaWJ1dGVzKFxTaW1wbGVYTUxFbGVtZW50ICYkeG1sLCBhcnJheSAkYXR0cmlidXRlcyA9IFtdKQ0KCXsNCgkJZm9yZWFjaCAoJGF0dHJpYnV0ZXMgYXMgJGtleSA9PiAkdmFsdWUpDQoJCXsNCgkJCSR4bWwtPmFkZEF0dHJpYnV0ZSgka2V5LCAkdmFsdWUgPz8gJycpOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogeG1sQWRkT3B0aW9ucw0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICAkeG1sICAgICAgICAgIFRoZSBYTUwgZWxlbWVudCByZWZlcmVuY2UgaW4gd2hpY2ggdG8gaW5qZWN0IGEgY29tbWVudA0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgICAgICAgICAkb3B0aW9ucyAgICAgIFRoZSBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBYTUwgZWxlbWVudA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gb3B0aW9ucyhcU2ltcGxlWE1MRWxlbWVudCAmJHhtbCwgYXJyYXkgJG9wdGlvbnMgPSBbXSkNCgl7DQoJCWZvcmVhY2ggKCRvcHRpb25zIGFzICRrZXkgPT4gJHZhbHVlKQ0KCQl7DQoJCQkkYWRkT3B0aW9uID0gJHhtbC0+YWRkQ2hpbGQoJ29wdGlvbicpOw0KCQkJJGFkZE9wdGlvbi0+YWRkQXR0cmlidXRlKCd2YWx1ZScsICRrZXkgPz8gJycpOw0KCQkJJGFkZE9wdGlvbltdID0gJHZhbHVlOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogZ2V0IHRoZSBmaWVsZCBvYmplY3QNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgJGF0dHJpYnV0ZXMgICBUaGUgYXJyYXkgb2YgYXR0cmlidXRlcw0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgJGRlZmF1bHQgICAgICBUaGUgZGVmYXVsdCBvZiB0aGUgZmllbGQNCgkgKiBAcGFyYW0gICBhcnJheSAgICAgICRvcHRpb25zICAgICAgVGhlIG9wdGlvbnMgdG8gYXBwbHkgdG8gdGhlIFhNTCBlbGVtZW50DQoJICoNCgkgKiBAcmV0dXJuICBGb3JtRmllbGR8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZmllbGQoYXJyYXkgJGF0dHJpYnV0ZXMsIHN0cmluZyAkZGVmYXVsdCA9ICcnLCA/YXJyYXkgJG9wdGlvbnMgPSBudWxsKTogP0Zvcm1GaWVsZA0KCXsNCgkJLy8gbWFrZSBzdXJlIHdlIGhhdmUgYXR0cmlidXRlcyBhbmQgYSB0eXBlIHZhbHVlDQoJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJGF0dHJpYnV0ZXMpICYmIGlzc2V0KCRhdHRyaWJ1dGVzWyd0eXBlJ10pKQ0KCQl7DQoJCQkvLyBnZXQgZmllbGQgdHlwZQ0KCQkJaWYgKCgkZmllbGQgPSBKb29tbGFGb3JtSGVscGVyOjpsb2FkRmllbGRUeXBlKCRhdHRyaWJ1dGVzWyd0eXBlJ10sIHRydWUpKSA9PT0gZmFsc2UpDQoJCQl7DQoJCQkJcmV0dXJuIG51bGw7DQoJCQl9DQoNCgkJCS8vIGdldCBmaWVsZCB4bWwNCgkJCSRYTUwgPSBzZWxmOjp4bWwoJGF0dHJpYnV0ZXMsICRvcHRpb25zKTsNCg0KCQkJLy8gc2V0dXAgdGhlIGZpZWxkDQoJCQkkZmllbGQtPnNldHVwKCRYTUwsICRkZWZhdWx0KTsNCg0KCQkJLy8gcmV0dXJuIHRoZSBmaWVsZCBvYmplY3QNCgkJCXJldHVybiAkZmllbGQ7DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9', '{\"load_selection0\":{\"load\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\"}}', '{}', '', 1, '2023-03-28 17:12:21', 11, '', 1),
(382, '7c1fb50f-8fb1-4627-8705-6fedf7182ca5', 'VDM.Model.Upsert', 'Upsert', 'final class', 'Power Model Update or Insert\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '584747d1-3a86-453d-b7a3-a2219de8d777', 'Abstraction\\Model', '', '', '{\"0\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Model.Upsert', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"1f28cb53-60d9-4db1-b517-3c7dc6b429ef\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"91004529-94a9-4590-b842-e7c6b624ecf5\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIE1vZGVsIHRoZSB2YWx1ZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT52YWx1ZSh2YWx1ZSwgJ2ZpZWxkX2tleScsICd0YWJsZV9uYW1lJyk7DQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICAgJHZhbHVlICAgIFRoZSB2YWx1ZSB0byBtb2RlbA0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgICAkZmllbGQgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgICAkdGFibGUgICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsID9zdHJpbmcgJHRhYmxlID0gbnVsbCkNCgl7DQoJCS8vIHNldCB0aGUgdGFibGUgbmFtZQ0KCQlpZiAoZW1wdHkoJHRhYmxlKSkNCgkJew0KCQkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCk7DQoJCX0NCg0KCQkvLyBjaGVjayBpZiB0aGlzIGlzIGEgdmFsaWQgdGFibGUNCgkJaWYgKCgkc3RvcmUgPSAkdGhpcy0+dGFibGUtPmdldCgkdGFibGUsICRmaWVsZCwgJ3N0b3JlJykpICE9PSBudWxsKQ0KCQl7DQoJCQkvLyBvcGVuIHRoZSB2YWx1ZSBiYXNlZCBvbiB0aGUgc3RvcmUgbWV0aG9kDQoJCQlzd2l0Y2goJHN0b3JlKQ0KCQkJew0KCQkJCWNhc2UgJ2Jhc2U2NCc6DQoJCQkJCSR2YWx1ZSA9IGJhc2U2NF9lbmNvZGUoKHN0cmluZykgJHZhbHVlKTsNCgkJCQlicmVhazsNCgkJCQljYXNlICdqc29uJzoNCgkJCQkJJHZhbHVlID0ganNvbl9lbmNvZGUoJHZhbHVlLCAgSlNPTl9GT1JDRV9PQkpFQ1QpOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICR2YWx1ZTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBiZWZvcmUgdGhlIHZhbHVlIGlzIG1vZGVsbGVkDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICR2YWx1ZSAgIFRoZSBmaWVsZCB2YWx1ZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJGZpZWxkICAgICBUaGUgZmllbGQga2V5DQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkdGFibGUgICBUaGUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVCZWZvcmUoJiR2YWx1ZSwgP3N0cmluZyAkZmllbGQgPSBudWxsLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiBib29sDQoJew0KCQkvLyBjaGVjayB2YWx1ZXMNCgkJaWYgKFN0cmluZ0hlbHBlcjo6Y2hlY2soJHZhbHVlKSB8fCBBcnJheUhlbHBlcjo6Y2hlY2soJHZhbHVlLCB0cnVlKSAgfHwgT2JqZWN0SGVscGVyOjpjaGVjaygkdmFsdWUpIHx8IGlzX251bWVyaWMoJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJLy8gY2hlY2sgaWYgd2UgYWxsb3cgZW1wdHkNCgkJZWxzZWlmICgkdGhpcy0+Z2V0QWxsb3dFbXB0eSgpICYmIGVtcHR5KCR2YWx1ZSkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJCS8vIHJlbW92ZSBlbXB0eSB2YWx1ZXMNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGFmdGVyIHRoZSB2YWx1ZSBpcyBtb2RlbGxlZA0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAkdmFsdWUgICBUaGUgZmllbGQgdmFsdWUNCgkgKiBAcGFyYW0gICBzdHJpbmd8bnVsbCAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAgJHRhYmxlICAgVGhlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlQWZ0ZXIoJiR2YWx1ZSwgP3N0cmluZyAkZmllbGQgPSBudWxsLCA/c3RyaW5nICR0YWJsZSA9IG51bGwpOiBib29sDQoJew0KCQkvLyBvbmx5IHN0cmluZ3Mgb3IgbnVtYmVycyBhbGxvd2VkDQoJCWlmIChTdHJpbmdIZWxwZXI6OmNoZWNrKCR2YWx1ZSkgfHwgaXNfbnVtZXJpYygkdmFsdWUpKQ0KCQl7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCQkvLyBjaGVjayBpZiB3ZSBhbGxvdyBlbXB0eQ0KCQllbHNlaWYgKCR0aGlzLT5nZXRBbGxvd0VtcHR5KCkgJiYgZW1wdHkoJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCgkJLy8gcmVtb3ZlIGVtcHR5IHZhbHVlcw0KCQlyZXR1cm4gZmFsc2U7DQoJfQ==', '{}', '{}', '', 1, '2023-04-01 02:49:38', 32, '', 1),
-(383, '7179fde6-1e51-4b51-8545-7ca18f74a0f4', 'VDM.Interfaces.UpdateInterface', 'UpdateInterface', 'interface', 'Database Update Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.UpdateInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFVwZGF0ZSByb3dzIGluIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byB1cGRhdGUgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSBpdGVtcyBpbiB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGEgdG8gdXBkYXRlZCBpbiBkYXRhYmFzZSAoYXJyYXkgb2Ygb2JqZWN0cykNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSByb3cgaW4gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gdXBkYXRlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGtleSAgICAgICBEYXRhc2V0IGtleSBjb2x1bW4gdG8gdXNlIGluIHVwZGF0aW5nIHRoZSB2YWx1ZXMgaW4gdGhlIERhdGFiYXNlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgdXBkYXRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3coYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSBpdGVtIGluIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHVwZGF0ZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRrZXkgICAgICAgRGF0YXNldCBrZXkgY29sdW1uIHRvIHVzZSBpbiB1cGRhdGluZyB0aGUgdmFsdWVzIGluIHRoZSBEYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIHVwZGF0ZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShvYmplY3QgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlKTogYm9vbDs=', '{}', '{}', '', 1, '2023-04-01 19:54:56', 8, '', 1),
-(384, 'cce56585-58b0-4f72-a92c-e2635ea52d83', 'VDM.Database.Update', 'Update', 'final class', 'Database Update Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"7179fde6-1e51-4b51-8545-7ca18f74a0f4\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Update', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFVwZGF0ZSByb3dzIGluIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byB1cGRhdGUgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbA0KCXsNCgkJLy8gc2V0IHRoZSB1cGRhdGUgY29sdW1ucw0KCQlpZiAoJGRhdGEgPT09IFtdIHx8IHN0cmxlbigka2V5KSA9PSAwKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvLyBzZXQgdGhlIHVwZGF0ZSB2YWx1ZXMNCgkJZm9yZWFjaCAoJGRhdGEgYXMgJHZhbHVlcykNCgkJew0KCQkJaWYgKCRjb2x1bW5zICE9PSBbXSkNCgkJCXsNCgkJCQkvLyBsb2FkIG9ubHkgd2hhdCBpcyBwYXJ0IG9mIHRoZSBjb2x1bW5zIHNldA0KCQkJCSRyb3cgPSBbXTsNCgkJCQlmb3JlYWNoICgkY29sdW1ucyBhcyAkY29sdW1uID0+ICRrZXlfKQ0KCQkJCXsNCgkJCQkJaWYgKGlzc2V0KCR2YWx1ZXNbJGtleV9dKSkNCgkJCQkJew0KCQkJCQkJJHJvd1skY29sdW1uXSA9ICR2YWx1ZXNbJGtleV9dOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJLy8gdXBkYXRlIHRoZSByb3cNCgkJCQkkdGhpcy0+cm93KCRyb3csICRrZXksICR0YWJsZSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJLy8gdXBkYXRlIHRoZSByb3cNCgkJCQkkdGhpcy0+cm93KChhcnJheSkgJHZhbHVlcywgJGtleSwgJHRhYmxlKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8qKg0KCSAqIFVwZGF0ZSBpdGVtcyBpbiB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGEgdG8gdXBkYXRlZCBpbiBkYXRhYmFzZSAoYXJyYXkgb2Ygb2JqZWN0cykNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbA0KCXsNCgkJLy8gc2V0IHRoZSB1cGRhdGUgY29sdW1ucw0KCQlpZiAoJGRhdGEgPT09IFtdIHx8IHN0cmxlbigka2V5KSA9PSAwKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvLyBzZXQgdGhlIHVwZGF0ZSB2YWx1ZXMNCgkJZm9yZWFjaCAoJGRhdGEgYXMgJG5yID0+ICR2YWx1ZXMpDQoJCXsNCgkJCWlmICgkY29sdW1ucyAhPT0gW10pDQoJCQl7DQoJCQkJLy8gbG9hZCBvbmx5IHdoYXQgaXMgcGFydCBvZiB0aGUgY29sdW1ucyBzZXQNCgkJCQkkcm93ID0gW107DQoJCQkJZm9yZWFjaCAoJGNvbHVtbnMgYXMgJGNvbHVtbiA9PiAka2V5XykNCgkJCQl7DQoJCQkJCWlmIChpc3NldCgkdmFsdWVzLT57JGtleV99KSkNCgkJCQkJew0KCQkJCQkJJHJvd1skY29sdW1uXSA9ICR2YWx1ZXMtPnska2V5X307DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkvLyB1cGRhdGUgdGhlIHJvdw0KCQkJCSR0aGlzLT5yb3coJHJvdywgJGtleSwgJHRhYmxlKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkvLyB1cGRhdGUgdGhlIHJvdw0KCQkJCSR0aGlzLT5yb3coKGFycmF5KSAkdmFsdWVzLCAka2V5LCAkdGFibGUpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlIHJvdyBpbiB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byB1cGRhdGUgaW4gZGF0YWJhc2UgKGtleSA9PiB2YWx1ZSkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvdyhhcnJheSAkZGF0YSwgc3RyaW5nICRrZXksIHN0cmluZyAkdGFibGUpOiBib29sDQoJew0KCQkvLyBzZXQgdGhlIHVwZGF0ZSBjb2x1bW5zDQoJCWlmICgkZGF0YSA9PT0gW10gfHwgc3RybGVuKCRrZXkpID09IDApDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIGdldCBhIHF1ZXJ5IG9iamVjdA0KCQkkcXVlcnkgPSAkdGhpcy0+ZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCS8vIHNldCB0aGUgcXVlcnkgdGFyZ2V0cw0KCQkkcXVlcnktPnVwZGF0ZSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgkdGhpcy0+Z2V0VGFibGUoJHRhYmxlKSkpOw0KDQoJCS8vIHNldCB0aGUgdXBkYXRlIHZhbHVlcw0KCQkka2V5XyA9IG51bGw7DQoJCWZvcmVhY2ggKCRkYXRhIGFzICRjb2x1bW4gPT4gJHZhbHVlKQ0KCQl7DQoJCQlpZiAoJGNvbHVtbiA9PT0gJGtleSkNCgkJCXsNCgkJCQkka2V5XyA9ICR2YWx1ZTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkcXVlcnktPnNldCgkdGhpcy0+ZGItPnF1b3RlTmFtZSgkY29sdW1uKSAuICcgPSAnIC4gJHRoaXMtPnF1b3RlKCR2YWx1ZSkpOw0KCQkJfQ0KCQl9DQoNCgkJLy8gYWRkIHRoZSBrZXkgY29uZGl0aW9uDQoJCWlmICgka2V5XyAhPT0gbnVsbCkNCgkJew0KCQkJJHF1ZXJ5LT53aGVyZSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KSAuICcgPSAnIC4gJHRoaXMtPnF1b3RlKCRrZXlfKSk7DQoNCgkJCS8vIGV4ZWN1dGUgdGhlIGZpbmFsIHF1ZXJ5DQoJCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoNCgkJCXJldHVybiAkdGhpcy0+ZGItPmV4ZWN1dGUoKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgaXRlbSBpbiB0aGUgZGF0YWJhc2UNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICRkYXRhICAgICAgRGF0YXNldCB0byB1cGRhdGUgaW4gZGF0YWJhc2UgKGtleSA9PiB2YWx1ZSkNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0ob2JqZWN0ICRkYXRhLCBzdHJpbmcgJGtleSwgc3RyaW5nICR0YWJsZSk6IGJvb2wNCgl7DQoJCS8vIGNvbnZlcnQgdG8gYW4gYXJyYXkNCgkJcmV0dXJuICR0aGlzLT5yb3coKGFycmF5KSBnZXRfb2JqZWN0X3ZhcnMoJGRhdGEpLCAka2V5LCAkdGFibGUpOw0KCX0=', '{}', '{}', '', 1, '2023-04-01 20:02:28', 21, '', 1),
+(383, '7179fde6-1e51-4b51-8545-7ca18f74a0f4', 'VDM.Interfaces.Database.UpdateInterface', 'UpdateInterface', 'interface', 'Database Update Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '{\"0\":\"ac77cee7-7018-4496-a453-9757623e3849\",\"1\":\"78931d43-9fb9-4cc1-a2ca-b3e189ef842e\"}', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.UpdateInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFVwZGF0ZSByb3dzIGluIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YXNldCB0byB1cGRhdGUgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGVkDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbHVtbnMgICBEYXRhIGNvbHVtbnMgZm9yIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHJvd3MoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSBpdGVtcyBpbiB0aGUgZGF0YWJhc2UgKHdpdGggcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcgY29sdW1ucyBvcHRpb24pDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGEgdG8gdXBkYXRlZCBpbiBkYXRhYmFzZSAoYXJyYXkgb2Ygb2JqZWN0cykNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAka2V5ICAgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyB1cGRhdGUNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlLCBhcnJheSAkY29sdW1ucyA9IFtdKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSByb3cgaW4gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gdXBkYXRlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGtleSAgICAgICBEYXRhc2V0IGtleSBjb2x1bW4gdG8gdXNlIGluIHVwZGF0aW5nIHRoZSB2YWx1ZXMgaW4gdGhlIERhdGFiYXNlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgdXBkYXRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3coYXJyYXkgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSBpdGVtIGluIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHVwZGF0ZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRrZXkgICAgICAgRGF0YXNldCBrZXkgY29sdW1uIHRvIHVzZSBpbiB1cGRhdGluZyB0aGUgdmFsdWVzIGluIHRoZSBEYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIHVwZGF0ZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShvYmplY3QgJGRhdGEsIHN0cmluZyAka2V5LCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIFVwZGF0ZSBhIHNpbmdsZSBjb2x1bW4gdmFsdWUgZm9yIGFsbCByb3dzIGluIHRoZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICAkdmFsdWUgICBUaGUgdmFsdWUgdG8gYXNzaWduIHRvIHRoZSBjb2x1bW4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICRrZXkgICAgIERhdGFzZXQga2V5IGNvbHVtbiB0byB1c2UgaW4gdXBkYXRpbmcgdGhlIHZhbHVlcyBpbiB0aGUgRGF0YWJhc2UNCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgdXBkYXRlIHNob3VsZCBiZSBhcHBsaWVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sICBUcnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIG9uIGZhaWx1cmUNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBjb2x1bW4obWl4ZWQgJHZhbHVlLCBzdHJpbmcgJGtleSwgc3RyaW5nICR0YWJsZSk6IGJvb2w7', '{}', '{}', '', 1, '2023-04-01 19:54:56', 18, '', 1),
+(384, 'cce56585-58b0-4f72-a92c-e2635ea52d83', 'VDM.Database.Update', 'Update', 'final class', 'Database Update Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', 'd9839333-a8f1-4a36-9256-5df4d349b3f6', '', '', '', '{\"0\":\"7179fde6-1e51-4b51-8545-7ca18f74a0f4\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Update', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRGF0ZVxEYXRlOw==', '{\"use_selection0\":{\"use\":\"b8176bdf-5615-4d91-8dfa-990d42f44127\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIERlZmF1bHQgU3dpdGNoDQoJICoNCgkgKiBAc2luY2UgNS4xLjENCgkgKi8NCgl1c2UgRGVmYXVsdFRyYWl0Ow0KDQoJLyoqDQoJICogVXBkYXRlIHJvd3MgaW4gdGhlIGRhdGFiYXNlICh3aXRoIHJlbWFwcGluZyBhbmQgZmlsdGVyaW5nIGNvbHVtbnMgb3B0aW9uKQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHVwZGF0ZSBpbiBkYXRhYmFzZSBbYXJyYXkgb2YgYXJyYXlzIChrZXkgPT4gdmFsdWUpXQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRrZXkgICAgICAgRGF0YXNldCBrZXkgY29sdW1uIHRvIHVzZSBpbiB1cGRhdGluZyB0aGUgdmFsdWVzIGluIHRoZSBEYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIHVwZGF0ZWQNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29sdW1ucyAgIERhdGEgY29sdW1ucyBmb3IgcmVtYXBwaW5nIGFuZCBmaWx0ZXJpbmcNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93cyhhcnJheSAkZGF0YSwgc3RyaW5nICRrZXksIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sDQoJew0KCQkvLyBzZXQgdGhlIHVwZGF0ZSBjb2x1bW5zDQoJCWlmICgkZGF0YSA9PT0gW10gfHwgc3RybGVuKCRrZXkpID09IDApDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIHNldCB0aGUgdXBkYXRlIHZhbHVlcw0KCQlmb3JlYWNoICgkZGF0YSBhcyAkdmFsdWVzKQ0KCQl7DQoJCQlpZiAoJGNvbHVtbnMgIT09IFtdKQ0KCQkJew0KCQkJCS8vIGxvYWQgb25seSB3aGF0IGlzIHBhcnQgb2YgdGhlIGNvbHVtbnMgc2V0DQoJCQkJJHJvdyA9IFtdOw0KCQkJCWZvcmVhY2ggKCRjb2x1bW5zIGFzICRjb2x1bW4gPT4gJGtleV8pDQoJCQkJew0KCQkJCQlpZiAoaXNzZXQoJHZhbHVlc1ska2V5X10pKQ0KCQkJCQl7DQoJCQkJCQkkcm93WyRjb2x1bW5dID0gJHZhbHVlc1ska2V5X107DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkvLyB1cGRhdGUgdGhlIHJvdw0KCQkJCSR0aGlzLT5yb3coJHJvdywgJGtleSwgJHRhYmxlKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkvLyB1cGRhdGUgdGhlIHJvdw0KCQkJCSR0aGlzLT5yb3coKGFycmF5KSAkdmFsdWVzLCAka2V5LCAkdGFibGUpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlIGl0ZW1zIGluIHRoZSBkYXRhYmFzZSAod2l0aCByZW1hcHBpbmcgYW5kIGZpbHRlcmluZyBjb2x1bW5zIG9wdGlvbikNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRkYXRhICAgICAgRGF0YSB0byB1cGRhdGVkIGluIGRhdGFiYXNlIChhcnJheSBvZiBvYmplY3RzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRrZXkgICAgICAgRGF0YXNldCBrZXkgY29sdW1uIHRvIHVzZSBpbiB1cGRhdGluZyB0aGUgdmFsdWVzIGluIHRoZSBEYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIHVwZGF0ZQ0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRjb2x1bW5zICAgRGF0YSBjb2x1bW5zIGZvciByZW1hcHBpbmcgYW5kIGZpbHRlcmluZw0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAkZGF0YSwgc3RyaW5nICRrZXksIHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zID0gW10pOiBib29sDQoJew0KCQkvLyBzZXQgdGhlIHVwZGF0ZSBjb2x1bW5zDQoJCWlmICgkZGF0YSA9PT0gW10gfHwgc3RybGVuKCRrZXkpID09IDApDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIHNldCB0aGUgdXBkYXRlIHZhbHVlcw0KCQlmb3JlYWNoICgkZGF0YSBhcyAkbnIgPT4gJHZhbHVlcykNCgkJew0KCQkJaWYgKCRjb2x1bW5zICE9PSBbXSkNCgkJCXsNCgkJCQkvLyBsb2FkIG9ubHkgd2hhdCBpcyBwYXJ0IG9mIHRoZSBjb2x1bW5zIHNldA0KCQkJCSRyb3cgPSBbXTsNCgkJCQlmb3JlYWNoICgkY29sdW1ucyBhcyAkY29sdW1uID0+ICRrZXlfKQ0KCQkJCXsNCgkJCQkJaWYgKGlzc2V0KCR2YWx1ZXMtPnska2V5X30pKQ0KCQkJCQl7DQoJCQkJCQkkcm93WyRjb2x1bW5dID0gJHZhbHVlcy0+eyRrZXlffTsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCS8vIHVwZGF0ZSB0aGUgcm93DQoJCQkJJHRoaXMtPnJvdygkcm93LCAka2V5LCAkdGFibGUpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCS8vIHVwZGF0ZSB0aGUgcm93DQoJCQkJJHRoaXMtPnJvdygoYXJyYXkpICR2YWx1ZXMsICRrZXksICR0YWJsZSk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgcm93IGluIHRoZSBkYXRhYmFzZQ0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGRhdGEgICAgICBEYXRhc2V0IHRvIHVwZGF0ZSBpbiBkYXRhYmFzZSAoa2V5ID0+IHZhbHVlKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRrZXkgICAgICAgRGF0YXNldCBrZXkgY29sdW1uIHRvIHVzZSBpbiB1cGRhdGluZyB0aGUgdmFsdWVzIGluIHRoZSBEYXRhYmFzZQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgVGhlIHRhYmxlIHdoZXJlIHRoZSBkYXRhIGlzIGJlaW5nIHVwZGF0ZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRkYXRhLCBzdHJpbmcgJGtleSwgc3RyaW5nICR0YWJsZSk6IGJvb2wNCgl7DQoJCS8vIHNldCB0aGUgdXBkYXRlIGNvbHVtbnMNCgkJaWYgKCRkYXRhID09PSBbXSB8fCBzdHJsZW4oJGtleSkgPT0gMCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gc2V0IGpvb21sYSBkZWZhdWx0IGNvbHVtbnMNCgkJJGFkZF9tb2RpZmllZCA9IGZhbHNlOw0KCQkkYWRkX21vZGlmaWVkX2J5ID0gZmFsc2U7DQoNCgkJLy8gY2hlY2sgaWYgd2Ugc2hvdWxkIGxvYWQgdGhlIGRlZmF1bHRzDQoJCWlmICgkdGhpcy0+ZGVmYXVsdHMpDQoJCXsNCgkJCWlmICghaXNzZXQoJGRhdGFbJ21vZGlmaWVkJ10pKQ0KCQkJew0KCQkJCSRhZGRfbW9kaWZpZWQgPSB0cnVlOw0KCQkJfQ0KDQoJCQlpZiAoIWlzc2V0KCRkYXRhWydtb2RpZmllZF9ieSddKSkNCgkJCXsNCgkJCQkkYWRkX21vZGlmaWVkX2J5ID0gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCS8vIHNldCBoaXN0b3J5IHZhcnMNCgkJJHRoaXMtPmVudGl0eSA9ICR0aGlzLT5nZXRUYWJsZUVudGl0eU5hbWUoJHRhYmxlKTsNCgkJJHRhYmxlID0gJHRoaXMtPmdldFRhYmxlKCR0YWJsZSk7DQoNCgkJLy8gZ2V0IGEgcXVlcnkgb2JqZWN0DQoJCSRxdWVyeSA9ICR0aGlzLT5kYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJLy8gc2V0IHRoZSBxdWVyeSB0YXJnZXRzDQoJCSRxdWVyeS0+dXBkYXRlKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0YWJsZSkpOw0KDQoJCS8vIHNldCB0aGUgdXBkYXRlIHZhbHVlcw0KCQkka2V5XyA9IG51bGw7DQoJCSRndWlkID0gbnVsbDsNCgkJJGlkID0gbnVsbDsNCgkJZm9yZWFjaCAoJGRhdGEgYXMgJGNvbHVtbiA9PiAkdmFsdWUpDQoJCXsNCgkJCWlmICgkY29sdW1uID09PSAka2V5KQ0KCQkJew0KCQkJCSRrZXlfID0gJHZhbHVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCSRxdWVyeS0+c2V0KCR0aGlzLT5kYi0+cXVvdGVOYW1lKCRjb2x1bW4pIC4gJyA9ICcgLiAkdGhpcy0+cXVvdGUoJHZhbHVlKSk7DQoJCQl9DQoNCgkJCWlmICghZW1wdHkoJHRoaXMtPmVudGl0eSkgJiYgJHRoaXMtPmhpc3RvcnkgJiYgIWVtcHR5KCR2YWx1ZSkpDQoJCQl7DQoJCQkJaWYgKCRjb2x1bW4gPT09ICdndWlkJykNCgkJCQl7DQoJCQkJCSRndWlkID0gJHZhbHVlOw0KCQkJCX0NCgkJCQllbHNlaWYgKCRjb2x1bW4gPT09ICdpZCcpDQoJCQkJew0KCQkJCQkkaWQgPSAoaW50KSAkdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJLy8gYWRkIHRoZSBrZXkgY29uZGl0aW9uDQoJCWlmICgka2V5XyAhPT0gbnVsbCkNCgkJew0KCQkJaWYgKCRhZGRfbW9kaWZpZWQpDQoJCQl7DQoJCQkJJHF1ZXJ5LT5zZXQoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJ21vZGlmaWVkJykgLiAnID0gJyAuICR0aGlzLT5xdW90ZSgobmV3IERhdGUoKSktPnRvU3FsKCkpKTsNCgkJCX0NCg0KCQkJaWYgKCRhZGRfbW9kaWZpZWRfYnkpDQoJCQl7DQoJCQkJJHF1ZXJ5LT5zZXQoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJ21vZGlmaWVkX2J5JykgLiAnID0gJyAuICR0aGlzLT51c2VySWQpOw0KCQkJfQ0KDQoJCQkkcXVlcnktPndoZXJlKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCRrZXkpIC4gJyA9ICcgLiAkdGhpcy0+cXVvdGUoJGtleV8pKTsNCg0KCQkJLy8gZXhlY3V0ZSB0aGUgZmluYWwgcXVlcnkNCgkJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCg0KCQkJJHJlc3VsdCA9ICR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCQkvLyB0cmFjdCBoaXN0b3J5DQoJCQlpZiAoJHJlc3VsdCAmJiAkdGhpcy0+aGlzdG9yeSAmJiAhZW1wdHkoJHRoaXMtPmVudGl0eSkgJiYgKCFlbXB0eSgkaWQpIHx8ICFlbXB0eSgkZ3VpZCkpKQ0KCQkJew0KCQkJCSR0aGlzLT50cmFja0hpc3RvcnkoJGlkLCAkZ3VpZCwgJHRhYmxlKTsNCgkJCX0NCg0KCQkJLy8gYWx3YXlzIHJlc2V0IHRoZSBzd2l0Y2gncw0KCQkJJHRoaXMtPmRlZmF1bHRzKCktPmhpc3RvcnkoKTsNCg0KCQkJcmV0dXJuICRyZXN1bHQ7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlIGl0ZW0gaW4gdGhlIGRhdGFiYXNlDQoJICoNCgkgKiBAcGFyYW0gICBvYmplY3QgICAkZGF0YSAgICAgIERhdGFzZXQgdG8gdXBkYXRlIGluIGRhdGFiYXNlIChrZXkgPT4gdmFsdWUpDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGtleSAgICAgICBEYXRhc2V0IGtleSBjb2x1bW4gdG8gdXNlIGluIHVwZGF0aW5nIHRoZSB2YWx1ZXMgaW4gdGhlIERhdGFiYXNlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJHRhYmxlICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgdXBkYXRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4wDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtKG9iamVjdCAkZGF0YSwgc3RyaW5nICRrZXksIHN0cmluZyAkdGFibGUpOiBib29sDQoJew0KCQkvLyBjb252ZXJ0IHRvIGFuIGFycmF5DQoJCXJldHVybiAkdGhpcy0+cm93KChhcnJheSkgZ2V0X29iamVjdF92YXJzKCRkYXRhKSwgJGtleSwgJHRhYmxlKTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgYSBzaW5nbGUgY29sdW1uIHZhbHVlIGZvciBhbGwgcm93cyBpbiB0aGUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgJHZhbHVlICAgVGhlIHZhbHVlIHRvIGFzc2lnbiB0byB0aGUgY29sdW1uDQoJICogQHBhcmFtICAgc3RyaW5nICAka2V5ICAgICBEYXRhc2V0IGtleSBjb2x1bW4gdG8gdXNlIGluIHVwZGF0aW5nIHRoZSB2YWx1ZXMgaW4gdGhlIERhdGFiYXNlDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICBUaGUgdGFibGUgd2hlcmUgdGhlIHVwZGF0ZSBzaG91bGQgYmUgYXBwbGllZA0KCSAqDQoJICogQHJldHVybiAgYm9vbCAgVHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gY29sdW1uKG1peGVkICR2YWx1ZSwgc3RyaW5nICRrZXksIHN0cmluZyAkdGFibGUpOiBib29sDQoJew0KCQkvLyBFbnN1cmUgdmFsaWQgaW5wdXQNCgkJaWYgKCRrZXkgPT09ICcnIHx8ICR0YWJsZSA9PT0gJycpDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIEdldCBhIHF1ZXJ5IG9iamVjdA0KCQkkcXVlcnkgPSAkdGhpcy0+ZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCS8vIFByZXBhcmUgdGhlIHVwZGF0ZSBzdGF0ZW1lbnQNCgkJJHF1ZXJ5LT51cGRhdGUoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJHRoaXMtPmdldFRhYmxlKCR0YWJsZSkpKQ0KCQkgICAgICAtPnNldCgkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KSAuICcgPSAnIC4gJHRoaXMtPnF1b3RlKCR2YWx1ZSkpOw0KDQoJCS8vIEFwcGx5IHRoZSBxdWVyeQ0KCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoNCgkJcmV0dXJuICR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KCX0NCg0KCS8qKg0KCSAqIEF0dGVtcHQgdG8gc2V0IGhpc3RvcnkgcmVjb3JkcyBmb3IgdGhlIHNwZWNpZmllZCBlbnRpdHkuDQoJICoNCgkgKiBBbnkgZXhjZXB0aW9ucyBkdXJpbmcgdGhpcyBwcm9jZXNzIGFyZSBzaWxlbnRseSBjYXVnaHQgYW5kIGlnbm9yZWQuDQoJICoNCgkgKiBAcGFyYW0gIGludCAgICAgJGlkICAgICAgVGhlIGVudGl0eSBpZC4NCgkgKiBAcGFyYW0gIHN0cmluZyAgJGd1aWQgICAgVGhlIGVudGl0eSBHVUlELg0KCSAqIEBwYXJhbSAgc3RyaW5nICAkdGFibGUgICBUaGUgZnVsbCB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiB0cmFja0hpc3RvcnkoP2ludCAkaWQsID9zdHJpbmcgJGd1aWQsICR0YWJsZSk6IHZvaWQNCgl7DQoJCWlmICgkaWQgIT09IG51bGwpDQoJCXsNCgkJCXRyeQ0KCQkJew0KCQkJCSR0aGlzLT5zZXRIaXN0b3J5KCRpZCk7DQoJCQl9DQoJCQljYXRjaCAoXFRocm93YWJsZSAkZSkNCgkJCXsNCgkJCQkvLyBTaWxlbnRseSBpZ25vcmUgYWxsIGVycm9ycw0KCQkJfQ0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCRndWlkID09PSBudWxsKQ0KCQl7DQoJCQkvLyBzaG91bGQgbmV2ZXIgaGFwcGVuDQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0cnkNCgkJew0KCQkJJHF1ZXJ5ID0gJHRoaXMtPmRiLT5nZXRRdWVyeSh0cnVlKQ0KCQkJCS0+c2VsZWN0KCR0aGlzLT5kYi0+cXVvdGVOYW1lKCdpZCcpKQ0KCQkJCS0+ZnJvbSgkdGhpcy0+ZGItPnF1b3RlTmFtZSgkdGFibGUpKQ0KCQkJCS0+d2hlcmUoJHRoaXMtPmRiLT5xdW90ZU5hbWUoJ2d1aWQnKSAuICcgPSAnIC4gJHRoaXMtPnF1b3RlKCRndWlkKSk7DQoNCgkJCSR0aGlzLT5kYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KDQoJCQlpZiAoJHRoaXMtPmRiLT5nZXROdW1Sb3dzKCkpDQoJCQl7DQoJCQkJJHRoaXMtPnNldEhpc3RvcnkoDQoJCQkJCSR0aGlzLT5kYi0+bG9hZFJlc3VsdCgpDQoJCQkJKTsNCgkJCX0NCgkJfQ0KCQljYXRjaCAoXFRocm93YWJsZSAkZSkNCgkJew0KCQkJLy8gU2lsZW50bHkgaWdub3JlIGFsbCBlcnJvcnMNCgkJfQ0KCX0=', '{}', '{}', '', 1, '2023-04-01 20:02:28', 32, '', 1),
(435, 'e0f6ddbe-2a35-4537-942c-faff2ebd04f6', 'VDM.Abstraction.BaseTable', 'BaseTable', 'abstract class', 'Base Table\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"2da6d6c4-eb29-4d69-8bc2-36d96e916adf\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.BaseTable', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEFsbCBhcmVhcy92aWV3cy90YWJsZXMgd2l0aCB0aGVpciBmaWVsZCBkZXRhaWxzDQoJICoNCgkgKiBAdmFyICAgICBhcnJheQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqKi8NCglwcm90ZWN0ZWQgYXJyYXkgJHRhYmxlczsNCg0KCS8qKg0KCSAqIEFsbCBkZWZhdWx0IGZpZWxkcw0KCSAqDQoJICogQHZhciAgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4yLjENCgkgKiovDQoJcHJvdGVjdGVkIGFycmF5ICRkZWZhdWx0cyA9IFsNCgkJJ2lkJyA9PiBbDQoJCQknb3JkZXInID0+IC0xLA0KCQkJJ25hbWUnID0+ICdpZCcsDQoJCQknbGFiZWwnID0+ICdJRCcsDQoJCQkndHlwZScgPT4gJ3RleHQnLA0KCQkJJ3RpdGxlJyA9PiBmYWxzZSwNCgkJCSdsaXN0JyA9PiBOVUxMLA0KCQkJJ3N0b3JlJyA9PiBOVUxMLA0KCQkJJ3RhYl9uYW1lJyA9PiBOVUxMLA0KCQkJJ2RiJyA9PiBbDQoJCQkJJ3R5cGUnID0+ICdJTlQoMTEpJywNCgkJCQknZGVmYXVsdCcgPT4gJ0VNUFRZJywNCgkJCQknYXV0b19pbmNyZW1lbnQnID0+IHRydWUsDQoJCQkJJ3ByaW1hcnlfa2V5JyA9PiB0cnVlLA0KCQkJCSdudWxsX3N3aXRjaCcgPT4gJ05PVCBOVUxMJw0KCQkJXQ0KCQldLA0KCQknYXNzZXRfaWQnID0+IFsNCgkJCSduYW1lJyA9PiAnYXNzZXRfaWQnLA0KCQkJJ2xhYmVsJyA9PiBOVUxMLA0KCQkJJ3R5cGUnID0+IE5VTEwsDQoJCQkndGl0bGUnID0+IGZhbHNlLA0KCQkJJ2xpc3QnID0+IE5VTEwsDQoJCQknc3RvcmUnID0+IE5VTEwsDQoJCQkndGFiX25hbWUnID0+IE5VTEwsDQoJCQknZGInID0+IFsNCgkJCQkndHlwZScgPT4gJ0lOVCgxMCkgdW5zaWduZWQnLA0KCQkJCSdkZWZhdWx0JyA9PiAnMCcsDQoJCQkJJ251bGxfc3dpdGNoJyA9PiAnTlVMTCcsDQoJCQkJJ2NvbW1lbnQnID0+ICdGSyB0byB0aGUgI19fYXNzZXRzIHRhYmxlLicNCgkJCV0NCgkJXSwNCgkJJ29yZGVyaW5nJyA9PiBbDQoJCQknbmFtZScgPT4gJ29yZGVyaW5nJywNCgkJCSdsYWJlbCcgPT4gJ09yZGVyaW5nJywNCgkJCSd0eXBlJyA9PiAnbnVtYmVyJywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnSU5UKDExKScsDQoJCQkJJ2RlZmF1bHQnID0+ICcwJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJw0KCQkJXQ0KCQldLA0KCQkncHVibGlzaGVkJyA9PiBbDQoJCQknbmFtZScgPT4gJ3B1Ymxpc2hlZCcsDQoJCQknbGFiZWwnID0+ICdTdGF0dXMnLA0KCQkJJ3R5cGUnID0+ICdsaXN0JywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnVElOWUlOVCgzKScsDQoJCQkJJ2RlZmF1bHQnID0+ICcxJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJywNCgkJCQkna2V5JyA9PiB0cnVlLA0KCQkJCSdrZXlfbmFtZScgPT4gJ3N0YXRlJw0KCQkJXQ0KCQldLA0KCQknbW9kaWZpZWRfYnknID0+IFsNCgkJCSduYW1lJyA9PiAnbW9kaWZpZWRfYnknLA0KCQkJJ2xhYmVsJyA9PiAnTW9kaWZpZWQgYnknLA0KCQkJJ3R5cGUnID0+ICd1c2VyJywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnSU5UIHVuc2lnbmVkJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJywNCgkJCQkna2V5JyA9PiB0cnVlLA0KCQkJCSdrZXlfbmFtZScgPT4gJ21vZGlmaWVkYnknDQoJCQldDQoJCV0sDQoJCSdtb2RpZmllZCcgPT4gWw0KCQkJJ25hbWUnID0+ICdtb2RpZmllZCcsDQoJCQknbGFiZWwnID0+ICdNb2RpZmllZCcsDQoJCQkndHlwZScgPT4gJ2NhbGVuZGFyJywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnREFURVRJTUUnLA0KCQkJCSdudWxsX3N3aXRjaCcgPT4gJ05VTEwnDQoJCQldDQoJCV0sDQoJCSdjcmVhdGVkX2J5JyA9PiBbDQoJCQknbmFtZScgPT4gJ2NyZWF0ZWRfYnknLA0KCQkJJ2xhYmVsJyA9PiAnQ3JlYXRlZCBieScsDQoJCQkndHlwZScgPT4gJ3VzZXInLA0KCQkJJ3RpdGxlJyA9PiBmYWxzZSwNCgkJCSdsaXN0JyA9PiBOVUxMLA0KCQkJJ3N0b3JlJyA9PiBOVUxMLA0KCQkJJ3RhYl9uYW1lJyA9PiBOVUxMLA0KCQkJJ2RiJyA9PiBbDQoJCQkJJ3R5cGUnID0+ICdJTlQgdW5zaWduZWQnLA0KCQkJCSdkZWZhdWx0JyA9PiAnMCcsDQoJCQkJJ251bGxfc3dpdGNoJyA9PiAnTlVMTCcsDQoJCQkJJ2tleScgPT4gdHJ1ZSwNCgkJCQkna2V5X25hbWUnID0+ICdjcmVhdGVkYnknDQoJCQldDQoJCV0sDQoJCSdjcmVhdGVkJyA9PiBbDQoJCQknbmFtZScgPT4gJ2NyZWF0ZWQnLA0KCQkJJ2xhYmVsJyA9PiAnQ3JlYXRlZCcsDQoJCQkndHlwZScgPT4gJ2NhbGVuZGFyJywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnREFURVRJTUUnLA0KCQkJCSdkZWZhdWx0JyA9PiAnQ1VSUkVOVF9USU1FU1RBTVAnLA0KCQkJCSdudWxsX3N3aXRjaCcgPT4gJ05VTEwnDQoJCQldDQoJCV0sDQoJCSdjaGVja2VkX291dCcgPT4gWw0KCQkJJ25hbWUnID0+ICdjaGVja2VkX291dCcsDQoJCQknbGFiZWwnID0+IE5VTEwsDQoJCQkndHlwZScgPT4gTlVMTCwNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnSU5UIHVuc2lnbmVkJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJywNCgkJCQkna2V5JyA9PiB0cnVlLA0KCQkJCSdrZXlfbmFtZScgPT4gJ2NoZWNrb3V0Jw0KCQkJXQ0KCQldLA0KCQknY2hlY2tlZF9vdXRfdGltZScgPT4gWw0KCQkJJ25hbWUnID0+ICdjaGVja2VkX291dF90aW1lJywNCgkJCSdsYWJlbCcgPT4gTlVMTCwNCgkJCSd0eXBlJyA9PiBOVUxMLA0KCQkJJ3RpdGxlJyA9PiBmYWxzZSwNCgkJCSdsaXN0JyA9PiBOVUxMLA0KCQkJJ3N0b3JlJyA9PiBOVUxMLA0KCQkJJ3RhYl9uYW1lJyA9PiBOVUxMLA0KCQkJJ2RiJyA9PiBbDQoJCQkJJ3R5cGUnID0+ICdEQVRFVElNRScsDQoJCQkJJ251bGxfc3dpdGNoJyA9PiAnTlVMTCcNCgkJCV0NCgkJXSwNCgkJJ2hpdHMnID0+IFsNCgkJCSduYW1lJyA9PiAnaGl0cycsDQoJCQknbGFiZWwnID0+ICdIaXRzJywNCgkJCSd0eXBlJyA9PiAnbnVtYmVyJywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnSU5UKDEwKSB1bnNpZ25lZCcsDQoJCQkJJ2RlZmF1bHQnID0+ICcwJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJw0KCQkJXQ0KCQldLA0KCQkndmVyc2lvbicgPT4gWw0KCQkJJ25hbWUnID0+ICd2ZXJzaW9uJywNCgkJCSdsYWJlbCcgPT4gJ1ZlcnNpb24nLA0KCQkJJ3R5cGUnID0+ICd0ZXh0JywNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gTlVMTCwNCgkJCSd0YWJfbmFtZScgPT4gTlVMTCwNCgkJCSdkYicgPT4gWw0KCQkJCSd0eXBlJyA9PiAnSU5UKDEwKSB1bnNpZ25lZCcsDQoJCQkJJ2RlZmF1bHQnID0+ICcxJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJw0KCQkJXQ0KCQldLA0KCQkncGFyYW1zJyA9PiBbDQoJCQknbmFtZScgPT4gJ3BhcmFtcycsDQoJCQknbGFiZWwnID0+IE5VTEwsDQoJCQkndHlwZScgPT4gTlVMTCwNCgkJCSd0aXRsZScgPT4gZmFsc2UsDQoJCQknbGlzdCcgPT4gTlVMTCwNCgkJCSdzdG9yZScgPT4gJ2pzb24nLA0KCQkJJ3RhYl9uYW1lJyA9PiBOVUxMLA0KCQkJJ2RiJyA9PiBbDQoJCQkJJ3R5cGUnID0+ICdURVhUJywNCgkJCQknZGVmYXVsdCcgPT4gJ0VNUFRZJywNCgkJCQknbnVsbF9zd2l0Y2gnID0+ICdOVUxMJw0KCQkJXQ0KCQldDQoJXTsNCg0KCS8qKg0KCSAqIEdldCBhbnkgdmFsdWUgZnJvbSBhIGl0ZW0vZmllbGQvY29sdW1uIG9mIGFuIGFyZWEvdmlldy90YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoJ3RhYmxlX25hbWUnLCAnZmllbGRfbmFtZScsICd2YWx1ZV9rZXknKTsNCgkgKiBHZXQgYW4gaXRlbS9maWVsZC9jb2x1bW4gb2YgYW4gYXJlYS92aWV3L3RhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPmdldCgndGFibGVfbmFtZScsICdmaWVsZF9uYW1lJyk7DQoJICogR2V0IGFsbCBpdGVtcy9maWVsZHMvY29sdW1ucyBvZiBhbiBhcmVhL3ZpZXcvdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+Z2V0KCd0YWJsZV9uYW1lJyk7DQoJICogR2V0IGFsbCBhcmVhcy92aWV3cy90YWJsZXMgd2l0aCBhbGwgdGhlaXIgaXRlbS9maWVsZC9jb2x1bW4gZGV0YWlscw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoJ0FsbCcpOw0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5nZXQoKTsNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkdGFibGUgIFRoZSB0YWJsZQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkZmllbGQgIFRoZSBmaWVsZA0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAka2V5ICAgIFRoZSB2YWx1ZSBrZXkNCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldCg/c3RyaW5nICR0YWJsZSA9IG51bGwsID9zdHJpbmcgJGZpZWxkID0gbnVsbCwgP3N0cmluZyAka2V5ID0gbnVsbCkNCgl7DQoJCS8vIFJldHVybiBzcGVjaWZpYyB2YWx1ZQ0KCQlpZiAoJHRhYmxlICYmICRmaWVsZCAmJiAka2V5KQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPnRhYmxlc1skdGFibGVdWyRmaWVsZF1bJGtleV0gPz8gJHRoaXMtPmdldERlZmF1bHRLZXkoJGZpZWxkLCAka2V5KTsNCgkJfQ0KDQoJCS8vIFJldHVybiBmaWVsZCB3aXRoaW4gdGFibGUNCgkJaWYgKCR0YWJsZSAmJiAkZmllbGQpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+dGFibGVzWyR0YWJsZV1bJGZpZWxkXSA/PyAkdGhpcy0+Z2V0RGVmYXVsdCgkZmllbGQpOw0KCQl9DQoNCgkJLy8gUmV0dXJuIGFsbCBmaWVsZHMgaW4gYSB0YWJsZSBvciBhbGwgdGFibGVzIGlmICdBbGwnIGlzIHBhc3NlZA0KCQlpZiAoJHRhYmxlKQ0KCQl7DQoJCQlpZiAoc3RydG91cHBlcigkdGFibGUpID09PSAnQUxMJykNCgkJCXsNCgkJCQlyZXR1cm4gJHRoaXMtPnRhYmxlczsNCgkJCX0NCg0KCQkJcmV0dXJuICR0aGlzLT50YWJsZXNbJHRhYmxlXSA/PyBudWxsOw0KCQl9DQoNCgkJLy8gUmV0dXJuIGFsbCB0YWJsZXMNCgkJcmV0dXJuICR0aGlzLT50YWJsZXM7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRpdGxlIGZpZWxkIGZyb20gYW4gYXJlYS92aWV3L3RhYmxlDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgIFRoZSBhcmVhDQoJICoNCgkgKiBAcmV0dXJuICA/YXJyYXkNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGl0bGUoc3RyaW5nICR0YWJsZSk6ID9hcnJheQ0KCXsNCgkJLy8gcmV0dXJuIHRoZSB0aXRsZSBpdGVtL2ZpZWxkL2NvbHVtbiBvZiBhbiBhcmVhL3ZpZXcvdGFibGUgDQoJCWlmICgoJHRhYmxlID0gJHRoaXMtPmdldCgkdGFibGUpKSAhPT0gbnVsbCkNCgkJew0KCQkJZm9yZWFjaCAoJHRhYmxlIGFzICRpdGVtKQ0KCQkJew0KCQkJCWlmICgkaXRlbVsndGl0bGUnXSkNCgkJCQl7DQoJCQkJCXJldHVybiAkaXRlbTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQkvLyBub25lIGZvdW5kDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aXRsZSBmaWVsZCBuYW1lDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgIFRoZSBhcmVhDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGl0bGVOYW1lKHN0cmluZyAkdGFibGUpOiBzdHJpbmcNCgl7DQoJCS8vIHJldHVybiB0aGUgdGl0bGUgbmFtZSBvZiBhbiBhcmVhL3ZpZXcvdGFibGUNCgkJaWYgKCgkZmllbGQgPSAkdGhpcy0+dGl0bGUoJHRhYmxlKSkgIT09IG51bGwpDQoJCXsNCgkJCXJldHVybiAkZmllbGRbJ25hbWUnXTsNCgkJfQ0KDQoJCS8vIG5vbmUgZm91bmQgZGVmYXVsdCB0byBJRA0KCQlyZXR1cm4gJ2lkJzsNCgl9DQoNCgkvKioNCgkgKiBHZXQgYWxsIHRhYmxlcw0KCSAqDQoJICogQHJldHVybiAgYXJyYXkNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGVzKCk6IGFycmF5DQoJew0KCQkvLyByZXR1cm4gYWxsIGFyZWFzL3ZpZXdzL3RhYmxlcw0KCQlyZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+dGFibGVzKTsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBpZiBhIHRhYmxlIChhbmQgZmllbGQpIGV4aXN0DQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgJHRhYmxlICBUaGUgYXJlYQ0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkZmllbGQgIFRoZSBhcmVhDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGV4aXN0KHN0cmluZyAkdGFibGUsID9zdHJpbmcgJGZpZWxkID0gbnVsbCk6IGJvb2wNCgl7DQoJCWlmIChpc3NldCgkdGhpcy0+dGFibGVzWyR0YWJsZV0pKQ0KCQl7DQoJCQkvLyBpZiB3ZSBoYXZlIGEgZmllbGQNCgkJCWlmIChpc19zdHJpbmcoJGZpZWxkKSkNCgkJCXsNCgkJCQlpZiAoaXNzZXQoJHRoaXMtPnRhYmxlc1skdGFibGVdWyRmaWVsZF0pKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHRydWU7DQoJCQkJfQ0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXJldHVybiB0cnVlOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICR0aGlzLT5pc0RlZmF1bHQoJGZpZWxkKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgYWxsIGZpZWxkcyBvZiBhbiBhcmVhL3ZpZXcvdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHRhYmxlICAgICBUaGUgYXJlYQ0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGRlZmF1bHQgICBBZGQgdGhlIGRlZmF1bHQgZmllbGRzDQoJICogQHBhcmFtICAgYm9vbCAgICAkZGV0YWlscyAgIEFkZC9MZWF2ZSBmaWVsZHMgdGhlIGRldGFpbHMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwgICBPbiBzdWNjZXNzIGFuIGFycmF5IG9mIGZpZWxkcw0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBmaWVsZHMoc3RyaW5nICR0YWJsZSwgYm9vbCAkZGVmYXVsdCA9IGZhbHNlLCBib29sICRkZXRhaWxzID0gZmFsc2UpOiA/YXJyYXkNCgl7DQoJCS8vIFJldHJpZXZlIGZpZWxkcyBmcm9tIHRoZSBzcGVjaWZpZWQgdGFibGUNCgkJJGZpZWxkcyA9ICR0aGlzLT5nZXQoJHRhYmxlKTsNCg0KCQlpZiAoJGZpZWxkcyA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBEZXRlcm1pbmUgdGhlIGZpZWxkcyBvdXRwdXQgYmFzZWQgb24gdGhlICRkZWZhdWx0IGFuZCAkZGV0YWlscyBmbGFncw0KCQlpZiAoJGRldGFpbHMpDQoJCXsNCgkJCXJldHVybiAkZGVmYXVsdCA/ICR0aGlzLT5hZGREZWZhdWx0RGV0YWlscygkZmllbGRzKSA6ICRmaWVsZHM7DQoJCX0NCg0KCQkkZmllbGRLZXlzID0gYXJyYXlfa2V5cygkZmllbGRzKTsNCg0KCQlyZXR1cm4gJGRlZmF1bHQgPyAkdGhpcy0+YWRkRGVmYXVsdCgkZmllbGRLZXlzKSA6ICRmaWVsZEtleXM7DQoJfQ0KDQoJLyoqDQoJICogQWRkIHRoZSBkZWZhdWx0IGZpZWxkcw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICRmaWVsZHMgICBUaGUgdGFibGUgZHluYW1pYyBmaWVsZHMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5ICAgRmllbGRzICh3aXRoIGRlZmF1bHRzIGFkZGVkKQ0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBhZGREZWZhdWx0KGFycmF5ICRmaWVsZHMpOiBhcnJheQ0KCXsNCgkJLy8gYWRkIGRlZmF1bHQgZmllbGRzDQoJCWZvcmVhY2ggKCR0aGlzLT5kZWZhdWx0cyBhcyAkZGVmYXVsdCkNCgkJew0KCQkJaWYgKGluX2FycmF5KCRkZWZhdWx0WyduYW1lJ10sICRmaWVsZHMpKQ0KCQkJew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyB1c2VkIGp1c3QgZm9yIGxvYWRpbmcgdGhlIGZpZWxkcw0KCQkJJG9yZGVyID0gJGRlZmF1bHRbJ29yZGVyJ10gPz8gMTsNCgkJCXVuc2V0KCRkZWZhdWx0WydvcmRlciddKTsNCg0KCQkJaWYgKCRvcmRlciA8IDApDQoJCQl7DQoJCQkJYXJyYXlfdW5zaGlmdCgkZmllbGRzLCAkZGVmYXVsdFsnbmFtZSddKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkkZmllbGRzW10gPSAkZGVmYXVsdFsnbmFtZSddOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICRmaWVsZHM7DQoJfQ0KDQoJLyoqDQoJICogQWRkIHRoZSBkZWZhdWx0IGZpZWxkcw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICRmaWVsZHMgICBUaGUgdGFibGUgZHluYW1pYyBmaWVsZHMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5ICAgRmllbGRzICh3aXRoIGRlZmF1bHRzIGRldGFpbHMgYWRkZWQpDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZERlZmF1bHREZXRhaWxzKGFycmF5ICRmaWVsZHMpOiBhcnJheQ0KCXsNCgkJLy8gYWRkIGRlZmF1bHQgZmllbGRzDQoJCWZvcmVhY2ggKCR0aGlzLT5kZWZhdWx0cyBhcyAkZGVmYXVsdCkNCgkJew0KCQkJLy8gcmVtb3ZlIG9yZGVyaW5nIGZvciBub3cNCgkJCXVuc2V0KCRkZWZhdWx0WydvcmRlciddKTsNCg0KCQkJaWYgKCFpc3NldCgkZmllbGRzWyRkZWZhdWx0WyduYW1lJ11dKSkNCgkJCXsNCgkJCQkkZmllbGRzWyRkZWZhdWx0WyduYW1lJ11dID0gJGRlZmF1bHQ7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gJGZpZWxkczsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBpZiB0aGUgZmllbGQgaXMgYSBkZWZhdWx0IGZpZWxkDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRmaWVsZCAgVGhlIGZpZWxkIHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJuICBib29sICAgVHJ1ZSBpZiBhIGRlZmF1bHQgZmllbGQNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gaXNEZWZhdWx0KHN0cmluZyAkZmllbGQpOiBib29sDQoJew0KCQlyZXR1cm4gaXNzZXQoJHRoaXMtPmRlZmF1bHRzWyRmaWVsZF0pOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhIGRlZmF1bHQgZmllbGQNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGZpZWxkICBUaGUgZmllbGQgdG8gY2hlY2sNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwgICBUcnVlIGlmIGEgZGVmYXVsdCBmaWVsZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXREZWZhdWx0KHN0cmluZyAkZmllbGQpOiA/YXJyYXkNCgl7DQoJCXJldHVybiAkdGhpcy0+ZGVmYXVsdHNbJGZpZWxkXSA/PyBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhIGRlZmF1bHQgZmllbGQgcHJvcGVydHkNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGZpZWxkICAgVGhlIGZpZWxkIHRvIGNoZWNrDQoJICogQHBhcmFtICAgc3RyaW5nICAka2V5ICAgICBUaGUgZmllbGQga2V5L3Byb3BlcnR5IHRvIGNoZWNrDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZCAgIFN0cmluZyB2YWx1ZSBpZiBhIGRlZmF1bHQgZmllbGQgcHJvcGVydHkgZXhpc3QNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0RGVmYXVsdEtleShzdHJpbmcgJGZpZWxkLCBzdHJpbmcgJGtleSkNCgl7DQoJCXJldHVybiAkdGhpcy0+ZGVmYXVsdHNbJGZpZWxkXVska2V5XSA/PyBudWxsOw0KCX0=', '{}', '{}', '', 1, '2023-06-02 01:08:35', 43, '', 1),
(436, 'ff8d5fdb-2d1f-4178-bd18-a43b8efd1068', 'JCB.Import.Factory', 'Factory', 'abstract class', 'Import Factory\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '2e5bf608-de5c-4b00-a20d-47c26aa350d9', '', '', '', '{\"0\":\"caf33c5d-858c-4f9a-894f-ab302ec5445a\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Factory', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7', '{\"use_selection0\":{\"use\":\"19b2ba92-1655-4384-acfb-979c80de8b6d\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"4815e1c7-a433-443d-a112-d1e03d7df84b\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"2dcedd6c-c95b-4a37-9cac-95d28faedca3\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"a5daf189-3345-4b13-8716-c51f686f545b\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"21754a8b-2323-4a77-8459-378a74c1ec97\",\"as\":\"default\"},\"use_selection5\":{\"use\":\"202ccd9e-dfcf-4cde-a0ce-bde1fd27f088\",\"as\":\"default\"},\"use_selection6\":{\"use\":\"c4a188de-ad78-4a6d-9d5b-01866846d701\",\"as\":\"default\"},\"use_selection7\":{\"use\":\"b5184f80-613e-46c8-b40a-b60de779bb78\",\"as\":\"ItemImport\"}}', 'CS8qKg0KCSAqIEdsb2JhbCBQYWNrYWdlIENvbnRhaW5lcg0KCSAqDQoJICogQHZhciAgIENvbnRhaW5lcnxudWxsDQoJICogQHNpbmNlIDAuMC4wDQoJICoqLw0KCXByb3RlY3RlZCBzdGF0aWMgP0NvbnRhaW5lciAkY29udGFpbmVyID0gbnVsbDsNCg0KCS8qKg0KCSAqIENyZWF0ZSBhIGNvbnRhaW5lciBvYmplY3QNCgkgKg0KCSAqIEByZXR1cm4gIENvbnRhaW5lcg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKCk6IENvbnRhaW5lcg0KCXsNCgkJcmV0dXJuIChuZXcgQ29udGFpbmVyKCkpDQoJCQktPnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyKG5ldyBUYWJsZSgpKQ0KCQkJLT5yZWdpc3RlclNlcnZpY2VQcm92aWRlcihuZXcgRGF0YWJhc2UoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IE1vZGVsKCkpDQoJCQktPnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyKG5ldyBEYXRhKCkpDQoJCQktPnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyKG5ldyBJbXBvcnQoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IEZpbGUoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IFNwcmVhZHNoZWV0KCkpDQoJCQktPnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyKG5ldyBJdGVtSW1wb3J0KCkpOw0KCX0=', '{}', '{}', '', 1, '2023-06-02 01:14:26', 16, '', 1),
-(462, '9c3aa650-e536-4eea-a2d4-73cc3e184aa9', 'VDM.Interfaces.DeleteInterface', 'DeleteInterface', 'interface', 'Database Delete Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.DeleteInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIERlbGV0ZSBhbGwgcm93cyBpbiB0aGUgZGF0YWJhc2UgdGhhdCBtYXRjaCB0aGVzZSBjb25kaXRpb25zDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29uZGl0aW9ucyAgICBDb25kaXRpb25zIGJ5IHdoaWNoIHRvIGRlbGV0ZSB0aGUgZGF0YSBpbiBkYXRhYmFzZSBbYXJyYXkgb2YgYXJyYXlzIChrZXkgPT4gdmFsdWUpXQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBkZWxldGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRjb25kaXRpb25zLCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIFRydW5jYXRlIGEgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgdHJ1bmNhdGVkDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZyAkdGFibGUpOiB2b2lkOw==', '{}', '{}', '', 1, '2023-07-19 04:17:01', 9, '', 1),
+(462, '9c3aa650-e536-4eea-a2d4-73cc3e184aa9', 'VDM.Interfaces.Database.DeleteInterface', 'DeleteInterface', 'interface', 'Database Delete Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.DeleteInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIERlbGV0ZSBhbGwgcm93cyBpbiB0aGUgZGF0YWJhc2UgdGhhdCBtYXRjaCB0aGVzZSBjb25kaXRpb25zDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkY29uZGl0aW9ucyAgICBDb25kaXRpb25zIGJ5IHdoaWNoIHRvIGRlbGV0ZSB0aGUgZGF0YSBpbiBkYXRhYmFzZSBbYXJyYXkgb2YgYXJyYXlzIChrZXkgPT4gdmFsdWUpXQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICAgICAgIFRoZSB0YWJsZSB3aGVyZSB0aGUgZGF0YSBpcyBiZWluZyBkZWxldGVkDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjANCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRjb25kaXRpb25zLCBzdHJpbmcgJHRhYmxlKTogYm9vbDsNCg0KCS8qKg0KCSAqIFRydW5jYXRlIGEgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgdHJ1bmNhdGVkDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZyAkdGFibGUpOiB2b2lkOw==', '{}', '{}', '', 1, '2023-07-19 04:17:01', 10, '', 1),
(463, '92291f1f-f248-4ec0-9f2a-3d47c49eeac1', 'VDM.Database.Delete', 'Delete', 'final class', 'Database Delete Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"9c3aa650-e536-4eea-a2d4-73cc3e184aa9\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Database.Delete', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"0a59c65c-9daf-4bc9-baf4-e063ff9e6a8a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIERlbGV0ZSBhbGwgaXRlbXMgaW4gdGhlIGRhdGFiYXNlIHRoYXQgbWF0Y2ggdGhlc2UgY29uZGl0aW9ucw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbmRpdGlvbnMgICAgQ29uZGl0aW9ucyBieSB3aGljaCB0byBkZWxldGUgdGhlIGRhdGEgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkdGFibGUgICAgICAgICBUaGUgdGFibGUgd2hlcmUgdGhlIGRhdGEgaXMgYmVpbmcgZGVsZXRlZA0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAgIDMuMi4yDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAkY29uZGl0aW9ucywgc3RyaW5nICR0YWJsZSk6IGJvb2wNCgl7DQoJCS8vIHNldCB0aGUgdXBkYXRlIGNvbHVtbnMNCgkJaWYgKCRjb25kaXRpb25zID09PSBbXSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gZ2V0IGEgcXVlcnkgb2JqZWN0DQoJCSRxdWVyeSA9ICR0aGlzLT5kYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJLy8gc3RhcnQgdGhlIGNvbmRpdGlvbnMgYnVja2V0DQoJCSRfY29uZGl0aW9ucyA9IFtdOw0KCQlmb3JlYWNoICgkY29uZGl0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSkNCgkJew0KCQkJaWYgKEFycmF5SGVscGVyOjpjaGVjaygkdmFsdWUpKQ0KCQkJew0KCQkJCWlmIChpc3NldCgkdmFsdWVbJ3ZhbHVlJ10pICYmIGlzc2V0KCR2YWx1ZVsnb3BlcmF0b3InXSkpDQoJCQkJew0KCQkJCQkvLyBjaGVjayBpZiB2YWx1ZSBuZWVkcyB0byBiZSBxdW90ZWQNCgkJCQkJJHF1b3RlID0gJHZhbHVlWydxdW90ZSddID8/IHRydWU7DQoJCQkJCWlmICghJHF1b3RlKQ0KCQkJCQl7DQoJCQkJCQlpZiAoQXJyYXlIZWxwZXI6OmNoZWNrKCR2YWx1ZVsndmFsdWUnXSkpDQoJCQkJCQl7DQoJCQkJCQkJLy8gYWRkIHRoZSB3aGVyZSBieSBhcnJheQ0KCQkJCQkJCSRfY29uZGl0aW9uc1tdID0gJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGtleSkNCgkJCQkJCQkJLiAnICcgLiAkdmFsdWVbJ29wZXJhdG9yJ10NCgkJCQkJCQkJLiAnICcgLiAnICgnIC4NCgkJCQkJCQkJaW1wbG9kZSgnLCcsICR2YWx1ZVsndmFsdWUnXSkNCgkJCQkJCQkJLiAnKSc7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJLy8gYWRkIHRoZSBjb25kaXRpb25zDQoJCQkJCQkJJF9jb25kaXRpb25zW10gPSAkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KQ0KCQkJCQkJCQkuICcgJyAuICR2YWx1ZVsnb3BlcmF0b3InXQ0KCQkJCQkJCQkuICcgJyAuICR2YWx1ZVsndmFsdWUnXTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCWlmIChBcnJheUhlbHBlcjo6Y2hlY2soJHZhbHVlWyd2YWx1ZSddKSkNCgkJCQkJCXsNCgkJCQkJCQkvLyBhZGQgdGhlIHdoZXJlIGJ5IGFycmF5DQoJCQkJCQkJJF9jb25kaXRpb25zW10gPSAkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KQ0KCQkJCQkJCQkuICcgJyAuICR2YWx1ZVsnb3BlcmF0b3InXQ0KCQkJCQkJCQkuICcgJyAuICcgKCcgLg0KCQkJCQkJCQlpbXBsb2RlKCcsJywgYXJyYXlfbWFwKGZuKCR2YWwpID0+ICR0aGlzLT5xdW90ZSgkdmFsKSwgJHZhbHVlWyd2YWx1ZSddKSkNCgkJCQkJCQkJLiAnKSc7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJLy8gYWRkIHRoZSBjb25kaXRpb25zDQoJCQkJCQkJJF9jb25kaXRpb25zW10gPSAkdGhpcy0+ZGItPnF1b3RlTmFtZSgka2V5KQ0KCQkJCQkJCQkuICcgJyAuICR2YWx1ZVsnb3BlcmF0b3InXQ0KCQkJCQkJCQkuICcgJyAuICR0aGlzLT5xdW90ZSgkdmFsdWVbJ3ZhbHVlJ10pOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCS8vIHdlIHNob3VsZCB0aHJvdWdoIGFuIGV4Y2VwdGlvbg0KCQkJCQkvLyBmb3Igc2VjdXJpdHkgd2UganVzdCByZXR1cm4gZmFsc2UgZm9yIG5vdw0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCS8vIGFkZCBkZWZhdWx0IGNvbmRpdGlvbg0KCQkJCSRfY29uZGl0aW9uc1tdID0gJHRoaXMtPmRiLT5xdW90ZU5hbWUoJGtleSkgLiAnID0gJyAuICR0aGlzLT5xdW90ZSgkdmFsdWUpOw0KCQkJfQ0KCQl9DQoNCgkJLy8gc2V0IHRoZSBxdWVyeSB0YXJnZXRzDQoJCSRxdWVyeS0+ZGVsZXRlKCR0aGlzLT5kYi0+cXVvdGVOYW1lKCR0aGlzLT5nZXRUYWJsZSgkdGFibGUpKSk7DQoJCSRxdWVyeS0+d2hlcmUoJF9jb25kaXRpb25zKTsNCg0KCQkkdGhpcy0+ZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoNCgkJcmV0dXJuICR0aGlzLT5kYi0+ZXhlY3V0ZSgpOw0KCX0NCg0KCS8qKg0KCSAqIFRydW5jYXRlIGEgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICR0YWJsZSAgICBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgdHJ1bmNhdGVkDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHRydW5jYXRlKHN0cmluZyAkdGFibGUpOiB2b2lkDQoJew0KCQkkdGhpcy0+ZGItPnRydW5jYXRlVGFibGUoJHRoaXMtPmdldFRhYmxlKCR0YWJsZSkpOw0KCX0=', '{}', '{}', '', 1, '2023-07-19 04:27:21', 11, '', 1),
(485, '43134867-5cb8-4280-9be8-309fd2fd135f', 'VDM.Abstraction.ActiveRegistry', 'ActiveRegistry', 'abstract class', 'Active Storage Registry.\r\n\r\nDon\'t use this beyond 10 dimensional depth for best performance.\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"af0eedbe-603b-4671-8e5a-28165d88254b\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.ActiveRegistry', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFRoZSByZWdpc3RyeSBhcnJheS4NCgkgKg0KCSAqIEB2YXIgICAgYXJyYXkNCgkgKiBAc2luY2UgMy4yLjANCgkgKiovDQoJcHJvdGVjdGVkIGFycmF5ICRhY3RpdmUgPSBbXTsNCg0KCS8qKg0KCSAqIEJhc2Ugc3dpdGNoIHRvIGFkZCB2YWx1ZXMgYXMgc3RyaW5nIG9yIGFycmF5DQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgMy4yLjANCgkgKiovDQoJcHJvdGVjdGVkIGJvb2wgJGFkZEFzQXJyYXkgPSBmYWxzZTsNCg0KCS8qKg0KCSAqIEJhc2Ugc3dpdGNoIHRvIGtlZXAgYXJyYXkgdmFsdWVzIHVuaXF1ZQ0KCSAqDQoJICogQHZhciAgICBib29sZWFuDQoJICogQHNpbmNlIDMuMi4yDQoJICoqLw0KCXByb3RlY3RlZCBib29sICR1bmlxdWVBcnJheSA9IGZhbHNlOw0KDQoJLyoqDQoJICogQ2hlY2sgaWYgdGhlIHJlZ2lzdHJ5IGhhcyBhbnkgY29udGVudC4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCAgUmV0dXJucyB0cnVlIGlmIHRoZSBhY3RpdmUgYXJyYXkgaXMgbm90IGVtcHR5LCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGlzQWN0aXZlKCk6IGJvb2wNCgl7DQoJCXJldHVybiAhZW1wdHkoJHRoaXMtPmFjdGl2ZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IGFsbCB2YWx1ZSBmcm9tIHRoZSBhY3RpdmUgcmVnaXN0cnkuDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5ICAgVGhlIHZhbHVlcyBvciBlbXB0eSBhcnJheS4NCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWxsQWN0aXZlKCk6IGFycmF5DQoJew0KCQlyZXR1cm4gJHRoaXMtPmFjdGl2ZTsNCgl9DQoNCgkvKioNCgkgKiBTZXRzIGEgdmFsdWUgaW50byB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAgICR2YWx1ZSAgICAgVGhlIHZhbHVlIHRvIHNldC4NCgkgKiBAcGFyYW0gc3RyaW5nICAuLi4ka2V5cyAgIFRoZSBrZXlzIHRvIGRldGVybWluZSB0aGUgbG9jYXRpb24uDQoJICoNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gSWYgYW55IG9mIHRoZSBrZXlzIGFyZSBub3QgYSBudW1iZXIgb3Igc3RyaW5nLg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRBY3RpdmUoJHZhbHVlLCBzdHJpbmcgLi4uJGtleXMpOiB2b2lkDQoJew0KCQlpZiAoISR0aGlzLT52YWxpZEFjdGl2ZUtleXMoJGtleXMpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiS2V5cyBtdXN0IG9ubHkgYmUgc3RyaW5ncyBvciBudW1iZXJzIHRvIHNldCBhbnkgdmFsdWUuIik7DQoJCX0NCg0KCQkkYXJyYXkgPSAmJHRoaXMtPmFjdGl2ZTsNCg0KCQlmb3JlYWNoICgka2V5cyBhcyAka2V5KQ0KCQl7DQoJCQlpZiAoIWlzc2V0KCRhcnJheVska2V5XSkpDQoJCQl7DQoJCQkJaWYgKCFpc19hcnJheSgkYXJyYXkpKQ0KCQkJCXsNCgkJCQkJJHBhdGggPSAnWycgLiBpbXBsb2RlKCddWycsICRrZXlzKSAuICddJzsNCgkJCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkF0dGVtcHRlZCB0byB1c2Uga2V5ICd7JGtleX0nIG9uIGEgbm9uLWFycmF5IHZhbHVlOiB7JGFycmF5fS4gUGF0aDogeyRwYXRofSBWYWx1ZTogeyR2YWx1ZX0iKTsNCgkJCQl9DQoNCgkJCQkkYXJyYXlbJGtleV0gPSBbXTsNCgkJCX0NCgkJCSRhcnJheSA9ICYkYXJyYXlbJGtleV07DQoJCX0NCg0KCQkkYXJyYXkgPSAkdmFsdWU7DQoJfQ0KDQoJLyoqDQoJICogQWRkcyBjb250ZW50IGludG8gdGhlIHJlZ2lzdHJ5LiBJZiBhIGtleSBleGlzdHMsDQoJICogaXQgZWl0aGVyIGFwcGVuZHMgb3IgY29uY2F0ZW5hdGVzIGJhc2VkIG9uIHRoZSB2YWx1ZSdzIHR5cGUuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICAgICAgJHZhbHVlICAgICBUaGUgdmFsdWUgdG8gc2V0Lg0KCSAqIEBwYXJhbSBib29sfG51bGwgICAkYXNBcnJheSAgIERldGVybWluZXMgaWYgdGhlIG5ldyB2YWx1ZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBhcnJheS4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBpcyAkYWRkQXNBcnJheSA9IGZhbHNlIChpZiBudWxsKSBpbiBiYXNlIGNsYXNzLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdmVycmlkZSBpbiBjaGlsZCBjbGFzcyBhbGxvd2VkIHNldCBjbGFzcyBwcm9wZXJ0eSAkYWRkQXNBcnJheSA9IHRydWUuDQoJICogQHBhcmFtIHN0cmluZyAgICAgIC4uLiRrZXlzICAgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGFkZEFjdGl2ZSgkdmFsdWUsID9ib29sICRhc0FycmF5LCBzdHJpbmcgLi4uJGtleXMpOiB2b2lkDQoJew0KCQlpZiAoISR0aGlzLT52YWxpZEFjdGl2ZUtleXMoJGtleXMpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiS2V5cyBtdXN0IG9ubHkgYmUgc3RyaW5ncyBvciBudW1iZXJzIHRvIGFkZCBhbnkgdmFsdWUuIik7DQoJCX0NCg0KCQkvLyBudWxsIGZhbGxiYWNrIHRvIGNsYXNzIHZhbHVlDQoJCWlmICgkYXNBcnJheSA9PT0gbnVsbCkNCgkJew0KCQkJJGFzQXJyYXkgPSAkdGhpcy0+YWRkQXNBcnJheTsNCgkJfQ0KDQoJCSRhcnJheSA9ICYkdGhpcy0+YWN0aXZlOw0KDQoJCWZvcmVhY2ggKCRrZXlzIGFzICRrZXkpDQoJCXsNCgkJCWlmICghaXNzZXQoJGFycmF5WyRrZXldKSkNCgkJCXsNCgkJCQlpZiAoIWlzX2FycmF5KCRhcnJheSkpDQoJCQkJew0KCQkJCQkkcGF0aCA9ICdbJyAuIGltcGxvZGUoJ11bJywgJGtleXMpIC4gJ10nOw0KCQkJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiQXR0ZW1wdGVkIHRvIHVzZSBrZXkgJ3ska2V5fScgb24gYSBub24tYXJyYXkgdmFsdWU6IHskYXJyYXl9LiBQYXRoOiB7JHBhdGh9IFZhbHVlOiB7JHZhbHVlfSIpOw0KCQkJCX0NCg0KCQkJCSRhcnJheVska2V5XSA9IFtdOw0KCQkJfQ0KCQkJJGFycmF5ID0gJiRhcnJheVska2V5XTsNCgkJfQ0KDQoJCS8vIGFkZCBzdHJpbmcNCgkJaWYgKCEkYXNBcnJheSAmJiAkYXJyYXkgPT09IFtdKQ0KCQl7DQoJCQkkYXJyYXkgPSAnJzsNCgkJfQ0KDQoJCS8vIEhhbmRsZSB0aGUgYWRkaW5nIGxvZ2ljIGF0IHRoZSB0aXAgb2YgdGhlIGFycmF5DQoJCWlmIChpc19hcnJheSgkYXJyYXkpIHx8ICRhc0FycmF5KQ0KCQl7DQoJCQlpZiAoIWlzX2FycmF5KCRhcnJheSkpDQoJCQl7DQoJCQkJLy8gQ29udmVydCB0byBhcnJheSBpZiBpdCdzIG5vdCBhbHJlYWR5IGFuIGFycmF5DQoJCQkJJGFycmF5ID0gWyRhcnJheV07DQoJCQl9DQoNCgkJCWlmICgkdGhpcy0+dW5pcXVlQXJyYXkgJiYgaW5fYXJyYXkoJHZhbHVlLCAkYXJyYXkpKQ0KCQkJew0KCQkJCS8vIHdlIGRvIG5vdGhpbmcNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJGFycmF5W10gPSAkdmFsdWU7DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlpZiAoaXNfc3RyaW5nKCR2YWx1ZSkgfHwgaXNfbnVtZXJpYygkdmFsdWUpKQ0KCQkJew0KCQkJCSRhcnJheSAuPSAoc3RyaW5nKSAkdmFsdWU7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJJGFycmF5ID0gJHZhbHVlOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIGEgdmFsdWUgKG9yIHN1Yi1hcnJheSkgZnJvbSB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAgICRkZWZhdWx0ICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc2V0Lg0KCSAqIEBwYXJhbSBzdHJpbmcgIC4uLiRrZXlzICAgICAgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiBtaXhlZCBUaGUgdmFsdWUgb3Igc3ViLWFycmF5IGZyb20gdGhlIHN0b3JhZ2UuIE51bGwgaWYgdGhlIGxvY2F0aW9uIGRvZXNuJ3QgZXhpc3QuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEFjdGl2ZSgkZGVmYXVsdCwgc3RyaW5nIC4uLiRrZXlzKQ0KCXsNCgkJaWYgKCEkdGhpcy0+dmFsaWRBY3RpdmVLZXlzKCRrZXlzKSkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIktleXMgbXVzdCBvbmx5IGJlIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBnZXQgYW55IHZhbHVlLiIpOw0KCQl9DQoNCgkJJGFycmF5ID0gJHRoaXMtPmFjdGl2ZTsNCg0KCQlmb3JlYWNoICgka2V5cyBhcyAka2V5KQ0KCQl7DQoJCQlpZiAoIWlzc2V0KCRhcnJheVska2V5XSkpDQoJCQl7DQoJCQkJcmV0dXJuICRkZWZhdWx0Ow0KCQkJfQ0KCQkJJGFycmF5ID0gJGFycmF5WyRrZXldOw0KCQl9DQoNCgkJcmV0dXJuICRhcnJheTsNCgl9DQoNCgkvKioNCgkgKiBSZW1vdmVzIGEgdmFsdWUgKG9yIHN1Yi1hcnJheSkgZnJvbSB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgLi4uJGtleXMgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJlbW92ZUFjdGl2ZShzdHJpbmcgLi4uJGtleXMpOiB2b2lkDQoJew0KCQlpZiAoISR0aGlzLT52YWxpZEFjdGl2ZUtleXMoJGtleXMpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiS2V5cyBtdXN0IG9ubHkgYmUgc3RyaW5ncyBvciBudW1iZXJzIHRvIHJlbW92ZSBhbnkgdmFsdWUuIik7DQoJCX0NCg0KCQkkYXJyYXkgPSAmJHRoaXMtPmFjdGl2ZTsNCgkJJGxhc3RLZXkgPSBhcnJheV9wb3AoJGtleXMpOw0KDQoJCWZvcmVhY2ggKCRrZXlzIGFzICRrZXkpDQoJCXsNCgkJCWlmICghaXNzZXQoJGFycmF5WyRrZXldKSkNCgkJCXsNCgkJCQlyZXR1cm47ICAvLyBFeGl0IGVhcmx5IGlmIHRoZSBrZXkgZG9lc24ndCBleGlzdA0KCQkJfQ0KCQkJJGFycmF5ID0gJiRhcnJheVska2V5XTsNCgkJfQ0KDQoJCXVuc2V0KCRhcnJheVskbGFzdEtleV0pOw0KCX0NCg0KCS8qKg0KCSAqIENoZWNrcyB0aGUgZXhpc3RlbmNlIG9mIGEgcGFydGljdWxhciBsb2NhdGlvbiBpbiB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgLi4uJGtleXMgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdGhlIGxvY2F0aW9uIGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBleGlzdHNBY3RpdmUoc3RyaW5nIC4uLiRrZXlzKTogYm9vbA0KCXsNCgkJaWYgKCEkdGhpcy0+dmFsaWRBY3RpdmVLZXlzKCRrZXlzKSkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIktleXMgbXVzdCBvbmx5IGJlIHN0cmluZ3Mgb3IgbnVtYmVycyB0byBjaGVjayBpZiBhbnkgdmFsdWUgZXhpc3QuIik7DQoJCX0NCg0KCQkkYXJyYXkgPSAkdGhpcy0+YWN0aXZlOw0KDQoJCWZvcmVhY2ggKCRrZXlzIGFzICRrZXkpDQoJCXsNCgkJCWlmICghaXNzZXQoJGFycmF5WyRrZXldKSkNCgkJCXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQkkYXJyYXkgPSAkYXJyYXlbJGtleV07DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvKioNCgkgKiBDaGVja3MgdGhhdCB0aGUga2V5cyBhcmUgdmFsaWQNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgJGtleXMgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCAgIEZhbHNlIGlmIGFueSBvZiB0aGUga2V5cyBhcmUgbm90IGEgbnVtYmVyIG9yIHN0cmluZy4NCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRBY3RpdmVLZXlzKGFycmF5ICRrZXlzKTogYm9vbA0KCXsNCgkJZm9yZWFjaCAoJGtleXMgYXMgJGtleSkNCgkJew0KCQkJaWYgKCRrZXkgPT09ICcnIHx8ICghaXNfc3RyaW5nKCRrZXkpICYmICFpc19udW1lcmljKCRrZXkpKSkNCgkJCXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9', '{}', '{}', '', 1, '2023-09-08 16:04:26', 40, '', 1),
(486, 'af0eedbe-603b-4671-8e5a-28165d88254b', 'VDM.Interfaces.Activeregistryinterface', 'Activeregistryinterface', 'interface', 'The Active Registry Interface\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Activeregistryinterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIENoZWNrIGlmIHRoZSByZWdpc3RyeSBoYXMgYW55IGNvbnRlbnQuDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgIFJldHVybnMgdHJ1ZSBpZiB0aGUgYWN0aXZlIGFycmF5IGlzIG5vdCBlbXB0eSwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpc0FjdGl2ZSgpOiBib29sOw0KDQoJLyoqDQoJICogUmV0cmlldmVzIGFsbCB2YWx1ZSBmcm9tIHRoZSByZWdpc3RyeS4NCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkgICBUaGUgdmFsdWVzLg0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBhbGxBY3RpdmUoKTogYXJyYXk7DQoNCgkvKioNCgkgKiBTZXRzIGEgdmFsdWUgaW50byB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAgICR2YWx1ZSAgICAgVGhlIHZhbHVlIHRvIHNldC4NCgkgKiBAcGFyYW0gc3RyaW5nICAuLi4ka2V5cyAgIFRoZSBrZXlzIHRvIGRldGVybWluZSB0aGUgbG9jYXRpb24uDQoJICoNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gSWYgYW55IG9mIHRoZSBrZXlzIGFyZSBub3QgYSBudW1iZXIgb3Igc3RyaW5nLg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRBY3RpdmUoJHZhbHVlLCBzdHJpbmcgLi4uJGtleXMpOiB2b2lkOw0KDQoJLyoqDQoJICogQWRkcyBjb250ZW50IGludG8gdGhlIHJlZ2lzdHJ5LiBJZiBhIGtleSBleGlzdHMsDQoJICogaXQgZWl0aGVyIGFwcGVuZHMgb3IgY29uY2F0ZW5hdGVzIGJhc2VkIG9uIHRoZSB2YWx1ZSdzIHR5cGUuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICAgICAgJHZhbHVlICAgICBUaGUgdmFsdWUgdG8gc2V0Lg0KCSAqIEBwYXJhbSBib29sfG51bGwgICAkYXNBcnJheSAgIERldGVybWluZXMgaWYgdGhlIG5ldyB2YWx1ZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBhcnJheS4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBpcyAkYWRkQXNBcnJheSA9IGZhbHNlIChpZiBudWxsKSBpbiBiYXNlIGNsYXNzLg0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdmVycmlkZSBpbiBjaGlsZCBjbGFzcyBhbGxvd2VkIHNldCBjbGFzcyBwcm9wZXJ0eSAkYWRkQXNBcnJheSA9IHRydWUuDQoJICogQHBhcmFtIHN0cmluZyAgICAgIC4uLiRrZXlzICAgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGFkZEFjdGl2ZSgkdmFsdWUsID9ib29sICRhc0FycmF5LCBzdHJpbmcgLi4uJGtleXMpOiB2b2lkOw0KDQoJLyoqDQoJICogUmV0cmlldmVzIGEgdmFsdWUgKG9yIHN1Yi1hcnJheSkgZnJvbSB0aGUgcmVnaXN0cnkgdXNpbmcgbXVsdGlwbGUga2V5cy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAgICRkZWZhdWx0ICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpZiBub3Qgc2V0Lg0KCSAqIEBwYXJhbSBzdHJpbmcgIC4uLiRrZXlzICAgICAgVGhlIGtleXMgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbi4NCgkgKg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiBhbnkgb2YgdGhlIGtleXMgYXJlIG5vdCBhIG51bWJlciBvciBzdHJpbmcuDQoJICogQHJldHVybiBtaXhlZCBUaGUgdmFsdWUgb3Igc3ViLWFycmF5IGZyb20gdGhlIHN0b3JhZ2UuIE51bGwgaWYgdGhlIGxvY2F0aW9uIGRvZXNuJ3QgZXhpc3QuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEFjdGl2ZSgkZGVmYXVsdCwgc3RyaW5nIC4uLiRrZXlzKTsNCg0KCS8qKg0KCSAqIFJlbW92ZXMgYSB2YWx1ZSAob3Igc3ViLWFycmF5KSBmcm9tIHRoZSByZWdpc3RyeSB1c2luZyBtdWx0aXBsZSBrZXlzLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAuLi4ka2V5cyBUaGUga2V5cyB0byBkZXRlcm1pbmUgdGhlIGxvY2F0aW9uLg0KCSAqDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIElmIGFueSBvZiB0aGUga2V5cyBhcmUgbm90IGEgbnVtYmVyIG9yIHN0cmluZy4NCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlQWN0aXZlKHN0cmluZyAuLi4ka2V5cyk6IHZvaWQ7DQoNCgkvKioNCgkgKiBDaGVja3MgdGhlIGV4aXN0ZW5jZSBvZiBhIHBhcnRpY3VsYXIgbG9jYXRpb24gaW4gdGhlIHJlZ2lzdHJ5IHVzaW5nIG11bHRpcGxlIGtleXMuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nIC4uLiRrZXlzIFRoZSBrZXlzIHRvIGRldGVybWluZSB0aGUgbG9jYXRpb24uDQoJICoNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gSWYgYW55IG9mIHRoZSBrZXlzIGFyZSBub3QgYSBudW1iZXIgb3Igc3RyaW5nLg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHRoZSBsb2NhdGlvbiBleGlzdHMsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZXhpc3RzQWN0aXZlKHN0cmluZyAuLi4ka2V5cyk6IGJvb2w7', '{}', '{}', '', 1, '2023-09-08 16:12:43', 18, '', 1),
@@ -2204,7 +2206,7 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t
(745, 'c548640c-a461-4424-9ac5-8dfb5ed06d8d', 'VDM.Interfaces.Data.LoadInterface', 'LoadInterface', 'interface', 'Data Load Interface\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.LoadInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgVGhlIHRhYmxlIHRoYXQgc2hvdWxkIGJlIGFjdGl2ZQ0KCSAqDQoJICogQHJldHVybiBzZWxmDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRhYmxlKD9zdHJpbmcgJHRhYmxlKTogc2VsZjsNCg0KCS8qKg0KCSAqIEdldCBhIHZhbHVlIGZyb20gYSBnaXZlbiB0YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT52YWx1ZSgNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgIFsNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICdndWlkJyA9PiAneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4Jw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgXSwgJ3ZhbHVlX2tleScNCgkgKiAgICAgICAgICAgICAgICAgICAgKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICAgJGtleXMgICAgICBUaGUgaXRlbSBrZXlzDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAkZmllbGQgICAgIFRoZSBmaWVsZCBrZXkNCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlIDIuMC4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHZhbHVlKGFycmF5ICRrZXlzLCBzdHJpbmcgJGZpZWxkKTsNCg0KCS8qKg0KCSAqIEdldCBhIHZhbHVlIGZyb20gbXVsdGlwbGUgcm93cyBmcm9tIGEgZ2l2ZW4gdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+dmFsdWVzKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+ICd4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgnDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdLCAndmFsdWVfa2V5Jw0KCSAqICAgICAgICAgICAgICAgICAgICApOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAka2V5cyAgICAgIFRoZSBpdGVtIGtleXMNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZXMoYXJyYXkgJGtleXMsIHN0cmluZyAkZmllbGQpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBHZXQgdmFsdWVzIGZyb20gYSBnaXZlbiB0YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+ICd4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgnDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAka2V5cyAgICAgIFRoZSBpdGVtIGtleXMNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdHxudWxsDQoJICogQHNpbmNlIDIuMC4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0oYXJyYXkgJGtleXMpOiA/b2JqZWN0Ow0KIA0KCS8qKg0KCSAqIEdldCB2YWx1ZXMgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+IFsNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcGVyYXRvcicgPT4gJ0lOJywNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gWycneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4JycsICcneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4JyddDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICk7DQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKCRrZXlzKTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRrZXlzICAgIFRoZSBpdGVtIGtleXMNCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5fG51bGwNCgkgKiBAc2luY2UgMi4wLjENCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGtleXMpOiA/YXJyYXk7DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nOw==', '{}', '{}', '', 1, '2024-06-19 09:55:40', 6, '', 1),
(746, '008d111c-9d43-427c-8dd4-2653e8b74be8', 'VDM.Data.Action.Load', 'Load', 'class', 'Data Load (GUID)\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"c548640c-a461-4424-9ac5-8dfb5ed06d8d\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Action.Load', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\",\"as\":\"Model\"},\"use_selection1\":{\"use\":\"2ad31f74-f579-499d-b98b-c4f54fd615dd\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIE1vZGVsIExvYWQNCgkgKg0KCSAqIEB2YXIgICAgTW9kZWwNCgkgKiBAc2luY2UgMi4wLjENCgkgKi8NCglwcm90ZWN0ZWQgTW9kZWwgJG1vZGVsOw0KDQoJLyoqDQoJICogRGF0YWJhc2UgTG9hZA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZQ0KCSAqIEBzaW5jZSAyLjAuMQ0KCSAqLw0KCXByb3RlY3RlZCBEYXRhYmFzZSAkbG9hZDsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqDQoJICogQHBhcmFtIE1vZGVsICAgICAgICRtb2RlbCAgICAgVGhlIG1vZGVsIG9iamVjdC4NCgkgKiBAcGFyYW0gRGF0YWJhc2UgICAgJGxvYWQgICAgICBUaGUgZGF0YWJhc2Ugb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgICAgIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHNpbmNlIDIuMC4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KE1vZGVsICRtb2RlbCwgRGF0YWJhc2UgJGxvYWQsID9zdHJpbmcgJHRhYmxlID0gbnVsbCkNCgl7DQoJCSR0aGlzLT5tb2RlbCA9ICRtb2RlbDsNCgkJJHRoaXMtPmxvYWQgPSAkbG9hZDsNCgkJaWYgKCR0YWJsZSAhPT0gbnVsbCkNCgkJew0KCQkJJHRoaXMtPnRhYmxlID0gJHRhYmxlOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZ3xudWxsICR0YWJsZSBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgYWN0aXZlDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoP3N0cmluZyAkdGFibGUpOiBzZWxmDQoJew0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogR2V0IGEgdmFsdWUgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPnZhbHVlKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+ICd4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgnDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdLCAndmFsdWVfa2V5Jw0KCSAqICAgICAgICAgICAgICAgICAgICApOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAka2V5cyAgICAgIFRoZSBpdGVtIGtleXMNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgMi4wLjENCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWUoYXJyYXkgJGtleXMsIHN0cmluZyAkZmllbGQpDQoJew0KCQlyZXR1cm4gJHRoaXMtPm1vZGVsLT52YWx1ZSgNCgkJCSR0aGlzLT5sb2FkLT52YWx1ZSgNCgkJCQlbImEueyRmaWVsZH0iID0+ICRmaWVsZF0sDQoJCQkJWydhJyA9PiAkdGhpcy0+Z2V0VGFibGUoKV0sDQoJCQkJJHRoaXMtPnByZWZpeCgka2V5cykNCgkJCSksDQoJCQkkZmllbGQsDQoJCQkkdGhpcy0+Z2V0VGFibGUoKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBhIHZhbHVlIGZyb20gbXVsdGlwbGUgcm93cyBmcm9tIGEgZ2l2ZW4gdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+dmFsdWVzKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+ICd4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgnDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdLCAndmFsdWVfa2V5Jw0KCSAqICAgICAgICAgICAgICAgICAgICApOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgICAka2V5cyAgICAgIFRoZSBpdGVtIGtleXMNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICRmaWVsZCAgICAgVGhlIGZpZWxkIGtleQ0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZXMoYXJyYXkgJGtleXMsIHN0cmluZyAkZmllbGQpOiA/YXJyYXkNCgl7DQoJCXJldHVybiAkdGhpcy0+bW9kZWwtPnZhbHVlcygNCgkJCSR0aGlzLT5sb2FkLT52YWx1ZXMoDQoJCQkJWyJhLnskZmllbGR9IiA9PiAkZmllbGRdLA0KCQkJCVsnYScgPT4gJHRoaXMtPmdldFRhYmxlKCldLA0KCQkJCSR0aGlzLT5wcmVmaXgoJGtleXMpDQoJCQkpLA0KCQkJJGZpZWxkLA0KCQkJJHRoaXMtPmdldFRhYmxlKCkNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdmFsdWVzIGZyb20gYSBnaXZlbiB0YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+ICd4eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgnDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAka2V5cyAgICAgIFRoZSBpdGVtIGtleXMNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdHxudWxsDQoJICogQHNpbmNlIDIuMC4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW0oYXJyYXkgJGtleXMpOiA/b2JqZWN0DQoJew0KCQlyZXR1cm4gJHRoaXMtPm1vZGVsLT5pdGVtKA0KCQkJJHRoaXMtPmxvYWQtPml0ZW0oDQoJCQkJWydhbGwnID0+ICdhLionXSwNCgkJCQlbJ2EnID0+ICR0aGlzLT5nZXRUYWJsZSgpXSwNCgkJCQkkdGhpcy0+cHJlZml4KCRrZXlzKQ0KCQkJKSwNCgkJCSR0aGlzLT5nZXRUYWJsZSgpDQoJCSk7DQoJfQ0KIA0KCS8qKg0KCSAqIEdldCB2YWx1ZXMgZnJvbSBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgWw0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2d1aWQnID0+IFsNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcGVyYXRvcicgPT4gJ0lOJywNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgPT4gWycneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4JycsICcneHh4eHh4eHgteHh4eC14eHh4LXh4eHgteHh4eHh4eHh4eHh4JyddDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICAgICBdDQoJICogICAgICAgICAgICAgICAgICAgICk7DQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKCRpZHMpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGtleXMgICAgVGhlIGl0ZW0ga2V5cw0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAyLjAuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyhhcnJheSAka2V5cyk6ID9hcnJheQ0KCXsNCgkJcmV0dXJuICR0aGlzLT5tb2RlbC0+aXRlbXMoDQoJCQkkdGhpcy0+bG9hZC0+aXRlbXMoDQoJCQkJWydhbGwnID0+ICdhLionXSwgWydhJyA9PiAkdGhpcy0+Z2V0VGFibGUoKV0sICR0aGlzLT5wcmVmaXgoJGtleXMpDQoJCQkpLA0KCQkJJHRoaXMtPmdldFRhYmxlKCkNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlOw0KCX0NCg0KCS8qKg0KCSAqIEFkZCBwcmVmaXggdG8gdGhlIGtleXMNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRrZXlzIFRoZSBxdWVyeSBrZXlzDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheQ0KCSAqIEBzaW5jZSAyLjAuMQ0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gcHJlZml4KGFycmF5ICYka2V5cyk6IGFycmF5DQoJew0KCQkvLyB1cGRhdGUgdGhlIGtleSB2YWx1ZXMNCgkJJGJ1Y2tldCA9IFtdOw0KCQlmb3JlYWNoICgka2V5cyBhcyAkayA9PiAkdikNCgkJew0KCQkJJGJ1Y2tldFsnYS4nIC4gJGtdID0gJHY7DQoJCX0NCgkJcmV0dXJuICRidWNrZXQ7DQoJfQ==', '{}', '{}', '', 1, '2024-06-19 10:07:37', 15, '', 1),
(747, 'a455d916-cfe4-41df-9245-bafb709aacdb', 'VDM.Data.Action.Insert', 'Insert', 'class', 'Data Insert (GUID)\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Action.Insert', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\",\"as\":\"Model\"},\"use_selection1\":{\"use\":\"ad12ca1c-d3ce-4e7f-88c5-c6c92bdedc48\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIE1vZGVsDQoJICoNCgkgKiBAdmFyICAgIE1vZGVsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIE1vZGVsICRtb2RlbDsNCg0KCS8qKg0KCSAqIERhdGFiYXNlDQoJICoNCgkgKiBAdmFyICAgIERhdGFiYXNlDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIERhdGFiYXNlICRkYXRhYmFzZTsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqDQoJICogQHBhcmFtIE1vZGVsICAgICAgICRtb2RlbCAgICAgICBUaGUgc2V0IG1vZGVsIG9iamVjdC4NCgkgKiBAcGFyYW0gRGF0YWJhc2UgICAgJGRhdGFiYXNlICAgIFRoZSBpbnNlcnQgZGF0YWJhc2Ugb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgICAgICAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTW9kZWwgJG1vZGVsLCBEYXRhYmFzZSAkZGF0YWJhc2UsID9zdHJpbmcgJHRhYmxlID0gbnVsbCkNCgl7DQoJCSR0aGlzLT5tb2RlbCA9ICRtb2RlbDsNCgkJJHRoaXMtPmRhdGFiYXNlID0gJGRhdGFiYXNlOw0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZSg/c3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCWlmICgkdGFibGUgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCgkJfQ0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgYSB2YWx1ZSB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPnZhbHVlKFZhbHVlLCAndmFsdWVfa2V5JywgJ0dVSUQnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAkdmFsdWUgICAgICBUaGUgZmllbGQgdmFsdWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgJGZpZWxkICAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAka2V5VmFsdWUgICBUaGUga2V5IHZhbHVlDQoJICogQHBhcmFtICAgc3RyaW5nICAgICRrZXkgICAgICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsIHN0cmluZyAka2V5VmFsdWUsIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gYnVpbGQgdGhlIGFycmF5DQoJCSRpdGVtID0gW107DQoJCSRpdGVtWyRrZXldID0gJGtleVZhbHVlOw0KCQkkaXRlbVskZmllbGRdID0gJHZhbHVlOw0KDQoJCS8vIEluc2VydCB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUNCgkJcmV0dXJuICR0aGlzLT5yb3coJGl0ZW0pOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBzaW5nbGUgcm93IHdpdGggbXVsdGlwbGUgdmFsdWVzIHRvIGEgZ2l2ZW4gdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbShBcnJheSk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICAkaXRlbSAgIFRoZSBpdGVtIHRvIHNhdmUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRpdGVtKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW0gPSAkdGhpcy0+bW9kZWwtPnJvdygkaXRlbSwgJHRoaXMtPmdldFRhYmxlKCkpKSAhPT0gbnVsbCkNCgkJew0KCQkJLy8gSW5zZXJ0IHRoZSBjb2x1bW4gb2YgdGhpcyB0YWJsZQ0KCQkJcmV0dXJuICR0aGlzLT5kYXRhYmFzZS0+cm93KCRpdGVtLCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBtdWx0aXBsZSByb3dzIHRvIGEgZ2l2ZW4gdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbXMoQXJyYXkpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXl8bnVsbCAgICRpdGVtcyAgVGhlIGl0ZW1zIHVwZGF0ZWQgaW4gZGF0YWJhc2UgKGFycmF5IG9mIGFycmF5cykNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93cyg/YXJyYXkgJGl0ZW1zKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW1zID0gJHRoaXMtPm1vZGVsLT5yb3dzKCRpdGVtcywgJHRoaXMtPmdldFRhYmxlKCkpKSAhPT0gbnVsbCkNCgkJew0KCQkJLy8gSW5zZXJ0IHRoZSBjb2x1bW4gb2YgdGhpcyB0YWJsZQ0KCQkJcmV0dXJuICR0aGlzLT5kYXRhYmFzZS0+cm93cygkaXRlbXMsICR0aGlzLT5nZXRUYWJsZSgpKTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogSW5zZXJ0IHNpbmdsZSBpdGVtIHdpdGggbXVsdGlwbGUgdmFsdWVzIHRvIGEgZ2l2ZW4gdGFibGUNCgkgKiAgICAgICAgICBFeGFtcGxlOiAkdGhpcy0+aXRlbShPYmplY3QpOw0KCSAqDQoJICogQHBhcmFtICAgb2JqZWN0ICAgICRpdGVtICAgVGhlIGl0ZW0gdG8gc2F2ZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtKG9iamVjdCAkaXRlbSk6IGJvb2wNCgl7DQoJCS8vIGNoZWNrIGlmIG9iamVjdCBjb3VsZCBiZSBtb2RlbGxlZA0KCQlpZiAoKCRpdGVtID0gJHRoaXMtPm1vZGVsLT5pdGVtKCRpdGVtLCAkdGhpcy0+Z2V0VGFibGUoKSkpICE9PSBudWxsKQ0KCQl7DQoJCQkvLyBJbnNlcnQgdGhlIGNvbHVtbiBvZiB0aGlzIHRhYmxlDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5pdGVtKCRpdGVtLCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBtdWx0aXBsZSBpdGVtcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKEFycmF5KTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkaXRlbXMgIFRoZSBpdGVtcyB1cGRhdGVkIGluIGRhdGFiYXNlIChhcnJheSBvZiBvYmplY3RzKQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyg/YXJyYXkgJGl0ZW1zKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW1zID0gJHRoaXMtPm1vZGVsLT5pdGVtcygkaXRlbXMsICR0aGlzLT5nZXRUYWJsZSgpKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgZ3VpZCBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5pdGVtcygkaXRlbXMsICR0aGlzLT5nZXRUYWJsZSgpKTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFRhYmxlKCk6IHN0cmluZw0KCXsNCgkJcmV0dXJuICR0aGlzLT50YWJsZTsNCgl9', '{}', '{}', '', 1, '2024-06-19 10:22:45', 10, '', 1),
-(748, '8f83fb79-f92b-4f1f-952b-325f6c22d11e', 'VDM.Data.Action.Update', 'Update', 'class', 'Data Update\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"68a41264-64c0-441a-a3d8-8a5e557b1883\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Action.Update', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\",\"as\":\"Model\"},\"use_selection1\":{\"use\":\"7179fde6-1e51-4b51-8545-7ca18f74a0f4\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIE1vZGVsDQoJICoNCgkgKiBAdmFyICAgIE1vZGVsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIE1vZGVsICRtb2RlbDsNCg0KCS8qKg0KCSAqIERhdGFiYXNlDQoJICoNCgkgKiBAdmFyICAgIERhdGFiYXNlDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIERhdGFiYXNlICRkYXRhYmFzZTsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqDQoJICogQHBhcmFtIE1vZGVsICAgICAgICRtb2RlbCAgICAgICBUaGUgc2V0IG1vZGVsIG9iamVjdC4NCgkgKiBAcGFyYW0gRGF0YWJhc2UgICAgJGRhdGFiYXNlICAgIFRoZSB1cGRhdGUgZGF0YWJhc2Ugb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgICAgICAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTW9kZWwgJG1vZGVsLCBEYXRhYmFzZSAkZGF0YWJhc2UsID9zdHJpbmcgJHRhYmxlID0gbnVsbCkNCgl7DQoJCSR0aGlzLT5tb2RlbCA9ICRtb2RlbDsNCgkJJHRoaXMtPmRhdGFiYXNlID0gJGRhdGFiYXNlOw0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZSg/c3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCWlmICgkdGFibGUgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCgkJfQ0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgYSB2YWx1ZSB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPnZhbHVlKFZhbHVlLCAndmFsdWVfa2V5JywgJ0dVSUQnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAkdmFsdWUgICAgICBUaGUgZmllbGQgdmFsdWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgJGZpZWxkICAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAka2V5VmFsdWUgICBUaGUga2V5IHZhbHVlDQoJICogQHBhcmFtICAgc3RyaW5nICAgICRrZXkgICAgICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsIHN0cmluZyAka2V5VmFsdWUsIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gYnVpbGQgdGhlIGFycmF5DQoJCSRpdGVtID0gW107DQoJCSRpdGVtWyRrZXldID0gJGtleVZhbHVlOw0KCQkkaXRlbVskZmllbGRdID0gJHZhbHVlOw0KDQoJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCXJldHVybiAkdGhpcy0+cm93KCRpdGVtLCAka2V5KTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgc2luZ2xlIHJvdyB3aXRoIG11bHRpcGxlIHZhbHVlcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW0oQXJyYXkpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGl0ZW0gICBUaGUgaXRlbSB0byBzYXZlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGtleSAgICBUaGUga2V5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRpdGVtLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCS8vIGNoZWNrIGlmIG9iamVjdCBjb3VsZCBiZSBtb2RlbGxlZA0KCQlpZiAoKCRpdGVtID0gJHRoaXMtPm1vZGVsLT5yb3coJGl0ZW0sICR0aGlzLT5nZXRUYWJsZSgpKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5yb3coJGl0ZW0sICRrZXksICR0aGlzLT5nZXRUYWJsZSgpKTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlIG11bHRpcGxlIHJvd3MgdG8gYSBnaXZlbiB0YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtcyhBcnJheSk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJGl0ZW1zICBUaGUgaXRlbXMgdXBkYXRlZCBpbiBkYXRhYmFzZSAoYXJyYXkgb2YgYXJyYXlzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAka2V5ICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3dzKD9hcnJheSAkaXRlbXMsIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW1zID0gJHRoaXMtPm1vZGVsLT5yb3dzKCRpdGVtcywgJHRoaXMtPmdldFRhYmxlKCkpKSAhPT0gbnVsbCkNCgkJew0KCQkJLy8gVXBkYXRlIHRoZSBjb2x1bW4gb2YgdGhpcyB0YWJsZSB1c2luZyAka2V5IGFzIHRoZSBwcmltYXJ5IGtleS4NCgkJCXJldHVybiAkdGhpcy0+ZGF0YWJhc2UtPnJvd3MoJGl0ZW1zLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFVwZGF0ZSBzaW5nbGUgaXRlbSB3aXRoIG11bHRpcGxlIHZhbHVlcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW0oT2JqZWN0KTsNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAkaXRlbSAgIFRoZSBpdGVtIHRvIHNhdmUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgJGtleSAgICBUaGUga2V5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShvYmplY3QgJGl0ZW0sIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW0gPSAkdGhpcy0+bW9kZWwtPml0ZW0oJGl0ZW0sICR0aGlzLT5nZXRUYWJsZSgpKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5pdGVtKCRpdGVtLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFVwZGF0ZSBtdWx0aXBsZSBpdGVtcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKEFycmF5KTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkaXRlbXMgIFRoZSBpdGVtcyB1cGRhdGVkIGluIGRhdGFiYXNlIChhcnJheSBvZiBvYmplY3RzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAka2V5ICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyg/YXJyYXkgJGl0ZW1zLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCS8vIGNoZWNrIGlmIG9iamVjdCBjb3VsZCBiZSBtb2RlbGxlZA0KCQlpZiAoKCRpdGVtcyA9ICR0aGlzLT5tb2RlbC0+aXRlbXMoJGl0ZW1zLCAkdGhpcy0+Z2V0VGFibGUoKSkpICE9PSBudWxsKQ0KCQl7DQoJCQkvLyBVcGRhdGUgdGhlIGNvbHVtbiBvZiB0aGlzIHRhYmxlIHVzaW5nICRrZXkgYXMgdGhlIHByaW1hcnkga2V5Lg0KCQkJcmV0dXJuICR0aGlzLT5kYXRhYmFzZS0+aXRlbXMoJGl0ZW1zLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGU7DQoJfQ==', '{}', '{}', '', 1, '2024-06-19 10:37:43', 10, '', 1),
+(748, '8f83fb79-f92b-4f1f-952b-325f6c22d11e', 'VDM.Data.Action.Update', 'Update', 'class', 'Data Update\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"68a41264-64c0-441a-a3d8-8a5e557b1883\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Action.Update', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"8aef58c1-3f70-4bd4-b9e4-3f29fcd41cff\",\"as\":\"Model\"},\"use_selection1\":{\"use\":\"7179fde6-1e51-4b51-8545-7ca18f74a0f4\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIE1vZGVsDQoJICoNCgkgKiBAdmFyICAgIE1vZGVsDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIE1vZGVsICRtb2RlbDsNCg0KCS8qKg0KCSAqIERhdGFiYXNlDQoJICoNCgkgKiBAdmFyICAgIERhdGFiYXNlDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHJvdGVjdGVkIERhdGFiYXNlICRkYXRhYmFzZTsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvcg0KCSAqDQoJICogQHBhcmFtIE1vZGVsICAgICAgICRtb2RlbCAgICAgICBUaGUgc2V0IG1vZGVsIG9iamVjdC4NCgkgKiBAcGFyYW0gRGF0YWJhc2UgICAgJGRhdGFiYXNlICAgIFRoZSB1cGRhdGUgZGF0YWJhc2Ugb2JqZWN0Lg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgICAgICAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoTW9kZWwgJG1vZGVsLCBEYXRhYmFzZSAkZGF0YWJhc2UsID9zdHJpbmcgJHRhYmxlID0gbnVsbCkNCgl7DQoJCSR0aGlzLT5tb2RlbCA9ICRtb2RlbDsNCgkJJHRoaXMtPmRhdGFiYXNlID0gJGRhdGFiYXNlOw0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZSg/c3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCWlmICgkdGFibGUgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCgkJfQ0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgYSB2YWx1ZSB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPnZhbHVlKFZhbHVlLCAndmFsdWVfa2V5JywgJ0dVSUQnKTsNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAkdmFsdWUgICAgICBUaGUgZmllbGQgdmFsdWUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgJGZpZWxkICAgICAgVGhlIGZpZWxkIGtleQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAka2V5VmFsdWUgICBUaGUga2V5IHZhbHVlDQoJICogQHBhcmFtICAgc3RyaW5nICAgICRrZXkgICAgICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB2YWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsIHN0cmluZyAka2V5VmFsdWUsIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gYnVpbGQgdGhlIGFycmF5DQoJCSRpdGVtID0gW107DQoJCSRpdGVtWyRrZXldID0gJGtleVZhbHVlOw0KCQkkaXRlbVskZmllbGRdID0gJHZhbHVlOw0KDQoJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCXJldHVybiAkdGhpcy0+cm93KCRpdGVtLCAka2V5KTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgc2luZ2xlIHJvdyB3aXRoIG11bHRpcGxlIHZhbHVlcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW0oQXJyYXkpOw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGl0ZW0gICBUaGUgaXRlbSB0byBzYXZlDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGtleSAgICBUaGUga2V5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcm93KGFycmF5ICRpdGVtLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCS8vIGNoZWNrIGlmIG9iamVjdCBjb3VsZCBiZSBtb2RlbGxlZA0KCQlpZiAoKCRpdGVtID0gJHRoaXMtPm1vZGVsLT5yb3coJGl0ZW0sICR0aGlzLT5nZXRUYWJsZSgpKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5yb3coJGl0ZW0sICRrZXksICR0aGlzLT5nZXRUYWJsZSgpKTsNCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlIG11bHRpcGxlIHJvd3MgdG8gYSBnaXZlbiB0YWJsZQ0KCSAqICAgICAgICAgIEV4YW1wbGU6ICR0aGlzLT5pdGVtcyhBcnJheSk7DQoJICoNCgkgKiBAcGFyYW0gICBhcnJheXxudWxsICAgJGl0ZW1zICBUaGUgaXRlbXMgdXBkYXRlZCBpbiBkYXRhYmFzZSAoYXJyYXkgb2YgYXJyYXlzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAka2V5ICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByb3dzKD9hcnJheSAkaXRlbXMsIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW1zID0gJHRoaXMtPm1vZGVsLT5yb3dzKCRpdGVtcywgJHRoaXMtPmdldFRhYmxlKCkpKSAhPT0gbnVsbCkNCgkJew0KCQkJLy8gVXBkYXRlIHRoZSBjb2x1bW4gb2YgdGhpcyB0YWJsZSB1c2luZyAka2V5IGFzIHRoZSBwcmltYXJ5IGtleS4NCgkJCXJldHVybiAkdGhpcy0+ZGF0YWJhc2UtPnJvd3MoJGl0ZW1zLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFVwZGF0ZSBzaW5nbGUgaXRlbSB3aXRoIG11bHRpcGxlIHZhbHVlcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW0oT2JqZWN0KTsNCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICAkaXRlbSAgIFRoZSBpdGVtIHRvIHNhdmUNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgJGtleSAgICBUaGUga2V5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgMy4yLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbShvYmplY3QgJGl0ZW0sIHN0cmluZyAka2V5ID0gJ2d1aWQnKTogYm9vbA0KCXsNCgkJLy8gY2hlY2sgaWYgb2JqZWN0IGNvdWxkIGJlIG1vZGVsbGVkDQoJCWlmICgoJGl0ZW0gPSAkdGhpcy0+bW9kZWwtPml0ZW0oJGl0ZW0sICR0aGlzLT5nZXRUYWJsZSgpKSkgIT09IG51bGwpDQoJCXsNCgkJCS8vIFVwZGF0ZSB0aGUgY29sdW1uIG9mIHRoaXMgdGFibGUgdXNpbmcgJGtleSBhcyB0aGUgcHJpbWFyeSBrZXkuDQoJCQlyZXR1cm4gJHRoaXMtPmRhdGFiYXNlLT5pdGVtKCRpdGVtLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFVwZGF0ZSBtdWx0aXBsZSBpdGVtcyB0byBhIGdpdmVuIHRhYmxlDQoJICogICAgICAgICAgRXhhbXBsZTogJHRoaXMtPml0ZW1zKEFycmF5KTsNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5fG51bGwgICAkaXRlbXMgIFRoZSBpdGVtcyB1cGRhdGVkIGluIGRhdGFiYXNlIChhcnJheSBvZiBvYmplY3RzKQ0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAka2V5ICAgIFRoZSBrZXkgbmFtZQ0KCSAqDQoJICogQHJldHVybiAgYm9vbA0KCSAqIEBzaW5jZSAzLjIuMA0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBpdGVtcyg/YXJyYXkgJGl0ZW1zLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCS8vIGNoZWNrIGlmIG9iamVjdCBjb3VsZCBiZSBtb2RlbGxlZA0KCQlpZiAoKCRpdGVtcyA9ICR0aGlzLT5tb2RlbC0+aXRlbXMoJGl0ZW1zLCAkdGhpcy0+Z2V0VGFibGUoKSkpICE9PSBudWxsKQ0KCQl7DQoJCQkvLyBVcGRhdGUgdGhlIGNvbHVtbiBvZiB0aGlzIHRhYmxlIHVzaW5nICRrZXkgYXMgdGhlIHByaW1hcnkga2V5Lg0KCQkJcmV0dXJuICR0aGlzLT5kYXRhYmFzZS0+aXRlbXMoJGl0ZW1zLCAka2V5LCAkdGhpcy0+Z2V0VGFibGUoKSk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGU7DQoJfQ==', '{}', '{}', '', 1, '2024-06-19 10:37:43', 11, '', 1),
(749, '3fc72954-a303-4cac-b53c-554be38b85e7', 'VDM.Data.Action.Delete', 'Delete', 'class', 'Data Delete\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"d8f9ba53-c490-4e8b-8e9f-6757224e069c\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Action.Delete', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"9c3aa650-e536-4eea-a2d4-73cc3e184aa9\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIFRoZSBEZWxldGUgQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgRGF0YWJhc2UNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwcm90ZWN0ZWQgRGF0YWJhc2UgJGRhdGFiYXNlOw0KDQoJLyoqDQoJICogVGFibGUgTmFtZQ0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIERhdGFiYXNlICAgJGRhdGFiYXNlICAgVGhlIERlbGV0ZSBDbGFzcy4NCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlICAgICAgIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KERhdGFiYXNlICRkYXRhYmFzZSwgP3N0cmluZyAkdGFibGUgPSBudWxsKQ0KCXsNCgkJJHRoaXMtPmRhdGFiYXNlID0gJGRhdGFiYXNlOw0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZSg/c3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCWlmICgkdGFibGUgIT09IG51bGwpDQoJCXsNCgkJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCgkJfQ0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBEZWxldGUgYWxsIGl0ZW1zIGluIHRoZSBkYXRhYmFzZSB0aGF0IG1hdGNoIHRoZXNlIGNvbmRpdGlvbnMNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRjb25kaXRpb25zICAgIENvbmRpdGlvbnMgYnkgd2hpY2ggdG8gZGVsZXRlIHRoZSBkYXRhIGluIGRhdGFiYXNlIFthcnJheSBvZiBhcnJheXMgKGtleSA9PiB2YWx1ZSldDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIGl0ZW1zKGFycmF5ICRjb25kaXRpb25zKTogYm9vbA0KCXsNCgkJcmV0dXJuICR0aGlzLT5kYXRhYmFzZS0+aXRlbXMoJGNvbmRpdGlvbnMsICR0aGlzLT5nZXRUYWJsZSgpKTsNCgl9DQoNCgkvKioNCgkgKiBUcnVuY2F0ZSBhIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgMy4yLjINCgkgKiovDQoJcHVibGljIGZ1bmN0aW9uIHRydW5jYXRlKCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5kYXRhYmFzZS0+dHJ1bmNhdGUoJHRoaXMtPmdldFRhYmxlKCkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGU7DQoJfQ==', '{}', '{}', '', 1, '2024-06-19 17:58:06', 11, '', 1),
(750, 'd8f9ba53-c490-4e8b-8e9f-6757224e069c', 'VDM.Interfaces.Data.DeleteInterface', 'DeleteInterface', 'interface', 'Data Delete\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.DeleteInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkdGFibGUgVGhlIHRhYmxlIHRoYXQgc2hvdWxkIGJlIGFjdGl2ZQ0KCSAqDQoJICogQHJldHVybiBzZWxmDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRhYmxlKD9zdHJpbmcgJHRhYmxlKTogc2VsZjsNCg0KCS8qKg0KCSAqIERlbGV0ZSBhbGwgaXRlbXMgaW4gdGhlIGRhdGFiYXNlIHRoYXQgbWF0Y2ggdGhlc2UgY29uZGl0aW9ucw0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAgJGNvbmRpdGlvbnMgICAgQ29uZGl0aW9ucyBieSB3aGljaCB0byBkZWxldGUgdGhlIGRhdGEgaW4gZGF0YWJhc2UgW2FycmF5IG9mIGFycmF5cyAoa2V5ID0+IHZhbHVlKV0NCgkgKg0KCSAqIEByZXR1cm4gIGJvb2wNCgkgKiBAc2luY2UgICAzLjIuMg0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaXRlbXMoYXJyYXkgJGNvbmRpdGlvbnMpOiBib29sOw0KDQoJLyoqDQoJICogVHJ1bmNhdGUgYSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nfG51bGwgICAkdGFibGUgICAgVGhlIHRhYmxlIHRoYXQgc2hvdWxkIGJlIHRydW5jYXRlZA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgIDMuMi4yDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiB0cnVuY2F0ZSgpOiB2b2lkOw0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFRhYmxlKCk6IHN0cmluZzs=', '{}', '{}', '', 1, '2024-06-19 18:11:57', 6, '', 1),
(753, '21bca8a4-5b28-41c4-843e-8097f0ba7cca', 'VDM.Data.Items', 'Items', 'final class', 'Data Items\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', 'AbstractionModel', '', '', '{\"0\":\"7212e4db-371f-4cfd-8122-32e9bb100d83\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Items', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"c548640c-a461-4424-9ac5-8dfb5ed06d8d\",\"as\":\"Load\"},\"use_selection1\":{\"use\":\"03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13\",\"as\":\"Insert\"},\"use_selection2\":{\"use\":\"68a41264-64c0-441a-a3d8-8a5e557b1883\",\"as\":\"Update\"},\"use_selection3\":{\"use\":\"d8f9ba53-c490-4e8b-8e9f-6757224e069c\",\"as\":\"Delete\"},\"use_selection4\":{\"use\":\"2ad31f74-f579-499d-b98b-c4f54fd615dd\",\"as\":\"Database\"}}', 'CS8qKg0KCSAqIFRoZSBMb2FkSW50ZXJmYWNlIENsYXNzLg0KCSAqDQoJICogQHZhciAgIExvYWQNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwcm90ZWN0ZWQgTG9hZCAkbG9hZDsNCg0KCS8qKg0KCSAqIFRoZSBJbnNlcnRJbnRlcmZhY2UgQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgSW5zZXJ0DQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHJvdGVjdGVkIEluc2VydCAkaW5zZXJ0Ow0KDQoJLyoqDQoJICogVGhlIFVwZGF0ZUludGVyZmFjZSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBVcGRhdGUNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwcm90ZWN0ZWQgVXBkYXRlICR1cGRhdGU7DQoNCgkvKioNCgkgKiBUaGUgRGVsZXRlSW50ZXJmYWNlIENsYXNzLg0KCSAqDQoJICogQHZhciAgIERlbGV0ZQ0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByb3RlY3RlZCBEZWxldGUgJGRlbGV0ZTsNCg0KCS8qKg0KCSAqIFRoZSBMb2FkIENsYXNzLg0KCSAqDQoJICogQHZhciAgIERhdGFiYXNlDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHJvdGVjdGVkIERhdGFiYXNlICRkYXRhYmFzZTsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDMuMi4xDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvci4NCgkgKg0KCSAqIEBwYXJhbSBMb2FkICAgICAgICAkbG9hZCAgICAgICBUaGUgTG9hZEludGVyZmFjZSBDbGFzcy4NCgkgKiBAcGFyYW0gSW5zZXJ0ICAgICAgJGluc2VydCAgICAgVGhlIEluc2VydEludGVyZmFjZSBDbGFzcy4NCgkgKiBAcGFyYW0gVXBkYXRlICAgICAgJHVwZGF0ZSAgICAgVGhlIFVwZGF0ZUludGVyZmFjZSBDbGFzcy4NCgkgKiBAcGFyYW0gRGVsZXRlICAgICAgJGRlbGV0ZSAgICAgVGhlIERlbGV0ZUludGVyZmFjZSBDbGFzcy4NCgkgKiBAcGFyYW0gRGF0YWJhc2UgICAgJGRhdGFiYXNlICAgVGhlIERhdGFiYXNlIExvYWQgQ2xhc3MuDQoJICogQHBhcmFtIHN0cmluZ3xudWxsICR0YWJsZSAgICAgIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KExvYWQgJGxvYWQsIEluc2VydCAkaW5zZXJ0LCBVcGRhdGUgJHVwZGF0ZSwgRGVsZXRlICRkZWxldGUsDQoJCURhdGFiYXNlICRkYXRhYmFzZSwgP3N0cmluZyAkdGFibGUgPSBudWxsKQ0KCXsNCgkJJHRoaXMtPmxvYWQgPSAkbG9hZDsNCgkJJHRoaXMtPmluc2VydCA9ICRpbnNlcnQ7DQoJCSR0aGlzLT51cGRhdGUgPSAkdXBkYXRlOw0KCQkkdGhpcy0+ZGVsZXRlID0gJGRlbGV0ZTsNCgkJJHRoaXMtPmRhdGFiYXNlID0gJGRhdGFiYXNlOw0KCQlpZiAoJHRhYmxlICE9PSBudWxsKQ0KCQl7DQoJCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgYWN0aXZlDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoc3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogR2V0IGxpc3Qgb2YgaXRlbXMNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgICAgJHZhbHVlcyAgICBUaGUgaWRzIG9mIHRoZSBpdGVtcw0KCSAqIEBwYXJhbSBzdHJpbmcgICAgJGtleSAgICAgICBUaGUga2V5IG9mIHRoZSB2YWx1ZXMNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXl8bnVsbCBUaGUgaXRlbSBvYmplY3Qgb3IgbnVsbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoYXJyYXkgJHZhbHVlcywgc3RyaW5nICRrZXkgPSAnZ3VpZCcpOiA/YXJyYXkNCgl7DQoJCXJldHVybiAkdGhpcy0+bG9hZC0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT5pdGVtcyhbDQoJCQkka2V5ID0+IFsNCgkJCQknb3BlcmF0b3InID0+ICdJTicsDQoJCQkJJ3ZhbHVlJyA9PiBhcnJheV92YWx1ZXMoJHZhbHVlcykNCgkJCV0NCgkJXSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSB2YWx1ZXMNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgICR2YWx1ZXMgICAgVGhlIGxpc3Qgb2YgdmFsdWVzICh0byBzZWFyY2ggYnkpLg0KCSAqIEBwYXJhbSBzdHJpbmcgICRrZXkgICAgICAgVGhlIGtleSBvbiB3aGljaCB0aGUgdmFsdWVzIGJlaW5nIHNlYXJjaGVkLg0KCSAqIEBwYXJhbSBzdHJpbmcgICRnZXQgICAgICAgVGhlIGtleSBvZiB0aGUgdmFsdWVzIHdlIHdhbnQgYmFjaw0KCSAqDQoJICogQHJldHVybiBhcnJheXxudWxsICAgVGhlIGFycmF5IG9mIGZvdW5kIHZhbHVlcy4NCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdmFsdWVzKGFycmF5ICR2YWx1ZXMsIHN0cmluZyAka2V5ID0gJ2d1aWQnLCBzdHJpbmcgJGdldCA9ICdpZCcpOiA/YXJyYXkNCgl7DQoJCS8vIFBlcmZvcm0gdGhlIGRhdGFiYXNlIHF1ZXJ5DQoJCXJldHVybiAkdGhpcy0+bG9hZC0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT52YWx1ZXMoWw0KCQkJJGtleSA9PiBbDQoJCQkJJ29wZXJhdG9yJyA9PiAnSU4nLA0KCQkJCSd2YWx1ZScgPT4gYXJyYXlfdmFsdWVzKCR2YWx1ZXMpDQoJCQldDQoJCV0sICRnZXQpOw0KCX0NCg0KCS8qKg0KCSAqIFNldCBpdGVtcw0KCSAqDQoJICogQHBhcmFtIGFycmF5ICAgICAkaXRlbXMgIFRoZSBsaXN0IG9mIGl0ZW1zDQoJICogQHBhcmFtIHN0cmluZyAgICAka2V5ICAgIFRoZSBrZXkgb24gd2hpY2ggdGhlIGl0ZW1zIHNob3VsZCBiZSBzZXQNCgkgKg0KCSAqIEByZXR1cm4gYm9vbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXQoYXJyYXkgJGl0ZW1zLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCWlmICgoJHNldHMgPSAkdGhpcy0+c29ydCgkaXRlbXMsICRrZXkpKSAhPT0gbnVsbCkNCgkJew0KCQkJZm9yZWFjaCAoJHNldHMgYXMgJGFjdGlvbiA9PiAkaXRlbXMpDQoJCQl7DQoJCQkJJHRoaXMtPnskYWN0aW9ufSgkaXRlbXMsICRrZXkpOw0KCQkJfQ0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogRGVsZXRlIGl0ZW1zDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgICAgJHZhbHVlcyAgVGhlIGl0ZW0ga2V5IHZhbHVlDQoJICogQHBhcmFtIHN0cmluZyAgICRrZXkgICAgIFRoZSBpdGVtIGtleQ0KCSAqDQoJICogQHJldHVybiBib29sDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShhcnJheSAkdmFsdWVzLCBzdHJpbmcgJGtleSA9ICdndWlkJyk6IGJvb2wNCgl7DQoJCXJldHVybiAkdGhpcy0+ZGVsZXRlLT50YWJsZSgkdGhpcy0+Z2V0VGFibGUoKSktPml0ZW1zKFska2V5ID0+IFsnb3BlcmF0b3InID0+ICdJTicsICd2YWx1ZScgPT4gJHZhbHVlc11dKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBhIGl0ZW0NCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgICRpdGVtcyAgVGhlIGl0ZW0NCgkgKg0KCSAqIEByZXR1cm4gYm9vbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaW5zZXJ0KGFycmF5ICRpdGVtcyk6IGJvb2wNCgl7DQoJCXJldHVybiAkdGhpcy0+aW5zZXJ0LT50YWJsZSgkdGhpcy0+Z2V0VGFibGUoKSktPnJvd3MoJGl0ZW1zKTsNCgl9DQoNCgkvKioNCgkgKiBVcGRhdGUgYSBpdGVtDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICAgJGl0ZW0gIFRoZSBpdGVtDQoJICogQHBhcmFtIHN0cmluZyAgICRrZXkgICBUaGUgaXRlbSBrZXkNCgkgKg0KCSAqIEByZXR1cm4gYm9vbA0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdXBkYXRlKGFycmF5ICRpdGVtcywgc3RyaW5nICRrZXkpOiBib29sDQoJew0KCQlyZXR1cm4gJHRoaXMtPnVwZGF0ZS0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT5yb3dzKCRpdGVtcywgJGtleSk7DQoJfQ0KDQoJLyoqDQoJICogU29ydCBpdGVtcyBiZXR3ZWVuIGluc2VydCBhbmQgdXBkYXRlLg0KCSAqDQoJICogQHBhcmFtIGFycmF5ICAkaXRlbXMgVGhlIGxpc3Qgb2YgaXRlbXMuDQoJICogQHBhcmFtIHN0cmluZyAka2V5ICAgVGhlIGtleSBvbiB3aGljaCB0aGUgaXRlbXMgc2hvdWxkIGJlIHNvcnRlZC4NCgkgKg0KCSAqIEByZXR1cm4gYXJyYXl8bnVsbCBUaGUgc29ydGVkIHNldHMuDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBzb3J0KGFycmF5ICRpdGVtcywgc3RyaW5nICRrZXkpOiA/YXJyYXkNCgl7DQoJCS8vIEV4dHJhY3QgcmVsZXZhbnQgaXRlbXMgYmFzZWQgb24gdGhlIGtleS4NCgkJJHZhbHVlcyA9ICR0aGlzLT5leHRyYWN0VmFsdWVzKCRpdGVtcywgJGtleSk7DQoJCWlmICgkdmFsdWVzID09PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCSRzZXRzID0gWw0KCQkJJ2luc2VydCcgPT4gW10sDQoJCQkndXBkYXRlJyA9PiBbXQ0KCQldOw0KDQoJCS8vIENoZWNrIGZvciBleGlzdGluZyBpdGVtcy4NCgkJJGV4aXN0aW5nSXRlbXMgPSAkdGhpcy0+ZGF0YWJhc2UtPnZhbHVlcygNCgkJCVsiYS4ka2V5IiA9PiAka2V5XSwNCgkJCVsiYSIgPT4gJHRoaXMtPmdldFRhYmxlKCldLA0KCQkJWyJhLiRrZXkiID0+IFsnb3BlcmF0b3InID0+ICdJTicsICd2YWx1ZScgPT4gJHZhbHVlc11dDQoJCSk7DQoNCgkJaWYgKCRleGlzdGluZ0l0ZW1zICE9PSBudWxsKQ0KCQl7DQoJCQkkc2V0c1sndXBkYXRlJ10gPSAkdGhpcy0+ZXh0cmFjdFNldCgkaXRlbXMsICRleGlzdGluZ0l0ZW1zLCAka2V5KSA/PyBbXTsNCgkJCSRzZXRzWydpbnNlcnQnXSA9ICR0aGlzLT5leHRyYWN0U2V0KCRpdGVtcywgJGV4aXN0aW5nSXRlbXMsICRrZXksIHRydWUpID8/IFtdOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJHNldHNbJ2luc2VydCddID0gJGl0ZW1zOw0KCQl9DQoNCgkJLy8gSWYgZWl0aGVyIHNldCBpcyBlbXB0eSwgcmVtb3ZlIGl0IGZyb20gdGhlIHJlc3VsdC4NCgkJJHNldHMgPSBhcnJheV9maWx0ZXIoJHNldHMpOw0KDQoJCXJldHVybiAhZW1wdHkoJHNldHMpID8gJHNldHMgOiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEV4dHJhY3RzIHZhbHVlcyBmb3IgYSBnaXZlbiBrZXkgZnJvbSBhbiBhcnJheSBvZiBpdGVtcy4NCgkgKiBJdGVtcyBjYW4gYmUgZWl0aGVyIGFycmF5cyBvciBvYmplY3RzLg0KCSAqDQoJICogQHBhcmFtIGFycmF5ICRpdGVtcyBBcnJheSBvZiBpdGVtcyAoYXJyYXlzIG9yIG9iamVjdHMpDQoJICogQHBhcmFtIHN0cmluZyAka2V5IFRoZSBrZXkgdG8gZXh0cmFjdCB2YWx1ZXMgZm9yDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgRXh0cmFjdGVkIHZhbHVlcw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gZXh0cmFjdFZhbHVlcyhhcnJheSAkaXRlbXMsIHN0cmluZyAka2V5KTogP2FycmF5DQoJew0KCQkkcmVzdWx0ID0gW107DQoNCgkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KCQl7DQoJCQlpZiAoaXNfYXJyYXkoJGl0ZW0pICYmICFlbXB0eSgkaXRlbVska2V5XSkpDQoJCQl7DQoJCQkJJHJlc3VsdFtdID0gJGl0ZW1bJGtleV07DQoJCQl9DQoJCQllbHNlaWYgKGlzX29iamVjdCgkaXRlbSkgJiYgIWVtcHR5KCRpdGVtLT57JGtleX0pKQ0KCQkJew0KCQkJCSRyZXN1bHRbXSA9ICRpdGVtLT57JGtleX07DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gKCRyZXN1bHQgPT09IFtdKSA/IG51bGwgOiAkcmVzdWx0Ow0KCX0NCg0KCS8qKg0KCSAqIEV4dHJhY3RzIGl0ZW1zIGZyb20gYW4gYXJyYXkgb2YgaXRlbXMgYmFzZWQgb24gYSBzZXQuDQoJICogSXRlbXMgY2FuIGJlIGVpdGhlciBhcnJheXMgb3Igb2JqZWN0cy4NCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgJGl0ZW1zICAgQXJyYXkgb2YgaXRlbXMgKGFycmF5cyBvciBvYmplY3RzKQ0KCSAqIEBwYXJhbSBhcnJheSAgJHNldAkgVGhlIHNldCB0byBtYXRjaCB2YWx1ZXMgYWdhaW5zdA0KCSAqIEBwYXJhbSBzdHJpbmcgJGtleQkgVGhlIGtleSBvZiB0aGUgc2V0IHZhbHVlcw0KCSAqIEBwYXJhbSBib29sICAgJGludmVyc2UgV2hldGhlciB0byBleHRyYWN0IGl0ZW1zIG5vdCBpbiB0aGUgc2V0DQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgRXh0cmFjdGVkIHZhbHVlcw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gZXh0cmFjdFNldChhcnJheSAkaXRlbXMsIGFycmF5ICRzZXQsIHN0cmluZyAka2V5LCBib29sICRpbnZlcnNlID0gZmFsc2UpOiA/YXJyYXkNCgl7DQoJCSRyZXN1bHQgPSBbXTsNCg0KCQlmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pDQoJCXsNCgkJCSR2YWx1ZSA9IGlzX2FycmF5KCRpdGVtKSA/ICgkaXRlbVska2V5XSA/PyBudWxsKSA6ICgkaXRlbS0+eyRrZXl9ID8/IG51bGwpOw0KDQoJCQlpZiAoJHZhbHVlICE9PSBudWxsKQ0KCQkJew0KCQkJCSRpblNldCA9IGluX2FycmF5KCR2YWx1ZSwgJHNldCk7DQoJCQkJaWYgKCgkaW5TZXQgJiYgISRpbnZlcnNlKSB8fCAoISRpblNldCAmJiAkaW52ZXJzZSkpDQoJCQkJew0KCQkJCQkkcmVzdWx0W10gPSBpc19hcnJheSgkaXRlbSkgPyAkaXRlbSA6IChhcnJheSkgJGl0ZW07IC8vIGNvbnZlcnQgYWxsIHRvIGFycmF5cw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXJldHVybiBlbXB0eSgkcmVzdWx0KSA/IG51bGwgOiAkcmVzdWx0Ow0KCX0=', '{}', '{}', '', 1, '2024-06-20 08:45:53', 22, '', 1),
@@ -2228,11 +2230,11 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t
(823, '5acded67-0e3d-4c6b-a6ea-b533b076de0c', 'VDM.Data.Guid', 'Guid', 'trait', 'Globally Unique Identifier\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Data.Guid', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFJldHVybnMgYSBHVUlEdjQgc3RyaW5nLg0KCSAqIA0KCSAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgYmVzdCBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgbWV0aG9kDQoJICogYXZhaWxhYmxlIG9uIHRoZSBwbGF0Zm9ybSB3aXRoIGEgZmFsbGJhY2sgdG8gYW4gb2xkZXIsIGxlc3Mgc2VjdXJlIHZlcnNpb24uDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRrZXkgVGhlIGtleSB0byBjaGVjayBhbmQgbW9kaWZ5IHZhbHVlcy4NCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nIEEgR1VJRHY0IHN0cmluZy4NCgkgKg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRHdWlkKHN0cmluZyAka2V5KTogc3RyaW5nDQoJew0KCQkvLyBXaW5kb3dzOiBVc2UgY29tX2NyZWF0ZV9ndWlkIGlmIGF2YWlsYWJsZQ0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdjb21fY3JlYXRlX2d1aWQnKSkNCgkJew0KCQkJJGd1aWQgPSB0cmltKFxjb21fY3JlYXRlX2d1aWQoKSwgJ3t9Jyk7DQoJCQlyZXR1cm4gJHRoaXMtPmNoZWNrR3VpZCgkZ3VpZCwgJGtleSk7DQoJCX0NCg0KCQkvLyBVbml4LWJhc2VkIHN5c3RlbXM6IFVzZSBvcGVuc3NsX3JhbmRvbV9wc2V1ZG9fYnl0ZXMgaWYgYXZhaWxhYmxlDQoJCWlmIChmdW5jdGlvbl9leGlzdHMoJ3JhbmRvbV9ieXRlcycpKQ0KCQl7DQoJCQl0cnkgew0KCQkJCSRkYXRhID0gcmFuZG9tX2J5dGVzKDE2KTsNCgkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgew0KCQkJCS8vIEhhbmRsZSB0aGUgZXJyb3IgYXBwcm9wcmlhdGVseSAobG9nZ2luZywgdGhyb3dpbmcsIGV0Yy4pDQoJCQkJcmV0dXJuICR0aGlzLT5mYWxsYmFja0d1aWQoJGtleSk7DQoJCQl9DQoNCgkJCS8vIFNldCB0aGUgdmVyc2lvbiB0byAwMTAwIGFuZCB0aGUgYml0cyA2LTcgdG8gMTAgYXMgcGVyIFJGQyA0MTIyDQoJCQkkZGF0YVs2XSA9IGNocihvcmQoJGRhdGFbNl0pICYgMHgwZiB8IDB4NDApOw0KCQkJJGRhdGFbOF0gPSBjaHIob3JkKCRkYXRhWzhdKSAmIDB4M2YgfCAweDgwKTsNCg0KCQkJJGd1aWQgPSB2c3ByaW50ZignJXMlcy0lcy0lcy0lcy0lcyVzJXMnLCBzdHJfc3BsaXQoYmluMmhleCgkZGF0YSksIDQpKTsNCgkJCXJldHVybiAkdGhpcy0+Y2hlY2tHdWlkKCRndWlkLCAka2V5KTsNCgkJfQ0KDQoJCS8vIEZhbGxiYWNrIHRvIG9sZGVyIG1ldGhvZHMgaWYgc2VjdXJlIG1ldGhvZHMgYXJlIG5vdCBhdmFpbGFibGUNCgkJcmV0dXJuICR0aGlzLT5mYWxsYmFja0d1aWQoJGtleSk7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgdGhlIEdsb2JhbGx5IFVuaXF1ZSBJZGVudGlmaWVyDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wNCgkgKiBAc2luY2UgIDUuMC40DQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZUd1aWQoJGd1aWQpDQoJew0KCQkvLyBjaGVjayBpZiB3ZSBoYXZlIGEgc3RyaW5nDQoJCWlmICghZW1wdHkoJGd1aWQpICYmIGlzX3N0cmluZygkZ3VpZCkpDQoJCXsNCgkJCXJldHVybiBwcmVnX21hdGNoKCIvXihceyk/W2EtZlxkXXs4fSgtW2EtZlxkXXs0fSl7NH1bYS1mXGRdezh9KD8oMSlcfSkkL2kiLCAkZ3VpZCk7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIEdlbmVyYXRlcyBhIGZhbGxiYWNrIEdVSUR2NCB1c2luZyBsZXNzIHNlY3VyZSBtZXRob2RzLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAka2V5IFRoZSBrZXkgdG8gY2hlY2sgYW5kIG1vZGlmeSB2YWx1ZXMuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyBBIEdVSUR2NCBzdHJpbmcuDQoJICoNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGZhbGxiYWNrR3VpZChzdHJpbmcgJGtleSk6IHN0cmluZw0KCXsNCgkJJGNoYXJpZCA9IHN0cnRvbG93ZXIobWQ1KHVuaXFpZChyYW5kb21faW50KDAsIFBIUF9JTlRfTUFYKSwgdHJ1ZSkpKTsNCgkJJGd1aWR2NCA9IHNwcmludGYoDQoJCQknJXMtJXMtJXMtJXMtJXMnLA0KCQkJc3Vic3RyKCRjaGFyaWQsICAwLCA4KSwNCgkJCXN1YnN0cigkY2hhcmlkLCAgOCwgNCksDQoJCQlzdWJzdHIoJGNoYXJpZCwgMTIsIDQpLA0KCQkJc3Vic3RyKCRjaGFyaWQsIDE2LCA0KSwNCgkJCXN1YnN0cigkY2hhcmlkLCAyMCwgMTIpDQoJCSk7DQoNCgkJcmV0dXJuICR0aGlzLT5jaGVja0d1aWQoJGd1aWR2NCwgJGtleSk7DQoJfQ0KDQoJLyoqDQoJICogQ2hlY2tzIGlmIHRoZSBHVUlEIHZhbHVlIGlzIHVuaXF1ZSBhbmQgZG9lcyBub3QgYWxyZWFkeSBleGlzdC4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgVGhlIEdVSUQgdmFsdWUgdG8gY2hlY2suDQoJICogQHBhcmFtIHN0cmluZyAka2V5ICBUaGUga2V5IHRvIGNoZWNrIGFuZCBtb2RpZnkgdmFsdWVzLg0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgVGhlIHVuaXF1ZSBHVUlEIHZhbHVlLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBjaGVja0d1aWQoc3RyaW5nICRndWlkLCBzdHJpbmcgJGtleSk6IHN0cmluZw0KCXsNCgkJLy8gQ2hlY2sgdGhhdCB0aGUgR1VJRCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0DQoJCWlmICgkdGhpcy0+aXRlbXMtPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+dmFsdWVzKFskZ3VpZF0sICRrZXkpKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmdldEd1aWQoJGtleSk7DQoJCX0NCg0KCQlyZXR1cm4gJGd1aWQ7DQoJfQ==', '{}', '{}', '', 1, '2024-09-02 00:08:44', 4, '', 1),
(824, '576685fd-263c-46bb-9fdc-1f5eb234cbb6', 'VDM.Interfaces.Data.GuidInterface', 'GuidInterface', 'interface', 'Globally Unique Identifier Interface\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Data.GuidInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFJldHVybnMgYSBHVUlEdjQgc3RyaW5nLg0KCSAqIA0KCSAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgYmVzdCBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgbWV0aG9kDQoJICogYXZhaWxhYmxlIG9uIHRoZSBwbGF0Zm9ybSB3aXRoIGEgZmFsbGJhY2sgdG8gYW4gb2xkZXIsIGxlc3Mgc2VjdXJlIHZlcnNpb24uDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRrZXkgVGhlIGtleSB0byBjaGVjayBhbmQgbW9kaWZ5IHZhbHVlcy4NCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nIEEgR1VJRHY0IHN0cmluZy4NCgkgKg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRHdWlkKHN0cmluZyAka2V5KTogc3RyaW5nOw==', '{}', '{}', '', 1, '2024-09-02 00:11:37', 3, '', 1),
(825, '1c10a5f1-204d-4f17-ad9f-0e0684f2030d', 'Joomla.Utilities.Exception.NoUserIdFoundException', 'NoUserIdFoundException', 'class', 'No User Id Found Exception\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', -1, '\\InvalidArgumentException', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Utilities.Exception.NoUserIdFoundException', '', '{}', '{}', '', '{}', '', '{}', '{}', '', 1, '2024-09-02 23:10:09', 1, '', 1),
-(831, '12a2a8de-a893-4dbb-a53d-b52de4f6cb0e', 'Joomla.File.Type', 'Type', 'final class', 'File Type Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Type', 1, '{}', '{}', 'dXNlIEpvb21sYVxGaWxlc3lzdGVtXFBhdGg7', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"}}', 'CS8qKg0KCSAqIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHZhciAgICBJdGVtDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEl0ZW0gJGl0ZW07DQoNCgkvKioNCgkgKiBUaGUgRmlsZSBUeXBlcw0KCSAqDQoJICogQHZhciAgICBhcnJheQ0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGZpbGVUeXBlcyA9IFsxID0+ICdpbWFnZScgLCAyID0+ICdkb2N1bWVudCcgLCAzID0+ICdtZWRpYScsIDQgPT4gJ2ZpbGUnXTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIEl0ZW0gICAkaXRlbSAgIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEl0ZW0gJGl0ZW0pDQoJew0KCQkkdGhpcy0+aXRlbSA9ICRpdGVtOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmlsZSB0eXBlIGRldGFpbHMgKGFqYXgpDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgdXNlZCBhcyB0aGUga2V5IHRvIHJldHJpZXZlIHRoZSBmaWxlIHR5cGUNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSBlbnRpdHkgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgICBUaGUgaXRlbSBvYmplY3QgaWYgZm91bmQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICRndWlkLCBzdHJpbmcgJHRhcmdldCk6ID9hcnJheQ0KCXsNCgkJaWYgKCgkZmlsZVR5cGUgPSAkdGhpcy0+ZGV0YWlscygkZ3VpZCkpICE9PSBudWxsICYmDQoJCQkkdGhpcy0+dmFsaWRUYXJnZXQoJGZpbGVUeXBlLCAkdGFyZ2V0KSkNCgkJew0KCQkJcmV0dXJuIFsNCgkJCQknbmFtZScgPT4gJHRoaXMtPmdldEZpZWxkTmFtZSgkZmlsZVR5cGUpLA0KCQkJCSdhbGxvdycgPT4gJHRoaXMtPmdldEFsbG93KCRmaWxlVHlwZSksDQoJCQkJJ2FsbG93X3NwYW4nID0+ICR0aGlzLT5nZXRBbGxvd1NwYW4oJGZpbGVUeXBlKSwNCgkJCQknZmlsZV90eXBlX3NwYW4nID0+ICRmaWxlVHlwZS0+bmFtZSA/PyAnZmlsZScsDQoJCQkJJ2Rpc3BsYXlfZmllbGRzJyA9PiAkZmlsZVR5cGUtPmRpc3BsYXlfZmllbGRzID8/IG51bGwsDQoJCQkJJ3BhcmFtX2ZpZWxkcycgPT4gJGZpbGVUeXBlLT5wYXJhbV9maWVsZHMgPz8gbnVsbCwNCgkJCV07DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgdGhlIGZpbGUgdHlwZSBkZXRhaWxzICh1cGxvYWQpDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgdXNlZCBhcyB0aGUga2V5IHRvIHJldHJpZXZlIHRoZSBmaWxlIHR5cGUNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSBlbnRpdHkgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgICBUaGUgaXRlbSBvYmplY3QgaWYgZm91bmQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBsb2FkKHN0cmluZyAkZ3VpZCwgc3RyaW5nICR0YXJnZXQpOiA/YXJyYXkNCgl7DQoJCWlmICgoJGZpbGVUeXBlID0gJHRoaXMtPmRldGFpbHMoJGd1aWQpKSAhPT0gbnVsbCAmJg0KCQkJJHRoaXMtPnZhbGlkVGFyZ2V0KCRmaWxlVHlwZSwgJHRhcmdldCkpDQoJCXsNCgkJCXJldHVybiBbDQoJCQkJJ25hbWUnID0+ICRmaWxlVHlwZS0+bmFtZSA/PyAnZmlsZXMnLA0KCQkJCSdhY2Nlc3MnID0+ICRmaWxlVHlwZS0+YWNjZXNzID8/IDEsDQoJCQkJJ2Rvd25sb2FkX2FjY2VzcycgPT4gJGZpbGVUeXBlLT5kb3dubG9hZF9hY2Nlc3MgPz8gMSwNCgkJCQknZmllbGQnID0+ICR0aGlzLT5nZXRGaWVsZE5hbWUoJGZpbGVUeXBlKSwNCgkJCQkndHlwZScgPT4gJHRoaXMtPmdldEZpZWxkTmFtZSgkZmlsZVR5cGUpLA0KCQkJCSdmb3JtYXRzJyA9PiAkdGhpcy0+Z2V0QWxsb3dGb3JtYXRzKCRmaWxlVHlwZSkgPz8gW10sDQoJCQkJJ2ZpbHRlcicgPT4gJGZpbGVUeXBlLT5maWx0ZXIgPz8gbnVsbCwNCgkJCQkncGF0aCcgPT4gJHRoaXMtPmdldEZpbGVUeXBlUGF0aCgkZmlsZVR5cGUpDQoJCQldOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIHRoZSBmaWxlIHR5cGUgZGV0YWlscw0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgdXNlZCBhcyB0aGUga2V5IHRvIHJldHJpZXZlIHRoZSBmaWxlIHR5cGUuDQoJICoNCgkgKiBAcmV0dXJuIG9iamVjdHxudWxsICAgVGhlIGl0ZW0gb2JqZWN0IGlmIGZvdW5kLCBvciBudWxsIGlmIHRoZSBpdGVtIGRvZXMgbm90IGV4aXN0Lg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZGV0YWlscyhzdHJpbmcgJGd1aWQpOiA/b2JqZWN0DQoJew0KCQlyZXR1cm4gJHRoaXMtPml0ZW0tPnRhYmxlKCdmaWxlX3R5cGUnKS0+Z2V0KCRndWlkKTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZCBpZiB0aGlzIGlzIGEgY29ycmVjdCB0YXJnZXQgdHJ5aW5nIHRvIGNhbGwgdGhpcyBmaWxlIHR5cGUNCgkgKg0KCSAqIEBwYXJhbSBvYmplY3QgICRkYXRhICAgVGhlIHR5cGUgZGF0YSBhcnJheQ0KCSAqIEBwYXJhbSBzdHJpbmcgICR0YXJnZXQgVGhlIGVudGl0eSB0YXJnZXQgbmFtZS4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCAgIFRydWUgaWYgdmFsaWQgdGFyZ2V0DQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiB2YWxpZFRhcmdldChvYmplY3QgJGRhdGEsIHN0cmluZyAkdGFyZ2V0KTogYm9vbA0KCXsNCgkJJHRhcmdldHMgPSAkZGF0YS0+dGFyZ2V0ID8/IG51bGw7DQoJCWlmICghZW1wdHkoJHRhcmdldHMpKQ0KCQl7DQoJCQkkdGFyZ2V0cyA9IChhcnJheSkgJHRhcmdldHM7DQoJCQlyZXR1cm4gaW5fYXJyYXkoJHRhcmdldCwgJHRhcmdldHMpOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmllbGQgbmFtZQ0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAgJGRhdGEgICBUaGUgdHlwZSBkYXRhIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAgIFRoZSBmaWVsZCBuYW1lDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWVsZE5hbWUob2JqZWN0ICRkYXRhKTogc3RyaW5nDQoJew0KCQkkdHlwZSA9ICRkYXRhLT50eXBlID8/IDQ7DQoJCWlmIChpc3NldCgkdGhpcy0+ZmlsZVR5cGVzWyR0eXBlXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZmlsZVR5cGVzWyR0eXBlXTsNCgkJfQ0KCQlyZXR1cm4gJ2ZpbGUnOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgYWxsb3cgZm9ybWF0cyAoZm9yIHNjcmlwdCkNCgkgKg0KCSAqIEBwYXJhbSBvYmplY3QgICRkYXRhICAgVGhlIHR5cGUgZGF0YSBhcnJheQ0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgICBUaGUgYWxsb3cgdmFsdWVzDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRBbGxvdyhvYmplY3QgJGRhdGEpOiBzdHJpbmcNCgl7DQoJCSRmb3JtYXRzID0gJHRoaXMtPmdldEFsbG93Rm9ybWF0cygkZGF0YSk7DQoJCWlmICghZW1wdHkoJGZvcm1hdHMpKQ0KCQl7DQoJCQlyZXR1cm4gJyouKCcgLiBpbXBsb2RlKCd8JywgJGZvcm1hdHMpIC4gJyknOw0KCQl9DQoJCXJldHVybiAnJzsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgdGhlIGFsbG93IGZvcm1hdHMgKGZvciBzcGFuKQ0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAgJGRhdGEgICBUaGUgdHlwZSBkYXRhIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAgIFRoZSBhbGxvdyB2YWx1ZXMNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEFsbG93U3BhbihvYmplY3QgJGRhdGEpOiBzdHJpbmcNCgl7DQoJCSRmb3JtYXRzID0gJHRoaXMtPmdldEFsbG93Rm9ybWF0cygkZGF0YSk7DQoJCWlmICghZW1wdHkoJGZvcm1hdHMpKQ0KCQl7DQoJCQlyZXR1cm4gJyhmb3JtYXRzIGFsbG93ZWQ6IDxiPicgLiBpbXBsb2RlKCcsICcsICRmb3JtYXRzKSAuICc8L2I+KSc7DQoJCX0NCgkJcmV0dXJuICcnOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgYWxsb3cgZm9ybWF0cw0KCSAqDQoJICogQHBhcmFtIG9iamVjdHxudWxsICAkZGF0YSAgIFRoZSB0eXBlIGRhdGEgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXl8bnVsbCAgIFRoZSBhbGxvdyB2YWx1ZXMNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEFsbG93Rm9ybWF0cyhvYmplY3QgJGRhdGEpOiA/YXJyYXkNCgl7DQoJCSR0eXBlID0gJGRhdGEtPnR5cGUgPz8gNDsNCgkJc3dpdGNoICgkdHlwZSkNCgkJew0KCQkJY2FzZSAxOg0KCQkJCSRmb3JtYXRzID0gJGRhdGEtPmltYWdlX2Zvcm1hdHMgPz8gbnVsbDsNCgkJCWJyZWFrOw0KCQkJY2FzZSAyOg0KCQkJCSRmb3JtYXRzID0gJGRhdGEtPmRvY3VtZW50X2Zvcm1hdHMgPz8gbnVsbDsNCgkJCWJyZWFrOw0KCQkJY2FzZSAzOg0KCQkJCSRmb3JtYXRzID0gJGRhdGEtPm1lZGlhX2Zvcm1hdHMgPz8gbnVsbDsNCgkJCWJyZWFrOw0KCQkJZGVmYXVsdDoNCgkJCQkkZm9ybWF0cyA9ICRkYXRhLT5maWxlX2Zvcm1hdHMgPz8gbnVsbDsNCgkJCWJyZWFrOw0KCQl9DQoNCgkJaWYgKCRmb3JtYXRzKQ0KCQl7DQoJCQlyZXR1cm4gKGFycmF5KSAkZm9ybWF0czsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmlsZSB0eXBlIHBhdGggYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4NCgkgKg0KCSAqIFBlcmZvcm1zIHNhZmV0eSBjaGVja3MgYW5kIHJldHVybnMgZWl0aGVyIGEgY2xlYW5lZCBwYXRoIGlmIGl0IGV4aXN0cw0KCSAqIGFuZCBpcyBhIHdyaXRhYmxlIGRpcmVjdG9yeSwgb3IgY29uc3RydWN0cyBhIHJlbGF0aXZlIHBhdGggdG8gdGhlICdpbWFnZXMnIGZvbGRlcg0KCSAqIGJhc2VkIG9uIHRoZSBsYXN0IGZvbGRlciBuYW1lIGZyb20gdGhlIGdpdmVuIHBhdGguDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICAkZGF0YSAgVGhlIHR5cGUgZGF0YSBvYmplY3QgY29udGFpbmluZyBwYXRoIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBzdHJpbmd8bnVsbCBSZXR1cm5zIHRoZSBjbGVhbmVkIGZpbGUgcGF0aCBvciBudWxsIGlmIG5vIHZhbGlkIHBhdGggaXMgZm91bmQuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlVHlwZVBhdGgob2JqZWN0ICRkYXRhKTogP3N0cmluZw0KCXsNCgkJLy8gVmFsaWRhdGUgdGhlIHByb3ZpZGVkIHBhdGggZGF0YQ0KCQkkcGF0aCA9IGlzc2V0KCRkYXRhLT5wYXRoKSAmJiBpc19zdHJpbmcoJGRhdGEtPnBhdGgpICYmIHRyaW0oJGRhdGEtPnBhdGgpICE9PSAnJyA/DQoJCQlQYXRoOjpjbGVhbih0cmltKCRkYXRhLT5wYXRoKSkgOiBudWxsOw0KDQoJCS8vIFJldHVybiB0aGUgcGF0aCBpZiBpdCdzIGEgdmFsaWQgZGlyZWN0b3J5IGFuZCB3cml0YWJsZQ0KCQlpZiAoJHBhdGggIT09IG51bGwgJiYgaXNfZGlyKCRwYXRoKSAmJiBpc193cml0YWJsZSgkcGF0aCkpDQoJCXsNCgkJCXJldHVybiAkcGF0aDsNCgkJfQ0KDQoJCS8vIElmIG5vIHZhbGlkIHBhdGggaXMgZm91bmQsIHRyeSB0byBkZXJpdmUgYSByZWxhdGl2ZSBwYXRoIGZyb20gdGhlICdpbWFnZXMnIGZvbGRlcg0KCQlpZiAoJHBhdGggIT09IG51bGwgJiYgKCRmb2xkZXIgPSAkdGhpcy0+Z2V0TGFzdEZvbGRlck5hbWUoJHBhdGgpKSAhPT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIEpQQVRIX1NJVEUgLiAnL2ltYWdlcy8nIC4gJGZvbGRlcjsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIFJlY3Vyc2l2ZWx5IHJldHJpZXZlcyB0aGUgbGFzdCBmb2xkZXIgbmFtZSBmcm9tIGEgZ2l2ZW4gcGF0aCwgaWdub3JpbmcgYW55IGZpbGUgbmFtZXMuDQoJICogSWYgdGhlIGxhc3QgcGFydCBvZiB0aGUgcGF0aCBjb250YWlucyBhIGRvdCAoaW5kaWNhdGluZyBhIGZpbGUpLCBpdCBtb3ZlcyB1cCB0aGUgZGlyZWN0b3J5IHRyZWUNCgkgKiB1bnRpbCBpdCBmaW5kcyBhIHZhbGlkIGZvbGRlciBuYW1lLiBSZXR1cm5zIG51bGwgaWYgbm8gdmFsaWQgZm9sZGVyIGlzIGZvdW5kLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkcGF0aCBUaGUgZmlsZSBzeXN0ZW0gcGF0aCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGxhc3QgZm9sZGVyIG5hbWUuDQoJICogDQoJICogQHJldHVybiBzdHJpbmd8bnVsbCBSZXR1cm5zIHRoZSBsYXN0IGZvbGRlciBuYW1lIGlmIGZvdW5kLCBvciBudWxsIGlmIG5vIHZhbGlkIGZvbGRlciBleGlzdHMuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRMYXN0Rm9sZGVyTmFtZShzdHJpbmcgJHBhdGgpOiA/c3RyaW5nDQoJew0KCQkvLyBSZW1vdmUgYW55IHRyYWlsaW5nIHNsYXNoZXMgdG8gYXZvaWQgYW4gZW1wdHkgcmVzdWx0DQoJCSRwYXRoID0gcnRyaW0oJHBhdGgsICcvXFwnKTsNCg0KCQkvLyBJZiB0aGUgcGF0aCBiZWNvbWVzIGVtcHR5LCByZXR1cm4gbnVsbCAoYmFzZSBjYXNlKQ0KCQlpZiAoZW1wdHkoJHBhdGgpKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIEdldCB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBwYXRoDQoJCSRsYXN0UGFydCA9IGJhc2VuYW1lKCRwYXRoKTsNCg0KCQkvLyBJZiB0aGUgbGFzdCBwYXJ0IGNvbnRhaW5zIGEgZG90IChhbmQgaXQncyBub3QgYSBoaWRkZW4gZm9sZGVyKSwgbW92ZSB1cCB0aGUgZGlyZWN0b3J5IHRyZWUNCgkJaWYgKHN0cnBvcygkbGFzdFBhcnQsICcuJykgPiAwKQ0KCQl7DQoJCQkvLyBJZiBpdCBjb250YWlucyBhIGRvdCwgdHJlYXQgaXQgYXMgYSBmaWxlIGFuZCBtb3ZlIHVwIG9uZSBsZXZlbA0KCQkJcmV0dXJuICR0aGlzLT5nZXRMYXN0Rm9sZGVyTmFtZShkaXJuYW1lKCRwYXRoKSk7DQoJCX0NCg0KCQkvLyBSZXR1cm4gdGhlIGxhc3QgZm9sZGVyIG5hbWUgKGlmIGl0J3MgdmFsaWQgYW5kIG5vdCBhIGZpbGUpDQoJCXJldHVybiAkbGFzdFBhcnQ7DQoJfQ==', '{}', '{}', '', 1, '2024-09-10 02:09:28', 26, '', 1),
+(831, '12a2a8de-a893-4dbb-a53d-b52de4f6cb0e', 'Joomla.File.Type', 'Type', 'final class', 'File Type Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Type', 1, '{}', '{}', 'dXNlIEpvb21sYVxGaWxlc3lzdGVtXFBhdGg7', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"}}', 'CS8qKg0KCSAqIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHZhciAgICBJdGVtDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEl0ZW0gJGl0ZW07DQoNCgkvKioNCgkgKiBUaGUgRmlsZSBUeXBlcw0KCSAqDQoJICogQHZhciAgICBhcnJheQ0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGZpbGVUeXBlcyA9IFsxID0+ICdpbWFnZScgLCAyID0+ICdkb2N1bWVudCcgLCAzID0+ICdtZWRpYScsIDQgPT4gJ2ZpbGUnXTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIEl0ZW0gICAkaXRlbSAgIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEl0ZW0gJGl0ZW0pDQoJew0KCQkkdGhpcy0+aXRlbSA9ICRpdGVtOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmlsZSB0eXBlIGRldGFpbHMgKGFqYXgpDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgdXNlZCBhcyB0aGUga2V5IHRvIHJldHJpZXZlIHRoZSBmaWxlIHR5cGUNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSBlbnRpdHkgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgICBUaGUgaXRlbSBvYmplY3QgaWYgZm91bmQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICRndWlkLCBzdHJpbmcgJHRhcmdldCk6ID9hcnJheQ0KCXsNCgkJaWYgKCgkZmlsZVR5cGUgPSAkdGhpcy0+ZGV0YWlscygkZ3VpZCkpICE9PSBudWxsICYmDQoJCQkkdGhpcy0+dmFsaWRUYXJnZXQoJGZpbGVUeXBlLCAkdGFyZ2V0KSkNCgkJew0KCQkJcmV0dXJuIFsNCgkJCQknbmFtZScgPT4gJHRoaXMtPmdldEZpZWxkTmFtZSgkZmlsZVR5cGUpLA0KCQkJCSdhbGxvdycgPT4gJHRoaXMtPmdldEFsbG93KCRmaWxlVHlwZSksDQoJCQkJJ2FsbG93X3NwYW4nID0+ICR0aGlzLT5nZXRBbGxvd1NwYW4oJGZpbGVUeXBlKSwNCgkJCQknZmlsZV90eXBlX3NwYW4nID0+ICRmaWxlVHlwZS0+bmFtZSA/PyAnZmlsZScsDQoJCQkJJ2Rpc3BsYXlfZmllbGRzJyA9PiAkZmlsZVR5cGUtPmRpc3BsYXlfZmllbGRzID8/IG51bGwsDQoJCQkJJ3BhcmFtX2ZpZWxkcycgPT4gJGZpbGVUeXBlLT5wYXJhbV9maWVsZHMgPz8gbnVsbCwNCgkJCV07DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgdGhlIGZpbGUgdHlwZSBkZXRhaWxzICh1cGxvYWQpDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgdXNlZCBhcyB0aGUga2V5IHRvIHJldHJpZXZlIHRoZSBmaWxlIHR5cGUNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSBlbnRpdHkgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgICBUaGUgaXRlbSBvYmplY3QgaWYgZm91bmQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBsb2FkKHN0cmluZyAkZ3VpZCwgc3RyaW5nICR0YXJnZXQpOiA/YXJyYXkNCgl7DQoJCWlmICgoJGZpbGVUeXBlID0gJHRoaXMtPmRldGFpbHMoJGd1aWQpKSAhPT0gbnVsbCAmJg0KCQkJJHRoaXMtPnZhbGlkVGFyZ2V0KCRmaWxlVHlwZSwgJHRhcmdldCkpDQoJCXsNCgkJCXJldHVybiBbDQoJCQkJJ25hbWUnID0+ICRmaWxlVHlwZS0+bmFtZSA/PyAnZmlsZXMnLA0KCQkJCSdhY2Nlc3MnID0+ICRmaWxlVHlwZS0+YWNjZXNzID8/IDEsDQoJCQkJJ2Rvd25sb2FkX2FjY2VzcycgPT4gJGZpbGVUeXBlLT5kb3dubG9hZF9hY2Nlc3MgPz8gMSwNCgkJCQknZmllbGQnID0+ICR0aGlzLT5nZXRGaWVsZE5hbWUoJGZpbGVUeXBlKSwNCgkJCQkndHlwZScgPT4gJHRoaXMtPmdldEZpZWxkTmFtZSgkZmlsZVR5cGUpLA0KCQkJCSdmb3JtYXRzJyA9PiAkdGhpcy0+Z2V0QWxsb3dGb3JtYXRzKCRmaWxlVHlwZSkgPz8gW10sDQoJCQkJJ2ZpbHRlcicgPT4gJGZpbGVUeXBlLT5maWx0ZXIgPz8gbnVsbCwNCgkJCQkncGF0aCcgPT4gJHRoaXMtPmdldEZpbGVUeXBlUGF0aCgkZmlsZVR5cGUpLA0KCQkJCSdjcm9wJyA9PiAkdGhpcy0+Z2V0Q3JvcERldGFpbHMoJGZpbGVUeXBlKQ0KCQkJXTsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmlsZSB0eXBlIGRldGFpbHMNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICBUaGUgR1VJRCAoR2xvYmFsbHkgVW5pcXVlIElkZW50aWZpZXIpIHVzZWQgYXMgdGhlIGtleSB0byByZXRyaWV2ZSB0aGUgZmlsZSB0eXBlLg0KCSAqDQoJICogQHJldHVybiBvYmplY3R8bnVsbCAgIFRoZSBpdGVtIG9iamVjdCBpZiBmb3VuZCwgb3IgbnVsbCBpZiB0aGUgaXRlbSBkb2VzIG5vdCBleGlzdC4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGRldGFpbHMoc3RyaW5nICRndWlkKTogP29iamVjdA0KCXsNCgkJcmV0dXJuICR0aGlzLT5pdGVtLT50YWJsZSgnZmlsZV90eXBlJyktPmdldCgkZ3VpZCk7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWQgaWYgdGhpcyBpcyBhIGNvcnJlY3QgdGFyZ2V0IHRyeWluZyB0byBjYWxsIHRoaXMgZmlsZSB0eXBlDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICAkZGF0YSAgIFRoZSB0eXBlIGRhdGEgYXJyYXkNCgkgKiBAcGFyYW0gc3RyaW5nICAkdGFyZ2V0IFRoZSBlbnRpdHkgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgICBUcnVlIGlmIHZhbGlkIHRhcmdldA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRUYXJnZXQob2JqZWN0ICRkYXRhLCBzdHJpbmcgJHRhcmdldCk6IGJvb2wNCgl7DQoJCSR0YXJnZXRzID0gJGRhdGEtPnRhcmdldCA/PyBudWxsOw0KCQlpZiAoIWVtcHR5KCR0YXJnZXRzKSkNCgkJew0KCQkJJHRhcmdldHMgPSAoYXJyYXkpICR0YXJnZXRzOw0KCQkJcmV0dXJuIGluX2FycmF5KCR0YXJnZXQsICR0YXJnZXRzKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgdGhlIGZpZWxkIG5hbWUNCgkgKg0KCSAqIEBwYXJhbSBvYmplY3QgICRkYXRhICAgVGhlIHR5cGUgZGF0YSBhcnJheQ0KCSAqDQoJICogQHJldHVybiBzdHJpbmcgICBUaGUgZmllbGQgbmFtZQ0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0RmllbGROYW1lKG9iamVjdCAkZGF0YSk6IHN0cmluZw0KCXsNCgkJJHR5cGUgPSAkZGF0YS0+dHlwZSA/PyA0Ow0KCQlpZiAoaXNzZXQoJHRoaXMtPmZpbGVUeXBlc1skdHlwZV0pKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmZpbGVUeXBlc1skdHlwZV07DQoJCX0NCgkJcmV0dXJuICdmaWxlJzsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgdGhlIGltYWdlIGNyb3AgZGV0YWlscyBpZiBzZXQuDQoJICoNCgkgKiBFbnN1cmVzIHRoZSByZXR1cm5lZCBzdHJ1Y3R1cmUgaXMgYWx3YXlzIGFuIGFycmF5IG9mIGFycmF5cywNCgkgKiBjb252ZXJ0aW5nIGFueSBzdGRDbGFzcyB0byBhcnJheSByZWN1cnNpdmVseS4NCgkgKg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgJGRhdGEgIFRoZSB0eXBlIGRhdGEgb2JqZWN0Lg0KCSAqDQoJICogQHJldHVybiAgYXJyYXkgIFRoZSBpbWFnZSBjcm9wIGRldGFpbHMuDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0Q3JvcERldGFpbHMob2JqZWN0ICRkYXRhKTogYXJyYXkNCgl7DQoJCWlmICgoJGRhdGEtPnR5cGUgPz8gMCkgIT09IDEgfHwgZW1wdHkoJGRhdGEtPmNyb3ApKQ0KCQl7DQoJCQlyZXR1cm4gW107DQoJCX0NCg0KCQkvLyBVc2UgbmF0aXZlIEpTT04gbWV0aG9kIHRvIGRlZXBseSBjb252ZXJ0IHN0ZENsYXNzIOKGkiBhcnJheQ0KCQkkY3JvcCA9IGpzb25fZGVjb2RlKGpzb25fZW5jb2RlKCRkYXRhLT5jcm9wKSwgdHJ1ZSkgPz8gW107DQoNCgkJcmV0dXJuIGFycmF5X3ZhbHVlcygkY3JvcCk7DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIHRoZSBhbGxvdyBmb3JtYXRzIChmb3Igc2NyaXB0KQ0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAgJGRhdGEgICBUaGUgdHlwZSBkYXRhIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAgIFRoZSBhbGxvdyB2YWx1ZXMNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEFsbG93KG9iamVjdCAkZGF0YSk6IHN0cmluZw0KCXsNCgkJJGZvcm1hdHMgPSAkdGhpcy0+Z2V0QWxsb3dGb3JtYXRzKCRkYXRhKTsNCgkJaWYgKCFlbXB0eSgkZm9ybWF0cykpDQoJCXsNCgkJCXJldHVybiAnKi4oJyAuIGltcGxvZGUoJ3wnLCAkZm9ybWF0cykgLiAnKSc7DQoJCX0NCgkJcmV0dXJuICcnOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgYWxsb3cgZm9ybWF0cyAoZm9yIHNwYW4pDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICAkZGF0YSAgIFRoZSB0eXBlIGRhdGEgYXJyYXkNCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nICAgVGhlIGFsbG93IHZhbHVlcw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QWxsb3dTcGFuKG9iamVjdCAkZGF0YSk6IHN0cmluZw0KCXsNCgkJJGZvcm1hdHMgPSAkdGhpcy0+Z2V0QWxsb3dGb3JtYXRzKCRkYXRhKTsNCgkJaWYgKCFlbXB0eSgkZm9ybWF0cykpDQoJCXsNCgkJCXJldHVybiAnKGZvcm1hdHMgYWxsb3dlZDogPGI+JyAuIGltcGxvZGUoJywgJywgJGZvcm1hdHMpIC4gJzwvYj4pJzsNCgkJfQ0KCQlyZXR1cm4gJyc7DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIHRoZSBhbGxvdyBmb3JtYXRzDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0fG51bGwgICRkYXRhICAgVGhlIHR5cGUgZGF0YSBhcnJheQ0KCSAqDQoJICogQHJldHVybiBhcnJheXxudWxsICAgVGhlIGFsbG93IHZhbHVlcw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QWxsb3dGb3JtYXRzKG9iamVjdCAkZGF0YSk6ID9hcnJheQ0KCXsNCgkJJHR5cGUgPSAkZGF0YS0+dHlwZSA/PyA0Ow0KCQlzd2l0Y2ggKCR0eXBlKQ0KCQl7DQoJCQljYXNlIDE6DQoJCQkJJGZvcm1hdHMgPSAkZGF0YS0+aW1hZ2VfZm9ybWF0cyA/PyBudWxsOw0KCQkJYnJlYWs7DQoJCQljYXNlIDI6DQoJCQkJJGZvcm1hdHMgPSAkZGF0YS0+ZG9jdW1lbnRfZm9ybWF0cyA/PyBudWxsOw0KCQkJYnJlYWs7DQoJCQljYXNlIDM6DQoJCQkJJGZvcm1hdHMgPSAkZGF0YS0+bWVkaWFfZm9ybWF0cyA/PyBudWxsOw0KCQkJYnJlYWs7DQoJCQlkZWZhdWx0Og0KCQkJCSRmb3JtYXRzID0gJGRhdGEtPmZpbGVfZm9ybWF0cyA/PyBudWxsOw0KCQkJYnJlYWs7DQoJCX0NCg0KCQlpZiAoJGZvcm1hdHMpDQoJCXsNCgkJCXJldHVybiAoYXJyYXkpICRmb3JtYXRzOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIHRoZSBmaWxlIHR5cGUgcGF0aCBiYXNlZCBvbiBwcm92aWRlZCBkYXRhLg0KCSAqDQoJICogUGVyZm9ybXMgc2FmZXR5IGNoZWNrcyBhbmQgcmV0dXJucyBlaXRoZXIgYSBjbGVhbmVkIHBhdGggaWYgaXQgZXhpc3RzDQoJICogYW5kIGlzIGEgd3JpdGFibGUgZGlyZWN0b3J5LCBvciBjb25zdHJ1Y3RzIGEgcmVsYXRpdmUgcGF0aCB0byB0aGUgJ2ltYWdlcycgZm9sZGVyDQoJICogYmFzZWQgb24gdGhlIGxhc3QgZm9sZGVyIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gcGF0aC4NCgkgKg0KCSAqIEBwYXJhbSBvYmplY3QgICRkYXRhICBUaGUgdHlwZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHBhdGggaW5mb3JtYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFJldHVybnMgdGhlIGNsZWFuZWQgZmlsZSBwYXRoIG9yIG51bGwgaWYgbm8gdmFsaWQgcGF0aCBpcyBmb3VuZC4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEZpbGVUeXBlUGF0aChvYmplY3QgJGRhdGEpOiA/c3RyaW5nDQoJew0KCQkvLyBWYWxpZGF0ZSB0aGUgcHJvdmlkZWQgcGF0aCBkYXRhDQoJCSRwYXRoID0gaXNzZXQoJGRhdGEtPnBhdGgpICYmIGlzX3N0cmluZygkZGF0YS0+cGF0aCkgJiYgdHJpbSgkZGF0YS0+cGF0aCkgIT09ICcnID8NCgkJCVBhdGg6OmNsZWFuKHRyaW0oJGRhdGEtPnBhdGgpKSA6IG51bGw7DQoNCgkJLy8gUmV0dXJuIHRoZSBwYXRoIGlmIGl0J3MgYSB2YWxpZCBkaXJlY3RvcnkgYW5kIHdyaXRhYmxlDQoJCWlmICgkcGF0aCAhPT0gbnVsbCAmJiBpc19kaXIoJHBhdGgpICYmIGlzX3dyaXRhYmxlKCRwYXRoKSkNCgkJew0KCQkJcmV0dXJuICRwYXRoOw0KCQl9DQoNCgkJLy8gSWYgbm8gdmFsaWQgcGF0aCBpcyBmb3VuZCwgdHJ5IHRvIGRlcml2ZSBhIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgJ2ltYWdlcycgZm9sZGVyDQoJCWlmICgkcGF0aCAhPT0gbnVsbCAmJiAoJGZvbGRlciA9ICR0aGlzLT5nZXRMYXN0Rm9sZGVyTmFtZSgkcGF0aCkpICE9PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gSlBBVEhfU0lURSAuICcvaW1hZ2VzLycgLiAkZm9sZGVyOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogUmVjdXJzaXZlbHkgcmV0cmlldmVzIHRoZSBsYXN0IGZvbGRlciBuYW1lIGZyb20gYSBnaXZlbiBwYXRoLCBpZ25vcmluZyBhbnkgZmlsZSBuYW1lcy4NCgkgKiBJZiB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBwYXRoIGNvbnRhaW5zIGEgZG90IChpbmRpY2F0aW5nIGEgZmlsZSksIGl0IG1vdmVzIHVwIHRoZSBkaXJlY3RvcnkgdHJlZQ0KCSAqIHVudGlsIGl0IGZpbmRzIGEgdmFsaWQgZm9sZGVyIG5hbWUuIFJldHVybnMgbnVsbCBpZiBubyB2YWxpZCBmb2xkZXIgaXMgZm91bmQuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFRoZSBmaWxlIHN5c3RlbSBwYXRoIGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgbGFzdCBmb2xkZXIgbmFtZS4NCgkgKiANCgkgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFJldHVybnMgdGhlIGxhc3QgZm9sZGVyIG5hbWUgaWYgZm91bmQsIG9yIG51bGwgaWYgbm8gdmFsaWQgZm9sZGVyIGV4aXN0cy4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGZ1bmN0aW9uIGdldExhc3RGb2xkZXJOYW1lKHN0cmluZyAkcGF0aCk6ID9zdHJpbmcNCgl7DQoJCS8vIFJlbW92ZSBhbnkgdHJhaWxpbmcgc2xhc2hlcyB0byBhdm9pZCBhbiBlbXB0eSByZXN1bHQNCgkJJHBhdGggPSBydHJpbSgkcGF0aCwgJy9cXCcpOw0KDQoJCS8vIElmIHRoZSBwYXRoIGJlY29tZXMgZW1wdHksIHJldHVybiBudWxsIChiYXNlIGNhc2UpDQoJCWlmIChlbXB0eSgkcGF0aCkpDQoJCXsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gR2V0IHRoZSBsYXN0IHBhcnQgb2YgdGhlIHBhdGgNCgkJJGxhc3RQYXJ0ID0gYmFzZW5hbWUoJHBhdGgpOw0KDQoJCS8vIElmIHRoZSBsYXN0IHBhcnQgY29udGFpbnMgYSBkb3QgKGFuZCBpdCdzIG5vdCBhIGhpZGRlbiBmb2xkZXIpLCBtb3ZlIHVwIHRoZSBkaXJlY3RvcnkgdHJlZQ0KCQlpZiAoc3RycG9zKCRsYXN0UGFydCwgJy4nKSA+IDApDQoJCXsNCgkJCS8vIElmIGl0IGNvbnRhaW5zIGEgZG90LCB0cmVhdCBpdCBhcyBhIGZpbGUgYW5kIG1vdmUgdXAgb25lIGxldmVsDQoJCQlyZXR1cm4gJHRoaXMtPmdldExhc3RGb2xkZXJOYW1lKGRpcm5hbWUoJHBhdGgpKTsNCgkJfQ0KDQoJCS8vIFJldHVybiB0aGUgbGFzdCBmb2xkZXIgbmFtZSAoaWYgaXQncyB2YWxpZCBhbmQgbm90IGEgZmlsZSkNCgkJcmV0dXJuICRsYXN0UGFydDsNCgl9', '{}', '{}', '', 1, '2024-09-10 02:09:28', 29, '', 1),
(832, '884eca78-281f-4eab-b962-d97e355af16d', 'JCB.File.Factory', 'Factory', 'abstract class', 'File Factory\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '2e5bf608-de5c-4b00-a20d-47c26aa350d9', '', '', '', '{\"0\":\"caf33c5d-858c-4f9a-894f-ab302ec5445a\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Factory', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7', '{\"use_selection0\":{\"use\":\"19b2ba92-1655-4384-acfb-979c80de8b6d\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"4815e1c7-a433-443d-a112-d1e03d7df84b\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"2dcedd6c-c95b-4a37-9cac-95d28faedca3\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"a5daf189-3345-4b13-8716-c51f686f545b\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"202ccd9e-dfcf-4cde-a0ce-bde1fd27f088\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFBhY2thZ2UgQ29udGFpbmVyDQoJICoNCgkgKiBAdmFyICAgQ29udGFpbmVyfG51bGwNCgkgKiBAc2luY2UgNS4wLjMNCgkgKiovDQoJcHJvdGVjdGVkIHN0YXRpYyA/Q29udGFpbmVyICRjb250YWluZXIgPSBudWxsOw0KDQoJLyoqDQoJICogQ3JlYXRlIGEgY29udGFpbmVyIG9iamVjdA0KCSAqDQoJICogQHJldHVybiAgQ29udGFpbmVyDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVDb250YWluZXIoKTogQ29udGFpbmVyDQoJew0KCQlyZXR1cm4gKG5ldyBDb250YWluZXIoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IFRhYmxlKCkpDQoJCQktPnJlZ2lzdGVyU2VydmljZVByb3ZpZGVyKG5ldyBEYXRhYmFzZSgpKQ0KCQkJLT5yZWdpc3RlclNlcnZpY2VQcm92aWRlcihuZXcgTW9kZWwoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IERhdGEoKSkNCgkJCS0+cmVnaXN0ZXJTZXJ2aWNlUHJvdmlkZXIobmV3IEZpbGUoKSk7DQoJfQ==', '{}', '{}', '', 1, '2024-09-11 00:18:52', 7, '', 1),
-(833, '202ccd9e-dfcf-4cde-a0ce-bde1fd27f088', 'JCB.File.Service.File', 'File', 'class', 'File Service Provider\r\n\r\n@since 5.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Service.File', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"12a2a8de-a893-4dbb-a53d-b52de4f6cb0e\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"4144ad3b-2ad5-401f-af0c-a3d856c1e688\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"67a5e0ca-0ff0-4979-9b41-da0b09988016\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"d46c4667-378b-49e8-9782-ffb28d92415a\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKFR5cGU6OmNsYXNzLCAnRmlsZS5UeXBlJykNCgkJCS0+c2hhcmUoJ0ZpbGUuVHlwZScsIFskdGhpcywgJ2dldFR5cGUnXSwgdHJ1ZSk7DQoNCgkJJGNvbnRhaW5lci0+YWxpYXMoSGFuZGxlcjo6Y2xhc3MsICdGaWxlLkhhbmRsZXInKQ0KCQkJLT5zaGFyZSgnRmlsZS5IYW5kbGVyJywgWyR0aGlzLCAnZ2V0SGFuZGxlciddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhNYW5hZ2VyOjpjbGFzcywgJ0ZpbGUuTWFuYWdlcicpDQoJCQktPnNoYXJlKCdGaWxlLk1hbmFnZXInLCBbJHRoaXMsICdnZXRNYW5hZ2VyJ10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKERpc3BsYXk6OmNsYXNzLCAnRmlsZS5EaXNwbGF5JykNCgkJCS0+c2hhcmUoJ0ZpbGUuRGlzcGxheScsIFskdGhpcywgJ2dldERpc3BsYXknXSwgdHJ1ZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBUeXBlIENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgVHlwZQ0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUeXBlKENvbnRhaW5lciAkY29udGFpbmVyKTogVHlwZQ0KCXsNCgkJcmV0dXJuIG5ldyBUeXBlKA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdEYXRhLkl0ZW0nKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgSGFuZGxlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIEhhbmRsZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SGFuZGxlcihDb250YWluZXIgJGNvbnRhaW5lcik6IEhhbmRsZXINCgl7DQoJCXJldHVybiBuZXcgSGFuZGxlcigpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgTWFuYWdlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIE1hbmFnZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0TWFuYWdlcihDb250YWluZXIgJGNvbnRhaW5lcik6IE1hbmFnZXINCgl7DQoJCXJldHVybiBuZXcgTWFuYWdlcigNCgkJCSRjb250YWluZXItPmdldCgnRGF0YS5JdGVtJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSXRlbXMnKSwNCgkJCSRjb250YWluZXItPmdldCgnRmlsZS5UeXBlJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ZpbGUuSGFuZGxlcicpDQoJCSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBEaXNwbGF5IENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgRGlzcGxheQ0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXREaXNwbGF5KENvbnRhaW5lciAkY29udGFpbmVyKTogRGlzcGxheQ0KCXsNCgkJcmV0dXJuIG5ldyBEaXNwbGF5KA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdEYXRhLkl0ZW0nKSwNCgkJCSRjb250YWluZXItPmdldCgnRGF0YS5JdGVtcycpDQoJCSk7DQoJfQ==', '{}', '{}', '', 1, '2024-09-11 00:20:31', 16, '', 1),
+(833, '202ccd9e-dfcf-4cde-a0ce-bde1fd27f088', 'JCB.File.Service.File', 'File', 'class', 'File Service Provider\r\n\r\n@since 5.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Service.File', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"12a2a8de-a893-4dbb-a53d-b52de4f6cb0e\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"4144ad3b-2ad5-401f-af0c-a3d856c1e688\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"67a5e0ca-0ff0-4979-9b41-da0b09988016\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"d46c4667-378b-49e8-9782-ffb28d92415a\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"fbc235cd-e4cb-45e6-824e-51b3911243cc\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKFR5cGU6OmNsYXNzLCAnRmlsZS5UeXBlJykNCgkJCS0+c2hhcmUoJ0ZpbGUuVHlwZScsIFskdGhpcywgJ2dldFR5cGUnXSwgdHJ1ZSk7DQoNCgkJJGNvbnRhaW5lci0+YWxpYXMoSGFuZGxlcjo6Y2xhc3MsICdGaWxlLkhhbmRsZXInKQ0KCQkJLT5zaGFyZSgnRmlsZS5IYW5kbGVyJywgWyR0aGlzLCAnZ2V0SGFuZGxlciddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhNYW5hZ2VyOjpjbGFzcywgJ0ZpbGUuTWFuYWdlcicpDQoJCQktPnNoYXJlKCdGaWxlLk1hbmFnZXInLCBbJHRoaXMsICdnZXRNYW5hZ2VyJ10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKERpc3BsYXk6OmNsYXNzLCAnRmlsZS5EaXNwbGF5JykNCgkJCS0+c2hhcmUoJ0ZpbGUuRGlzcGxheScsIFskdGhpcywgJ2dldERpc3BsYXknXSwgdHJ1ZSk7DQoNCgkJJGNvbnRhaW5lci0+YWxpYXMoSW1hZ2U6OmNsYXNzLCAnRmlsZS5JbWFnZScpDQoJCQktPnNoYXJlKCdGaWxlLkltYWdlJywgWyR0aGlzLCAnZ2V0SW1hZ2UnXSwgdHJ1ZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBUeXBlIENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgVHlwZQ0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUeXBlKENvbnRhaW5lciAkY29udGFpbmVyKTogVHlwZQ0KCXsNCgkJcmV0dXJuIG5ldyBUeXBlKA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdEYXRhLkl0ZW0nKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgSGFuZGxlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIEhhbmRsZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SGFuZGxlcihDb250YWluZXIgJGNvbnRhaW5lcik6IEhhbmRsZXINCgl7DQoJCXJldHVybiBuZXcgSGFuZGxlcigpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgTWFuYWdlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIE1hbmFnZXINCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0TWFuYWdlcihDb250YWluZXIgJGNvbnRhaW5lcik6IE1hbmFnZXINCgl7DQoJCXJldHVybiBuZXcgTWFuYWdlcigNCgkJCSRjb250YWluZXItPmdldCgnRGF0YS5JdGVtJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSXRlbXMnKSwNCgkJCSRjb250YWluZXItPmdldCgnRmlsZS5UeXBlJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ZpbGUuSGFuZGxlcicpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdGaWxlLkltYWdlJykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIERpc3BsYXkgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBEaXNwbGF5DQoJICogQHNpbmNlIDUuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldERpc3BsYXkoQ29udGFpbmVyICRjb250YWluZXIpOiBEaXNwbGF5DQoJew0KCQlyZXR1cm4gbmV3IERpc3BsYXkoDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSXRlbScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdEYXRhLkl0ZW1zJykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIEltYWdlIENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgSW1hZ2UNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRJbWFnZShDb250YWluZXIgJGNvbnRhaW5lcik6IEltYWdlDQoJew0KCQlyZXR1cm4gbmV3IEltYWdlKCk7DQoJfQ==', '{}', '{}', '', 1, '2024-09-11 00:20:31', 18, '', 1),
(834, '4144ad3b-2ad5-401f-af0c-a3d856c1e688', 'Joomla.File.Handler', 'Handler', 'final class', 'File Handler Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', 'd7600b43-771a-4747-9f5d-952765721799', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Handler', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgJHVzZVN0cmVhbXMgcHJvcGVydHkgdG8gdXNlIHN0cmVhbXMgZm9yIGZpbGUgaGFuZGxpbmcNCgkgKg0KCSAqIEBwYXJhbSAgIGJvb2wgICR1c2VTdHJlYW1zICBUcnVlIHRvIHVzZSBzdHJlYW1zLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAcmV0dXJuICBzZWxmICBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIGFsbG93IGZvciBtZXRob2QgY2hhaW5pbmcuDQoJICogQHNpbmNlICAgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0VXNlU3RyZWFtcyhib29sICR1c2VTdHJlYW1zKTogc2VsZg0KCXsNCgkJc3RhdGljOjokdXNlU3RyZWFtcyA9ICR1c2VTdHJlYW1zOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlICRhbGxvd1Vuc2FmZSBwcm9wZXJ0eSB0byBhbGxvdyBvciBkaXNhbGxvdyB1bnNhZmUgZmlsZSB1cGxvYWRzLg0KCSAqDQoJICogQHBhcmFtICAgYm9vbCAgJGFsbG93VW5zYWZlICBUcnVlIHRvIGFsbG93IHVuc2FmZSBmaWxlIHVwbG9hZHMsIGZhbHNlIG90aGVyd2lzZS4NCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYgIFJldHVybnMgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gYWxsb3cgZm9yIG1ldGhvZCBjaGFpbmluZy4NCgkgKiBAc2luY2UgICA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRBbGxvd1Vuc2FmZShib29sICRhbGxvd1Vuc2FmZSk6IHNlbGYNCgl7DQoJCXN0YXRpYzo6JGFsbG93VW5zYWZlID0gJGFsbG93VW5zYWZlOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlICRzYWZlRmlsZU9wdGlvbnMgcHJvcGVydHkgdG8gZGVmaW5lIG9wdGlvbnMgZm9yIGZpbGUgc2FmZXR5IGNoZWNrcy4NCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAkc2FmZUZpbGVPcHRpb25zICBBbiBhcnJheSBvZiBvcHRpb25zIGZvciBJbnB1dEZpbHRlcjo6aXNTYWZlRmlsZS4NCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYgIFJldHVybnMgdGhlIGN1cnJlbnQgaW5zdGFuY2UgdG8gYWxsb3cgZm9yIG1ldGhvZCBjaGFpbmluZy4NCgkgKiBAc2luY2UgICA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXRTYWZlRmlsZU9wdGlvbnMoYXJyYXkgJHNhZmVGaWxlT3B0aW9ucyk6IHNlbGYNCgl7DQoJCXN0YXRpYzo6JHNhZmVGaWxlT3B0aW9ucyA9ICRzYWZlRmlsZU9wdGlvbnM7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgJGVucXVldWVFcnJvciBwcm9wZXJ0eSB0byBjb250cm9sIGVycm9yIHJlcG9ydGluZyBiZWhhdmlvci4NCgkgKg0KCSAqIEBwYXJhbSAgIGJvb2wgICRlbnF1ZXVlRXJyb3IgIFRydWUgdG8gZW5xdWV1ZSBlcnJvciBtZXNzYWdlcywgZmFsc2UgdG8gc3RvcmUgdGhlbSBpbiB0aGUgaW50ZXJuYWwgZXJyb3IgYXJyYXkuDQoJICoNCgkgKiBAcmV0dXJuICBzZWxmICBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIGFsbG93IGZvciBtZXRob2QgY2hhaW5pbmcuDQoJICogQHNpbmNlICAgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0RW5xdWV1ZUVycm9yKGJvb2wgJGVucXVldWVFcnJvcik6IHNlbGYNCgl7DQoJCXN0YXRpYzo6JGVucXVldWVFcnJvciA9ICRlbnF1ZXVlRXJyb3I7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgJGxlZ2FsRm9ybWF0cyBwcm9wZXJ0eSB0byBkZWZpbmUgbGVnYWwgZmlsZSBmb3JtYXRzLg0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICRsZWdhbEZvcm1hdHMgIEFuIGFycmF5IG9mIGFsbG93ZWQgZmlsZSBmb3JtYXRzIChlLmcuLCBbJ2pwZycsICdwbmcnXSkuDQoJICoNCgkgKiBAcmV0dXJuICBzZWxmICBSZXR1cm5zIHRoZSBjdXJyZW50IGluc3RhbmNlIHRvIGFsbG93IGZvciBtZXRob2QgY2hhaW5pbmcuDQoJICogQHNpbmNlICAgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0TGVnYWxGb3JtYXRzKGFycmF5ICRsZWdhbEZvcm1hdHMpOiBzZWxmDQoJew0KCQlzdGF0aWM6OiRsZWdhbEZvcm1hdHMgPSAkbGVnYWxGb3JtYXRzOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBHZXQgYSBmaWxlIGZyb20gdGhlIGlucHV0IGJhc2VkIG9uIGZpZWxkIG5hbWUgYW5kIGZpbGUgdHlwZSwgdGhlbiBwcm9jZXNzIGl0Lg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nCSAgICRmaWVsZCAgIFRoZSBpbnB1dCBmaWVsZCBuYW1lIGZvciB0aGUgZmlsZSB1cGxvYWQuDQoJICogQHBhcmFtICAgc3RyaW5nCSAgICR0eXBlCVRoZSB0eXBlIG9mIGZpbGUgKGUuZy4sICdpbWFnZScsICdkb2N1bWVudCcpLg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkZmlsdGVyICBUaGUgZmlsdGVyIHRvIGFwcGx5IHdoZW4gdXBsb2FkaW5nIHRoZSBmaWxlLg0KCSAqIEBwYXJhbSAgIHN0cmluZ3xudWxsICAkcGF0aAlUaGUgZGlyZWN0b3J5IHBhdGggd2hlcmUgdGhlIGZpbGUgc2hvdWxkIGJlIHNhdmVkLg0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbCAgIEZpbGUgZGV0YWlscyBvciBmYWxzZSBvbiBmYWlsdXJlLg0KCSAqIEBzaW5jZSAgIDMuMC4xMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRGaWxlKHN0cmluZyAkZmllbGQsIHN0cmluZyAkdHlwZSwgc3RyaW5nICRmaWx0ZXIgPSBudWxsLCBzdHJpbmcgJHBhdGggPSBudWxsKTogP2FycmF5DQoJew0KCQlyZXR1cm4gc3RhdGljOjpnZXQoJGZpZWxkLCAkdHlwZSwgJGZpbHRlciwgJHBhdGgpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgZXJyb3IgbWVzc2FnZXMgYXMgYSBzdHJpbmcuDQoJICoNCgkgKiBAcGFyYW0gIGJvb2wgICAkdG9TdHJpbmcgIFRoZSBvcHRpb24gdG8gcmV0dXJuIGVycm9ycyBhcyBhIHN0cmluZw0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nfGFycmF5ICBSZXR1cm5zIHRoZSBlcnJvciBtZXNzYWdlcyBhcyBhIHNpbmdsZSBjb25jYXRlbmF0ZWQgc3RyaW5nLg0KCSAqIEBzaW5jZSAgIDUuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEVycm9ycyhib29sICR0b1N0cmluZyA9IHRydWUpOiBzdHJpbmd8YXJyYXkNCgl7DQoJCXJldHVybiBzdGF0aWM6OmdldEVycm9yKCR0b1N0cmluZyk7DQoJfQ==', '{}', '{}', '', 1, '2024-09-11 21:08:38', 6, '', 1),
-(835, '67a5e0ca-0ff0-4979-9b41-da0b09988016', 'Joomla.File.Manager', 'Manager', 'final class', 'File Manager Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Manager', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXFVzZXJcVXNlcjsNCnVzZSBKb29tbGFcQ01TXExhbmd1YWdlXFRleHQ7DQp1c2UgSm9vbWxhXEZpbGVzeXN0ZW1cRmlsZTs=', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"},\"use_selection1\":{\"use\":\"7212e4db-371f-4cfd-8122-32e9bb100d83\",\"as\":\"Items\"},\"use_selection2\":{\"use\":\"5acded67-0e3d-4c6b-a6ea-b533b076de0c\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"12a2a8de-a893-4dbb-a53d-b52de4f6cb0e\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"4144ad3b-2ad5-401f-af0c-a3d856c1e688\",\"as\":\"default\"},\"use_selection5\":{\"use\":\"f11dc790-713e-4706-9a85-a318ed3ad56e\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllci4NCgkgKg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXVzZSBHdWlkOw0KDQoJLyoqDQoJICogVGhlIEl0ZW0gQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgSXRlbQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBJdGVtICRpdGVtOw0KDQoJLyoqDQoJICogVGhlIEl0ZW1zIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEl0ZW1zDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEl0ZW1zICRpdGVtczsNCg0KCS8qKg0KCSAqIFRoZSBUeXBlIENsYXNzLg0KCSAqDQoJICogQHZhciAgIFR5cGUNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgVHlwZSAkdHlwZTsNCg0KCS8qKg0KCSAqIFRoZSBIYW5kbGVyIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEhhbmRsZXINCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgSGFuZGxlciAkaGFuZGxlcjsNCg0KCS8qKg0KCSAqIFRoZSBhY3RpdmUgdXNlcg0KCSAqDQoJICogQHZhciAgICBVc2VyDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIFVzZXIgJHVzZXI7DQoNCgkvKioNCgkgKiBUYWJsZSBOYW1lDQoJICoNCgkgKiBAdmFyICAgIHN0cmluZw0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJHRhYmxlID0gJ2ZpbGUnOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3IuDQoJICoNCgkgKiBAcGFyYW0gSXRlbSAgICAgICRpdGVtICAgICAgVGhlIEl0ZW0gQ2xhc3MuDQoJICogQHBhcmFtIEl0ZW1zICAgICAkaXRlbXMgICAgIFRoZSBJdGVtcyBDbGFzcy4NCgkgKiBAcGFyYW0gVHlwZSAgICAgICR0eXBlICAgICAgVGhlIFR5cGUgQ2xhc3MuDQoJICogQHBhcmFtIEhhbmRsZXIgICAkaGFuZGxlciAgIFRoZSBIYW5kbGVyIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEl0ZW0gJGl0ZW0sIEl0ZW1zICRpdGVtcywgVHlwZSAkdHlwZSwgSGFuZGxlciAkaGFuZGxlcikNCgl7DQoJCSR0aGlzLT5pdGVtID0gJGl0ZW07DQoJCSR0aGlzLT5pdGVtcyA9ICRpdGVtczsNCgkJJHRoaXMtPnR5cGUgPSAkdHlwZTsNCgkJJHRoaXMtPmhhbmRsZXIgPSAkaGFuZGxlcjsNCgkJJHRoaXMtPnVzZXIgPSBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpLT5nZXRJZGVudGl0eSgpOw0KCX0NCg0KCS8qKg0KCSAqIFVwbG9hZCBhIGZpbGUsIG9mIGEgZ2l2ZW4gZmlsZSB0eXBlIGFuZCBsaW5rIGl0IHRvIGFuIGVudGl0eS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgVGhlIGZpbGUgdHlwZSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkZW50aXR5ICBUaGUgZW50aXR5IGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgIFRoZSB0YXJnZXQgZW50aXR5IG5hbWUNCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBJZiB0aGUgZmlsZSB0eXBlIGlzIG5vdCB2YWxpZC4NCgkgKiBAdGhyb3dzIFxSdW50aW1lRXhjZXB0aW9uIElmIHRoZXJlIGlzIGFuIGVycm9yIGR1cmluZyBmaWxlIHVwbG9hZC4NCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdXBsb2FkKHN0cmluZyAkZ3VpZCwgc3RyaW5nICRlbnRpdHksIHN0cmluZyAkdGFyZ2V0KTogdm9pZA0KCXsNCgkJaWYgKCgkZmlsZVR5cGUgPSAkdGhpcy0+dHlwZS0+bG9hZCgkZ3VpZCwgJHRhcmdldCkpID09PSBudWxsKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihUZXh0OjpzcHJpbnRmKCdGaWxlIHR5cGUgbm90IHZhbGlkIGluICVzIGFyZWEuJywgJHRhcmdldCkpOw0KCQl9DQoNCgkJLy8gbWFrZSBzdXJlIHRoZSB1c2VyIGhhdmUgcGVybWlzc2lvbnMgdG8gdXBsb2FkIHRoaXMgZmlsZSB0eXBlDQoJCWlmICghaW5fYXJyYXkoJGZpbGVUeXBlWydhY2Nlc3MnXSwgJHRoaXMtPnVzZXItPmdldEF1dGhvcmlzZWRWaWV3TGV2ZWxzKCkpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihUZXh0OjpzcHJpbnRmKCdZb3UgZG8gbm90IGhhdmUgcGVybWlzc2lvbnMgdG8gdXBsb2FkICglcykuJywgJGZpbGVUeXBlWyduYW1lJ10pKTsNCgkJfQ0KDQoJCSRkZXRhaWxzID0gJHRoaXMtPmhhbmRsZXINCgkJCS0+c2V0RW5xdWV1ZUVycm9yKGZhbHNlKQ0KCQkJLT5zZXRMZWdhbEZvcm1hdHMoJGZpbGVUeXBlWydmb3JtYXRzJ10pDQoJCQktPmdldEZpbGUoDQoJCQkJJGZpbGVUeXBlWydmaWVsZCddLCAgIC8vIFRoZSBpbnB1dCBmaWVsZCBuYW1lDQoJCQkJJGZpbGVUeXBlWyd0eXBlJ10sICAgIC8vIFRoZSBmaWxlIHR5cGUNCgkJCQkkZmlsZVR5cGVbJ2ZpbHRlciddLCAgLy8gVGhlIGZpbHRlciB0byB1c2Ugd2hlbiB1cGxvYWRpbmcgdGhlIGZpbGUNCgkJCQkkZmlsZVR5cGVbJ3BhdGgnXSAgICAgLy8gVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZmlsZSBtdXN0IGJlIHBsYWNlZA0KCQkJKTsNCg0KCQlpZiAoJGRldGFpbHMgPT09IG51bGwpDQoJCXsNCgkJCS8vIFRocm93IGFuIGV4Y2VwdGlvbiBpZiBmaWxlIGRldGFpbHMgY291bGRuJ3QgYmUgcmV0cmlldmVkDQoJCQl0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPmhhbmRsZXItPmdldEVycm9ycygpKTsNCgkJfQ0KDQoJCS8vIHdlIG1pZ2h0IG5lZWQgdG8gY3JvcCBpbWFnZXMNCgkJaWYgKCRmaWxlVHlwZVsndHlwZSddID09PSAnaW1hZ2UnKQ0KCQl7DQoJCQkvLyAkdGhpcy0+Y3JvcEltYWdlKCRkZXRhaWxzLCAkZ3VpZCk7DQoJCX0NCg0KCQkvLyBzdG9yZSBmaWxlIGluIHRoZSBmaWxlIHRhYmxlDQoJCSR0aGlzLT5pdGVtLT50YWJsZSgkdGhpcy0+Z2V0VGFibGUoKSktPnNldCgNCgkJCSR0aGlzLT5tb2RlbEZpbGVEZXRhaWxzKCRkZXRhaWxzLCAkZ3VpZCwgJGVudGl0eSwgJHRhcmdldCwgJGZpbGVUeXBlKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgZmlsZSBkZXRhaWxzIGZvciBkb3dubG9hZA0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCBUaGUgZmlsZSBndWlkDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZG93bmxvYWQoc3RyaW5nICRndWlkKTogP2FycmF5DQoJew0KCQlpZiAoKCRmaWxlID0gJHRoaXMtPml0ZW0tPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+Z2V0KCRndWlkKSkgIT09IG51bGwgJiYNCgkJCWluX2FycmF5KCRmaWxlLT5hY2Nlc3MsICR0aGlzLT51c2VyLT5nZXRBdXRob3Jpc2VkVmlld0xldmVscygpKSkNCgkJew0KCQkJcmV0dXJuIChhcnJheSkgJGZpbGU7DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBEZWxldGUgYSBmaWxlLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCAgVGhlIGZpbGUgZ3VpZA0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShzdHJpbmcgJGd1aWQpOiB2b2lkDQoJew0KCQlpZiAoKCRmaWxlID0gJHRoaXMtPml0ZW0tPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+Z2V0KCRndWlkKSkgIT09IG51bGwgJiYNCgkJCWluX2FycmF5KCRmaWxlLT5hY2Nlc3MsICR0aGlzLT51c2VyLT5nZXRBdXRob3Jpc2VkVmlld0xldmVscygpKSkNCgkJew0KCQkJJHRoaXMtPml0ZW0tPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+ZGVsZXRlKCRndWlkKTsgLy8gZnJvbSBEQg0KDQoJCQlpZiAoaXNfZmlsZSgkZmlsZS0+ZmlsZV9wYXRoKSAmJiBpc193cml0YWJsZSgkZmlsZS0+ZmlsZV9wYXRoKSkNCgkJCXsNCgkJCQlGaWxlOjpkZWxldGUoJGZpbGUtPmZpbGVfcGF0aCk7IC8vIGZyb20gZmlsZSBzeXN0ZW0NCgkJCX0NCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoc3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nDQoJICogQHNpbmNlICAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlOw0KCX0NCg0KCS8qKg0KCSAqIG1vZGVsIHRoZSBmaWxlIGRldGFpbHMgdG8gc3RvcmUgaW4gdGhlIGZpbGUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgJGRldGFpbHMgICBUaGUgdXBsb2FkZWQgZmlsZSBkZXRhaWxzLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgICBUaGUgZmlsZSB0eXBlIGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICRlbnRpdHkgICAgVGhlIGVudGl0eSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICAgIFRoZSB0YXJnZXQgZW50aXR5IG5hbWUNCgkgKiBAcGFyYW0gYXJyYXkgJGZpbGVUeXBlICAgVGhlIGZpbGUgdHlwZQ0KCSAqDQoJICogQHJldHVybiBvYmplY3QNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gbW9kZWxGaWxlRGV0YWlscyhhcnJheSAkZGV0YWlscywgc3RyaW5nICRndWlkLCBzdHJpbmcgJGVudGl0eSwgc3RyaW5nICR0YXJnZXQsIGFycmF5ICRmaWxlVHlwZSk6IG9iamVjdA0KCXsNCgkJcmV0dXJuIChvYmplY3QpIFsNCgkJCSduYW1lJyA9PiAkZGV0YWlsc1snbmFtZSddLA0KCQkJJ2ZpbGVfdHlwZScgPT4gJGd1aWQsDQoJCQknZXh0ZW5zaW9uJyA9PiAkZGV0YWlsc1snZXh0ZW5zaW9uJ10gPz8gJ2Vycm9yJywNCgkJCSdzaXplJyA9PiAkZGV0YWlsc1snc2l6ZSddID8/IDAsDQoJCQknbWltZScgPT4gJGRldGFpbHNbJ21pbWUnXSA/PyAnJywNCgkJCSdmaWxlX3BhdGgnID0+ICRkZXRhaWxzWydmdWxsX3BhdGgnXSwNCgkJCSdlbnRpdHlfdHlwZScgPT4gJHRhcmdldCwNCgkJCSdlbnRpdHknID0+ICRlbnRpdHksDQoJCQknYWNjZXNzJyA9PiAkZmlsZVR5cGVbJ2Rvd25sb2FkX2FjY2VzcyddID8/IDEsDQoJCQknZ3VpZCcgPT4gJHRoaXMtPmdldEd1aWQoJ2d1aWQnKSwNCgkJCSdjcmVhdGVkX2J5JyA9PiAkdGhpcy0+dXNlci0+aWQNCgkJXTsNCgl9', '{}', '{}', '', 1, '2024-09-11 21:28:01', 26, '', 1),
+(835, '67a5e0ca-0ff0-4979-9b41-da0b09988016', 'Joomla.File.Manager', 'Manager', 'class', 'File Manager Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Manager', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXFVzZXJcVXNlcjsNCnVzZSBKb29tbGFcQ01TXExhbmd1YWdlXFRleHQ7DQp1c2UgSm9vbWxhXEZpbGVzeXN0ZW1cRmlsZTs=', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"},\"use_selection1\":{\"use\":\"7212e4db-371f-4cfd-8122-32e9bb100d83\",\"as\":\"Items\"},\"use_selection2\":{\"use\":\"5acded67-0e3d-4c6b-a6ea-b533b076de0c\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"12a2a8de-a893-4dbb-a53d-b52de4f6cb0e\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"4144ad3b-2ad5-401f-af0c-a3d856c1e688\",\"as\":\"default\"},\"use_selection5\":{\"use\":\"fbc235cd-e4cb-45e6-824e-51b3911243cc\",\"as\":\"default\"},\"use_selection6\":{\"use\":\"f11dc790-713e-4706-9a85-a318ed3ad56e\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllci4NCgkgKg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXVzZSBHdWlkOw0KDQoJLyoqDQoJICogVGhlIEl0ZW0gQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgSXRlbQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBJdGVtICRpdGVtOw0KDQoJLyoqDQoJICogVGhlIEl0ZW1zIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEl0ZW1zDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEl0ZW1zICRpdGVtczsNCg0KCS8qKg0KCSAqIFRoZSBUeXBlIENsYXNzLg0KCSAqDQoJICogQHZhciAgIFR5cGUNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgVHlwZSAkdHlwZTsNCg0KCS8qKg0KCSAqIFRoZSBIYW5kbGVyIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEhhbmRsZXINCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgSGFuZGxlciAkaGFuZGxlcjsNCg0KCS8qKg0KCSAqIFRoZSBJbWFnZSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJbWFnZQ0KCSAqIEBzaW5jZSA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBJbWFnZSAkaW1hZ2U7DQoNCgkvKioNCgkgKiBUaGUgYWN0aXZlIHVzZXINCgkgKg0KCSAqIEB2YXIgICAgVXNlcg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBVc2VyICR1c2VyOw0KDQoJLyoqDQoJICogVGFibGUgTmFtZQ0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YWJsZSA9ICdmaWxlJzsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIEl0ZW0gICAgICAkaXRlbSAgICAgIFRoZSBJdGVtIENsYXNzLg0KCSAqIEBwYXJhbSBJdGVtcyAgICAgJGl0ZW1zICAgICBUaGUgSXRlbXMgQ2xhc3MuDQoJICogQHBhcmFtIFR5cGUgICAgICAkdHlwZSAgICAgIFRoZSBUeXBlIENsYXNzLg0KCSAqIEBwYXJhbSBIYW5kbGVyICAgJGhhbmRsZXIgICBUaGUgSGFuZGxlciBDbGFzcy4NCgkgKiBAcGFyYW0gSW1hZ2UgICAgICRpbWFnZSAgICAgVGhlIEltYWdlIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEl0ZW0gJGl0ZW0sIEl0ZW1zICRpdGVtcywgVHlwZSAkdHlwZSwgSGFuZGxlciAkaGFuZGxlciwNCgkJSW1hZ2UgJGltYWdlKQ0KCXsNCgkJJHRoaXMtPml0ZW0gPSAkaXRlbTsNCgkJJHRoaXMtPml0ZW1zID0gJGl0ZW1zOw0KCQkkdGhpcy0+dHlwZSA9ICR0eXBlOw0KCQkkdGhpcy0+aGFuZGxlciA9ICRoYW5kbGVyOw0KCQkkdGhpcy0+aW1hZ2UgPSAkaW1hZ2U7DQoJCSR0aGlzLT51c2VyID0gRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKS0+Z2V0SWRlbnRpdHkoKTsNCgl9DQoNCgkvKioNCgkgKiBVcGxvYWQgYSBmaWxlLCBvZiBhIGdpdmVuIGZpbGUgdHlwZSBhbmQgbGluayBpdCB0byBhbiBlbnRpdHkuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgIFRoZSBmaWxlIHR5cGUgZ3VpZA0KCSAqIEBwYXJhbSBzdHJpbmcgJGVudGl0eSAgVGhlIGVudGl0eSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICBUaGUgdGFyZ2V0IGVudGl0eSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIGZpbGUgdHlwZSBpcyBub3QgdmFsaWQuDQoJICogQHRocm93cyBcUnVudGltZUV4Y2VwdGlvbiBJZiB0aGVyZSBpcyBhbiBlcnJvciBkdXJpbmcgZmlsZSB1cGxvYWQuDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHVwbG9hZChzdHJpbmcgJGd1aWQsIHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCk6IHZvaWQNCgl7DQoJCWlmICgoJGZpbGVUeXBlID0gJHRoaXMtPnR5cGUtPmxvYWQoJGd1aWQsICR0YXJnZXQpKSA9PT0gbnVsbCkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oVGV4dDo6c3ByaW50ZignRmlsZSB0eXBlIG5vdCB2YWxpZCBpbiAlcyBhcmVhLicsICR0YXJnZXQpKTsNCgkJfQ0KDQoJCS8vIG1ha2Ugc3VyZSB0aGUgdXNlciBoYXZlIHBlcm1pc3Npb25zIHRvIHVwbG9hZCB0aGlzIGZpbGUgdHlwZQ0KCQlpZiAoIWluX2FycmF5KCRmaWxlVHlwZVsnYWNjZXNzJ10sICR0aGlzLT51c2VyLT5nZXRBdXRob3Jpc2VkVmlld0xldmVscygpKSkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oVGV4dDo6c3ByaW50ZignWW91IGRvIG5vdCBoYXZlIHBlcm1pc3Npb25zIHRvIHVwbG9hZCAoJXMpLicsICRmaWxlVHlwZVsnbmFtZSddKSk7DQoJCX0NCg0KCQkkZGV0YWlscyA9ICR0aGlzLT5oYW5kbGVyDQoJCQktPnNldEVucXVldWVFcnJvcihmYWxzZSkNCgkJCS0+c2V0TGVnYWxGb3JtYXRzKCRmaWxlVHlwZVsnZm9ybWF0cyddKQ0KCQkJLT5nZXRGaWxlKA0KCQkJCSRmaWxlVHlwZVsnZmllbGQnXSwgICAvLyBUaGUgaW5wdXQgZmllbGQgbmFtZQ0KCQkJCSRmaWxlVHlwZVsndHlwZSddLCAgICAvLyBUaGUgZmlsZSB0eXBlDQoJCQkJJGZpbGVUeXBlWydmaWx0ZXInXSwgIC8vIFRoZSBmaWx0ZXIgdG8gdXNlIHdoZW4gdXBsb2FkaW5nIHRoZSBmaWxlDQoJCQkJJGZpbGVUeXBlWydwYXRoJ10gICAgIC8vIFRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGZpbGUgbXVzdCBiZSBwbGFjZWQNCgkJCSk7DQoNCgkJaWYgKCRkZXRhaWxzID09PSBudWxsKQ0KCQl7DQoJCQkvLyBUaHJvdyBhbiBleGNlcHRpb24gaWYgZmlsZSBkZXRhaWxzIGNvdWxkbid0IGJlIHJldHJpZXZlZA0KCQkJdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5oYW5kbGVyLT5nZXRFcnJvcnMoKSk7DQoJCX0NCg0KCQlpZiAoJGZpbGVUeXBlWyd0eXBlJ10gPT09ICdpbWFnZScpDQoJCXsNCgkJCSR0aGlzLT5wcm9jZXNzSW1hZ2VzKCRkZXRhaWxzLCAkZ3VpZCwgJGVudGl0eSwgJHRhcmdldCwgJGZpbGVUeXBlKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIHN0b3JlIGZpbGUgaW4gdGhlIGZpbGUgdGFibGUNCgkJJHRoaXMtPml0ZW0tPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+c2V0KA0KCQkJJHRoaXMtPm1vZGVsRmlsZURldGFpbHMoJGRldGFpbHMsICRndWlkLCAkZW50aXR5LCAkdGFyZ2V0LCAkZmlsZVR5cGUpDQoJCSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBmaWxlIGRldGFpbHMgZm9yIGRvd25sb2FkDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkIFRoZSBmaWxlIGd1aWQNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBkb3dubG9hZChzdHJpbmcgJGd1aWQpOiA/YXJyYXkNCgl7DQoJCWlmICgoJGZpbGUgPSAkdGhpcy0+aXRlbS0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT5nZXQoJGd1aWQpKSAhPT0gbnVsbCAmJg0KCQkJaW5fYXJyYXkoJGZpbGUtPmFjY2VzcywgJHRoaXMtPnVzZXItPmdldEF1dGhvcmlzZWRWaWV3TGV2ZWxzKCkpKQ0KCQl7DQoJCQlyZXR1cm4gKGFycmF5KSAkZmlsZTsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIERlbGV0ZSBhIGZpbGUuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICBUaGUgZmlsZSBndWlkDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKHN0cmluZyAkZ3VpZCk6IHZvaWQNCgl7DQoJCWlmICgoJGZpbGUgPSAkdGhpcy0+aXRlbS0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT5nZXQoJGd1aWQpKSAhPT0gbnVsbCAmJg0KCQkJaW5fYXJyYXkoJGZpbGUtPmFjY2VzcywgJHRoaXMtPnVzZXItPmdldEF1dGhvcmlzZWRWaWV3TGV2ZWxzKCkpKQ0KCQl7DQoJCQkkdGhpcy0+aXRlbS0+dGFibGUoJHRoaXMtPmdldFRhYmxlKCkpLT5kZWxldGUoJGd1aWQpOyAvLyBmcm9tIERCDQoNCgkJCWlmIChpc19maWxlKCRmaWxlLT5maWxlX3BhdGgpICYmIGlzX3dyaXRhYmxlKCRmaWxlLT5maWxlX3BhdGgpKQ0KCQkJew0KCQkJCUZpbGU6OmRlbGV0ZSgkZmlsZS0+ZmlsZV9wYXRoKTsgLy8gZnJvbSBmaWxlIHN5c3RlbQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkdGFibGUgVGhlIHRhYmxlIHRoYXQgc2hvdWxkIGJlIGFjdGl2ZQ0KCSAqDQoJICogQHJldHVybiBzZWxmDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZShzdHJpbmcgJHRhYmxlKTogc2VsZg0KCXsNCgkJJHRoaXMtPnRhYmxlID0gJHRhYmxlOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGU7DQoJfQ0KDQoJLyoqDQoJICogUHJvY2VzcyB0aGUgaW1hZ2UocykgYXMgbmVlZGVkIGJhc2VkIG9uIGNyb3Agc2V0dGluZ3MNCgkgKg0KCSAqIEBwYXJhbSBhcnJheSAgJGRldGFpbHMgICBUaGUgdXBsb2FkZWQgZmlsZSBkZXRhaWxzLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICAgICBUaGUgZmlsZSB0eXBlIGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICRlbnRpdHkgICAgVGhlIGVudGl0eSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICAgIFRoZSB0YXJnZXQgZW50aXR5IG5hbWUNCgkgKiBAcGFyYW0gYXJyYXkgJGZpbGVUeXBlICAgVGhlIGZpbGUgdHlwZQ0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBwcm9jZXNzSW1hZ2VzKGFycmF5ICRkZXRhaWxzLCBzdHJpbmcgJGd1aWQsIHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCwgYXJyYXkgJGZpbGVUeXBlKTogdm9pZA0KCXsNCgkJaWYgKGVtcHR5KCRmaWxlVHlwZVsnY3JvcCddKSkNCgkJew0KCQkJLy8gc3RvcmUgZmlsZSBpbiB0aGUgZmlsZSB0YWJsZQ0KCQkJJHRoaXMtPml0ZW0tPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+c2V0KA0KCQkJCSR0aGlzLT5tb2RlbEZpbGVEZXRhaWxzKCRkZXRhaWxzLCAkZ3VpZCwgJGVudGl0eSwgJHRhcmdldCwgJGZpbGVUeXBlKQ0KCQkJKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCSRzb3VyY2UgPSAkZGV0YWlsc1snZnVsbF9wYXRoJ107DQoJCSRwYXRoID0gJGRldGFpbHNbJ3BhdGgnXTsNCgkJJGNyb3BwaW5nID0gJGZpbGVUeXBlWydjcm9wJ107DQoNCgkJJHBsYWNlaG9sZGVycyA9IFsNCgkJCSd7bnVtYmVyfScgPT4gJHRoaXMtPmdldEZpbGVOdW1iZXIoJGZpbGVUeXBlLCAkZW50aXR5KSwNCgkJCSd7bmFtZX0nID0+ICR0aGlzLT5nZXRGaWxlTmFtZSgkZGV0YWlscywgJGVudGl0eSksDQoJCQkne2V4dGVuc2lvbn0nID0+ICR0aGlzLT5nZXRGaWxlRXh0ZW5zaW9uKCRzb3VyY2UpDQoJCV07DQoNCgkJZm9yZWFjaCAoJGNyb3BwaW5nIGFzICYkY3JvcCkNCgkJew0KCQkJJGNyb3BbJ25hbWUnXSA9IHN0cl9yZXBsYWNlKGFycmF5X2tleXMoJHBsYWNlaG9sZGVycyksIGFycmF5X3ZhbHVlcygkcGxhY2Vob2xkZXJzKSwgJGNyb3BbJ25hbWUnXSk7DQoJCX0NCg0KCQkkaW1hZ2VzID0gJHRoaXMtPmltYWdlLT5wcm9jZXNzKCRzb3VyY2UsICRwYXRoLCAkY3JvcHBpbmcpOw0KDQoJCWZvcmVhY2goJGltYWdlcyBhcyAkaW1hZ2UpDQoJCXsNCgkJCWlmIChlbXB0eSgkaW1hZ2UpKQ0KCQkJew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkkZGV0YWlsc1snbmFtZSddID0gJGltYWdlWyduYW1lJ107DQoJCQkkZGV0YWlsc1snZXh0ZW5zaW9uJ10gPSAkaW1hZ2VbJ2V4dGVuc2lvbiddOw0KCQkJJGRldGFpbHNbJ3NpemUnXSA9ICRpbWFnZVsnc2l6ZSddOw0KCQkJJGRldGFpbHNbJ21pbWUnXSA9ICRpbWFnZVsnbWltZSddOw0KCQkJJGRldGFpbHNbJ2Z1bGxfcGF0aCddID0gJGltYWdlWydwYXRoJ107DQoNCgkJCS8vIHN0b3JlIGZpbGUgaW4gdGhlIGZpbGUgdGFibGUNCgkJCSR0aGlzLT5pdGVtLT50YWJsZSgkdGhpcy0+Z2V0VGFibGUoKSktPnNldCgNCgkJCQkkdGhpcy0+bW9kZWxGaWxlRGV0YWlscygkZGV0YWlscywgJGd1aWQsICRlbnRpdHksICR0YXJnZXQsICRmaWxlVHlwZSkNCgkJCSk7DQoJCX0NCg0KCQkvLyBjbGVhbiB1cCBzb3VyY2UgaW1hZ2UNCgkJaWYgKGlzX2ZpbGUoJHNvdXJjZSkgJiYgaXNfd3JpdGFibGUoJHNvdXJjZSkpDQoJCXsNCgkJCUZpbGU6OmRlbGV0ZSgkc291cmNlKTsgLy8gZnJvbSBmaWxlIHN5c3RlbQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogbW9kZWwgdGhlIGZpbGUgZGV0YWlscyB0byBzdG9yZSBpbiB0aGUgZmlsZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIGFycmF5ICAkZGV0YWlscyAgIFRoZSB1cGxvYWRlZCBmaWxlIGRldGFpbHMuDQoJICogQHBhcmFtIHN0cmluZyAkZ3VpZCAgICAgIFRoZSBmaWxlIHR5cGUgZ3VpZA0KCSAqIEBwYXJhbSBzdHJpbmcgJGVudGl0eSAgICBUaGUgZW50aXR5IGd1aWQNCgkgKiBAcGFyYW0gc3RyaW5nICR0YXJnZXQgICAgVGhlIHRhcmdldCBlbnRpdHkgbmFtZQ0KCSAqIEBwYXJhbSBhcnJheSAkZmlsZVR5cGUgICBUaGUgZmlsZSB0eXBlDQoJICoNCgkgKiBAcmV0dXJuIG9iamVjdA0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBtb2RlbEZpbGVEZXRhaWxzKGFycmF5ICRkZXRhaWxzLCBzdHJpbmcgJGd1aWQsIHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCwgYXJyYXkgJGZpbGVUeXBlKTogb2JqZWN0DQoJew0KCQlyZXR1cm4gKG9iamVjdCkgWw0KCQkJJ25hbWUnID0+ICRkZXRhaWxzWyduYW1lJ10sDQoJCQknZmlsZV90eXBlJyA9PiAkZ3VpZCwNCgkJCSdleHRlbnNpb24nID0+ICRkZXRhaWxzWydleHRlbnNpb24nXSA/PyAnZXJyb3InLA0KCQkJJ3NpemUnID0+ICRkZXRhaWxzWydzaXplJ10gPz8gMCwNCgkJCSdtaW1lJyA9PiAkZGV0YWlsc1snbWltZSddID8/ICcnLA0KCQkJJ2ZpbGVfcGF0aCcgPT4gJGRldGFpbHNbJ2Z1bGxfcGF0aCddLA0KCQkJJ2VudGl0eV90eXBlJyA9PiAkdGFyZ2V0LA0KCQkJJ2VudGl0eScgPT4gJGVudGl0eSwNCgkJCSdhY2Nlc3MnID0+ICRmaWxlVHlwZVsnZG93bmxvYWRfYWNjZXNzJ10gPz8gMSwNCgkJCSdndWlkJyA9PiAkdGhpcy0+Z2V0R3VpZCgnZ3VpZCcpLA0KCQkJJ2NyZWF0ZWRfYnknID0+ICR0aGlzLT51c2VyLT5pZA0KCQldOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgZmlsZSBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uIGZvciBkb3dubG9hZC4NCgkgKg0KCSAqIElmIHRoZSBvcmlnaW5hbCBuYW1lIGlzIGVtcHR5LCByZXR1cm4gdGhlIGVudGl0eSBHVUlELg0KCSAqIElmIHRoZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gYSAnLicsIHJldHVybiB0aGUgbmFtZSBhcyBpcy4NCgkgKiBPdGhlcndpc2UsIHJldHVybiB0aGUgbmFtZSB3aXRob3V0IHRoZSBmaW5hbCBleHRlbnNpb24uDQoJICoNCgkgKiBAcGFyYW0gICBhcnJheSAgICRkZXRhaWxzICBUaGUgdXBsb2FkZWQgZmlsZSBkZXRhaWxzLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGVudGl0eSAgIFRoZSBlbnRpdHkgR1VJRCB1c2VkIGFzIGZhbGxiYWNrLg0KCSAqDQoJICogQHJldHVybiAgc3RyaW5nICBUaGUgZXh0cmFjdGVkIG9yIGZhbGxiYWNrIGZpbGUgbmFtZS4NCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlTmFtZShhcnJheSAkZGV0YWlscywgc3RyaW5nICRlbnRpdHkpOiBzdHJpbmcNCgl7DQoJCS8vIENoZWNrIGlmIG5hbWUgaXMgc2V0IGFuZCBub24tZW1wdHkNCgkJJG5hbWUgPSB0cmltKCRkZXRhaWxzWyduYW1lJ10gPz8gJycpOw0KDQoJCS8vIFJldHVybiBlbnRpdHkgaWYgbmFtZSBpcyBlbXB0eQ0KCQlpZiAoJG5hbWUgPT09ICcnKQ0KCQl7DQoJCQlyZXR1cm4gJGVudGl0eTsNCgkJfQ0KDQoJCS8vIElmIHRoZXJlIGlzIG5vIGRvdCBpbiB0aGUgbmFtZSwgYXNzdW1lIG5vIGV4dGVuc2lvbiDigJQgcmV0dXJuIGFzLWlzDQoJCWlmIChzdHJwb3MoJG5hbWUsICcuJykgPT09IGZhbHNlKQ0KCQl7DQoJCQlyZXR1cm4gJG5hbWU7DQoJCX0NCg0KCQkvLyBVc2UgcGF0aGluZm8gdG8gZXh0cmFjdCB0aGUgbmFtZSB3aXRob3V0IGV4dGVuc2lvbg0KCQkkaW5mbyA9IHBhdGhpbmZvKCRuYW1lKTsNCg0KCQkvLyBSZXR1cm4gZmlsZW5hbWUgKHdpdGhvdXQgZXh0ZW5zaW9uKQ0KCQlyZXR1cm4gJGluZm9bJ2ZpbGVuYW1lJ10gPz8gJG5hbWU7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBmaWxlIG51bWJlciBUT0RPOiBub3QgaWRlYWwsIGlmIGltYWdlcyBhcmUgZGVsZXRlZCB3ZSBuZWVkIGEgYmV0dGVyIHNvbHV0aW9uDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgICRmaWxlVHlwZSAgVGhlIHVwbG9hZGVkIGZpbGUgdHlwZSBkZXRhaWxzLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGVudGl0eSAgICBUaGUgZW50aXR5IGd1aWQNCgkgKg0KCSAqIEByZXR1cm4gaW50DQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlTnVtYmVyKGFycmF5ICRmaWxlVHlwZSwgc3RyaW5nICRlbnRpdHkpOiBpbnQNCgl7DQoJCWlmIChlbXB0eSgkZmlsZVR5cGVbJ2Nyb3AnXSkpDQoJCXsNCgkJCXJldHVybiAxOw0KCQl9DQoNCgkJJG51bWJlciA9IGNvdW50KCRmaWxlVHlwZVsnY3JvcCddKTsNCgkJJG51bWJlcl9maWxlcyA9IDE7DQoNCgkJaWYgKCgkZmlsZXMgPSAkdGhpcy0+aXRlbXMtPnRhYmxlKCR0aGlzLT5nZXRUYWJsZSgpKS0+dmFsdWVzKFskZW50aXR5XSwgJ2VudGl0eScpKSAhPT0gbnVsbCkNCgkJew0KCQkJJHRvdGFsID0gY291bnQoJGZpbGVzKTsNCgkJCWlmICgkdG90YWwgPj0gJG51bWJlcikNCgkJCXsNCgkJCQkkbnVtYmVyX2ZpbGVzID0gcm91bmQoJHRvdGFsIC8gJG51bWJlcik7DQoJCQl9DQoNCgkJCXJldHVybiArKyRudW1iZXJfZmlsZXM7DQoJCX0NCg0KCQlyZXR1cm4gJG51bWJlcl9maWxlczsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGZpbGUgZXh0ZW5zaW9uDQoJICoNCgkgKiBAcGFyYW0gc3JpbmcgICRzb3VyY2UgIFRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUNCgkgKg0KCSAqIEByZXR1cm4gc3RyaW5nDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKHN0cmluZyAkc291cmNlKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gTWltZUhlbHBlcjo6ZXh0ZW5zaW9uKCRzb3VyY2UpOw0KCX0=', '{}', '{}', '', 1, '2024-09-11 21:28:01', 40, '', 1),
(836, 'd46c4667-378b-49e8-9782-ffb28d92415a', 'Joomla.File.Display', 'Display', 'final class', 'File Display Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Display', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXFVyaVxVcmk7DQp1c2UgSm9vbWxhXENNU1xSb3V0ZXJcUm91dGU7', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"},\"use_selection1\":{\"use\":\"7212e4db-371f-4cfd-8122-32e9bb100d83\",\"as\":\"Items\"}}', 'CS8qKg0KCSAqIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEl0ZW0NCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgSXRlbSAkaXRlbTsNCg0KCS8qKg0KCSAqIFRoZSBJdGVtcyBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJdGVtcw0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBJdGVtcyAkaXRlbXM7DQoNCgkvKioNCgkgKiBUaGUgZmlsZSBzaXRlIHVybA0KCSAqDQoJICogQHZhciAgIHN0cmluZw0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJHVybDsNCg0KCS8qKg0KCSAqIFRoZSBmaWxlIHR5cGVzDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGZpbGVUeXBlczsNCg0KCS8qKg0KCSAqIFRoZSBhY3RpdmUgdXNlciBhY2Nlc3MNCgkgKg0KCSAqIEB2YXIgICAgYXJyYXkNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGFjY2VzczsNCg0KCS8qKg0KCSAqIFRoZSBGaWxlIFR5cGUgVGFzaw0KCSAqDQoJICogQHZhciAgICBhcnJheQ0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGZpbGVUeXBlVGFza3MgPSBbMSA9PiAnaW1hZ2UnICwgMiA9PiAnZmlsZScgLCAzID0+ICdtZWRpYScsIDQgPT4gJ2ZpbGUnXTsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIEl0ZW0gICAgJGl0ZW0gICAgVGhlIEl0ZW0gQ2xhc3MuDQoJICogQHBhcmFtIEl0ZW1zICAgJGl0ZW1zICAgVGhlIEl0ZW1zIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEl0ZW0gJGl0ZW0sIEl0ZW1zICRpdGVtcywgKQ0KCXsNCgkJJHRoaXMtPml0ZW0gPSAkaXRlbTsNCgkJJHRoaXMtPml0ZW1zID0gJGl0ZW1zOw0KCQkkdGhpcy0+dXJsID0gcnRyaW0oVXJpOjpyb290KCksICcvJyk7DQoNCgkJJHVzZXIgPSBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpLT5nZXRJZGVudGl0eSgpOw0KCQkkdGhpcy0+YWNjZXNzID0gJHVzZXItPmdldEF1dGhvcmlzZWRWaWV3TGV2ZWxzKCk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBmaWxlIGRhdGEgdGhhdCBiZWxvbmcgdG8gdGhpcyBlbnRpdHkNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGVudGl0eSAgVGhlIGVudGl0eSBndWlkDQoJICogQHBhcmFtIHN0cmluZyAkdGFyZ2V0ICBUaGUgdGFyZ2V0IGVudGl0eSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0KHN0cmluZyAkZW50aXR5LCBzdHJpbmcgJHRhcmdldCk6ID9hcnJheQ0KCXsNCgkJaWYgKCgkZmlsZXMgPSAkdGhpcy0+aXRlbXMtPnRhYmxlKCdmaWxlJyktPmdldChbJGVudGl0eV0sICdlbnRpdHknKSkgIT09IG51bGwpDQoJCXsNCgkJCWZvcmVhY2ggKCRmaWxlcyBhcyAkbiA9PiAkZmlsZSkNCgkJCXsNCgkJCQlpZiAoJGZpbGUtPmVudGl0eV90eXBlICE9PSAkdGFyZ2V0IHx8DQoJCQkJCSFpbl9hcnJheSgkZmlsZS0+YWNjZXNzLCAkdGhpcy0+YWNjZXNzKSkNCgkJCQl7DQoJCQkJCXVuc2V0KCRmaWxlc1skbl0pOw0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoJCQkJJHRoaXMtPnNldEZpbGVUeXBlVGFzaygkZmlsZSk7DQoJCQkJJHRoaXMtPnNldEZpbGVUeXBlTmFtZSgkZmlsZSk7DQoJCQkJJHRoaXMtPnNldEZpbGVEb3dubG9hZExpbmsoJGZpbGUpOw0KCQkJfQ0KDQoJCQkvLyBJZiB0aGUgJGZpbGVzIGFycmF5IGlzIGVtcHR5LCByZXR1cm4gbnVsbA0KCQkJcmV0dXJuICFlbXB0eSgkZmlsZXMpID8gJGZpbGVzIDogbnVsbDsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEFkZCB0aGUgZmlsZSB0eXBlIG5hbWUgdG8gdGhpcyBmaWxlDQoJICoNCgkgKiBAcGFyYW0gb2JqZWN0ICRmaWxlICAgVGhlIGZpbGUgYmVpbmcgdXBkYXRlZA0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRGaWxlVHlwZU5hbWUob2JqZWN0ICYkZmlsZSk6IHZvaWQNCgl7DQoJCWlmICgoJGZpbGVUeXBlID0gJHRoaXMtPmdldEZpbGVUeXBlKCRmaWxlLT5maWxlX3R5cGUgPz8gbnVsbCkpICE9PSBudWxsKQ0KCQl7DQoJCQkkZmlsZS0+dHlwZV9uYW1lID0gJGZpbGVUeXBlLT5uYW1lOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGZpbGUtPnR5cGVfbmFtZSA9ICdlcnJvcic7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBBZGQgdGhlIGZpbGUgdHlwZSB0YXNrIHRvIHRoaXMgZmlsZQ0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAkZmlsZSAgIFRoZSBmaWxlIGJlaW5nIHVwZGF0ZWQNCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0RmlsZVR5cGVUYXNrKG9iamVjdCAmJGZpbGUpOiB2b2lkDQoJew0KCQlpZiAoKCRmaWxlVHlwZSA9ICR0aGlzLT5nZXRGaWxlVHlwZSgkZmlsZS0+ZmlsZV90eXBlID8/IG51bGwpKSAhPT0gbnVsbCkNCgkJew0KCQkJJGZpbGUtPnRhc2sgPSAkdGhpcy0+Z2V0RmlsZVR5cGVUYXNrKCRmaWxlVHlwZSk7DQoJCX0NCgl9DQoNCgkvKioNCgkgKiBBZGQgdGhlIGZpbGUgZG93bmxvYWQgbGluaw0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAkZmlsZSAgIFRoZSBmaWxlIGJlaW5nIHVwZGF0ZWQNCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0RmlsZURvd25sb2FkTGluayhvYmplY3QgJiRmaWxlKTogdm9pZA0KCXsNCgkJaWYgKGlzc2V0KCRmaWxlLT50YXNrKSkNCgkJew0KCQkJLy8gQnVpbGQgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMNCgkJCSRxdWVyeVBhcmFtcyA9IFsNCgkJCQknb3B0aW9uJyA9PiAnY29tX1tbW2NvbXBvbmVudF1dXScsDQoJCQkJJ2NvbnRyb2xsZXInID0+ICdkb3dubG9hZCcsDQoJCQkJJ3Rhc2snID0+ICdkb3dubG9hZC4nIC4gJGZpbGUtPnRhc2ssDQoJCQkJJ2ZpbGUnID0+ICRmaWxlLT5ndWlkLA0KCQkJCSduYW1lJyA9PiAkZmlsZS0+bmFtZQ0KCQkJXTsNCg0KCQkJLy8gQnVpbGQgdGhlIGZ1bGwgVVJMDQoJCQkkZmlsZS0+bGluayA9ICAkdGhpcy0+dXJsIC4gUm91dGU6Ol8oJ2luZGV4LnBocD8nIC4gaHR0cF9idWlsZF9xdWVyeSgkcXVlcnlQYXJhbXMpKTsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyB0aGUgZmlsZSB0eXBlIHRhc2sgbmFtZQ0KCSAqDQoJICogQHBhcmFtIG9iamVjdCAgJGRhdGEgICBUaGUgdHlwZSBkYXRhIGFycmF5DQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZyAgIFRoZSBmaWVsZCBuYW1lDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlVHlwZVRhc2sob2JqZWN0ICRkYXRhKTogc3RyaW5nDQoJew0KCQkkdHlwZSA9ICRkYXRhLT50eXBlID8/IDQ7DQoJCWlmIChpc3NldCgkdGhpcy0+ZmlsZVR5cGVUYXNrc1skdHlwZV0pKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPmZpbGVUeXBlVGFza3NbJHR5cGVdOw0KCQl9DQoJCXJldHVybiAnZmlsZSc7DQoJfQ0KDQoJLyoqDQoJICogUmV0cmlldmVzIHRoZSBmaWxlIHR5cGUgZGV0YWlscw0KCSAqDQoJICogQHBhcmFtIHN0cmluZ3xudWxsICRndWlkICAgVGhlIEdVSUQgKEdsb2JhbGx5IFVuaXF1ZSBJZGVudGlmaWVyKSB1c2VkIGFzIHRoZSBrZXkgdG8gcmV0cmlldmUgdGhlIGZpbGUgdHlwZS4NCgkgKg0KCSAqIEByZXR1cm4gb2JqZWN0fG51bGwgICBUaGUgaXRlbSBvYmplY3QgaWYgZm91bmQsIG9yIG51bGwgaWYgdGhlIGl0ZW0gZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRGaWxlVHlwZSg/c3RyaW5nICRndWlkKTogP29iamVjdA0KCXsNCgkJaWYgKCRndWlkID09PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCWlmIChpc3NldCgkdGhpcy0+ZmlsZVR5cGVzWyRndWlkXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZmlsZVR5cGVzWyRndWlkXTsNCgkJfQ0KDQoJCSR0aGlzLT5maWxlVHlwZXNbJGd1aWRdID0gICR0aGlzLT5pdGVtLT50YWJsZSgnZmlsZV90eXBlJyktPmdldCgkZ3VpZCk7DQoNCgkJcmV0dXJuICR0aGlzLT5maWxlVHlwZXNbJGd1aWRdOw0KCX0=', '{}', '{}', '', 1, '2024-09-11 23:40:45', 17, '', 1),
(839, '61d1146f-2c2e-4e42-8492-d076f945cf35', 'JCB.Interfaces.Spreadsheet.FileReaderInterface', 'FileReaderInterface', 'interface', 'Spreadsheet File Reader Interface\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.Spreadsheet.FileReaderInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFN0cmVhbSByb3dzIGZyb20gYSBDU1Ygb3IgRXhjZWwgZmlsZSBvbmUgYnkgb25lIHVzaW5nIHlpZWxkLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgJGZpbGVQYXRoICAgIFRoZSBwYXRoIHRvIHRoZSBmaWxlLg0KCSAqIEBwYXJhbSBpbnQgICAgICRzdGFydFJvdyAgICBUaGUgc3RhcnRpbmcgcm93IGluZGV4Lg0KCSAqIEBwYXJhbSBpbnQgICAgICRjaHVua1NpemUgICBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gcmVhZCBwZXIgY2h1bmsuDQoJICoNCgkgKiBAcmV0dXJuIFxHZW5lcmF0b3IgICAgQSBnZW5lcmF0b3IgdGhhdCB5aWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoc3RyaW5nICRmaWxlUGF0aCwgaW50ICRzdGFydFJvdywgaW50ICRjaHVua1NpemUpOiBcR2VuZXJhdG9yOw==', '{}', '{}', '', 1, '2019-04-03 07:42:37', 13, '', 1),
(840, 'dcb0e061-f337-44f7-87f2-f5c5fb9ce917', 'JCB.Spreadsheet.FileReader', 'FileReader', 'final class', 'Spreadsheet File Reader Class\r\n\r\n@since 3.2.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"61d1146f-2c2e-4e42-8492-d076f945cf35\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Spreadsheet.FileReader', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"9ae018a5-9064-40ed-ad69-9c1ed2a459f5\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFN0cmVhbSByb3dzIGZyb20gYSBDU1Ygb3IgRXhjZWwgZmlsZSBvbmUgYnkgb25lIHVzaW5nIHlpZWxkLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgJGZpbGVQYXRoICAgIFRoZSBwYXRoIHRvIHRoZSBmaWxlLg0KCSAqIEBwYXJhbSBpbnQgICAgICRzdGFydFJvdyAgICBUaGUgc3RhcnRpbmcgcm93IGluZGV4Lg0KCSAqIEBwYXJhbSBpbnQgICAgICRjaHVua1NpemUgICBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gcmVhZCBwZXIgY2h1bmsuDQoJICoNCgkgKiBAcmV0dXJuIFxHZW5lcmF0b3IgICAgQSBnZW5lcmF0b3IgdGhhdCB5aWVsZHMgZWFjaCByb3cgYXMgYW4gYXJyYXkuDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0Lg0KCSAqIEB0aHJvd3MgXE91dE9mUmFuZ2VFeGNlcHRpb24gSWYgdGhlIHN0YXJ0IHJvdyBpcyBiZXlvbmQgdGhlIGhpZ2hlc3Qgcm93LCBubyByb3dzIGNhbiBiZSBwcm9jZXNzZWQuDQoJICogQHRocm93cyBSZWFkZXJFeGNlcHRpb24gSWYgdGhlcmUgaXMgYW4gZXJyb3IgaWRlbnRpZnlpbmcgb3IgcmVhZGluZyB0aGUgZmlsZS4NCgkgKiBAdGhyb3dzIFNwcmVhZHNoZWV0RXhjZXB0aW9uIElmIHRoZXJlIGlzIGFuIGVycm9yIHdvcmtpbmcgd2l0aCB0aGUgc3ByZWFkc2hlZXQuDQoJICogQHNpbmNlIDMuMi4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoc3RyaW5nICRmaWxlUGF0aCwgaW50ICRzdGFydFJvdywgaW50ICRjaHVua1NpemUpOiBcR2VuZXJhdG9yDQoJew0KCQkvLyBDaGVjayBpZiB0aGUgZmlsZSBleGlzdHMNCgkJaWYgKCFpc19maWxlKCRmaWxlUGF0aCkpDQoJCXsNCgkJCXRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJGaWxlIG5vdCBmb3VuZDogJGZpbGVQYXRoIik7DQoJCX0NCg0KCQl0cnkgew0KCQkJLy8gSWRlbnRpZnkgZmlsZSB0eXBlIGFuZCBjcmVhdGUgcmVhZGVyDQoJCQkkaW5wdXRGaWxlVHlwZSA9IElPRmFjdG9yeTo6aWRlbnRpZnkoJGZpbGVQYXRoKTsNCgkJCSRyZWFkZXIgPSBJT0ZhY3Rvcnk6OmNyZWF0ZVJlYWRlcigkaW5wdXRGaWxlVHlwZSk7DQoJCQkkcmVhZGVyLT5zZXRSZWFkRGF0YU9ubHkodHJ1ZSk7DQoNCgkJCS8vIExvYWQgdGhlIGVudGlyZSBzcHJlYWRzaGVldCB0byBkZXRlcm1pbmUgdGhlIGhpZ2hlc3Qgcm93DQoJCQkkc3ByZWFkc2hlZXQgPSAkcmVhZGVyLT5sb2FkKCRmaWxlUGF0aCk7DQoJCQkkd29ya3NoZWV0ID0gJHNwcmVhZHNoZWV0LT5nZXRBY3RpdmVTaGVldCgpOw0KCQkJJGhpZ2hlc3RSb3cgPSAkd29ya3NoZWV0LT5nZXRIaWdoZXN0Um93KCk7IC8vIEdldCB0aGUgaGlnaGVzdCByb3cgbnVtYmVyIGluIHRoZSBzaGVldA0KDQoJCQkvLyBEaXNjb25uZWN0IGFuZCBmcmVlIG1lbW9yeSBhZnRlciBmZXRjaGluZyB0aGUgaGlnaGVzdCByb3cNCgkJCSRzcHJlYWRzaGVldC0+ZGlzY29ubmVjdFdvcmtzaGVldHMoKTsNCgkJCXVuc2V0KCRzcHJlYWRzaGVldCk7DQoNCgkJCS8vIElmIHRoZSBzdGFydCByb3cgaXMgYmV5b25kIHRoZSBoaWdoZXN0IHJvdywgbm8gcm93cyBjYW4gYmUgcHJvY2Vzc2VkDQoJCQlpZiAoJHN0YXJ0Um93ID4gJGhpZ2hlc3RSb3cpDQoJCQl7DQoJCQkJdGhyb3cgbmV3IFxPdXRPZlJhbmdlRXhjZXB0aW9uKCJTdGFydCByb3cgKCRzdGFydFJvdykgaXMgYmV5b25kIGhpZ2hlc3Qgcm93ICgkaGlnaGVzdFJvdykiKTsNCgkJCX0NCg0KCQkJLy8gSW5pdGlhbGl6ZSB2YXJpYWJsZXMgZm9yIHJvdyBwcm9jZXNzaW5nDQoJCQkkdG90YWxSb3dzID0gJHN0YXJ0Um93Ow0KDQoJCQlkbyB7DQoJCQkJLy8gQ2FsY3VsYXRlIHRoZSBsYXN0IHJvdyBpbiB0aGUgY3VycmVudCBjaHVuaw0KCQkJCSRlbmRSb3cgPSBtaW4oJHRvdGFsUm93cyArICRjaHVua1NpemUgLSAxLCAkaGlnaGVzdFJvdyk7DQoNCgkJCQkvLyBTZXQgdXAgYSBuZXcgY2h1bmsgZmlsdGVyIGZvciB0aGUgY3VycmVudCBjaHVuaw0KCQkJCSRjaHVua0ZpbHRlciA9IG5ldyBDaHVua1JlYWRGaWx0ZXIoJHRvdGFsUm93cywgJGVuZFJvdyk7DQoJCQkJJHJlYWRlci0+c2V0UmVhZEZpbHRlcigkY2h1bmtGaWx0ZXIpOw0KDQoJCQkJLy8gUmVsb2FkIHRoZSBjaHVuayBpbnRvIHRoZSBzcHJlYWRzaGVldA0KCQkJCSRzcHJlYWRzaGVldCA9ICRyZWFkZXItPmxvYWQoJGZpbGVQYXRoKTsNCgkJCQkkd29ya3NoZWV0ID0gJHNwcmVhZHNoZWV0LT5nZXRBY3RpdmVTaGVldCgpOw0KDQoJCQkJLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSByb3dzIGluIHRoZSBjdXJyZW50IGNodW5rDQoJCQkJZm9yZWFjaCAoJHdvcmtzaGVldC0+Z2V0Um93SXRlcmF0b3IoJHRvdGFsUm93cywgJGVuZFJvdykgYXMgJHJvdykNCgkJCQl7DQoJCQkJCXlpZWxkICRyb3c7DQoNCgkJCQkJLy8gVXBkYXRlIHRoZSByb3cgaW5kZXggZm9yIHRoZSBuZXh0IGNodW5rDQoJCQkJCSR0b3RhbFJvd3MgPSAkcm93LT5nZXRSb3dJbmRleCgpICsgMTsNCgkJCQl9DQoNCgkJCQkvLyBEaXNjb25uZWN0IHRoZSBzcHJlYWRzaGVldCB0byBmcmVlIG1lbW9yeQ0KCQkJCSRzcHJlYWRzaGVldC0+ZGlzY29ubmVjdFdvcmtzaGVldHMoKTsNCgkJCQl1bnNldCgkc3ByZWFkc2hlZXQpOw0KDQoJCQl9IHdoaWxlICgkdG90YWxSb3dzIDw9ICRoaWdoZXN0Um93KTsgLy8gQ29udGludWUgcmVhZGluZyB3aGlsZSB3aXRoaW4gdGhlIHJvdyBsaW1pdA0KDQoJCX0gY2F0Y2ggKFJlYWRlckV4Y2VwdGlvbiAkZSkgew0KCQkJdGhyb3cgbmV3IFJlYWRlckV4Y2VwdGlvbigiRXJyb3IgcmVhZGluZyB0aGUgZmlsZTogIiAuICRlLT5nZXRNZXNzYWdlKCksICRlLT5nZXRDb2RlKCksICRlKTsNCgkJfSBjYXRjaCAoU3ByZWFkc2hlZXRFeGNlcHRpb24gJGUpIHsNCgkJCXRocm93IG5ldyBTcHJlYWRzaGVldEV4Y2VwdGlvbigiRXJyb3Igd2l0aCB0aGUgc3ByZWFkc2hlZXQ6ICIgLiAkZS0+Z2V0TWVzc2FnZSgpLCAkZS0+Z2V0Q29kZSgpLCAkZSk7DQoJCX0NCgl9', '{}', '{\"composer0\":{\"access_point\":\"phpspreadsheet\\/vendor\\/autoload.php\",\"namespace\":{\"namespace0\":{\"use\":\"PhpOffice\\\\PhpSpreadsheet\\\\IOFactory\"},\"namespace1\":{\"use\":\"PhpOffice\\\\PhpSpreadsheet\\\\Reader\\\\Exception as ReaderException\"},\"namespace2\":{\"use\":\"PhpOffice\\\\PhpSpreadsheet\\\\Exception as SpreadsheetException\"}}}}', '', 1, '2018-05-16 12:57:59', 16, '', 1),
@@ -2242,14 +2244,14 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t
(844, '9ffc54fa-a71e-412f-bc8b-064fc3b69167', 'JCB.Interfaces.Spreadsheet.RowDataProcessorInterfa', 'RowDataProcessorInterface', 'interface', 'Spreadsheet Row Data Processor Interface\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.Spreadsheet.RowDataProcessorInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFByb2Nlc3NlcyB0aGUgZ2l2ZW4gc3ByZWFkc2hlZXQgcm93IGFuZCByZXR1cm5zIGl0IGluIGEgc3BlY2lmaWMgZm9ybWF0Lg0KCSAqDQoJICogQHBhcmFtIFJvdyAkcm93IFRoZSByb3cgb2JqZWN0IGZyb20gdGhlIHNwcmVhZHNoZWV0IHRvIGJlIHByb2Nlc3NlZC4NCgkgKiANCgkgKiBAcmV0dXJuIG1peGVkIFByb2Nlc3NlZCByb3cgZGF0YSwgY291bGQgYmUgYW4gYXJyYXksIGNlbGwgb2JqZWN0LCBvciBvdGhlciBzdHJ1Y3R1cmVzLg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKFJvdyAkcm93KTogbWl4ZWQ7', '{}', '{\"composer0\":{\"access_point\":\"phpspreadsheet\\/vendor\\/autoload.php\",\"namespace\":{\"namespace0\":{\"use\":\"PhpOffice\\\\PhpSpreadsheet\\\\Worksheet\\\\Row\"}}}}', '', 1, '2024-10-15 00:03:06', 3, '', 1),
(845, '0f3f7188-3e0d-4d1a-8dee-7f8026cb65a9', 'JCB.Interfaces.Spreadsheet.ImportCliInterface', 'ImportCliInterface', 'interface', 'Spreadsheet Import Cli Interface\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.Spreadsheet.ImportCliInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFRoZSB0cmlnZ2VyIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIHRoZSBDTEkgdG8gc3RhcnQgdGhlIGltcG9ydCBvbiBhIHNwcmVhZHNoZWV0DQoJICoNCgkgKiBAcGFyYW0gIG9iamVjdCAgJGltcG9ydCAgVGhlIHNwcmVhZHNoZWV0IGRhdGEgdG8gaW1wb3J0Lg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZGF0YShvYmplY3QgJGltcG9ydCk6IHZvaWQ7DQoNCgkvKioNCgkgKiBUaGUgbWVzc2FnZSBvZiB0aGUgbGFzdCBpbXBvcnQgZXZlbnQNCgkgKg0KCSAqIEByZXR1cm4gIG9iamVjdA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gbWVzc2FnZSgpOiBvYmplY3Q7', '{}', '{}', '', 1, '2024-10-15 00:28:30', 1, '', 1),
(846, '85321deb-5c3a-401b-9ce1-039a746add51', 'VDM.Abstraction.Console.Import', 'Import', 'abstract class', 'Console Import\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', -1, 'AbstractCommand', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Console.Import', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ29uc29sZVxDb21tYW5kXEFic3RyYWN0Q29tbWFuZDsNCnVzZSBTeW1mb255XENvbXBvbmVudFxDb25zb2xlXElucHV0XElucHV0SW50ZXJmYWNlOw0KdXNlIFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcT3V0cHV0XE91dHB1dEludGVyZmFjZTsNCnVzZSBTeW1mb255XENvbXBvbmVudFxDb25zb2xlXFN0eWxlXFN5bWZvbnlTdHlsZTs=', '{\"use_selection0\":{\"use\":\"ff8d5fdb-2d1f-4178-bd18-a43b8efd1068\",\"as\":\"ImportFactory\"},\"use_selection1\":{\"use\":\"0f3f7188-3e0d-4d1a-8dee-7f8026cb65a9\",\"as\":\"ImportEngine\"},\"use_selection2\":{\"use\":\"21bca8a4-5b28-41c4-843e-8097f0ba7cca\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBJdGVtcyBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJdGVtcw0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBJdGVtcyAkaXRlbXM7DQoNCgkvKioNCgkgKiBUaGUgSW1wb3J0IENsYXNzLg0KCSAqDQoJICogQHZhciAgIEltcG9ydEVuZ2luZQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBJbXBvcnRFbmdpbmUgJGltcG9ydDsNCg0KCS8qKg0KCSAqIFRoZSBxdWV1ZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkcXVldWVUYWJsZTsNCg0KCS8qKg0KCSAqIFRoZSBxdWV1ZSBzdGF0dXMgZmllbGQNCgkgKg0KCSAqIEB2YXIgc3RyaW5nDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJHF1ZXVlU3RhdHVzRmllbGQ7DQoNCgkvKioNCgkgKiBUaGUgcXVldWUgYXdhaXRpbmcgc3RhdHVzDQoJICoNCgkgKiBAdmFyIGludA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgaW50ICRxdWV1ZVdhaXRTdGF0ZTsNCg0KCS8qKg0KCSAqIFRoZSBxdWV1ZSBwcm9jZXNzaW5nIHN0YXR1cw0KCSAqDQoJICogQHZhciBpbnQNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIGludCAkcXVldWVQcm9jZXNzaW5nU3RhdGU7DQoNCgkvKioNCgkgKiBUaGUgbWFpbiBpbXBvcnQgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAdmFyIHN0cmluZw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YXJnZXROYW1lOw0KDQoJLyoqDQoJICogVGhlIHRhcmdldCBpbXBvcnQgY2xhc3MuDQoJICoNCgkgKiBAdmFyIHN0cmluZw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YXJnZXRJbXBvcnRDbGFzczsNCg0KCS8qKg0KCSAqIFRoZSBkZWZhdWx0IGNvbW1hbmQgbmFtZS4NCgkgKg0KCSAqIEB2YXIgc3RyaW5nDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdGF0aWMgJGRlZmF1bHROYW1lOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3IuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgICRuYW1lICAgICBUaGUgbmFtZSBvZiB0aGUgY29tbWFuZDsgaWYgdGhlIG5hbWUgaXMgZW1wdHkgYW5kIG5vIGRlZmF1bHQgaXMgc2V0LCBhIG5hbWUgbXVzdCBiZSBzZXQgaW4gdGhlIGNvbmZpZ3VyZSgpIG1ldGhvZA0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KD9zdHJpbmcgJG5hbWUgPSBudWxsKQ0KCXsNCgkJLy8gbWFrZSBzdXJlIHdlIGtub3cgd2hhdCBjb21wb25lbnQgd2UgYXJlIHdvcmtpbmcgd2l0aA0KCQlIZWxwZXI6OnNldE9wdGlvbignY29tX1tbW2NvbXBvbmVudF1dXScpOw0KDQoJCS8vIExvYWQgYWRtaW5pc3RyYXRvciBsYW5ndWFnZSBmaWxlIGZvciBiYWNrZW5kDQoJCSRsYW5nID0gRmFjdG9yeTo6Z2V0TGFuZ3VhZ2UoKTsNCgkJJGxhbmctPmxvYWQoJ2NvbV9bW1tjb21wb25lbnRdXV0nLCBKUEFUSF9BRE1JTklTVFJBVE9SKTsNCg0KCQkkdGhpcy0+aXRlbXMgPSBJbXBvcnRGYWN0b3J5OjpfKCdEYXRhLkl0ZW1zJyk7DQoJCSR0aGlzLT5pbXBvcnQgPSBJbXBvcnRGYWN0b3J5OjpfKCR0aGlzLT50YXJnZXRJbXBvcnRDbGFzcyk7DQoNCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkbmFtZSk7DQoJfQ0KDQoJLyoqDQoJICogQ29uZmlndXJlcyB0aGUgQ0xJIGNvbW1hbmQsIHNldHRpbmcgdXAgdGhlIGRlc2NyaXB0aW9uIGFuZCBoZWxwIHRleHQuDQoJICoNCgkgKiBUaGlzIGNvbW1hbmQgcGFyc2VzIHRoZSBpbXBvcnQgcXVldWUgYW5kIGltcG9ydHMgaXRlbXMgdGhhdCBhcmUgc3RpbGwgaW4gdGhlIHF1ZXVlLg0KCSAqIEl0IGlzIHVzZWZ1bCBmb3IgYXV0b21hdGljYWxseSBwcm9jZXNzaW5nIHBlbmRpbmcgaXRlbSBpbXBvcnRzIGluIHRoZSB2aXJ0dWFsIHdhcmVob3VzZS4NCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gY29uZmlndXJlKCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5zZXREZXNjcmlwdGlvbigiUHJvY2Vzc2VzIHRoZSBpbXBvcnQgcXVldWUgYW5kIHskdGhpcy0+dGFyZ2V0TmFtZX0gaW1wb3J0cyBhbGwgc3ByZWFkc2hlZXRzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBxdWV1ZS4iKTsNCgkJJHRoaXMtPnNldEhlbHAoDQo8PDxFT0YNClRoZSA8aW5mbz4lY29tbWFuZC5uYW1lJTwvaW5mbz4gY29tbWFuZCBwYXJzZXMgdGhlIGltcG9ydCBxdWV1ZSBhbmQgcHJvY2Vzc2VzIGFsbCB7JHRoaXMtPnRhcmdldE5hbWV9IHNwcmVhZHNoZWV0cyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nIGltcG9ydC4NClRoaXMgaXMgdXNlZnVsIGZvciBrZWVwaW5nIHRoZSBzeXN0ZW0gdXAtdG8tZGF0ZSB3aXRoIGluY29taW5nIGRhdGEuDQoNClVzYWdlOg0KPGluZm8+cGhwIGpvb21sYS5waHAgJWNvbW1hbmQubmFtZSU8L2luZm8+DQpFT0YpOw0KCX0NCg0KCS8qKg0KCSAqIEV4ZWN1dGVzIHRoZSBDTEkgY29tbWFuZCwgcHJvY2Vzc2luZyBlYWNoIHNwcmVhZHNoZWV0IGluIHRoZSBpbXBvcnQgcXVldWUuDQoJICoNCgkgKiBAcGFyYW0gICBJbnB1dEludGVyZmFjZSAgICRpbnB1dCAgIFRoZSBpbnB1dCB0byBpbmplY3QgaW50byB0aGUgY29tbWFuZC4NCgkgKiBAcGFyYW0gICBPdXRwdXRJbnRlcmZhY2UgICRvdXRwdXQgIFRoZSBvdXRwdXQgdG8gaW5qZWN0IGludG8gdGhlIGNvbW1hbmQuDQoJICoNCgkgKiBAcmV0dXJuICBpbnQgIFRoZSBjb21tYW5kIGV4aXQgY29kZSAoMCBmb3Igc3VjY2VzcykuDQoJICogQHNpbmNlICAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgZnVuY3Rpb24gZG9FeGVjdXRlKElucHV0SW50ZXJmYWNlICRpbnB1dCwgT3V0cHV0SW50ZXJmYWNlICRvdXRwdXQpOiBpbnQNCgl7DQoJCSRpbyA9IG5ldyBTeW1mb255U3R5bGUoJGlucHV0LCAkb3V0cHV0KTsNCg0KCQkvLyBPdXRwdXQgdGhlIHRpdGxlIGZvciB0aGUgdGFzaw0KCQkkaW8tPnRpdGxlKCIjIyNDb21wb25lbnRfbmFtZSMjIzogeyR0aGlzLT50YXJnZXROYW1lfSBpbXBvcnQgc3RhdHVzIik7DQoNCgkJLy8gR2V0IGFsbCBpbXBvcnRzIGluIHRoZSBxdWV1ZSB0aGF0IGFyZSBpbiB3YWl0aW5nIHN0YXRlDQoJCWlmICgoJHF1ZXVlID0gJHRoaXMtPml0ZW1zLT50YWJsZSgkdGhpcy0+cXVldWVUYWJsZSktPmdldChbJHRoaXMtPnF1ZXVlV2FpdFN0YXRlXSwgJHRoaXMtPnF1ZXVlU3RhdHVzRmllbGQpKSA9PT0gbnVsbCkNCgkJew0KCQkJLy8gR2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUNCgkJCSR0aW1lc3RhbXAgPSBkYXRlKCdZLW0tZCBIOmk6cycpOw0KDQoJCQkvLyBPdXRwdXQgdGhlIG5vdGljZSBvZiBubyBpbXBvcnRzIHRvIGJlIGRvbmUNCgkJCSRpby0+aW5mbygiTm8geyR0aGlzLT50YXJnZXROYW1lfSBpbXBvcnRzIGZvdW5kIGluIHRoZSBxdWV1ZS4gSWRsZSBhdCB7JHRpbWVzdGFtcH0uIik7DQoNCgkJCXJldHVybiAwOw0KCQl9DQoNCgkJLy8gdGFrZSBzcHJlYWRzaGVldHMgb3V0IG9mIHF1ZXVlDQoJCSR0aGlzLT5pdGVtcy0+dGFibGUoJHRoaXMtPnF1ZXVlVGFibGUpLT5zZXQoYXJyYXlfbWFwKGZ1bmN0aW9uKCRpdGVtKSB7DQoJCQlyZXR1cm4gWw0KCQkJCSdndWlkJyA9PiAkaXRlbS0+Z3VpZCwNCgkJCQkkdGhpcy0+cXVldWVTdGF0dXNGaWVsZCA9PiAkdGhpcy0+cXVldWVQcm9jZXNzaW5nU3RhdGUNCgkJCV07DQoJCX0sICRxdWV1ZSkpOw0KDQoJCS8vIHNpemUgb2YgdGhlIHF1ZXVlDQoJCSRudW1iZXJTdGVwcyA9IGNvdW50KChhcnJheSkgJHF1ZXVlKTsNCg0KCQkvLyBPdXRwdXQgaW5pdGlhbCB0YXNrIGluZm9ybWF0aW9uDQoJCSRpby0+aW5mbygiSW5pdGlhdGluZyBpbXBvcnQgZm9yIHskbnVtYmVyU3RlcHN9IHskdGhpcy0+dGFyZ2V0TmFtZX0gc3ByZWFkc2hlZXQocykgaW4gdGhlIHF1ZXVlLiIpOw0KCQkkaW8tPm5ld0xpbmUoMik7DQoNCgkJLy8gQ3JlYXRlIGEgcHJvZ3Jlc3MgYmFyIGZvciB0aGUgb3ZlcmFsbCBpbXBvcnQgcHJvY2Vzcw0KCQkkcHJvZ3Jlc3NCYXIgPSAkaW8tPmNyZWF0ZVByb2dyZXNzQmFyKCRudW1iZXJTdGVwcyk7DQoJCSRwcm9ncmVzc0Jhci0+c3RhcnQoKTsNCg0KCQkvLyBUcmFjayBzdWNjZXNzIGFuZCBmYWlsdXJlIGNvdW50cw0KCQkkc3VjY2Vzc0NvdW50ID0gMDsNCgkJJGZhaWx1cmVDb3VudCA9IDA7DQoNCgkJLy8gSW1wb3J0IG9uZSBzcHJlYWRzaGVldCBhdCBhIHRpbWUNCgkJZm9yZWFjaCAoJHF1ZXVlIGFzICRzcHJlYWRzaGVldCkNCgkJew0KCQkJJGlvLT5uZXdMaW5lKDIpOw0KDQoJCQkvLyBPdXRwdXQgdGhlIGN1cnJlbnQgc3ByZWFkc2hlZXQgYmVpbmcgcHJvY2Vzc2VkDQoJCQkkaW8tPnNlY3Rpb24oIlByb2Nlc3Npbmcgc3ByZWFkc2hlZXQgI3skc3ByZWFkc2hlZXQtPmd1aWR9Li4uIik7DQoNCgkJCS8vIEltcG9ydCB0aGUgZGF0YSBmb3VuZCBpbiB0aGUgc3ByZWFkc2hlZXQNCgkJCSR0aGlzLT5pbXBvcnQtPmRhdGEoJHNwcmVhZHNoZWV0KTsNCg0KCQkJLy8gR2V0IHRoZSBjb21wbGV0aW9uIG1lc3NhZ2UNCgkJCSRjb21wbGV0aW9uID0gJHRoaXMtPmltcG9ydC0+bWVzc2FnZSgpOw0KDQoJCQkvLyBUcmFjayBzdWNjZXNzIGJhc2VkIG9uIGNvbXBsZXRpb24gbWVzc2FnZQ0KCQkJaWYgKCRjb21wbGV0aW9uLT5tZXNzYWdlX3N1Y2Nlc3MpDQoJCQl7DQoJCQkJJHN1Y2Nlc3NDb3VudCsrOw0KDQoJCQkJLy8gT3V0cHV0IHRoZSBzdWNjZXNzIG1lc3NhZ2UgZm9yIHRoaXMgc3ByZWFkc2hlZXQNCgkJCQkkaW8tPnN1Y2Nlc3MoJGNvbXBsZXRpb24tPm1lc3NhZ2Vfc3VjY2Vzcyk7DQoJCQl9DQoNCgkJCS8vIFRyYWNrIGZhaWx1cmUgYmFzZWQgb24gY29tcGxldGlvbiBtZXNzYWdlDQoJCQlpZiAoJGNvbXBsZXRpb24tPm1lc3NhZ2VfZXJyb3IpDQoJCQl7DQoJCQkJJGZhaWx1cmVDb3VudCsrOw0KDQoJCQkJLy8gT3V0cHV0IHRoZSBlcnJvciBtZXNzYWdlIGZvciB0aGlzIHNwcmVhZHNoZWV0DQoJCQkJJGlvLT5lcnJvcigkY29tcGxldGlvbi0+bWVzc2FnZV9lcnJvcik7DQoJCQl9DQoNCgkJCS8vIEFkdmFuY2UgdGhlIG1haW4gcHJvZ3Jlc3MgYmFyIGJ5IG9uZSBzdGVwDQoJCQlzbGVlcCgxKTsNCgkJCSRwcm9ncmVzc0Jhci0+YWR2YW5jZSgpOw0KCQkJJGlvLT5uZXdMaW5lKDEpOw0KCQl9DQoNCgkJLy8gRmluaXNoIHRoZSBtYWluIHByb2dyZXNzIGJhcg0KCQkkcHJvZ3Jlc3NCYXItPmZpbmlzaCgpOw0KCQkkaW8tPm5ld0xpbmUoMik7DQoNCgkJLy8gQ2FsY3VsYXRlIHRoZSBzdWNjZXNzIGFuZCBmYWlsdXJlIHBlcmNlbnRhZ2VzDQoJCSR0b3RhbFByb2Nlc3NlZCA9ICRzdWNjZXNzQ291bnQgKyAkZmFpbHVyZUNvdW50Ow0KCQkkc3VjY2Vzc1JhdGUgPSAoJHRvdGFsUHJvY2Vzc2VkID4gMCkgPyByb3VuZCgoJHN1Y2Nlc3NDb3VudCAvICR0b3RhbFByb2Nlc3NlZCkgKiAxMDApIDogMDsNCgkJJGZhaWx1cmVSYXRlID0gKCR0b3RhbFByb2Nlc3NlZCA+IDApID8gcm91bmQoKCRmYWlsdXJlQ291bnQgLyAkdG90YWxQcm9jZXNzZWQpICogMTAwKSA6IDA7DQoNCgkJLy8gR2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUNCgkJJHRpbWVzdGFtcCA9IGRhdGUoJ1ktbS1kIEg6aTpzJyk7DQoNCgkJLy8gT3V0cHV0IHRoZSBzdWNjZXNzIGFuZCBmYWlsdXJlIHN1bW1hcnkgd2l0aCB0aGUgdGltZXN0YW1wDQoJCSRpby0+aW5mbygiVGhlIHskdGhpcy0+dGFyZ2V0TmFtZX0gaW1wb3J0IGZpbmlzaGVkOiB7JHN1Y2Nlc3NSYXRlfSUgc3VjY2VzcywgeyRmYWlsdXJlUmF0ZX0lIGZhaWx1cmUuIENvbXBsZXRlZCBhdCB7JHRpbWVzdGFtcH0uIik7DQoNCgkJJGlvLT5uZXdMaW5lKDEpOw0KDQoJCXJldHVybiAwOw0KCX0=', '{}', '{}', '', 1, '2024-10-15 00:56:38', 8, '', 1),
-(847, '79fd4f39-824d-4ab6-936d-959705ff24ec', 'VDM.Table.Validator', 'Validator', 'final class', 'Table Value Validator\r\n\r\n@since 5.3.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"feb3affa-5102-4307-93db-04525f4c66f0\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table.Validator', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"bfd1d6d5-56c1-4fe9-9fee-1c5910e1f5d8\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBUYWJsZSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBUYWJsZQ0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByb3RlY3RlZCBUYWJsZSAkdGFibGU7DQoNCgkvKioNCgkgKiAgQSBtYXAgb2YgTXlTUUwgYmFzZSB0eXBlcyB0byB0aGVpciByZXNwZWN0aXZlIHZhbGlkYXRpb24gbWV0aG9kcy4NCgkgKg0KCSAqIEB2YXIgICBhcnJheQ0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAkdmFsaWRhdG9ycyA9IFtdOw0KDQoJLyoqDQoJICogIEEgbWFwIG9mIGRlZmF1bHRzIGZvciB0aGUgcmVzcGVjdGl2ZSBkYXRhdHlwZXMuDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGRlZmF1bHRzID0gW107DQoNCgkvKioNCgkgKiAgQ2FjaGUgb2YgdGhlIHBhcnNlZCBkYXRhdHlwZSBkZXRhaWxzDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGRhdGF0eXBlcyA9IFtdOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3IuDQoJICoNCgkgKiBAcGFyYW0gVGFibGUgICAkdGFibGUgICBUaGUgVGFibGUgQ2xhc3MuDQoJICoNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVGFibGUgJHRhYmxlKQ0KCXsNCgkJJHRoaXMtPnRhYmxlID0gJHRhYmxlOw0KDQoJCS8vIFJlZ2lzdGVyIGRhdGF0eXBlIHZhbGlkYXRvcnMgKG1hcHBpbmcgTXlTUUwgdHlwZXMgdG8gaGFuZGxlcnMpDQoJCSR0aGlzLT5yZWdpc3RlclZhbGlkYXRvcnMoKTsNCg0KCQkvLyBSZWdpc3RlciBkYXRhdHlwZSBkZWZhdWx0cw0KCQkkdGhpcy0+cmVnaXN0ZXJEZWZhdWx0cygpOw0KCX0NCg0KCS8qKg0KCSAqIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlIGJhc2VkIG9uIGRhdGF0eXBlIGRlZmluaXRpb24uDQoJICogSWYgdGhlIHZhbHVlIGlzIHZhbGlkLCByZXR1cm4gaXQuIElmIG5vdCwgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLA0KCSAqIE5VTEwgKGlmIGFsbG93ZWQpLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ0VNUFRZJyBpcyBzZXQuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkICBUaGUgZmllbGQgbmFtZS4NCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIG1peGVkIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlLCBvciB0aGUgZGVmYXVsdCwgTlVMTCwgb3IgZW1wdHkgc3RyaW5nIGJhc2VkIG9uIHZhbGlkYXRpb24uDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFZhbGlkKCR2YWx1ZSwgc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0YWJsZSkNCgl7DQoJCS8vIEdldCB0aGUgZGF0YWJhc2UgZmllbGQgZGVmaW5pdGlvbg0KCQlpZiAoKCRkYkZpZWxkID0gJHRoaXMtPmdldERhdGFiYXNlRmllbGQoJGZpZWxkLCAkdGFibGUpKSA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIG51bGw7IC8vIG5vdCBsZWdhbCBmaWVsZCBvciB0YWJsZQ0KCQl9DQoNCgkJLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIHZhbGlkIGZvciB0aGUgZmllbGQNCgkJaWYgKCR0aGlzLT52YWxpZGF0ZSgkdmFsdWUsICRkYkZpZWxkKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZTsNCgkJfQ0KDQoJCS8vIElmIGludmFsaWQsIHJldHVybiBkZWZhdWx0LCBOVUxMIChpZiBhbGxvd2VkKSwgb3IgZW1wdHkgc3RyaW5nDQoJCXJldHVybiAkdGhpcy0+Z2V0RGVmYXVsdCgkZGJGaWVsZCwgJHZhbHVlKTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgdmFsaWQgZm9yIHRoZSBwcm92aWRlZCBkYXRhYmFzZSBmaWVsZC4NCgkgKiBUaGlzIGlzIGEgcHJpdmF0ZSBtZXRob2QgYXMgYGdldFZhbGlkKClgIHdpbGwgaGFuZGxlIHRoZSBhY3R1YWwgbG9naWMuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICAkZGJGaWVsZCAgVGhlIGRhdGFiYXNlIGZpZWxkIGRldGFpbHMgKHR5cGUsIGRlZmF1bHQsIG51bGxfc3dpdGNoLCBldGMuKS4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZSgkdmFsdWUsIGFycmF5ICRkYkZpZWxkKTogYm9vbA0KCXsNCgkJLy8gRXh0cmFjdCBkYXRhdHlwZSBhbmQgaGFuZGxlIHRoZSB2YWxpZGF0aW9uDQoJCSR0eXBlSW5mbyA9ICR0aGlzLT5wYXJzZURhdGFUeXBlKCRkYkZpZWxkWyd0eXBlJ10pOw0KCQkkYmFzZVR5cGUgPSAkdHlwZUluZm9bJ3R5cGUnXTsNCgkJDQoJCS8vIFVzZSB0aGUgYXBwcm9wcmlhdGUgdmFsaWRhdG9yIGlmIGl0IGV4aXN0cw0KCQlpZiAoaXNzZXQoJHRoaXMtPnZhbGlkYXRvcnNbJGJhc2VUeXBlXSkpDQoJCXsNCgkJCXJldHVybiBjYWxsX3VzZXJfZnVuYygkdGhpcy0+dmFsaWRhdG9yc1skYmFzZVR5cGVdLCAkdmFsdWUsICR0eXBlSW5mbyk7DQoJCX0NCg0KCQkvLyBJZiBubyB2YWxpZGF0b3IgZXhpc3RzLCBhc3N1bWUgaW52YWxpZA0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogSGFuZGxlIHJldHVybmluZyB0aGUgZGVmYXVsdCB2YWx1ZSwgbnVsbCwgb3IgZW1wdHkgc3RyaW5nIGlmIHZhbGlkYXRpb24gZmFpbHMuDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgICRkYkZpZWxkICBUaGUgZGF0YWJhc2UgZmllbGQgZGV0YWlscy4NCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICoNCgkgKiBAcmV0dXJuIG1peGVkIFRoZSBkZWZhdWx0IHZhbHVlLCBudWxsLCBvciBlbXB0eSBzdHJpbmcgYmFzZWQgb24gZmllbGQgc2V0dGluZ3MuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBnZXREZWZhdWx0KGFycmF5ICRkYkZpZWxkLCAkdmFsdWUpDQoJew0KCQkvLyBnZXQgZGVmYXVsdCB2YWx1ZSBmcm9tIGZpZWxkIGRiDQoJCSRkYl9kZWZhdWx0ID0gaXNzZXQoJGRiRmllbGRbJ2RlZmF1bHQnXSkgPyAkZGJGaWVsZFsnZGVmYXVsdCddIDogbnVsbDsNCg0KCQkvLyBJZiBhIGRlZmF1bHQgdmFsdWUgaXMgcHJvdmlkZWQsIHJldHVybiBpdA0KCQlpZiAoJGRiX2RlZmF1bHQgIT09IG51bGwpDQoJCXsNCgkJCXJldHVybiBzdHJ0b3VwcGVyKCRkYl9kZWZhdWx0KSA9PT0gJ0VNUFRZJyA/ICcnIDogJGRiX2RlZmF1bHQ7DQoJCX0NCg0KCQkvLyBDaGVjayBpZiBOVUxMIGlzIGFsbG93ZWQNCgkJaWYgKGlzc2V0KCRkYkZpZWxkWydudWxsX3N3aXRjaCddKSAmJiBzdHJ0b3VwcGVyKCRkYkZpZWxkWydudWxsX3N3aXRjaCddKSA9PT0gJ05VTEwnKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIEZhbGxiYWNrIHRvIGRhdGF0eXBlIGRlZmF1bHQNCgkJJHR5cGVJbmZvID0gJHRoaXMtPnBhcnNlRGF0YVR5cGUoJGRiRmllbGRbJ3R5cGUnXSk7DQoJCXJldHVybiAkdGhpcy0+ZGVmYXVsdHNbJHR5cGVJbmZvWyd0eXBlJ11dID8/ICcnOw0KCX0NCg0KCS8qKg0KCSAqIFBhcnNlIHRoZSBkYXRhIHR5cGUgZnJvbSB0aGUgZGF0YWJhc2UgZmllbGQgYW5kIGV4dHJhY3QgZGV0YWlscyBsaWtlIHR5cGUsIHNpemUsIGFuZCBwcmVjaXNpb24uDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRkYXRhdHlwZSBUaGUgZnVsbCBNeVNRTCBkYXRhdHlwZSAoZS5nLiwgVkFSQ0hBUigyNTUpKS4NCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkgQW4gYXJyYXkgY29udGFpbmluZyAndHlwZScsICdzaXplJywgYW5kIG90aGVyIHJlbGV2YW50IGluZm8uDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZURhdGFUeXBlKHN0cmluZyAkZGF0YXR5cGUpOiBhcnJheQ0KCXsNCgkJaWYgKGlzc2V0KCR0aGlzLT5kYXRhdHlwZXNbJGRhdGF0eXBlXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGF0YXR5cGVzWyRkYXRhdHlwZV07DQoJCX0NCg0KCQkkcGF0dGVybiA9ICcvKD88dHlwZT5cdyspKFwoKD88c2l6ZT5cZCspKCxccyooPzxwcmVjaXNpb24+XGQrKSk/XCkpPy9pJzsNCgkJcHJlZ19tYXRjaCgkcGF0dGVybiwgJGRhdGF0eXBlLCAkbWF0Y2hlcyk7DQoJCQ0KCQkkcmVzdWx0ID0gWw0KCQkJJ3R5cGUnID0+IGlzc2V0KCRtYXRjaGVzWyd0eXBlJ10pID8gc3RydG9sb3dlcigkbWF0Y2hlc1sndHlwZSddKSA6IHN0cnRvbG93ZXIoJGRhdGF0eXBlKSwNCgkJCSdzaXplJyA9PiAkbWF0Y2hlc1snc2l6ZSddID8/IG51bGwsDQoJCQkncHJlY2lzaW9uJyA9PiAkbWF0Y2hlc1sncHJlY2lzaW9uJ10gPz8gbnVsbCwNCgkJXTsNCg0KCQlyZXR1cm4gJHRoaXMtPmRhdGF0eXBlc1skZGF0YXR5cGVdID0gJHJlc3VsdDsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZSB0aGUgZGF0YWJhc2UgZmllbGQgc3RydWN0dXJlIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkIGFuZCB0YWJsZS4NCgkgKiBJbiB5b3VyIGNhc2UsIHlvdSB1c2UgYCRkYiA9ICR0aGlzLT50YWJsZS0+Z2V0KCR0YWJsZSwgJGZpZWxkLCAnZGInKWAuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRmaWVsZCAgVGhlIGZpZWxkIG5hbWUuDQoJICogQHBhcmFtIHN0cmluZyAkdGFibGUgIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHJldHVybiBhcnJheSBUaGUgZGF0YWJhc2UgZmllbGQgZGV0YWlscywgaW5jbHVkaW5nIHR5cGUsIGRlZmF1bHQsIG51bGxfc3dpdGNoLCBldGMuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBnZXREYXRhYmFzZUZpZWxkKHN0cmluZyAkZmllbGQsIHN0cmluZyAkdGFibGUpOiBhcnJheQ0KCXsNCgkJLy8gU2ltdWxhdGVkIHJldHJpZXZhbCBvZiBmaWVsZCBkZXRhaWxzLiBSZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljLg0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlLT5nZXQoJHRhYmxlLCAkZmllbGQsICdkYicpOw0KCX0NCg0KCS8qKg0KCSAqIFJlZ2lzdGVyIHZhbGlkYXRvcnMgZm9yIE15U1FMIGRhdGEgdHlwZXMuDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHJlZ2lzdGVyVmFsaWRhdG9ycygpOiB2b2lkDQoJew0KCQkkdGhpcy0+dmFsaWRhdG9ycyA9IFsNCgkJCSdpbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ3RpbnlpbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ3NtYWxsaW50JyA9PiBbJHRoaXMsICd2YWxpZGF0ZUludGVnZXInXSwNCgkJCSdtZWRpdW1pbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ2JpZ2ludCcgPT4gWyR0aGlzLCAndmFsaWRhdGVJbnRlZ2VyJ10sDQoJCQkndmFyY2hhcicgPT4gWyR0aGlzLCAndmFsaWRhdGVTdHJpbmcnXSwNCgkJCSdjaGFyJyA9PiBbJHRoaXMsICd2YWxpZGF0ZVN0cmluZyddLA0KCQkJJ3RleHQnID0+IFskdGhpcywgJ3ZhbGlkYXRlVGV4dCddLA0KCQkJJ3Rpbnl0ZXh0JyA9PiBbJHRoaXMsICd2YWxpZGF0ZVRleHQnXSwNCgkJCSdtZWRpdW10ZXh0JyA9PiBbJHRoaXMsICd2YWxpZGF0ZVRleHQnXSwNCgkJCSdsb25ndGV4dCcgPT4gWyR0aGlzLCAndmFsaWRhdGVUZXh0J10sDQoJCQknZGVjaW1hbCcgPT4gWyR0aGlzLCAndmFsaWRhdGVEZWNpbWFsJ10sDQoJCQknZmxvYXQnID0+IFskdGhpcywgJ3ZhbGlkYXRlRmxvYXQnXSwNCgkJCSdkb3VibGUnID0+IFskdGhpcywgJ3ZhbGlkYXRlRmxvYXQnXSwNCgkJCSdkYXRlJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSdkYXRldGltZScgPT4gWyR0aGlzLCAndmFsaWRhdGVEYXRlJ10sDQoJCQkndGltZXN0YW1wJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSd0aW1lJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSdqc29uJyA9PiBbJHRoaXMsICd2YWxpZGF0ZUpzb24nXSwNCgkJCSdibG9iJyA9PiBbJHRoaXMsICd2YWxpZGF0ZUJsb2InXSwNCgkJCSd0aW55YmxvYicgPT4gWyR0aGlzLCAndmFsaWRhdGVCbG9iJ10sDQoJCQknbWVkaXVtYmxvYicgPT4gWyR0aGlzLCAndmFsaWRhdGVCbG9iJ10sDQoJCQknbG9uZ2Jsb2InID0+IFskdGhpcywgJ3ZhbGlkYXRlQmxvYiddLA0KCQldOw0KCX0NCg0KCS8qKg0KCSAqIFJlZ2lzdGVyIGRlZmF1bHQgdmFsdWVzIGZvciBNeVNRTCBkYXRhIHR5cGVzLg0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRzKCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5kZWZhdWx0cyA9IFsNCgkJCSdpbnQnID0+IDAsDQoJCQkndGlueWludCcgPT4gMCwNCgkJCSdzbWFsbGludCcgPT4gMCwNCgkJCSdtZWRpdW1pbnQnID0+IDAsDQoJCQknYmlnaW50JyA9PiAwLA0KCQkJJ3ZhcmNoYXInID0+ICcnLA0KCQkJJ2NoYXInID0+ICcnLA0KCQkJJ3RleHQnID0+ICcnLA0KCQkJJ3Rpbnl0ZXh0JyA9PiAnJywNCgkJCSdtZWRpdW10ZXh0JyA9PiAnJywNCgkJCSdsb25ndGV4dCcgPT4gJycsDQoJCQknZGVjaW1hbCcgPT4gMC4wLA0KCQkJJ2Zsb2F0JyA9PiAwLjAsDQoJCQknZG91YmxlJyA9PiAwLjAsDQoJCQknZGF0ZScgPT4gJzAwMDAtMDAtMDAnLA0KCQkJJ2RhdGV0aW1lJyA9PiAnMDAwMC0wMC0wMCAwMDowMDowMCcsDQoJCQkndGltZXN0YW1wJyA9PiAnMDAwMC0wMC0wMCAwMDowMDowMCcsDQoJCQkndGltZScgPT4gJzAwOjAwOjAwJywNCgkJCSdqc29uJyA9PiAne30nLA0KCQkJJ2Jsb2InID0+ICcnLA0KCQkJJ3RpbnlibG9iJyA9PiAnJywNCgkJCSdtZWRpdW1ibG9iJyA9PiAnJywNCgkJCSdsb25nYmxvYicgPT4gJycsDQoJCV07DQoJfQ0KDQoJLy8gLS0tLS0tLS0tLS0tLS0tLS0gVmFsaWRhdGlvbiBNZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tDQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBpbnRlZ2VyIHR5cGVzIChpbmNsdWRpbmcgdGlueWludCwgc21hbGxpbnQsIG1lZGl1bWludCwgZXRjLikuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlSW50ZWdlcigkdmFsdWUsIGFycmF5ICR0eXBlSW5mbyk6IGJvb2wNCgl7DQoJCWlmICghaXNfbnVtZXJpYygkdmFsdWUpKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkkdmFsdWUgPSAoaW50KSR2YWx1ZTsNCgkJaWYgKGlzc2V0KCR0eXBlSW5mb1sndW5zaWduZWQnXSkgJiYgJHR5cGVJbmZvWyd1bnNpZ25lZCddICYmICR2YWx1ZSA8IDApDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIHN0cmluZyB0eXBlcyBsaWtlIFZBUkNIQVIgYW5kIENIQVIuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nKCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJaWYgKCFpc19zdHJpbmcoJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gQ2hlY2sgaWYgdGhlIGxlbmd0aCBleGNlZWRzIHRoZSBhbGxvd2VkIHNpemUNCgkJaWYgKCR0eXBlSW5mb1snc2l6ZSddICE9PSBudWxsICYmIHN0cmxlbigkdmFsdWUpID4gKGludCkkdHlwZUluZm9bJ3NpemUnXSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgdGV4dCB0eXBlcyBsaWtlIFRFWFQsIFRJTllURVhULCBNRURJVU1URVhULCBMT05HVEVYVC4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUJVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBhcnJheSAkdHlwZUluZm8gVGhlIHBhcnNlZCBkYXRhIHR5cGUgaW5mb3JtYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVUZXh0KCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJcmV0dXJuIGlzX3N0cmluZygkdmFsdWUpOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGZsb2F0LCBkb3VibGUsIGFuZCBkZWNpbWFsIHR5cGVzLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZUZsb2F0KCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJcmV0dXJuIGlzX251bWVyaWMoJHZhbHVlKTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBkZWNpbWFsIHR5cGVzIChudW1lcmljIHByZWNpc2lvbiBhbmQgc2NhbGUpLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZURlY2ltYWwoJHZhbHVlLCBhcnJheSAkdHlwZUluZm8pOiBib29sDQoJew0KCQlyZXR1cm4gaXNfbnVtZXJpYygkdmFsdWUpOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGRhdGUsIGRhdGV0aW1lLCB0aW1lc3RhbXAsIGFuZCB0aW1lIHR5cGVzLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZURhdGUoJHZhbHVlLCBhcnJheSAkdHlwZUluZm8pOiBib29sDQoJew0KCQkkZm9ybWF0cyA9IFsNCgkJCSdkYXRlJyA9PiAnWS1tLWQnLA0KCQkJJ2RhdGV0aW1lJyA9PiAnWS1tLWQgSDppOnMnLA0KCQkJJ3RpbWVzdGFtcCcgPT4gJ1ktbS1kIEg6aTpzJywNCgkJCSd0aW1lJyA9PiAnSDppOnMnLA0KCQldOw0KDQoJCWlmICghaXNzZXQoJGZvcm1hdHNbJHR5cGVJbmZvWyd0eXBlJ11dKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJJGRhdGVUaW1lID0gXERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCRmb3JtYXRzWyR0eXBlSW5mb1sndHlwZSddXSwgJHZhbHVlKTsNCgkJcmV0dXJuICRkYXRlVGltZSAmJiAkZGF0ZVRpbWUtPmZvcm1hdCgkZm9ybWF0c1skdHlwZUluZm9bJ3R5cGUnXV0pID09PSAkdmFsdWU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgSlNPTiB0eXBlcy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUJVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBhcnJheSAkdHlwZUluZm8gVGhlIHBhcnNlZCBkYXRhIHR5cGUgaW5mb3JtYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVKc29uKCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJanNvbl9kZWNvZGUoJHZhbHVlKTsNCgkJcmV0dXJuIGpzb25fbGFzdF9lcnJvcigpID09PSBKU09OX0VSUk9SX05PTkU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgQkxPQiB0eXBlcyAoaW5jbHVkaW5nIFRJTllCTE9CLCBNRURJVU1CTE9CLCBMT05HQkxPQikuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlQmxvYigkdmFsdWUsIGFycmF5ICR0eXBlSW5mbyk6IGJvb2wNCgl7DQoJCXJldHVybiBpc19zdHJpbmcoJHZhbHVlKSB8fCBpc19yZXNvdXJjZSgkdmFsdWUpOw0KCX0=', '{}', '{}', '', 1, '2024-10-16 21:49:22', 9, '', 1),
+(847, '79fd4f39-824d-4ab6-936d-959705ff24ec', 'VDM.Table.Validator', 'Validator', 'final class', 'Table Value Validator\r\n\r\n@since 5.3.0', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"feb3affa-5102-4307-93db-04525f4c66f0\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Table.Validator', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"2da6d6c4-eb29-4d69-8bc2-36d96e916adf\",\"as\":\"Table\"}}', 'CS8qKg0KCSAqIFRoZSBUYWJsZSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBUYWJsZQ0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByb3RlY3RlZCBUYWJsZSAkdGFibGU7DQoNCgkvKioNCgkgKiAgQSBtYXAgb2YgTXlTUUwgYmFzZSB0eXBlcyB0byB0aGVpciByZXNwZWN0aXZlIHZhbGlkYXRpb24gbWV0aG9kcy4NCgkgKg0KCSAqIEB2YXIgICBhcnJheQ0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAkdmFsaWRhdG9ycyA9IFtdOw0KDQoJLyoqDQoJICogIEEgbWFwIG9mIGRlZmF1bHRzIGZvciB0aGUgcmVzcGVjdGl2ZSBkYXRhdHlwZXMuDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGRlZmF1bHRzID0gW107DQoNCgkvKioNCgkgKiAgQ2FjaGUgb2YgdGhlIHBhcnNlZCBkYXRhdHlwZSBkZXRhaWxzDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcm90ZWN0ZWQgYXJyYXkgJGRhdGF0eXBlcyA9IFtdOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3IuDQoJICoNCgkgKiBAcGFyYW0gVGFibGUgICAkdGFibGUgICBUaGUgVGFibGUgQ2xhc3MuDQoJICoNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVGFibGUgJHRhYmxlKQ0KCXsNCgkJJHRoaXMtPnRhYmxlID0gJHRhYmxlOw0KDQoJCS8vIFJlZ2lzdGVyIGRhdGF0eXBlIHZhbGlkYXRvcnMgKG1hcHBpbmcgTXlTUUwgdHlwZXMgdG8gaGFuZGxlcnMpDQoJCSR0aGlzLT5yZWdpc3RlclZhbGlkYXRvcnMoKTsNCg0KCQkvLyBSZWdpc3RlciBkYXRhdHlwZSBkZWZhdWx0cw0KCQkkdGhpcy0+cmVnaXN0ZXJEZWZhdWx0cygpOw0KCX0NCg0KCS8qKg0KCSAqIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlIGJhc2VkIG9uIGRhdGF0eXBlIGRlZmluaXRpb24uDQoJICogSWYgdGhlIHZhbHVlIGlzIHZhbGlkLCByZXR1cm4gaXQuIElmIG5vdCwgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLA0KCSAqIE5VTEwgKGlmIGFsbG93ZWQpLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ0VNUFRZJyBpcyBzZXQuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkICBUaGUgZmllbGQgbmFtZS4NCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIG1peGVkIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlLCBvciB0aGUgZGVmYXVsdCwgTlVMTCwgb3IgZW1wdHkgc3RyaW5nIGJhc2VkIG9uIHZhbGlkYXRpb24uDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFZhbGlkKCR2YWx1ZSwgc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0YWJsZSkNCgl7DQoJCS8vIEdldCB0aGUgZGF0YWJhc2UgZmllbGQgZGVmaW5pdGlvbg0KCQlpZiAoKCRkYkZpZWxkID0gJHRoaXMtPmdldERhdGFiYXNlRmllbGQoJGZpZWxkLCAkdGFibGUpKSA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIG51bGw7IC8vIG5vdCBsZWdhbCBmaWVsZCBvciB0YWJsZQ0KCQl9DQoNCgkJLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIHZhbGlkIGZvciB0aGUgZmllbGQNCgkJaWYgKCR0aGlzLT52YWxpZGF0ZSgkdmFsdWUsICRkYkZpZWxkKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZTsNCgkJfQ0KDQoJCS8vIElmIGludmFsaWQsIHJldHVybiBkZWZhdWx0LCBOVUxMIChpZiBhbGxvd2VkKSwgb3IgZW1wdHkgc3RyaW5nDQoJCXJldHVybiAkdGhpcy0+Z2V0RGVmYXVsdCgkZGJGaWVsZCwgJHZhbHVlKTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgdmFsaWQgZm9yIHRoZSBwcm92aWRlZCBkYXRhYmFzZSBmaWVsZC4NCgkgKiBUaGlzIGlzIGEgcHJpdmF0ZSBtZXRob2QgYXMgYGdldFZhbGlkKClgIHdpbGwgaGFuZGxlIHRoZSBhY3R1YWwgbG9naWMuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICAkZGJGaWVsZCAgVGhlIGRhdGFiYXNlIGZpZWxkIGRldGFpbHMgKHR5cGUsIGRlZmF1bHQsIG51bGxfc3dpdGNoLCBldGMuKS4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZSgkdmFsdWUsIGFycmF5ICRkYkZpZWxkKTogYm9vbA0KCXsNCgkJLy8gRXh0cmFjdCBkYXRhdHlwZSBhbmQgaGFuZGxlIHRoZSB2YWxpZGF0aW9uDQoJCSR0eXBlSW5mbyA9ICR0aGlzLT5wYXJzZURhdGFUeXBlKCRkYkZpZWxkWyd0eXBlJ10pOw0KCQkkYmFzZVR5cGUgPSAkdHlwZUluZm9bJ3R5cGUnXTsNCgkJDQoJCS8vIFVzZSB0aGUgYXBwcm9wcmlhdGUgdmFsaWRhdG9yIGlmIGl0IGV4aXN0cw0KCQlpZiAoaXNzZXQoJHRoaXMtPnZhbGlkYXRvcnNbJGJhc2VUeXBlXSkpDQoJCXsNCgkJCXJldHVybiBjYWxsX3VzZXJfZnVuYygkdGhpcy0+dmFsaWRhdG9yc1skYmFzZVR5cGVdLCAkdmFsdWUsICR0eXBlSW5mbyk7DQoJCX0NCg0KCQkvLyBJZiBubyB2YWxpZGF0b3IgZXhpc3RzLCBhc3N1bWUgaW52YWxpZA0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQoJLyoqDQoJICogSGFuZGxlIHJldHVybmluZyB0aGUgZGVmYXVsdCB2YWx1ZSwgbnVsbCwgb3IgZW1wdHkgc3RyaW5nIGlmIHZhbGlkYXRpb24gZmFpbHMuDQoJICoNCgkgKiBAcGFyYW0gYXJyYXkgICRkYkZpZWxkICBUaGUgZGF0YWJhc2UgZmllbGQgZGV0YWlscy4NCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICoNCgkgKiBAcmV0dXJuIG1peGVkIFRoZSBkZWZhdWx0IHZhbHVlLCBudWxsLCBvciBlbXB0eSBzdHJpbmcgYmFzZWQgb24gZmllbGQgc2V0dGluZ3MuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBnZXREZWZhdWx0KGFycmF5ICRkYkZpZWxkLCAkdmFsdWUpDQoJew0KCQkvLyBnZXQgZGVmYXVsdCB2YWx1ZSBmcm9tIGZpZWxkIGRiDQoJCSRkYl9kZWZhdWx0ID0gaXNzZXQoJGRiRmllbGRbJ2RlZmF1bHQnXSkgPyAkZGJGaWVsZFsnZGVmYXVsdCddIDogbnVsbDsNCg0KCQkvLyBJZiBhIGRlZmF1bHQgdmFsdWUgaXMgcHJvdmlkZWQsIHJldHVybiBpdA0KCQlpZiAoJGRiX2RlZmF1bHQgIT09IG51bGwpDQoJCXsNCgkJCXJldHVybiBzdHJ0b3VwcGVyKCRkYl9kZWZhdWx0KSA9PT0gJ0VNUFRZJyA/ICcnIDogJGRiX2RlZmF1bHQ7DQoJCX0NCg0KCQkvLyBDaGVjayBpZiBOVUxMIGlzIGFsbG93ZWQNCgkJaWYgKGlzc2V0KCRkYkZpZWxkWydudWxsX3N3aXRjaCddKSAmJiBzdHJ0b3VwcGVyKCRkYkZpZWxkWydudWxsX3N3aXRjaCddKSA9PT0gJ05VTEwnKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCS8vIEZhbGxiYWNrIHRvIGRhdGF0eXBlIGRlZmF1bHQNCgkJJHR5cGVJbmZvID0gJHRoaXMtPnBhcnNlRGF0YVR5cGUoJGRiRmllbGRbJ3R5cGUnXSk7DQoJCXJldHVybiAkdGhpcy0+ZGVmYXVsdHNbJHR5cGVJbmZvWyd0eXBlJ11dID8/ICcnOw0KCX0NCg0KCS8qKg0KCSAqIFBhcnNlIHRoZSBkYXRhIHR5cGUgZnJvbSB0aGUgZGF0YWJhc2UgZmllbGQgYW5kIGV4dHJhY3QgZGV0YWlscyBsaWtlIHR5cGUsIHNpemUsIGFuZCBwcmVjaXNpb24uDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRkYXRhdHlwZSBUaGUgZnVsbCBNeVNRTCBkYXRhdHlwZSAoZS5nLiwgVkFSQ0hBUigyNTUpKS4NCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkgQW4gYXJyYXkgY29udGFpbmluZyAndHlwZScsICdzaXplJywgYW5kIG90aGVyIHJlbGV2YW50IGluZm8uDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZURhdGFUeXBlKHN0cmluZyAkZGF0YXR5cGUpOiBhcnJheQ0KCXsNCgkJaWYgKGlzc2V0KCR0aGlzLT5kYXRhdHlwZXNbJGRhdGF0eXBlXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+ZGF0YXR5cGVzWyRkYXRhdHlwZV07DQoJCX0NCg0KCQkkcGF0dGVybiA9ICcvKD88dHlwZT5cdyspKFwoKD88c2l6ZT5cZCspKCxccyooPzxwcmVjaXNpb24+XGQrKSk/XCkpPy9pJzsNCgkJcHJlZ19tYXRjaCgkcGF0dGVybiwgJGRhdGF0eXBlLCAkbWF0Y2hlcyk7DQoJCQ0KCQkkcmVzdWx0ID0gWw0KCQkJJ3R5cGUnID0+IGlzc2V0KCRtYXRjaGVzWyd0eXBlJ10pID8gc3RydG9sb3dlcigkbWF0Y2hlc1sndHlwZSddKSA6IHN0cnRvbG93ZXIoJGRhdGF0eXBlKSwNCgkJCSdzaXplJyA9PiAkbWF0Y2hlc1snc2l6ZSddID8/IG51bGwsDQoJCQkncHJlY2lzaW9uJyA9PiAkbWF0Y2hlc1sncHJlY2lzaW9uJ10gPz8gbnVsbCwNCgkJXTsNCg0KCQlyZXR1cm4gJHRoaXMtPmRhdGF0eXBlc1skZGF0YXR5cGVdID0gJHJlc3VsdDsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZSB0aGUgZGF0YWJhc2UgZmllbGQgc3RydWN0dXJlIGZvciB0aGUgc3BlY2lmaWVkIGZpZWxkIGFuZCB0YWJsZS4NCgkgKiBJbiB5b3VyIGNhc2UsIHlvdSB1c2UgYCRkYiA9ICR0aGlzLT50YWJsZS0+Z2V0KCR0YWJsZSwgJGZpZWxkLCAnZGInKWAuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRmaWVsZCAgVGhlIGZpZWxkIG5hbWUuDQoJICogQHBhcmFtIHN0cmluZyAkdGFibGUgIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHJldHVybiBhcnJheSBUaGUgZGF0YWJhc2UgZmllbGQgZGV0YWlscywgaW5jbHVkaW5nIHR5cGUsIGRlZmF1bHQsIG51bGxfc3dpdGNoLCBldGMuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBnZXREYXRhYmFzZUZpZWxkKHN0cmluZyAkZmllbGQsIHN0cmluZyAkdGFibGUpOiBhcnJheQ0KCXsNCgkJLy8gU2ltdWxhdGVkIHJldHJpZXZhbCBvZiBmaWVsZCBkZXRhaWxzLiBSZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljLg0KCQlyZXR1cm4gJHRoaXMtPnRhYmxlLT5nZXQoJHRhYmxlLCAkZmllbGQsICdkYicpOw0KCX0NCg0KCS8qKg0KCSAqIFJlZ2lzdGVyIHZhbGlkYXRvcnMgZm9yIE15U1FMIGRhdGEgdHlwZXMuDQoJICoNCgkgKiBAcmV0dXJuIHZvaWQNCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHJlZ2lzdGVyVmFsaWRhdG9ycygpOiB2b2lkDQoJew0KCQkkdGhpcy0+dmFsaWRhdG9ycyA9IFsNCgkJCSdpbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ3RpbnlpbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ3NtYWxsaW50JyA9PiBbJHRoaXMsICd2YWxpZGF0ZUludGVnZXInXSwNCgkJCSdtZWRpdW1pbnQnID0+IFskdGhpcywgJ3ZhbGlkYXRlSW50ZWdlciddLA0KCQkJJ2JpZ2ludCcgPT4gWyR0aGlzLCAndmFsaWRhdGVJbnRlZ2VyJ10sDQoJCQkndmFyY2hhcicgPT4gWyR0aGlzLCAndmFsaWRhdGVTdHJpbmcnXSwNCgkJCSdjaGFyJyA9PiBbJHRoaXMsICd2YWxpZGF0ZVN0cmluZyddLA0KCQkJJ3RleHQnID0+IFskdGhpcywgJ3ZhbGlkYXRlVGV4dCddLA0KCQkJJ3Rpbnl0ZXh0JyA9PiBbJHRoaXMsICd2YWxpZGF0ZVRleHQnXSwNCgkJCSdtZWRpdW10ZXh0JyA9PiBbJHRoaXMsICd2YWxpZGF0ZVRleHQnXSwNCgkJCSdsb25ndGV4dCcgPT4gWyR0aGlzLCAndmFsaWRhdGVUZXh0J10sDQoJCQknZGVjaW1hbCcgPT4gWyR0aGlzLCAndmFsaWRhdGVEZWNpbWFsJ10sDQoJCQknZmxvYXQnID0+IFskdGhpcywgJ3ZhbGlkYXRlRmxvYXQnXSwNCgkJCSdkb3VibGUnID0+IFskdGhpcywgJ3ZhbGlkYXRlRmxvYXQnXSwNCgkJCSdkYXRlJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSdkYXRldGltZScgPT4gWyR0aGlzLCAndmFsaWRhdGVEYXRlJ10sDQoJCQkndGltZXN0YW1wJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSd0aW1lJyA9PiBbJHRoaXMsICd2YWxpZGF0ZURhdGUnXSwNCgkJCSdqc29uJyA9PiBbJHRoaXMsICd2YWxpZGF0ZUpzb24nXSwNCgkJCSdibG9iJyA9PiBbJHRoaXMsICd2YWxpZGF0ZUJsb2InXSwNCgkJCSd0aW55YmxvYicgPT4gWyR0aGlzLCAndmFsaWRhdGVCbG9iJ10sDQoJCQknbWVkaXVtYmxvYicgPT4gWyR0aGlzLCAndmFsaWRhdGVCbG9iJ10sDQoJCQknbG9uZ2Jsb2InID0+IFskdGhpcywgJ3ZhbGlkYXRlQmxvYiddLA0KCQldOw0KCX0NCg0KCS8qKg0KCSAqIFJlZ2lzdGVyIGRlZmF1bHQgdmFsdWVzIGZvciBNeVNRTCBkYXRhIHR5cGVzLg0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRzKCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5kZWZhdWx0cyA9IFsNCgkJCSdpbnQnID0+IDAsDQoJCQkndGlueWludCcgPT4gMCwNCgkJCSdzbWFsbGludCcgPT4gMCwNCgkJCSdtZWRpdW1pbnQnID0+IDAsDQoJCQknYmlnaW50JyA9PiAwLA0KCQkJJ3ZhcmNoYXInID0+ICcnLA0KCQkJJ2NoYXInID0+ICcnLA0KCQkJJ3RleHQnID0+ICcnLA0KCQkJJ3Rpbnl0ZXh0JyA9PiAnJywNCgkJCSdtZWRpdW10ZXh0JyA9PiAnJywNCgkJCSdsb25ndGV4dCcgPT4gJycsDQoJCQknZGVjaW1hbCcgPT4gMC4wLA0KCQkJJ2Zsb2F0JyA9PiAwLjAsDQoJCQknZG91YmxlJyA9PiAwLjAsDQoJCQknZGF0ZScgPT4gJzAwMDAtMDAtMDAnLA0KCQkJJ2RhdGV0aW1lJyA9PiAnMDAwMC0wMC0wMCAwMDowMDowMCcsDQoJCQkndGltZXN0YW1wJyA9PiAnMDAwMC0wMC0wMCAwMDowMDowMCcsDQoJCQkndGltZScgPT4gJzAwOjAwOjAwJywNCgkJCSdqc29uJyA9PiAne30nLA0KCQkJJ2Jsb2InID0+ICcnLA0KCQkJJ3RpbnlibG9iJyA9PiAnJywNCgkJCSdtZWRpdW1ibG9iJyA9PiAnJywNCgkJCSdsb25nYmxvYicgPT4gJycsDQoJCV07DQoJfQ0KDQoJLy8gLS0tLS0tLS0tLS0tLS0tLS0gVmFsaWRhdGlvbiBNZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tDQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBpbnRlZ2VyIHR5cGVzIChpbmNsdWRpbmcgdGlueWludCwgc21hbGxpbnQsIG1lZGl1bWludCwgZXRjLikuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlSW50ZWdlcigkdmFsdWUsIGFycmF5ICR0eXBlSW5mbyk6IGJvb2wNCgl7DQoJCWlmICghaXNfbnVtZXJpYygkdmFsdWUpKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkkdmFsdWUgPSAoaW50KSR2YWx1ZTsNCgkJaWYgKGlzc2V0KCR0eXBlSW5mb1sndW5zaWduZWQnXSkgJiYgJHR5cGVJbmZvWyd1bnNpZ25lZCddICYmICR2YWx1ZSA8IDApDQoJCXsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIHN0cmluZyB0eXBlcyBsaWtlIFZBUkNIQVIgYW5kIENIQVIuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nKCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJaWYgKCFpc19zdHJpbmcoJHZhbHVlKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gQ2hlY2sgaWYgdGhlIGxlbmd0aCBleGNlZWRzIHRoZSBhbGxvd2VkIHNpemUNCgkJaWYgKCR0eXBlSW5mb1snc2l6ZSddICE9PSBudWxsICYmIHN0cmxlbigkdmFsdWUpID4gKGludCkkdHlwZUluZm9bJ3NpemUnXSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgdGV4dCB0eXBlcyBsaWtlIFRFWFQsIFRJTllURVhULCBNRURJVU1URVhULCBMT05HVEVYVC4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUJVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBhcnJheSAkdHlwZUluZm8gVGhlIHBhcnNlZCBkYXRhIHR5cGUgaW5mb3JtYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVUZXh0KCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJcmV0dXJuIGlzX3N0cmluZygkdmFsdWUpOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGZsb2F0LCBkb3VibGUsIGFuZCBkZWNpbWFsIHR5cGVzLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZUZsb2F0KCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJcmV0dXJuIGlzX251bWVyaWMoJHZhbHVlKTsNCgl9DQoNCgkvKioNCgkgKiBWYWxpZGF0ZSBkZWNpbWFsIHR5cGVzIChudW1lcmljIHByZWNpc2lvbiBhbmQgc2NhbGUpLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZURlY2ltYWwoJHZhbHVlLCBhcnJheSAkdHlwZUluZm8pOiBib29sDQoJew0KCQlyZXR1cm4gaXNfbnVtZXJpYygkdmFsdWUpOw0KCX0NCg0KCS8qKg0KCSAqIFZhbGlkYXRlIGRhdGUsIGRhdGV0aW1lLCB0aW1lc3RhbXAsIGFuZCB0aW1lIHR5cGVzLg0KCSAqDQoJICogQHBhcmFtIG1peGVkICR2YWx1ZQlUaGUgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtIGFycmF5ICR0eXBlSW5mbyBUaGUgcGFyc2VkIGRhdGEgdHlwZSBpbmZvcm1hdGlvbi4NCgkgKg0KCSAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZGF0ZURhdGUoJHZhbHVlLCBhcnJheSAkdHlwZUluZm8pOiBib29sDQoJew0KCQkkZm9ybWF0cyA9IFsNCgkJCSdkYXRlJyA9PiAnWS1tLWQnLA0KCQkJJ2RhdGV0aW1lJyA9PiAnWS1tLWQgSDppOnMnLA0KCQkJJ3RpbWVzdGFtcCcgPT4gJ1ktbS1kIEg6aTpzJywNCgkJCSd0aW1lJyA9PiAnSDppOnMnLA0KCQldOw0KDQoJCWlmICghaXNzZXQoJGZvcm1hdHNbJHR5cGVJbmZvWyd0eXBlJ11dKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJJGRhdGVUaW1lID0gXERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCRmb3JtYXRzWyR0eXBlSW5mb1sndHlwZSddXSwgJHZhbHVlKTsNCgkJcmV0dXJuICRkYXRlVGltZSAmJiAkZGF0ZVRpbWUtPmZvcm1hdCgkZm9ybWF0c1skdHlwZUluZm9bJ3R5cGUnXV0pID09PSAkdmFsdWU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgSlNPTiB0eXBlcy4NCgkgKg0KCSAqIEBwYXJhbSBtaXhlZCAkdmFsdWUJVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBhcnJheSAkdHlwZUluZm8gVGhlIHBhcnNlZCBkYXRhIHR5cGUgaW5mb3JtYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuIGJvb2wgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSA1LjMuMA0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdmFsaWRhdGVKc29uKCR2YWx1ZSwgYXJyYXkgJHR5cGVJbmZvKTogYm9vbA0KCXsNCgkJanNvbl9kZWNvZGUoJHZhbHVlKTsNCgkJcmV0dXJuIGpzb25fbGFzdF9lcnJvcigpID09PSBKU09OX0VSUk9SX05PTkU7DQoJfQ0KDQoJLyoqDQoJICogVmFsaWRhdGUgQkxPQiB0eXBlcyAoaW5jbHVkaW5nIFRJTllCTE9CLCBNRURJVU1CTE9CLCBMT05HQkxPQikuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgJHZhbHVlCVRoZSB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gYXJyYXkgJHR5cGVJbmZvIFRoZSBwYXJzZWQgZGF0YSB0eXBlIGluZm9ybWF0aW9uLg0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgNS4zLjANCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIHZhbGlkYXRlQmxvYigkdmFsdWUsIGFycmF5ICR0eXBlSW5mbyk6IGJvb2wNCgl7DQoJCXJldHVybiBpc19zdHJpbmcoJHZhbHVlKSB8fCBpc19yZXNvdXJjZSgkdmFsdWUpOw0KCX0=', '{}', '{}', '', 1, '2024-10-16 21:49:22', 10, '', 1),
(848, 'd2a859ac-3f2a-4f69-a77f-f118b2e0a459', 'JCB.Import.Status', 'Status', 'final class', 'Import Status Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"0e44d149-4863-47ec-8f0f-6a821ab3e77f\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Status', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"Item\"}}', 'CS8qKg0KCSAqIFRoZSBJdGVtIENsYXNzLg0KCSAqDQoJICogQHZhciAgIEl0ZW0NCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgSXRlbSAkaXRlbTsNCg0KCS8qKg0KCSAqIFRhYmxlIE5hbWUNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFibGU7DQoNCgkvKioNCgkgKiBTdGF0dXMgRmllbGQgTmFtZQ0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICRmaWVsZE5hbWU7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvci4NCgkgKg0KCSAqIEBwYXJhbSBJdGVtICAgJGl0ZW0gICBUaGUgSXRlbSBDbGFzcy4NCgkgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHRhYmxlICAgIFRoZSB0YWJsZSBuYW1lDQoJICogQHBhcmFtIHN0cmluZ3xudWxsICRmaWVsZCAgICBUaGUgZmllbGQgbmFtZS4NCgkgKg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJdGVtICRpdGVtLCA/c3RyaW5nICR0YWJsZSA9IG51bGwsID9zdHJpbmcgJGZpZWxkID0gbnVsbCkNCgl7DQoJCSR0aGlzLT5pdGVtID0gJGl0ZW07DQoNCgkJaWYgKCR0YWJsZSAhPT0gbnVsbCkNCgkJew0KCQkJJHRoaXMtPnRhYmxlID0gJHRhYmxlOw0KCQl9DQoNCgkJaWYgKCRmaWVsZCAhPT0gbnVsbCkNCgkJew0KCQkJJHRoaXMtPmZpZWxkID0gJGZpZWxkOw0KCQl9DQoJfQ0KDQoJLyoqDQoJICogVXBkYXRlcyB0aGUgc3RhdHVzIGluIHRoZSBkYXRhYmFzZS4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgdGhlIGltcG9ydCBzdGF0dXMgaW4gdGhlIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSByZXN1bHQgb2YgdGhlIGltcG9ydCBwcm9jZXNzLg0KCSAqIFN0YXR1cyBjb2RlczoNCgkgKiAgLSAyOiBCZWluZyBQcm9jZXNzZWQuDQoJICogIC0gMzogSW1wb3J0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuDQoJICogIC0gNDogSW1wb3J0IGNvbXBsZXRlZCB3aXRoIGVycm9ycy4NCgkgKg0KCSAqIEBwYXJhbSBpbnQgICAgICRzdGF0dXMgIFRoZSBzdGF0dXMgY29kZSB0byBzZXQgZm9yIHRoZSBpbXBvcnQgKDIgPT4gcHJvY2Vzc2luZywgMyA9PiBzdWNjZXNzLCA0ID0+IGVycm9ycykuDQoJICogQHBhcmFtIHN0cmluZyAgJGd1aWQgICAgVGhlIHRhcmdldCBpbXBvcnQgR1VJRA0KCSAqDQoJICogQHJldHVybiB2b2lkDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXQoaW50ICRzdGF0dXMsIHN0cmluZyAkZ3VpZCk6IHZvaWQNCgl7DQoJCSR0aGlzLT5pdGVtLT50YWJsZSgkdGhpcy0+Z2V0VGFibGUoKSktPnNldCgob2JqZWN0KSBbDQoJCQknZ3VpZCcgPT4gJGd1aWQsDQoJCQkkdGhpcy0+Z2V0RmllbGQoKSA9PiAkc3RhdHVzDQoJCV0pOw0KCX0NCg0KCS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICR0YWJsZSBUaGUgdGFibGUgdGhhdCBzaG91bGQgYmUgYWN0aXZlDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gdGFibGUoc3RyaW5nICR0YWJsZSk6IHNlbGYNCgl7DQoJCSR0aGlzLT50YWJsZSA9ICR0YWJsZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogU2V0IHRoZSBjdXJyZW50IHRhcmdldCBzdGF0dXMgZmllbGQgbmFtZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgJGZpZWxkTmFtZSBUaGUgZmllbGQgbmFtZSB3aGVyZSB0aGUgc3RhdHVzIGlzIHNldA0KCSAqDQoJICogQHJldHVybiBzZWxmDQoJICogQHNpbmNlIDMuMi4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGZpZWxkKHN0cmluZyAkZmllbGROYW1lKTogc2VsZg0KCXsNCgkJJHRoaXMtPmZpZWxkTmFtZSA9ICRmaWVsZE5hbWU7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY3VycmVudCBhY3RpdmUgdGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZw0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRUYWJsZSgpOiBzdHJpbmcNCgl7DQoJCXJldHVybiAkdGhpcy0+dGFibGU7DQoJfQ0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IHRhcmdldCBzdGF0dXMgZmllbGQgbmFtZQ0KCSAqDQoJICogQHJldHVybiBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0RmllbGQoKTogc3RyaW5nDQoJew0KCQlyZXR1cm4gJHRoaXMtPmZpZWxkTmFtZTsNCgl9', '{}', '{}', '', 1, '2024-10-17 21:23:03', 4, '', 1),
(849, '0e44d149-4863-47ec-8f0f-6a821ab3e77f', 'VDM.ImportStatusInterface', 'ImportStatusInterface', 'interface', 'Import Status Interface\r\n\r\n@since 3.2.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.ImportStatusInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFVwZGF0ZXMgdGhlIHN0YXR1cyBpbiB0aGUgZGF0YWJhc2UuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCB1cGRhdGVzIHRoZSBpbXBvcnQgc3RhdHVzIGluIHRoZSBkYXRhYmFzZSBiYXNlZCBvbiB0aGUgcmVzdWx0IG9mIHRoZSBpbXBvcnQgcHJvY2Vzcy4NCgkgKiBTdGF0dXMgY29kZXM6DQoJICogIC0gMjogQmVpbmcgUHJvY2Vzc2VkLg0KCSAqICAtIDM6IEltcG9ydCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KCSAqICAtIDQ6IEltcG9ydCBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuDQoJICoNCgkgKiBAcGFyYW0gaW50ICAgICAkc3RhdHVzICBUaGUgc3RhdHVzIGNvZGUgdG8gc2V0IGZvciB0aGUgaW1wb3J0ICgyID0+IHByb2Nlc3NpbmcsIDMgPT4gc3VjY2VzcywgNCA9PiBlcnJvcnMpLg0KCSAqIEBwYXJhbSBzdHJpbmcgICRndWlkICAgIFRoZSB0YXJnZXQgaW1wb3J0IEdVSUQNCgkgKg0KCSAqIEByZXR1cm4gdm9pZA0KCSAqIEBzaW5jZSAgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0KGludCAkc3RhdHVzLCBzdHJpbmcgJGd1aWQpOiB2b2lkOw0KDQoJLyoqDQoJICogU2V0IHRoZSBjdXJyZW50IGFjdGl2ZSB0YWJsZQ0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAgJHRhYmxlIFRoZSB0YWJsZSB0aGF0IHNob3VsZCBiZSBhY3RpdmUNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0YWJsZShzdHJpbmcgJHRhYmxlKTogc2VsZjsNCg0KCS8qKg0KCSAqIFNldCB0aGUgY3VycmVudCB0YXJnZXQgc3RhdHVzIGZpZWxkIG5hbWUNCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgICRmaWVsZE5hbWUgVGhlIGZpZWxkIG5hbWUgd2hlcmUgdGhlIHN0YXR1cyBpcyBzZXQNCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAzLjIuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBmaWVsZChzdHJpbmcgJGZpZWxkTmFtZSk6IHNlbGY7DQoNCgkvKioNCgkgKiBHZXQgdGhlIGN1cnJlbnQgYWN0aXZlIHRhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0VGFibGUoKTogc3RyaW5nOw0KDQoJLyoqDQoJICogR2V0IHRoZSBjdXJyZW50IHRhcmdldCBzdGF0dXMgZmllbGQgbmFtZQ0KCSAqDQoJICogQHJldHVybiBzdHJpbmcNCgkgKiBAc2luY2UgMy4yLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0RmllbGQoKTogc3RyaW5nOw==', '{}', '{}', '', 1, '2024-10-17 21:23:53', 4, '', 1),
(850, 'eef6ffc2-2af0-4336-958f-e0b9cf7c4ad0', 'JCB.Import.Message', 'Message', 'final class', 'Import Messages Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"23ad6e72-1b82-40fb-836c-50da690bb174\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Message', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"68a41264-64c0-441a-a3d8-8a5e557b1883\",\"as\":\"Update\"},\"use_selection1\":{\"use\":\"03bbc8d5-86e8-4d2f-ae5f-0d44a4f7af13\",\"as\":\"Insert\"},\"use_selection2\":{\"use\":\"9c513baf-b279-43fd-ae29-a585c8cbc4f0\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBVcGRhdGUgQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgVXBkYXRlDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIFVwZGF0ZSAkdXBkYXRlOw0KDQoJLyoqDQoJICogVGhlIEluc2VydCBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJbnNlcnQNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgSW5zZXJ0ICRpbnNlcnQ7DQoNCgkvKioNCgkgKiBUaGUgc3VjY2VzcyBtZXNzYWdlIGJ1cy4NCgkgKg0KCSAqIEB2YXIgICBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByaXZhdGUgYXJyYXkgJHN1Y2Nlc3MgPSBbXTsNCg0KCS8qKg0KCSAqIFRoZSBpbmZvIG1lc3NhZ2UgYnVzLg0KCSAqDQoJICogQHZhciAgIGFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJpdmF0ZSBhcnJheSAkaW5mbyA9IFtdOw0KDQoJLyoqDQoJICogVGhlIGVycm9yIG1lc3NhZ2UgYnVzLg0KCSAqDQoJICogQHZhciAgIGFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJpdmF0ZSBhcnJheSAkZXJyb3IgPSBbXTsNCg0KCS8qKg0KCSAqIFRoZSBlbnRpdHkgR1VJRCB2YWx1ZS4NCgkgKg0KCSAqIEB2YXIgICBzdHJpbmcNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcml2YXRlID9zdHJpbmcgJGd1aWQgPSBudWxsOw0KDQoJLyoqDQoJICogVGhlIGVudGl0eSB0eXBlIHZhbHVlLg0KCSAqDQoJICogQHZhciAgIHN0cmluZ3xudWxsDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJpdmF0ZSA/c3RyaW5nICRlbnRpdHkgPSBudWxsOw0KDQoJLyoqDQoJICogVGhlIGVudGl0eSB0YWJsZSB2YWx1ZS4NCgkgKg0KCSAqIEB2YXIgICBzdHJpbmd8bnVsbA0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByaXZhdGUgP3N0cmluZyAkdGFibGUgPSBudWxsOw0KDQoJLyoqDQoJICogQ29uc3RydWN0b3IuDQoJICoNCgkgKiBAcGFyYW0gVXBkYXRlICAgJHVwZGF0ZSAgIFRoZSBVcGRhdGUgQ2xhc3MuDQoJICogQHBhcmFtIEluc2VydCAgICRpbnNlcnQgICBUaGUgSW5zZXJ0IENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KFVwZGF0ZSAkdXBkYXRlLCBJbnNlcnQgJGluc2VydCkNCgl7DQoJCSR0aGlzLT51cGRhdGUgPSAkdXBkYXRlOw0KCQkkdGhpcy0+aW5zZXJ0ID0gJGluc2VydDsNCgl9DQoNCgkvKioNCgkgKiBMb2FkIGFuIGVudGl0eSB0aGF0IHRoZXNlIG1lc3NhZ2UgYmVsb25nIHRvDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRndWlkICAgVGhlIGVudGl0eSBndWlkIHRoZXNlIG1lc3NhZ2VzIG11c3QgYmUgbGlua2VkIHRvLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGVudGl0eSBUaGUgZW50aXR5IHR5cGUgdGhlc2UgbWVzc2FnZXMgbXVzdCBiZSBsaW5rZWQgdG8uDQoJICogQHBhcmFtIHN0cmluZyAkdGFibGUgIFRoZSBtZXNzYWdlcyB0YWJsZSB3aGVyZSB0aGVzZSBtZXNzYWdlIG11c3QgYmUgc3RvcmVkLg0KCSAqDQoJICogQHJldHVybiAgc2VsZg0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgYXJlIG51bGwgb3IgZW1wdHkuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBsb2FkKHN0cmluZyAkZ3VpZCwgc3RyaW5nICRlbnRpdHksIHN0cmluZyAkdGFibGUpOiBzZWxmDQoJew0KCQlpZiAoZW1wdHkoJGd1aWQpIHx8IGVtcHR5KCRlbnRpdHkpIHx8IGVtcHR5KCR0YWJsZSkpDQoJCXsNCgkJCXRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdHVUlELCBlbnRpdHksIGFuZCB0YWJsZSBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5LicpOw0KCQl9DQoNCgkJLy8gc2V0IGVudGl0eSBkZXRhaWxzDQoJCSR0aGlzLT5ndWlkID0gJGd1aWQ7DQoJCSR0aGlzLT5lbnRpdHkgPSAkZW50aXR5Ow0KCQkkdGhpcy0+dGFibGUgPSAkdGFibGU7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgbWVzc2FnZXMgb2YgdGhlIGxhc3QgaW1wb3J0IGV2ZW50DQoJICoNCgkgKiBAcmV0dXJuICBvYmplY3QNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldCgpOiBvYmplY3QNCgl7DQoJCXJldHVybiAgKG9iamVjdCkgWw0KCQkJJ21lc3NhZ2Vfc3VjY2VzcycgPT4gJHRoaXMtPnN1Y2Nlc3MgPz8gbnVsbCwNCgkJCSdtZXNzYWdlX2luZm8nID0+ICR0aGlzLT5pbmZvID8/IG51bGwsDQoJCQknbWVzc2FnZV9lcnJvcicgPT4gJHRoaXMtPmVycm9yID8/IG51bGwNCgkJXTsNCgl9DQoNCgkvKioNCgkgKiBSZXNldCB0aGUgbWVzc2FnZXMgb2YgdGhlIGxhc3QgaW1wb3J0IGV2ZW50DQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZXNldCgpOiB2b2lkDQoJew0KCQkvLyBjbGVhciB0aGUgbWVzc2FnZSBidXMNCgkJJHRoaXMtPnN1Y2Nlc3MgPSBbXTsNCgkJJHRoaXMtPmluZm8gPSBbXTsNCgkJJHRoaXMtPmVycm9yID0gW107DQoNCgkJJHRoaXMtPmd1aWQgPSBudWxsOw0KCQkkdGhpcy0+ZW50aXR5ID0gbnVsbDsNCgkJJHRoaXMtPnRhYmxlID0gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBBcmNoaXZlIHRoZSBtZXNzYWdlcyBpbiB0aGUgREIgb2YgdGhlIGxhc3QgaW1wb3J0IGV2ZW50DQoJICoNCgkgKiBAcmV0dXJuICBzZWxmDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIEdVSUQsIGVudGl0eSwgb3IgdGFibGUgaXMgbnVsbC4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGFyY2hpdmUoKTogc2VsZg0KCXsNCgkJaWYgKGVtcHR5KCR0aGlzLT5ndWlkKSB8fCBlbXB0eSgkdGhpcy0+ZW50aXR5KSB8fCBlbXB0eSgkdGhpcy0+dGFibGUpKQ0KCQl7DQoJCQl0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignR1VJRCwgZW50aXR5LCBhbmQgdGFibGUgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eS4nKTsNCgkJfQ0KDQoJCS8vIHRyYXNoIGFsbCBtZXNzYWdlcyBmcm9tIHRoZSBwYXN0DQoJCSR0aGlzLT51cGRhdGUtPnRhYmxlKCR0aGlzLT50YWJsZSktPnJvd3MoW1snZW50aXR5JyA9PiAkdGhpcy0+Z3VpZCwgJ3B1Ymxpc2hlZCcgPT4gLTJdXSwgJ2VudGl0eScpOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIG1lc3NhZ2VzIGluIHRoZSBEQiBvZiB0aGUgbGFzdCBpbXBvcnQgZXZlbnQNCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gaWYgR1VJRCwgZW50aXR5LCBvciB0YWJsZSBpcyBudWxsLg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0KCk6IHNlbGYNCgl7DQoJCWlmIChlbXB0eSgkdGhpcy0+Z3VpZCkgfHwgZW1wdHkoJHRoaXMtPmVudGl0eSkgfHwgZW1wdHkoJHRoaXMtPnRhYmxlKSkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0dVSUQsIGVudGl0eSwgYW5kIHRhYmxlIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHkuJyk7DQoJCX0NCg0KCQkvLyBzdGFydCBtZXNzYWdlIGJ1Y2tldA0KCQkkbWVzc2FnZXMgPSBbXTsNCg0KCQkvLyBzZXQgdGhlIHN1Y2Nlc3MgbWVzc2FnZXMNCgkJaWYgKCFlbXB0eSgkdGhpcy0+c3VjY2VzcykpDQoJCXsNCgkJCWZvcmVhY2ggKCR0aGlzLT5zdWNjZXNzIGFzICRtZXNzYWdlKQ0KCQkJew0KCQkJCSRtZXNzYWdlc1tdID0gWw0KCQkJCQknZ3VpZCcgPT4gR3VpZEhlbHBlcjo6Z2V0KCksDQoJCQkJCSdlbnRpdHknID0+ICR0aGlzLT5ndWlkLA0KCQkJCQknZW50aXR5X3R5cGUnID0+ICR0aGlzLT5lbnRpdHksDQoJCQkJCSdtZXNzYWdlJyA9PiAkbWVzc2FnZSwNCgkJCQkJJ21lc3NhZ2Vfc3RhdHVzJyA9PiAxDQoJCQkJXTsNCgkJCX0NCgkJfQ0KDQoJCS8vIHNldCB0aGUgaW5mbyBtZXNzYWdlcw0KCQlpZiAoIWVtcHR5KCR0aGlzLT5pbmZvKSkNCgkJew0KCQkJZm9yZWFjaCAoJHRoaXMtPmluZm8gYXMgJG1lc3NhZ2UpDQoJCQl7DQoJCQkJJG1lc3NhZ2VzW10gPSBbDQoJCQkJCSdndWlkJyA9PiBHdWlkSGVscGVyOjpnZXQoKSwNCgkJCQkJJ2VudGl0eScgPT4gJHRoaXMtPmd1aWQsDQoJCQkJCSdlbnRpdHlfdHlwZScgPT4gJHRoaXMtPmVudGl0eSwNCgkJCQkJJ21lc3NhZ2UnID0+ICRtZXNzYWdlLA0KCQkJCQknbWVzc2FnZV9zdGF0dXMnID0+IDINCgkJCQldOw0KCQkJfQ0KCQl9DQoNCgkJLy8gc2V0IHRoZSBlcnJvciBtZXNzYWdlcw0KCQlpZiAoIWVtcHR5KCR0aGlzLT5lcnJvcikpDQoJCXsNCgkJCWZvcmVhY2ggKCR0aGlzLT5lcnJvciBhcyAkbWVzc2FnZSkNCgkJCXsNCgkJCQkkbWVzc2FnZXNbXSA9IFsNCgkJCQkJJ2d1aWQnID0+IEd1aWRIZWxwZXI6OmdldCgpLA0KCQkJCQknZW50aXR5JyA9PiAkdGhpcy0+Z3VpZCwNCgkJCQkJJ2VudGl0eV90eXBlJyA9PiAkdGhpcy0+ZW50aXR5LA0KCQkJCQknbWVzc2FnZScgPT4gJG1lc3NhZ2UsDQoJCQkJCSdtZXNzYWdlX3N0YXR1cycgPT4gMw0KCQkJCV07DQoJCQl9DQoJCX0NCg0KCQkkdGhpcy0+aW5zZXJ0LT50YWJsZSgkdGhpcy0+dGFibGUpLT5yb3dzKCRtZXNzYWdlcyk7DQoNCgkJcmV0dXJuICR0aGlzOw0KCX0NCg0KCS8qKg0KCSAqIEFkZHMgYSBzdWNjZXNzIG1lc3NhZ2UgdG8gdGhlIGxvZy4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIHJlY29yZHMgYSBzdWNjZXNzIG1lc3NhZ2UgZm9yIHRoZSBpbXBvcnQgcHJvY2Vzcy4gVGhlIG1lc3NhZ2UgcHJvdmlkZXMgDQoJICogcmVsZXZhbnQgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIG51bWJlciBvZiByb3dzIHByb2Nlc3NlZCBhbmQgdGhlIHN1Y2Nlc3MgcmF0ZS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgVGhlIHN1Y2Nlc3MgbWVzc2FnZSB0byBsb2cuDQoJICoNCgkgKiBAcmV0dXJuIHNlbGYNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGFkZFN1Y2Nlc3Moc3RyaW5nICRtZXNzYWdlKTogc2VsZg0KCXsNCgkJJHRoaXMtPnN1Y2Nlc3NbXSA9ICRtZXNzYWdlOw0KDQoJCXJldHVybiAkdGhpczsNCgl9DQoNCgkvKioNCgkgKiBBZGRzIGEgaW5mbyBtZXNzYWdlIHRvIHRoZSBsb2cuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCByZWNvcmRzIGEgaW5mbyBtZXNzYWdlIGZvciB0aGUgaW1wb3J0IHByb2Nlc3MuIFRoZSBtZXNzYWdlIHByb3ZpZGVzIA0KCSAqIHJlbGV2YW50IGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBudW1iZXIgb2Ygcm93cyBwcm9jZXNzZWQgYW5kIHRoZSBpbmZvIHJhdGUuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBpbmZvIG1lc3NhZ2UgdG8gbG9nLg0KCSAqDQoJICogQHJldHVybiBzZWxmDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBhZGRJbmZvKHN0cmluZyAkbWVzc2FnZSk6IHNlbGYNCgl7DQoJCSR0aGlzLT5pbmZvW10gPSAkbWVzc2FnZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogQWRkcyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBsb2cuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCByZWNvcmRzIGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW1wb3J0IHByb2Nlc3MgZW5jb3VudGVycyBpc3N1ZXMuIA0KCSAqIFRoZSBtZXNzYWdlIGluY2x1ZGVzIGRldGFpbHMgYWJvdXQgdGhlIGZhaWx1cmVzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHJvd3MgDQoJICogYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVycm9yIHJhdGUuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlIHRvIGxvZy4NCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWRkRXJyb3Ioc3RyaW5nICRtZXNzYWdlKTogc2VsZg0KCXsNCgkJJHRoaXMtPmVycm9yW10gPSAkbWVzc2FnZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ==', '{}', '{}', '', 1, '2024-10-17 22:18:05', 9, '', 1),
(851, '23ad6e72-1b82-40fb-836c-50da690bb174', 'VDM.ImportMessageInterface', 'ImportMessageInterface', 'interface', 'Import Message Interface\r\n\r\n@since 3.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.ImportMessageInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIExvYWQgYW4gZW50aXR5IHRoYXQgdGhlc2UgbWVzc2FnZSBiZWxvbmcgdG8NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJGd1aWQgICBUaGUgZW50aXR5IGd1aWQgdGhlc2UgbWVzc2FnZXMgbXVzdCBiZSBsaW5rZWQgdG8uDQoJICogQHBhcmFtIHN0cmluZyAkZW50aXR5IFRoZSBlbnRpdHkgdHlwZSB0aGVzZSBtZXNzYWdlcyBtdXN0IGJlIGxpbmtlZCB0by4NCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSAgVGhlIG1lc3NhZ2VzIHRhYmxlIHdoZXJlIHRoZXNlIG1lc3NhZ2UgbXVzdCBiZSBzdG9yZWQuDQoJICoNCgkgKiBAcmV0dXJuICBzZWxmDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBvZiB0aGUgcGFyYW1ldGVycyBhcmUgbnVsbCBvciBlbXB0eS4NCgkgKiBAc2luY2UgIDMuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGxvYWQoc3RyaW5nICRndWlkLCBzdHJpbmcgJGVudGl0eSwgc3RyaW5nICR0YWJsZSk6IHNlbGY7DQoNCgkvKioNCgkgKiBHZXQgdGhlIG1lc3NhZ2VzIG9mIHRoZSBsYXN0IGltcG9ydCBldmVudA0KCSAqDQoJICogQHJldHVybiAgb2JqZWN0DQoJICogQHNpbmNlICAzLjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoKTogb2JqZWN0Ow0KDQoJLyoqDQoJICogUmVzZXQgdGhlIG1lc3NhZ2VzIG9mIHRoZSBsYXN0IGltcG9ydCBldmVudA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgMy4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcmVzZXQoKTogdm9pZDsNCg0KCS8qKg0KCSAqIEFyY2hpdmUgdGhlIG1lc3NhZ2VzIGluIHRoZSBEQiBvZiB0aGUgbGFzdCBpbXBvcnQgZXZlbnQNCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gaWYgR1VJRCwgZW50aXR5LCBvciB0YWJsZSBpcyBudWxsLg0KCSAqIEBzaW5jZSAgMy4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYXJjaGl2ZSgpOiBzZWxmOw0KDQoJLyoqDQoJICogU2V0IHRoZSBtZXNzYWdlcyBpbiB0aGUgREIgb2YgdGhlIGxhc3QgaW1wb3J0IGV2ZW50DQoJICoNCgkgKiBAcmV0dXJuICBzZWxmDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIEdVSUQsIGVudGl0eSwgb3IgdGFibGUgaXMgbnVsbC4NCgkgKiBAc2luY2UgIDMuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHNldCgpOiBzZWxmOw0KDQoJLyoqDQoJICogQWRkcyBhIHN1Y2Nlc3MgbWVzc2FnZSB0byB0aGUgbG9nLg0KCSAqDQoJICogVGhpcyBtZXRob2QgcmVjb3JkcyBhIHN1Y2Nlc3MgbWVzc2FnZSBmb3IgdGhlIGltcG9ydCBwcm9jZXNzLiBUaGUgbWVzc2FnZSBwcm92aWRlcyANCgkgKiByZWxldmFudCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbnVtYmVyIG9mIHJvd3MgcHJvY2Vzc2VkIGFuZCB0aGUgc3VjY2VzcyByYXRlLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZSBUaGUgc3VjY2VzcyBtZXNzYWdlIHRvIGxvZy4NCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAgMy4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWRkU3VjY2VzcyhzdHJpbmcgJG1lc3NhZ2UpOiBzZWxmOw0KDQoJLyoqDQoJICogQWRkcyBhIGluZm8gbWVzc2FnZSB0byB0aGUgbG9nLg0KCSAqDQoJICogVGhpcyBtZXRob2QgcmVjb3JkcyBhIGluZm8gbWVzc2FnZSBmb3IgdGhlIGltcG9ydCBwcm9jZXNzLiBUaGUgbWVzc2FnZSBwcm92aWRlcyANCgkgKiByZWxldmFudCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbnVtYmVyIG9mIHJvd3MgcHJvY2Vzc2VkIGFuZCB0aGUgaW5mbyByYXRlLg0KCSAqDQoJICogQHBhcmFtIHN0cmluZyAkbWVzc2FnZSBUaGUgaW5mbyBtZXNzYWdlIHRvIGxvZy4NCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAgMy4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWRkSW5mbyhzdHJpbmcgJG1lc3NhZ2UpOiBzZWxmOw0KDQoJLyoqDQoJICogQWRkcyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBsb2cuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCByZWNvcmRzIGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW1wb3J0IHByb2Nlc3MgZW5jb3VudGVycyBpc3N1ZXMuIA0KCSAqIFRoZSBtZXNzYWdlIGluY2x1ZGVzIGRldGFpbHMgYWJvdXQgdGhlIGZhaWx1cmVzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YgZmFpbGVkIHJvd3MgDQoJICogYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVycm9yIHJhdGUuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBlcnJvciBtZXNzYWdlIHRvIGxvZy4NCgkgKg0KCSAqIEByZXR1cm4gc2VsZg0KCSAqIEBzaW5jZSAgMy4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gYWRkRXJyb3Ioc3RyaW5nICRtZXNzYWdlKTogc2VsZjs=', '{}', '{}', '', 1, '2024-10-17 23:02:58', 3, '', 1),
(852, 'afb5b891-7130-422a-b389-1934b0e4fc48', 'JCB.Import.Row', 'Row', 'final class', 'Import Row Class\r\n\r\n@since 4.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"3d3ec064-9867-41e6-a48a-964c15d753aa\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Row', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFRoZSByb3cgYXJyYXkgb2YgdmFsdWVzLg0KCSAqDQoJICogQHZhciAgIGFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJpdmF0ZSBhcnJheSAkdmFsdWVzOw0KDQoJLyoqDQoJICogVGhlIHJvdyBpbmRleC4NCgkgKg0KCSAqIEB2YXIgICBpbnQNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcml2YXRlIGludCAkaW5kZXg7DQoNCgkvKioNCgkgKiBBIGZsYWcgdG8gdHJhY2sgaWYgdmFsdWVzIGFuZCBpbmRleCBhcmUgc2V0Lg0KCSAqDQoJICogQHZhciAgIGJvb2wNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcml2YXRlIGJvb2wgJGlzU2V0ID0gZmFsc2U7DQoNCgkvKioNCgkgKiBTZXQgdGhlIHJvdyBkZXRhaWxzDQoJICoNCgkgKiBAcGFyYW0gICBpbnQgICAgICAgICRpbmRleCAgICBUaGUgcm93IGluZGV4DQoJICogQHBhcmFtICAgYXJyYXkgICAkdmFsdWVzICAgVGhlIHZhbHVlcw0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gc2V0KGludCAkaW5kZXgsIGFycmF5ICR2YWx1ZXMpOiB2b2lkDQoJew0KCQkkdGhpcy0+aW5kZXggPSAkaW5kZXg7DQoJCSR0aGlzLT52YWx1ZXMgPSAkdmFsdWVzOw0KCQkkdGhpcy0+aXNTZXQgPSB0cnVlOw0KCX0NCg0KCS8qKg0KCSAqIENsZWFyIHRoZSByb3cgZGV0YWlscw0KCSAqDQoJICogQHJldHVybiAgc2VsZg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gY2xlYXIoKTogc2VsZg0KCXsNCgkJJHRoaXMtPmluZGV4ID0gMDsNCgkJJHRoaXMtPnZhbHVlcyA9IFtdOw0KCQkkdGhpcy0+aXNTZXQgPSBmYWxzZTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogR2V0IEluZGV4DQoJICoNCgkgKiBAcmV0dXJuICBpbnQNCgkgKiBAdGhyb3dzIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gaWYgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIGFyZSBudWxsIG9yIGVtcHR5Lg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SW5kZXgoKTogaW50DQoJew0KCQlpZiAoISR0aGlzLT5pc1NldCkNCgkJew0KCQkJdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0luZGV4IG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHkuIFVzZSB0aGUgc2V0IG1ldGhvZCB0byBmaXJzdCBzZXQgdGhlIGluZGV4LicpOw0KCQl9DQoNCgkJcmV0dXJuICR0aGlzLT5pbmRleDsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVmFsdWUNCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBvZiB0aGUgcGFyYW1ldGVycyBhcmUgbnVsbCBvciBlbXB0eS4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFZhbHVlKHN0cmluZyAka2V5KQ0KCXsNCgkJaWYgKCEkdGhpcy0+aXNTZXQpDQoJCXsNCgkJCXRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdWYWx1ZXMgbXVzdCBiZSBzZXQgYmVmb3JlIGFjY2Vzc2luZy4gVXNlIHRoZSBzZXQgbWV0aG9kIHRvIGZpcnN0IHNldCB0aGUgdmFsdWVzLicpOw0KCQl9DQoNCgkJcmV0dXJuICR0aGlzLT52YWx1ZXNbJGtleV0gPz8gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBVbnNldCBWYWx1ZQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgYXJlIG51bGwgb3IgZW1wdHkuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB1bnNldFZhbHVlKHN0cmluZyAka2V5KTogdm9pZA0KCXsNCgkJaWYgKCEkdGhpcy0+aXNTZXQpDQoJCXsNCgkJCXRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdWYWx1ZXMgbXVzdCBiZSBzZXQgYmVmb3JlIGFjY2Vzc2luZy4gVXNlIHRoZSBzZXQgbWV0aG9kIHRvIGZpcnN0IHNldCB0aGUgdmFsdWVzLicpOw0KCQl9DQoNCgkJdW5zZXQoJHRoaXMtPnZhbHVlc1ska2V5XSk7DQoJfQ==', '{}', '{}', '', 1, '2024-10-17 23:21:15', 6, '', 1),
(853, '3d3ec064-9867-41e6-a48a-964c15d753aa', 'VDM.ImportRowInterface', 'ImportRowInterface', 'interface', 'Import Row Interface\r\n\r\n@since 3.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.ImportRowInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFNldCB0aGUgcm93IGRldGFpbHMNCgkgKg0KCSAqIEBwYXJhbSAgIGludCAgICAgICAgJGluZGV4ICAgIFRoZSByb3cgaW5kZXgNCgkgKiBAcGFyYW0gICBhcnJheSAgICR2YWx1ZXMgICBUaGUgdmFsdWVzDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAzLjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBzZXQoaW50ICRpbmRleCwgYXJyYXkgJHZhbHVlcyk6IHZvaWQ7DQoNCgkvKioNCgkgKiBDbGVhciB0aGUgcm93IGRldGFpbHMNCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYNCgkgKiBAc2luY2UgIDMuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGNsZWFyKCk6IHNlbGY7DQoNCgkvKioNCgkgKiBHZXQgSW5kZXgNCgkgKg0KCSAqIEByZXR1cm4gIGludA0KCSAqIEB0aHJvd3MgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbnkgb2YgdGhlIHBhcmFtZXRlcnMgYXJlIG51bGwgb3IgZW1wdHkuDQoJICogQHNpbmNlICAzLjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRJbmRleCgpOiBpbnQ7DQoNCgkvKioNCgkgKiBHZXQgVmFsdWUNCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBvZiB0aGUgcGFyYW1ldGVycyBhcmUgbnVsbCBvciBlbXB0eS4NCgkgKiBAc2luY2UgIDMuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFZhbHVlKHN0cmluZyAka2V5KTsNCg0KCS8qKg0KCSAqIFVuc2V0IFZhbHVlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHRocm93cyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGlmIGFueSBvZiB0aGUgcGFyYW1ldGVycyBhcmUgbnVsbCBvciBlbXB0eS4NCgkgKiBAc2luY2UgIDMuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHVuc2V0VmFsdWUoc3RyaW5nICRrZXkpOiB2b2lkOw==', '{}', '{}', '', 1, '2024-10-17 23:23:43', 3, '', 1),
-(854, '68a0f9af-265a-4db1-bae9-a4e4531f94d7', 'JCB.Import.Item', 'Item', 'final class', 'Import Item Class\r\n\r\n@since 4.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"53f55e5b-63cb-49e7-b1e6-33e7a9f97856\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Item', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"feb3affa-5102-4307-93db-04525f4c66f0\",\"as\":\"Validator\"},\"use_selection1\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"DataItem\"},\"use_selection2\":{\"use\":\"3d3ec064-9867-41e6-a48a-964c15d753aa\",\"as\":\"Row\"},\"use_selection3\":{\"use\":\"9c513baf-b279-43fd-ae29-a585c8cbc4f0\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBUYWJsZSBWYWxpZGF0b3IgQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgVmFsaWRhdG9yDQoJICogQHNpbmNlIDQuMC4zDQoJICovDQoJcHJvdGVjdGVkIFZhbGlkYXRvciAkdmFsaWRhdG9yOw0KDQoJLyoqDQoJICogVGhlIEl0ZW0gQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgSXRlbQ0KCSAqIEBzaW5jZSA0LjAuMw0KCSAqLw0KCXByb3RlY3RlZCBEYXRhSXRlbSAkaXRlbTsNCg0KCS8qKg0KCSAqIFRoZSBJbXBvcnQgUm93IENsYXNzLg0KCSAqDQoJICogQHZhciAgIFJvdw0KCSAqIEBzaW5jZSA0LjAuMw0KCSAqLw0KCXByb3RlY3RlZCBSb3cgJHJvdzsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIFZhbGlkYXRvciAgICR2YWxpZGF0b3IgICBUaGUgVGFibGUgVmFsaWRhdG9ySSBDbGFzcy4NCgkgKiBAcGFyYW0gRGF0YUl0ZW0gICAgJGl0ZW0gICAgICAgIFRoZSBJdGVtIENsYXNzLg0KCSAqIEBwYXJhbSBSb3cgICAgICAgICAkcm93ICAgICAgICAgVGhlIEltcG9ydCBSb3cgQ2xhc3MuDQoJICoNCgkgKiBAc2luY2UgNC4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoVmFsaWRhdG9yICR2YWxpZGF0b3IsIERhdGFJdGVtICRpdGVtLCBSb3cgJHJvdykNCgl7DQoJCSR0aGlzLT52YWxpZGF0b3IgPSAkdmFsaWRhdG9yOw0KCQkkdGhpcy0+aXRlbSA9ICRpdGVtOw0KCQkkdGhpcy0+cm93ID0gJHJvdzsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGl0ZW0gZnJvbSB0aGUgaW1wb3J0IHJvdyB2YWx1ZXMgYW5kIGVuc3VyZSBpdCBpcyB2YWxpZA0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICAgVGhlIHRhYmxlIHRoZXNlIGNvbHVtbnMgYmVsb25ncyB0by4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRjb2x1bW5zICBUaGUgY29sdW1ucyB0byBleHRyYWN0Lg0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbA0KCSAqIEBzaW5jZSAgNC4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0KHN0cmluZyAkdGFibGUsIGFycmF5ICRjb2x1bW5zKTogP2FycmF5DQoJew0KCQkkaXRlbSA9IFtdOw0KCQlmb3JlYWNoICgkY29sdW1ucyBhcyAkY29sdW1uID0+ICRtYXApDQoJCXsNCgkJCWlmICgoJHZhbHVlID0gJHRoaXMtPnJvdy0+Z2V0VmFsdWUoJGNvbHVtbikpICE9PSBudWxsICYmICFpc3NldCgkaXRlbVskbWFwWyduYW1lJ11dKSkNCgkJCXsNCgkJCQkvLyBnZXQgdGhlIHZhbGlkIGltcG9ydGFibGUgdmFsdWUNCgkJCQkkaXRlbVskbWFwWyduYW1lJ11dID0gJHRoaXMtPmdldEltcG9ydFZhbHVlKCR2YWx1ZSwgJG1hcFsnbmFtZSddLCAkdGFibGUsICRtYXBbJ2xpbmsnXSA/PyBudWxsKTsNCg0KCQkJCS8vIHJlbW92ZSB2YWx1ZSBmcm9tIGdsb2JhbCByb3cgdmFsdWVzIHNldA0KCQkJCSR0aGlzLT5yb3ctPnVuc2V0VmFsdWUoJGNvbHVtbik7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gJGl0ZW0gPz8gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGNvcnJlY3QgdmFsdWUgbmVlZGVkIGZvciB0aGUgaW1wb3J0IG9mIHRoZSByZWxhdGVkIHJvdyAoaXRlbSkuDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICR2YWx1ZSAgIFRoZSB2YWx1ZSBmcm9tIHRoZSByb3cuDQoJICogQHBhcmFtICAgc3RyaW5nICAkZmllbGQgICBUaGUgZmllbGQgbmFtZSB3aGVyZSB0aGUgdmFsdWUgaXMgYmVpbmcgc3RvcmVkLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHRhYmxlICAgVGhlIHRhYmxlIHRoaXMgZmllbGQgYmVsb25ncyB0by4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRsaW5rICAgIFRoZSBmaWVsZCBsaW5rIHZhbHVlcy4NCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkDQoJICogQHNpbmNlICAgNC4wLjMNCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGdldEltcG9ydFZhbHVlKCR2YWx1ZSwgc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0YWJsZSwgP2FycmF5ICRsaW5rKQ0KCXsNCgkJLy8gVmFsaWRhdGUgdGhlIGxpbmsgYXJyYXkgYW5kIHJldHVybiB0aGUgb3JpZ2luYWwgdmFsdWUgaWYgaW52YWxpZA0KCQlpZiAoZW1wdHkoJGxpbmspIHx8ICRsaW5rWyd0eXBlJ10gIT09IDEgfHwgZW1wdHkoJGxpbmtbJ3RhYmxlJ10pIHx8IGVtcHR5KCRsaW5rWydrZXknXSkgfHwgZW1wdHkoJGxpbmtbJ3ZhbHVlJ10pKQ0KCQl7DQoJCQlyZXR1cm4gJHRoaXMtPnZhbGlkSW1wb3J0VmFsdWUoJHZhbHVlLCAkZmllbGQsICR0YWJsZSk7DQoJCX0NCg0KCQkvLyBIYW5kbGUgR1VJRCBrZXkgd2l0aCB2YWxpZGF0aW9uIHZpYSBHdWlkSGVscGVyDQoJCWlmICgkbGlua1sna2V5J10gPT09ICdndWlkJyAmJiBHdWlkSGVscGVyOjppdGVtKCR2YWx1ZSwgJGxpbmtbJ3RhYmxlJ10pKQ0KCQl7DQoJCQlyZXR1cm4gJHZhbHVlOw0KCQl9DQoNCgkJLy8gSGFuZGxlIG51bWVyaWMgSUQgd2l0aCB2YWxpZGF0aW9uDQoJCWlmICgkbGlua1sna2V5J10gPT09ICdpZCcgJiYgaXNfbnVtZXJpYygkdmFsdWUpICYmICR0aGlzLT5pc1ZhbHVlRXhpc3RzKCR2YWx1ZSwgJGxpbmspKQ0KCQl7DQoJCQlyZXR1cm4gKGludCkgJHZhbHVlOw0KCQl9DQoNCgkJLy8gQXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgbG9jYWwgdmFsdWUNCgkJJGxvY2FsX3ZhbHVlID0gJHRoaXMtPmdldExvY2FsVmFsdWUoJHZhbHVlLCAkbGluayk7DQoNCgkJLy8gSWYgbm8gbG9jYWwgdmFsdWUgZXhpc3RzLCBjcmVhdGUgaXQgaWYgbmVjZXNzYXJ5DQoJCWlmICgkbG9jYWxfdmFsdWUgPT09IG51bGwpDQoJCXsNCgkJCSRsb2NhbF92YWx1ZSA9ICR0aGlzLT5zZXRMb2NhbFZhbHVlKCR2YWx1ZSwgJGxpbmspOw0KCQl9DQoNCgkJcmV0dXJuICR0aGlzLT52YWxpZEltcG9ydFZhbHVlKCRsb2NhbF92YWx1ZSwgJGZpZWxkLCAkdGFibGUpOw0KCX0NCg0KCS8qKg0KCSAqIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgdmFsaWQgaW1wb3J0IHZhbHVlDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgICR2YWx1ZSAgIFRoZSB2YWx1ZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICRmaWVsZCAgIFRoZSBmaWVsZCBuYW1lIHdoZXJlIHRoZSB2YWx1ZSBpcyBiZWluZyBzdG9yZWQuDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICBUaGUgdGFibGUgdGhpcyBmaWVsZCBiZWxvbmdzIHRvLg0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gdmFsaWRJbXBvcnRWYWx1ZSgkdmFsdWUsIHN0cmluZyAkZmllbGQsIHN0cmluZyAkdGFibGUpDQoJew0KCQkvLyBtYWtlIHN1cmUgb3VyIHZhbHVlIHdpbGwgZml0IGluIHRoZSBkYXRhYmFzZSB0YWJsZSBkYXRhdHlwZQ0KCQlyZXR1cm4gJHRoaXMtPnZhbGlkYXRvci0+Z2V0VmFsaWQoJHZhbHVlLCAkZmllbGQsICR0YWJsZSk7DQoJfQ0KDQoJLyoqDQoJICogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgbG9jYWwgdmFsdWUgZnJvbSB0aGUgZGF0YWJhc2UgdGFibGUuDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgJHZhbHVlICBUaGUgdmFsdWUgdG8gc2VhcmNoIGZvci4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRsaW5rICAgVGhlIGZpZWxkIGxpbmsgZGV0YWlscy4NCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkfG51bGwgIFRoZSBsb2NhbCB2YWx1ZSBvciBudWxsIGlmIG5vdCBmb3VuZC4NCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gZ2V0TG9jYWxWYWx1ZSgkdmFsdWUsIGFycmF5ICRsaW5rKQ0KCXsNCgkJLy8gQXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgYmFzZWQgb24gdGhlIGxpbmtbJ3ZhbHVlJ10gYW5kIGxpbmtbJ2tleSddDQoJCSRsb2NhbF92YWx1ZSA9ICR0aGlzLT5pdGVtLT50YWJsZSgkbGlua1sndGFibGUnXSktPnZhbHVlKCR2YWx1ZSwgJGxpbmtbJ3ZhbHVlJ10sICRsaW5rWydrZXknXSk7DQoNCgkJLy8gSWYgbm90IGZvdW5kLCB0cnkgcmV0cmlldmluZyBieSBsaW5rWydrZXknXSBhbmQgbGlua1sna2V5J10NCgkJaWYgKCRsb2NhbF92YWx1ZSA9PT0gbnVsbCAmJiAkdGhpcy0+aXNWYWx1ZUV4aXN0cygkdmFsdWUsICRsaW5rKSkNCgkJew0KCQkJcmV0dXJuICR2YWx1ZTsNCgkJfQ0KDQoJCXJldHVybiAkbG9jYWxfdmFsdWU7DQoJfQ0KDQoJLyoqDQoJICogQ2hlY2sgaWYgdGhlIHZhbHVlIGV4aXN0cyBpbiB0aGUgdGFibGUgZm9yIHRoZSBnaXZlbiBsaW5rLg0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIGNoZWNrLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGxpbmsgICBUaGUgZmllbGQgbGluayBkZXRhaWxzLg0KCSAqDQoJICogQHJldHVybiAgYm9vbCAgVHJ1ZSBpZiB0aGUgdmFsdWUgZXhpc3RzLCBmYWxzZSBvdGhlcndpc2UuDQoJICogQHNpbmNlICAgNC4wLjMNCgkgKi8NCglwcml2YXRlIGZ1bmN0aW9uIGlzVmFsdWVFeGlzdHMoJHZhbHVlLCBhcnJheSAkbGluayk6IGJvb2wNCgl7DQoJCXJldHVybiAkdGhpcy0+aXRlbS0+dGFibGUoJGxpbmtbJ3RhYmxlJ10pLT52YWx1ZSgkdmFsdWUsICRsaW5rWydrZXknXSwgJGxpbmtbJ2tleSddKSAhPT0gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBDcmVhdGUgYSBuZXcgdmFsdWUgaW4gdGhlIGRhdGFiYXNlIHRhYmxlIGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4NCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkdmFsdWUgIFRoZSB2YWx1ZSB0byBjcmVhdGUuDQoJICogQHBhcmFtICAgYXJyYXkgICAkbGluayAgIFRoZSBmaWVsZCBsaW5rIGRldGFpbHMuDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZHxudWxsICBUaGUgbmV3bHkgY3JlYXRlZCB2YWx1ZSBvciBudWxsIGlmIGNyZWF0aW9uIGZhaWxlZC4NCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gc2V0TG9jYWxWYWx1ZSgkdmFsdWUsIGFycmF5ICRsaW5rKQ0KCXsNCgkJLy8gSGFuZGxlIEdVSUQgY3JlYXRpb24gaWYgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIG5vdCB2YWxpZA0KCQlpZiAoJGxpbmtbJ2tleSddID09PSAnZ3VpZCcpDQoJCXsNCgkJCWlmICghR3VpZEhlbHBlcjo6dmFsaWQoJHZhbHVlKSkNCgkJCXsNCgkJCQlyZXR1cm4gJHRoaXMtPmluc2VydEl0ZW1XaXRoR3VpZCgkdmFsdWUsICRsaW5rKTsNCgkJCX0NCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gSGFuZGxlIElEIGNyZWF0aW9uDQoJCWlmICgkbGlua1sna2V5J10gPT09ICdpZCcpDQoJCXsNCgkJCWlmICghaXNfbnVtZXJpYygkdmFsdWUpKQ0KCQkJew0KCQkJCXJldHVybiAkdGhpcy0+aW5zZXJ0SXRlbVdpdGhJZCgkdmFsdWUsICRsaW5rKTsNCgkJCX0NCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJLy8gY291bGQgbm90IGNyZWF0ZSBsb2NhbCBpdGVtICh3ZSBkb24ndCBoYXZlIGVub3VnaCBkZXRhaWxzKQ0KCQlyZXR1cm4gbnVsbDsNCgl9DQoNCgkvKioNCgkgKiBJbnNlcnQgYSBuZXcgaXRlbSB3aXRoIGEgR1VJRC4NCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkdmFsdWUgIFRoZSB2YWx1ZSB0byBpbnNlcnQuDQoJICogQHBhcmFtICAgYXJyYXkgICAkbGluayAgIFRoZSBmaWVsZCBsaW5rIGRldGFpbHMuDQoJICoNCgkgKiBAcmV0dXJuICBzdHJpbmd8bnVsbCAgVGhlIG5ldyBHVUlEIG9yIG51bGwgaWYgaW5zZXJ0aW9uIGZhaWxlZC4NCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaW5zZXJ0SXRlbVdpdGhHdWlkKCR2YWx1ZSwgYXJyYXkgJGxpbmspOiA/c3RyaW5nDQoJew0KCQkkZ3VpZCA9IEd1aWRIZWxwZXI6OmdldCgpOw0KCQkkaXRlbSA9IChvYmplY3QpIFskbGlua1sndmFsdWUnXSA9PiAkdmFsdWUsICRsaW5rWydrZXknXSA9PiAkZ3VpZF07DQoNCgkJaWYgKCR0aGlzLT5pdGVtLT50YWJsZSgkbGlua1sndGFibGUnXSktPnNldCgkaXRlbSwgJGxpbmtbJ2tleSddLCAnaW5zZXJ0JykpDQoJCXsNCgkJCXJldHVybiAkZ3VpZDsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBhIG5ldyBpdGVtIHdpdGggYSBub24tbnVtZXJpYyBJRC4NCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkdmFsdWUgIFRoZSB2YWx1ZSB0byBpbnNlcnQuDQoJICogQHBhcmFtICAgYXJyYXkgICAkbGluayAgIFRoZSBmaWVsZCBsaW5rIGRldGFpbHMuDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZHxudWxsICBUaGUgbmV3IElEIG9yIG51bGwgaWYgaW5zZXJ0aW9uIGZhaWxlZC4NCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaW5zZXJ0SXRlbVdpdGhJZCgkdmFsdWUsIGFycmF5ICRsaW5rKQ0KCXsNCgkJJGl0ZW0gPSAob2JqZWN0KSBbJGxpbmtbJ2tleSddID0+IDAsICRsaW5rWyd2YWx1ZSddID0+ICR2YWx1ZV07DQoNCgkJaWYgKCR0aGlzLT5pdGVtLT50YWJsZSgkbGlua1sndGFibGUnXSktPnNldCgkaXRlbSwgJGxpbmtbJ2tleSddLCAnaW5zZXJ0JykpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+aXRlbS0+dGFibGUoJGxpbmtbJ3RhYmxlJ10pLT52YWx1ZSgkdmFsdWUsICRsaW5rWyd2YWx1ZSddLCAkbGlua1sna2V5J10pOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ==', '{}', '{}', '', 1, '2024-10-17 23:42:31', 11, '', 1),
+(854, '68a0f9af-265a-4db1-bae9-a4e4531f94d7', 'JCB.Import.Item', 'Item', 'final class', 'Import Item Class\r\n\r\n@since 4.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"53f55e5b-63cb-49e7-b1e6-33e7a9f97856\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Item', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"feb3affa-5102-4307-93db-04525f4c66f0\",\"as\":\"Validator\"},\"use_selection1\":{\"use\":\"05744dd3-4030-4cf8-8dda-a93ab809b473\",\"as\":\"DataItem\"},\"use_selection2\":{\"use\":\"3d3ec064-9867-41e6-a48a-964c15d753aa\",\"as\":\"Row\"},\"use_selection3\":{\"use\":\"9c513baf-b279-43fd-ae29-a585c8cbc4f0\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFRoZSBUYWJsZSBWYWxpZGF0b3IgQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgVmFsaWRhdG9yDQoJICogQHNpbmNlIDQuMC4zDQoJICovDQoJcHJvdGVjdGVkIFZhbGlkYXRvciAkdmFsaWRhdG9yOw0KDQoJLyoqDQoJICogVGhlIEl0ZW0gQ2xhc3MuDQoJICoNCgkgKiBAdmFyICAgSXRlbQ0KCSAqIEBzaW5jZSA0LjAuMw0KCSAqLw0KCXByb3RlY3RlZCBEYXRhSXRlbSAkaXRlbTsNCg0KCS8qKg0KCSAqIFRoZSBJbXBvcnQgUm93IENsYXNzLg0KCSAqDQoJICogQHZhciAgIFJvdw0KCSAqIEBzaW5jZSA0LjAuMw0KCSAqLw0KCXByb3RlY3RlZCBSb3cgJHJvdzsNCg0KCS8qKg0KCSAqIENvbnN0cnVjdG9yLg0KCSAqDQoJICogQHBhcmFtIFZhbGlkYXRvciAgICR2YWxpZGF0b3IgICBUaGUgVGFibGUgVmFsaWRhdG9yIENsYXNzLg0KCSAqIEBwYXJhbSBEYXRhSXRlbSAgICAkaXRlbSAgICAgICAgVGhlIEl0ZW0gQ2xhc3MuDQoJICogQHBhcmFtIFJvdyAgICAgICAgICRyb3cgICAgICAgICBUaGUgSW1wb3J0IFJvdyBDbGFzcy4NCgkgKg0KCSAqIEBzaW5jZSA0LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChWYWxpZGF0b3IgJHZhbGlkYXRvciwgRGF0YUl0ZW0gJGl0ZW0sIFJvdyAkcm93KQ0KCXsNCgkJJHRoaXMtPnZhbGlkYXRvciA9ICR2YWxpZGF0b3I7DQoJCSR0aGlzLT5pdGVtID0gJGl0ZW07DQoJCSR0aGlzLT5yb3cgPSAkcm93Ow0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgaXRlbSBmcm9tIHRoZSBpbXBvcnQgcm93IHZhbHVlcyBhbmQgZW5zdXJlIGl0IGlzIHZhbGlkDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgICBUaGUgdGFibGUgdGhlc2UgY29sdW1ucyBiZWxvbmdzIHRvLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGNvbHVtbnMgIFRoZSBjb2x1bW5zIHRvIGV4dHJhY3QuDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICA0LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICR0YWJsZSwgYXJyYXkgJGNvbHVtbnMpOiA/YXJyYXkNCgl7DQoJCSRpdGVtID0gW107DQoJCWZvcmVhY2ggKCRjb2x1bW5zIGFzICRjb2x1bW4gPT4gJG1hcCkNCgkJew0KCQkJaWYgKCgkdmFsdWUgPSAkdGhpcy0+cm93LT5nZXRWYWx1ZSgkY29sdW1uKSkgIT09IG51bGwgJiYgIWlzc2V0KCRpdGVtWyRtYXBbJ25hbWUnXV0pKQ0KCQkJew0KCQkJCS8vIGdldCB0aGUgdmFsaWQgaW1wb3J0YWJsZSB2YWx1ZQ0KCQkJCSRpdGVtWyRtYXBbJ25hbWUnXV0gPSAkdGhpcy0+Z2V0SW1wb3J0VmFsdWUoJHZhbHVlLCAkbWFwWyduYW1lJ10sICR0YWJsZSwgJG1hcFsnbGluayddID8/IG51bGwpOw0KDQoJCQkJLy8gcmVtb3ZlIHZhbHVlIGZyb20gZ2xvYmFsIHJvdyB2YWx1ZXMgc2V0DQoJCQkJJHRoaXMtPnJvdy0+dW5zZXRWYWx1ZSgkY29sdW1uKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkaXRlbSA/PyBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgY29ycmVjdCB2YWx1ZSBuZWVkZWQgZm9yIHRoZSBpbXBvcnQgb2YgdGhlIHJlbGF0ZWQgcm93IChpdGVtKS4NCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgJHZhbHVlICAgVGhlIHZhbHVlIGZyb20gdGhlIHJvdy4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICRmaWVsZCAgIFRoZSBmaWVsZCBuYW1lIHdoZXJlIHRoZSB2YWx1ZSBpcyBiZWluZyBzdG9yZWQuDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICBUaGUgdGFibGUgdGhpcyBmaWVsZCBiZWxvbmdzIHRvLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGxpbmsgICAgVGhlIGZpZWxkIGxpbmsgdmFsdWVzLg0KCSAqDQoJICogQHJldHVybiAgbWl4ZWQNCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gZ2V0SW1wb3J0VmFsdWUoJHZhbHVlLCBzdHJpbmcgJGZpZWxkLCBzdHJpbmcgJHRhYmxlLCA/YXJyYXkgJGxpbmspDQoJew0KCQkvLyBWYWxpZGF0ZSB0aGUgbGluayBhcnJheSBhbmQgcmV0dXJuIHRoZSBvcmlnaW5hbCB2YWx1ZSBpZiBpbnZhbGlkDQoJCWlmIChlbXB0eSgkbGluaykgfHwgJGxpbmtbJ3R5cGUnXSAhPT0gMSB8fCBlbXB0eSgkbGlua1sndGFibGUnXSkgfHwgZW1wdHkoJGxpbmtbJ2tleSddKSB8fCBlbXB0eSgkbGlua1sndmFsdWUnXSkpDQoJCXsNCgkJCXJldHVybiAkdGhpcy0+dmFsaWRJbXBvcnRWYWx1ZSgkdmFsdWUsICRmaWVsZCwgJHRhYmxlKTsNCgkJfQ0KDQoJCS8vIEhhbmRsZSBHVUlEIGtleSB3aXRoIHZhbGlkYXRpb24gdmlhIEd1aWRIZWxwZXINCgkJaWYgKCRsaW5rWydrZXknXSA9PT0gJ2d1aWQnICYmIEd1aWRIZWxwZXI6Oml0ZW0oJHZhbHVlLCAkbGlua1sndGFibGUnXSkpDQoJCXsNCgkJCXJldHVybiAkdmFsdWU7DQoJCX0NCg0KCQkvLyBIYW5kbGUgbnVtZXJpYyBJRCB3aXRoIHZhbGlkYXRpb24NCgkJaWYgKCRsaW5rWydrZXknXSA9PT0gJ2lkJyAmJiBpc19udW1lcmljKCR2YWx1ZSkgJiYgJHRoaXMtPmlzVmFsdWVFeGlzdHMoJHZhbHVlLCAkbGluaykpDQoJCXsNCgkJCXJldHVybiAoaW50KSAkdmFsdWU7DQoJCX0NCg0KCQkvLyBBdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBsb2NhbCB2YWx1ZQ0KCQkkbG9jYWxfdmFsdWUgPSAkdGhpcy0+Z2V0TG9jYWxWYWx1ZSgkdmFsdWUsICRsaW5rKTsNCg0KCQkvLyBJZiBubyBsb2NhbCB2YWx1ZSBleGlzdHMsIGNyZWF0ZSBpdCBpZiBuZWNlc3NhcnkNCgkJaWYgKCRsb2NhbF92YWx1ZSA9PT0gbnVsbCkNCgkJew0KCQkJJGxvY2FsX3ZhbHVlID0gJHRoaXMtPnNldExvY2FsVmFsdWUoJHZhbHVlLCAkbGluayk7DQoJCX0NCg0KCQlyZXR1cm4gJHRoaXMtPnZhbGlkSW1wb3J0VmFsdWUoJGxvY2FsX3ZhbHVlLCAkZmllbGQsICR0YWJsZSk7DQoJfQ0KDQoJLyoqDQoJICogTWFrZSBzdXJlIHdlIGhhdmUgYSB2YWxpZCBpbXBvcnQgdmFsdWUNCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAgJHZhbHVlICAgVGhlIHZhbHVlLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGZpZWxkICAgVGhlIGZpZWxkIG5hbWUgd2hlcmUgdGhlIHZhbHVlIGlzIGJlaW5nIHN0b3JlZC4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgIFRoZSB0YWJsZSB0aGlzIGZpZWxkIGJlbG9uZ3MgdG8uDQoJICoNCgkgKiBAcmV0dXJuICBtaXhlZA0KCSAqIEBzaW5jZSAgIDQuMC4zDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiB2YWxpZEltcG9ydFZhbHVlKCR2YWx1ZSwgc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0YWJsZSkNCgl7DQoJCS8vIG1ha2Ugc3VyZSBvdXIgdmFsdWUgd2lsbCBmaXQgaW4gdGhlIGRhdGFiYXNlIHRhYmxlIGRhdGF0eXBlDQoJCXJldHVybiAkdGhpcy0+dmFsaWRhdG9yLT5nZXRWYWxpZCgkdmFsdWUsICRmaWVsZCwgJHRhYmxlKTsNCgl9DQoNCgkvKioNCgkgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBsb2NhbCB2YWx1ZSBmcm9tIHRoZSBkYXRhYmFzZSB0YWJsZS4NCgkgKg0KCSAqIEBwYXJhbSAgIG1peGVkICAkdmFsdWUgIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGxpbmsgICBUaGUgZmllbGQgbGluayBkZXRhaWxzLg0KCSAqDQoJICogQHJldHVybiAgbWl4ZWR8bnVsbCAgVGhlIGxvY2FsIHZhbHVlIG9yIG51bGwgaWYgbm90IGZvdW5kLg0KCSAqIEBzaW5jZSAgIDQuMC4zDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBnZXRMb2NhbFZhbHVlKCR2YWx1ZSwgYXJyYXkgJGxpbmspDQoJew0KCQkvLyBBdHRlbXB0IHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBiYXNlZCBvbiB0aGUgbGlua1sndmFsdWUnXSBhbmQgbGlua1sna2V5J10NCgkJJGxvY2FsX3ZhbHVlID0gJHRoaXMtPml0ZW0tPnRhYmxlKCRsaW5rWyd0YWJsZSddKS0+dmFsdWUoJHZhbHVlLCAkbGlua1sndmFsdWUnXSwgJGxpbmtbJ2tleSddKTsNCg0KCQkvLyBJZiBub3QgZm91bmQsIHRyeSByZXRyaWV2aW5nIGJ5IGxpbmtbJ2tleSddIGFuZCBsaW5rWydrZXknXQ0KCQlpZiAoJGxvY2FsX3ZhbHVlID09PSBudWxsICYmICR0aGlzLT5pc1ZhbHVlRXhpc3RzKCR2YWx1ZSwgJGxpbmspKQ0KCQl7DQoJCQlyZXR1cm4gJHZhbHVlOw0KCQl9DQoNCgkJcmV0dXJuICRsb2NhbF92YWx1ZTsNCgl9DQoNCgkvKioNCgkgKiBDaGVjayBpZiB0aGUgdmFsdWUgZXhpc3RzIGluIHRoZSB0YWJsZSBmb3IgdGhlIGdpdmVuIGxpbmsuDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgJHZhbHVlICBUaGUgdmFsdWUgdG8gY2hlY2suDQoJICogQHBhcmFtICAgYXJyYXkgICAkbGluayAgIFRoZSBmaWVsZCBsaW5rIGRldGFpbHMuDQoJICoNCgkgKiBAcmV0dXJuICBib29sICBUcnVlIGlmIHRoZSB2YWx1ZSBleGlzdHMsIGZhbHNlIG90aGVyd2lzZS4NCgkgKiBAc2luY2UgICA0LjAuMw0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaXNWYWx1ZUV4aXN0cygkdmFsdWUsIGFycmF5ICRsaW5rKTogYm9vbA0KCXsNCgkJcmV0dXJuICR0aGlzLT5pdGVtLT50YWJsZSgkbGlua1sndGFibGUnXSktPnZhbHVlKCR2YWx1ZSwgJGxpbmtbJ2tleSddLCAkbGlua1sna2V5J10pICE9PSBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIENyZWF0ZSBhIG5ldyB2YWx1ZSBpbiB0aGUgZGF0YWJhc2UgdGFibGUgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0Lg0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIGNyZWF0ZS4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRsaW5rICAgVGhlIGZpZWxkIGxpbmsgZGV0YWlscy4NCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkfG51bGwgIFRoZSBuZXdseSBjcmVhdGVkIHZhbHVlIG9yIG51bGwgaWYgY3JlYXRpb24gZmFpbGVkLg0KCSAqIEBzaW5jZSAgIDQuMC4zDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBzZXRMb2NhbFZhbHVlKCR2YWx1ZSwgYXJyYXkgJGxpbmspDQoJew0KCQkvLyBIYW5kbGUgR1VJRCBjcmVhdGlvbiBpZiB0aGUgcHJvdmlkZWQgdmFsdWUgaXMgbm90IHZhbGlkDQoJCWlmICgkbGlua1sna2V5J10gPT09ICdndWlkJykNCgkJew0KCQkJaWYgKCFHdWlkSGVscGVyOjp2YWxpZCgkdmFsdWUpKQ0KCQkJew0KCQkJCXJldHVybiAkdGhpcy0+aW5zZXJ0SXRlbVdpdGhHdWlkKCR2YWx1ZSwgJGxpbmspOw0KCQkJfQ0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBIYW5kbGUgSUQgY3JlYXRpb24NCgkJaWYgKCRsaW5rWydrZXknXSA9PT0gJ2lkJykNCgkJew0KCQkJaWYgKCFpc19udW1lcmljKCR2YWx1ZSkpDQoJCQl7DQoJCQkJcmV0dXJuICR0aGlzLT5pbnNlcnRJdGVtV2l0aElkKCR2YWx1ZSwgJGxpbmspOw0KCQkJfQ0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkvLyBjb3VsZCBub3QgY3JlYXRlIGxvY2FsIGl0ZW0gKHdlIGRvbid0IGhhdmUgZW5vdWdoIGRldGFpbHMpDQoJCXJldHVybiBudWxsOw0KCX0NCg0KCS8qKg0KCSAqIEluc2VydCBhIG5ldyBpdGVtIHdpdGggYSBHVUlELg0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIGluc2VydC4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRsaW5rICAgVGhlIGZpZWxkIGxpbmsgZGV0YWlscy4NCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZ3xudWxsICBUaGUgbmV3IEdVSUQgb3IgbnVsbCBpZiBpbnNlcnRpb24gZmFpbGVkLg0KCSAqIEBzaW5jZSAgIDQuMC4zDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBpbnNlcnRJdGVtV2l0aEd1aWQoJHZhbHVlLCBhcnJheSAkbGluayk6ID9zdHJpbmcNCgl7DQoJCSRndWlkID0gR3VpZEhlbHBlcjo6Z2V0KCk7DQoJCSRpdGVtID0gKG9iamVjdCkgWyRsaW5rWyd2YWx1ZSddID0+ICR2YWx1ZSwgJGxpbmtbJ2tleSddID0+ICRndWlkXTsNCg0KCQlpZiAoJHRoaXMtPml0ZW0tPnRhYmxlKCRsaW5rWyd0YWJsZSddKS0+c2V0KCRpdGVtLCAkbGlua1sna2V5J10sICdpbnNlcnQnKSkNCgkJew0KCQkJcmV0dXJuICRndWlkOw0KCQl9DQoNCgkJcmV0dXJuIG51bGw7DQoJfQ0KDQoJLyoqDQoJICogSW5zZXJ0IGEgbmV3IGl0ZW0gd2l0aCBhIG5vbi1udW1lcmljIElELg0KCSAqDQoJICogQHBhcmFtICAgbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIGluc2VydC4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRsaW5rICAgVGhlIGZpZWxkIGxpbmsgZGV0YWlscy4NCgkgKg0KCSAqIEByZXR1cm4gIG1peGVkfG51bGwgIFRoZSBuZXcgSUQgb3IgbnVsbCBpZiBpbnNlcnRpb24gZmFpbGVkLg0KCSAqIEBzaW5jZSAgIDQuMC4zDQoJICovDQoJcHJpdmF0ZSBmdW5jdGlvbiBpbnNlcnRJdGVtV2l0aElkKCR2YWx1ZSwgYXJyYXkgJGxpbmspDQoJew0KCQkkaXRlbSA9IChvYmplY3QpIFskbGlua1sna2V5J10gPT4gMCwgJGxpbmtbJ3ZhbHVlJ10gPT4gJHZhbHVlXTsNCg0KCQlpZiAoJHRoaXMtPml0ZW0tPnRhYmxlKCRsaW5rWyd0YWJsZSddKS0+c2V0KCRpdGVtLCAkbGlua1sna2V5J10sICdpbnNlcnQnKSkNCgkJew0KCQkJcmV0dXJuICR0aGlzLT5pdGVtLT50YWJsZSgkbGlua1sndGFibGUnXSktPnZhbHVlKCR2YWx1ZSwgJGxpbmtbJ3ZhbHVlJ10sICRsaW5rWydrZXknXSk7DQoJCX0NCg0KCQlyZXR1cm4gbnVsbDsNCgl9', '{}', '{}', '', 1, '2024-10-17 23:42:31', 12, '', 1),
(855, 'feb3affa-5102-4307-93db-04525f4c66f0', 'VDM.Interfaces.TableValidatorInterface', 'TableValidatorInterface', 'interface', 'The VDM Core Table Validator Interface', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.TableValidatorInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlIGJhc2VkIG9uIGRhdGF0eXBlIGRlZmluaXRpb24uDQoJICogSWYgdGhlIHZhbHVlIGlzIHZhbGlkLCByZXR1cm4gaXQuIElmIG5vdCwgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLA0KCSAqIE5VTEwgKGlmIGFsbG93ZWQpLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ0VNUFRZJyBpcyBzZXQuDQoJICoNCgkgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSAgVGhlIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkICBUaGUgZmllbGQgbmFtZS4NCgkgKiBAcGFyYW0gc3RyaW5nICR0YWJsZSAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIG1peGVkIFJldHVybnMgdGhlIHZhbGlkIHZhbHVlLCBvciB0aGUgZGVmYXVsdCwgTlVMTCwgb3IgZW1wdHkgc3RyaW5nIGJhc2VkIG9uIHZhbGlkYXRpb24uDQoJICogQHNpbmNlIDUuMy4wDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFZhbGlkKCR2YWx1ZSwgc3RyaW5nICRmaWVsZCwgc3RyaW5nICR0YWJsZSk7', '{}', '{}', '', 1, '2024-10-17 23:48:22', 3, '', 1),
(856, '21754a8b-2323-4a77-8459-378a74c1ec97', 'JCB.Import.Service.Import', 'Import', 'class', 'Import Service Provider\r\n\r\n@since 5.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Import.Service.Import', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"05f23281-58e3-482e-be42-2dc1355ef4ea\",\"as\":\"default\"},\"use_selection1\":{\"use\":\"90b48ea8-0930-48d1-869a-bce9c901589c\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"afb5b891-7130-422a-b389-1934b0e4fc48\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"68a0f9af-265a-4db1-bae9-a4e4531f94d7\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"eef6ffc2-2af0-4336-958f-e0b9cf7c4ad0\",\"as\":\"default\"},\"use_selection5\":{\"use\":\"d2a859ac-3f2a-4f69-a77f-f118b2e0a459\",\"as\":\"default\"},\"use_selection6\":{\"use\":\"19a66b48-620c-439b-ab8a-3c0d43e040c3\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKERhdGE6OmNsYXNzLCAnSW1wb3J0LkRhdGEnKQ0KCQkJLT5zaGFyZSgnSW1wb3J0LkRhdGEnLCBbJHRoaXMsICdnZXREYXRhJ10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKE1hcHBlcjo6Y2xhc3MsICdJbXBvcnQuTWFwcGVyJykNCgkJCS0+c2hhcmUoJ0ltcG9ydC5NYXBwZXInLCBbJHRoaXMsICdnZXRNYXBwZXInXSwgdHJ1ZSk7DQoNCgkJJGNvbnRhaW5lci0+YWxpYXMoUm93OjpjbGFzcywgJ0ltcG9ydC5Sb3cnKQ0KCQkJLT5zaGFyZSgnSW1wb3J0LlJvdycsIFskdGhpcywgJ2dldFJvdyddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhJdGVtOjpjbGFzcywgJ0ltcG9ydC5JdGVtJykNCgkJCS0+c2hhcmUoJ0ltcG9ydC5JdGVtJywgWyR0aGlzLCAnZ2V0SXRlbSddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhNZXNzYWdlOjpjbGFzcywgJ0ltcG9ydC5NZXNzYWdlJykNCgkJCS0+c2hhcmUoJ0ltcG9ydC5NZXNzYWdlJywgWyR0aGlzLCAnZ2V0TWVzc2FnZSddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhTdGF0dXM6OmNsYXNzLCAnSW1wb3J0LlN0YXR1cycpDQoJCQktPnNoYXJlKCdJbXBvcnQuU3RhdHVzJywgWyR0aGlzLCAnZ2V0U3RhdHVzJ10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKEFzc2Vzc29yOjpjbGFzcywgJ0ltcG9ydC5Bc3Nlc3NvcicpDQoJCQktPnNoYXJlKCdJbXBvcnQuQXNzZXNzb3InLCBbJHRoaXMsICdnZXRBc3Nlc3NvciddLCB0cnVlKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIERhdGEgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBEYXRhDQoJICogQHNpbmNlIDUuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldERhdGEoQ29udGFpbmVyICRjb250YWluZXIpOiBEYXRhDQoJew0KCQlyZXR1cm4gbmV3IERhdGEoKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIE1hcHBlciBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIE1hcHBlcg0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRNYXBwZXIoQ29udGFpbmVyICRjb250YWluZXIpOiBNYXBwZXINCgl7DQoJCXJldHVybiBuZXcgTWFwcGVyKA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdUYWJsZScpDQoJCSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBSb3cgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBSb3cNCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0Um93KENvbnRhaW5lciAkY29udGFpbmVyKTogUm93DQoJew0KCQlyZXR1cm4gbmV3IFJvdygpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgSXRlbSBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIEl0ZW0NCgkgKiBAc2luY2UgNS4wLjMNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0SXRlbShDb250YWluZXIgJGNvbnRhaW5lcik6IEl0ZW0NCgl7DQoJCXJldHVybiBuZXcgSXRlbSgNCgkJCSRjb250YWluZXItPmdldCgnVGFibGUuVmFsaWRhdG9yJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSXRlbScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuUm93JykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIE1lc3NhZ2UgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBNZXNzYWdlDQoJICogQHNpbmNlIDUuMC4zDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldE1lc3NhZ2UoQ29udGFpbmVyICRjb250YWluZXIpOiBNZXNzYWdlDQoJew0KCQlyZXR1cm4gbmV3IE1lc3NhZ2UoDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuVXBkYXRlJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSW5zZXJ0JykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIFN0YXR1cyBDbGFzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIENvbnRhaW5lciAgJGNvbnRhaW5lciAgVGhlIERJIGNvbnRhaW5lci4NCgkgKg0KCSAqIEByZXR1cm4gIFN0YXR1cw0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRTdGF0dXMoQ29udGFpbmVyICRjb250YWluZXIpOiBTdGF0dXMNCgl7DQoJCXJldHVybiBuZXcgU3RhdHVzKA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdEYXRhLkl0ZW0nKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgQXNzZXNzb3IgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBBc3Nlc3Nvcg0KCSAqIEBzaW5jZSA1LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXRBc3Nlc3NvcihDb250YWluZXIgJGNvbnRhaW5lcik6IEFzc2Vzc29yDQoJew0KCQlyZXR1cm4gbmV3IEFzc2Vzc29yKA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuRGF0YScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuU3RhdHVzJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5NZXNzYWdlJykNCgkJKTsNCgl9', '{}', '{}', '', 1, '2024-10-17 23:52:01', 7, '', 1),
(857, '53f55e5b-63cb-49e7-b1e6-33e7a9f97856', 'VDM.ImportItemInterface', 'ImportItemInterface', 'interface', 'Import Item Interface\r\n\r\n@since 3.0.3', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Interfaces.ImportItemInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIEdldCB0aGUgaXRlbSBmcm9tIHRoZSBpbXBvcnQgcm93IHZhbHVlcyBhbmQgZW5zdXJlIGl0IGlzIHZhbGlkDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgICBUaGUgdGFibGUgdGhlc2UgY29sdW1ucyBiZWxvbmdzIHRvLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGNvbHVtbnMgIFRoZSBjb2x1bW5zIHRvIGV4dHJhY3QuDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheXxudWxsDQoJICogQHNpbmNlICA0LjAuMw0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICR0YWJsZSwgYXJyYXkgJGNvbHVtbnMpOiA/YXJyYXk7', '{}', '{}', '', 1, '2024-10-18 00:02:02', 2, '', 1),
@@ -2264,7 +2266,12 @@ INSERT INTO `#__componentbuilder_power` (`id`, `guid`, `system_name`, `name`, `t
(884, 'db00768d-c7a6-421d-8f39-577550ddf792', 'JCB.Item.Import.JoinTables', 'JoinTables', 'final class', 'Item Import Join Tables Class\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8=', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Item.Import.JoinTables', '', '{}', '{}', '', '{\"use_selection0\":{\"use\":\"250a7272-9ae1-4c63-a058-26bad9ad6f70\",\"as\":\"Mapper\"},\"use_selection1\":{\"use\":\"53f55e5b-63cb-49e7-b1e6-33e7a9f97856\",\"as\":\"ImportItem\"},\"use_selection2\":{\"use\":\"05f23281-58e3-482e-be42-2dc1355ef4ea\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"9206082e-a3f7-472e-98b2-de90d06cbdcd\",\"as\":\"default\"},\"use_selection4\":{\"use\":\"06f8eada-d59b-441c-b287-0aea1793da5a\",\"as\":\"default\"},\"use_selection5\":{\"use\":\"9c513baf-b279-43fd-ae29-a585c8cbc4f0\",\"as\":\"default\"}}', 'CS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KCSAqIFRIRVNFIFZBTFVFUyBCRUxPVyBTSE9VTEQgQkUgVVBEQVRFIEZPUiBZT1VSIFVTRS1DQVNFDQoJICovDQoNCgkvKioNCgkgKiBUaGUgY3VycmVudCBqb2luIHRhYmxlcyBrZXkgZmllbGRzIG1hcC4NCgkgKg0KCSAqIEB2YXIgICBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBhcnJheSAka2V5RmllbGRzID0gWw0KCQknZGV0YWlsJyA9PiBbJ2xpbmtfZmllbGRzJyA9PiBbJ2VudGl0eSddXQ0KCV07DQoNCgkvKioNCgkgKiBUSEVTRSBWQUxVRVMgQUJPVkUgU0hPVUxEIEJFIFVQREFURSBGT1IgWU9VUiBVU0UtQ0FTRQ0KCSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCg0KCS8qKg0KCSAqIFRoZSBJbXBvcnQgTWFwcGVyIENsYXNzLg0KCSAqDQoJICogQHZhciAgIE1hcHBlcg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBNYXBwZXIgJG1hcHBlcjsNCg0KCS8qKg0KCSAqIFRoZSBJbXBvcnQgSXRlbSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJbXBvcnRJdGVtDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEltcG9ydEl0ZW0gJGltcG9ydGl0ZW07DQoNCgkvKioNCgkgKiBUaGUgRGF0YSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBEYXRhDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIERhdGEgJGRhdGE7DQoNCgkvKioNCgkgKiBUaGUgSXRlbSBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBJdGVtDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIEl0ZW0gJGl0ZW07DQoNCgkvKioNCgkgKiBUaGUgTG9hZCBDbGFzcy4NCgkgKg0KCSAqIEB2YXIgICBMb2FkDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIExvYWQgJGxvYWQ7DQoNCgkvKioNCgkgKiBDb25zdHJ1Y3Rvci4NCgkgKg0KCSAqIEBwYXJhbSBNYXBwZXIgICAgICAgJG1hcHBlciAgICAgICBUaGUgSW1wb3J0IE1hcHBlciBDbGFzcy4NCgkgKiBAcGFyYW0gSW1wb3J0SXRlbSAgICRpbXBvcnRpdGVtICAgVGhlIEltcG9ydCBJdGVtIENsYXNzLg0KCSAqIEBwYXJhbSBEYXRhICAgICAgICAgJGRhdGEgICAgICAgICBUaGUgRGF0YSBDbGFzcy4NCgkgKiBAcGFyYW0gSXRlbSAgICAgICAgICRpdGVtICAgICAgICAgVGhlIEl0ZW0gQ2xhc3MuDQoJICogQHBhcmFtIExvYWQgICAgICAgICAkbG9hZCAgICAgICAgIFRoZSBMb2FkIENsYXNzLg0KCSAqDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KE1hcHBlciAkbWFwcGVyLCBJbXBvcnRJdGVtICRpbXBvcnRpdGVtLCBEYXRhICRkYXRhLA0KCQlJdGVtICRpdGVtLCBMb2FkICRsb2FkKQ0KCXsNCgkJJHRoaXMtPm1hcHBlciA9ICRtYXBwZXI7DQoJCSR0aGlzLT5pbXBvcnRpdGVtID0gJGltcG9ydGl0ZW07DQoJCSR0aGlzLT5kYXRhID0gJGRhdGE7DQoJCSR0aGlzLT5pdGVtID0gJGl0ZW07DQoJCSR0aGlzLT5sb2FkID0gJGxvYWQ7DQoJfQ0KDQoJLyoqDQoJICogUHJvY2VzcyB0aGUgam9pbiB0YWJsZXMgYW5kIHNhdmUgdGhlIGNvcnJlc3BvbmRpbmcgZGF0YS4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJHBhcmVudEtleVZhbHVlICBUaGUgcGFyZW50IGtleS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHNldChzdHJpbmcgJHBhcmVudEpvaW5LZXksIHN0cmluZyAkcGFyZW50R3VpZCk6IHZvaWQNCgl7DQoJCWZvcmVhY2ggKCR0aGlzLT5tYXBwZXItPmdldEpvaW4oKSBhcyAkdGFibGUgPT4gJGNvbHVtbnMpDQoJCXsNCgkJCSRrZXlfZmllbGRzID0gJHRoaXMtPmtleUZpZWxkc1skdGFibGVdWydsaW5rX2ZpZWxkcyddID8/IG51bGw7DQoNCgkJCWlmICgka2V5X2ZpZWxkcyA9PT0gbnVsbCkNCgkJCXsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJd2hpbGUgKCRpdGVtID0gJHRoaXMtPmltcG9ydGl0ZW0tPmdldCgkdGFibGUsICRjb2x1bW5zKSkNCgkJCXsNCgkJCQlpZiAoZW1wdHkoJGl0ZW0pKQ0KCQkJCXsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KDQoJCQkJJGl0ZW1bJHBhcmVudEpvaW5LZXldID0gJHBhcmVudEd1aWQ7DQoNCgkJCQlpZiAoJHRoaXMtPmlzSm9pbmVkSXRlbVJlYWR5KCRpdGVtLCAka2V5X2ZpZWxkcywgJHRhYmxlKSkNCgkJCQl7DQoJCQkJCSR0aGlzLT5zYXZlSm9pbmVkSXRlbSgkaXRlbSwgJGtleV9maWVsZHMsICR0YWJsZSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLyoqDQoJICogQ2hlY2sgaWYgdGhlIGl0ZW0gaXMgcmVhZHkgdG8gYmUgcHJvY2Vzc2VkLg0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkaXRlbSAgICAgICAgIFRoZSBpdGVtIHRvIGNoZWNrLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGtleUZpZWxkcyAgICBLZXkgZmllbGRzIGZvciB0aGUgdGFibGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAkdGFibGUgICAgICAgIFRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuICBib29sDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gaXNKb2luZWRJdGVtUmVhZHkoYXJyYXkgJGl0ZW0sIGFycmF5ICRrZXlGaWVsZHMsIHN0cmluZyAkdGFibGUpOiBib29sDQoJew0KCQkkcmVhZHkgPSB0cnVlOw0KDQoJCWZvcmVhY2ggKCRrZXlGaWVsZHMgYXMgJGtleV9maWVsZCkNCgkJew0KCQkJaWYgKGVtcHR5KCRpdGVtWyRrZXlfZmllbGRdKSkNCgkJCXsNCgkJCQkkcmVhZHkgPSBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAkcmVhZHk7DQoJfQ0KDQoJLyoqDQoJICogU2F2ZSB0aGUgaXRlbSAoZWl0aGVyIGluc2VydCBvciB1cGRhdGUpLg0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkaXRlbSAgICAgICAgIFRoZSBpdGVtIHRvIHNhdmUuDQoJICogQHBhcmFtICAgYXJyYXkgICAka2V5RmllbGRzICAgIEtleSBmaWVsZHMgZm9yIHRoZSB0YWJsZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0YWJsZSAgICAgICAgVGhlIHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByaXZhdGUgZnVuY3Rpb24gc2F2ZUpvaW5lZEl0ZW0oYXJyYXkgJGl0ZW0sIGFycmF5ICRrZXlGaWVsZHMsIHN0cmluZyAkdGFibGUpOiB2b2lkDQoJew0KCQkkd2hlcmUgPSBbXTsNCgkJZm9yZWFjaCAoJGtleUZpZWxkcyBhcyAka2V5X2ZpZWxkKQ0KCSAJew0KCQkJJHdoZXJlWydhLicgLiAka2V5X2ZpZWxkXSA9ICRpdGVtWyRrZXlfZmllbGRdOw0KCQl9DQoNCgkJJGd1aWQgPSAkdGhpcy0+bG9hZC0+dmFsdWUoWydhLmd1aWQnID0+ICdndWlkJ10sIFsnYScgPT4gJHRhYmxlXSwgJHdoZXJlKTsNCg0KCQlpZiAoJGd1aWQgPT09IG51bGwpDQoJCXsNCgkJCSRndWlkID0gR3VpZEhlbHBlcjo6Z2V0KCk7DQoNCgkJCSRhY3Rpb24gPSAnaW5zZXJ0JzsNCgkJCSRpdGVtWydjcmVhdGVkX2J5J10gPz89ICR0aGlzLT5kYXRhLT5nZXQoJ2ltcG9ydC5jcmVhdGVkX2J5JywgMCk7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQkkYWN0aW9uID0gJ3VwZGF0ZSc7DQoJCQkkaXRlbVsnbW9kaWZpZWRfYnknXSA/Pz0gJHRoaXMtPmRhdGEtPmdldCgnaW1wb3J0LmNyZWF0ZWRfYnknLCAwKTsgLy8gbXVzdCBiZSBjcmVhdGVkIGJ5IDopDQoJCX0NCg0KCQkkaXRlbVsnZ3VpZCddID0gJGd1aWQ7DQoJCSR0aGlzLT5pdGVtLT50YWJsZSgkdGFibGUpLT5zZXQoKG9iamVjdCkkaXRlbSwgJ2d1aWQnLCAkYWN0aW9uKTsNCgl9', '{}', '{}', '', 1, '2020-02-17 12:12:20', 6, '', 1),
(885, '36063502-2115-4c8d-b16a-0c76cc8c1ada', 'JCB.Spreadsheet.RowDataArray', 'RowDataArray', 'final class', 'Spreadsheet Row Data Array\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8=', '1.0.0', '', '', '', '', '{\"0\":\"9ffc54fa-a71e-412f-bc8b-064fc3b69167\"}', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Spreadsheet.RowDataArray', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFByb2Nlc3NlcyBhIGdpdmVuIHNwcmVhZHNoZWV0IHJvdyBhbmQgcmV0dXJucyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBjb250YWluaW5nIHRoZSByb3cgaW5kZXggYW5kIGNlbGwgdmFsdWVzIGluZGV4ZWQgYnkgY29sdW1uIGxldHRlcnMuDQoJICoNCgkgKiBUaGlzIG1ldGhvZCBpdGVyYXRlcyBvdmVyIGVhY2ggY2VsbCBpbiB0aGUgcHJvdmlkZWQgcm93LCByZXRyaWV2ZXMgdGhlIGNlbGwgdmFsdWVzLCBhbmQgY3JlYXRlcw0KCSAqIGFuIGFzc29jaWF0aXZlIGFycmF5IHdoZXJlICdpbmRleCcgaG9sZHMgdGhlIHJvdyBpbmRleCBhbmQgJ3ZhbHVlJyBjb250YWlucyBhbiBhc3NvY2lhdGl2ZSBhcnJheQ0KCSAqIG9mIGNvbHVtbiBsZXR0ZXJzIGFzIGtleXMgYW5kIGNlbGwgdmFsdWVzIGFzIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcy4NCgkgKg0KCSAqIEBwYXJhbSBSb3cgJHJvdyBUaGUgcm93IG9iamVjdCBmcm9tIHRoZSBzcHJlYWRzaGVldCB0byBiZSBwcm9jZXNzZWQuDQoJICoNCgkgKiBAcmV0dXJuIG51bGx8YXJyYXk8c3RyaW5nLCBzdHJpbmc+IEFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6DQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gJ2luZGV4JyAoaW50KTogVGhlIHJvdyBpbmRleC4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAndmFsdWVzJyAoYXJyYXk8c3RyaW5nLCBzdHJpbmc+KTogQW4gYXNzb2NpYXRpdmUgYXJyYXkgd2hlcmUga2V5cyBhcmUgdGhlIGNvbHVtbiBsZXR0ZXJzDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZyksIGFuZCB2YWx1ZXMgYXJlIHRoZSBjb3JyZXNwb25kaW5nIGNlbGwgdmFsdWVzIChzdHJpbmcpLg0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKFJvdyAkcm93KTogP2FycmF5DQoJew0KCQlpZiAoJHJvdy0+aXNFbXB0eSgpKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCSRyb3dEYXRhID0gWydpbmRleCcgPT4gJHJvdy0+Z2V0Um93SW5kZXgoKSwgJ3ZhbHVlcycgPT4gW11dOw0KCQkkY2VsbEl0ZXJhdG9yID0gJHJvdy0+Z2V0Q2VsbEl0ZXJhdG9yKCk7DQoJCSRjZWxsSXRlcmF0b3ItPnNldEl0ZXJhdGVPbmx5RXhpc3RpbmdDZWxscyh0cnVlKTsNCg0KCQlmb3JlYWNoICgkY2VsbEl0ZXJhdG9yIGFzICRjZWxsKQ0KCQl7DQoJCQkkcm93RGF0YVsndmFsdWVzJ11bJGNlbGwtPmdldENvbHVtbigpXSA9IChzdHJpbmcpICRjZWxsLT5nZXRWYWx1ZSgpOw0KCQl9DQoNCgkJcmV0dXJuICRyb3dEYXRhOw0KCX0=', '{}', '{\"composer0\":{\"access_point\":\"phpspreadsheet\\/vendor\\/autoload.php\",\"namespace\":{\"namespace0\":{\"use\":\"PhpOffice\\\\PhpSpreadsheet\\\\Worksheet\\\\Row\"}}}}', '', 1, '2020-02-17 12:25:47', 7, '', 1),
(886, 'b5184f80-613e-46c8-b40a-b60de779bb78', 'JCB.Service.Item.Import', 'Import', 'class', 'Item Service Provider\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8=', '1.0.0', '', '', '', '', '{\"0\":\"-1\"}', 'ServiceProviderInterface', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Service.Item.Import', 1, '{}', '{}', 'dXNlIEpvb21sYVxESVxDb250YWluZXI7DQp1c2UgSm9vbWxhXERJXFNlcnZpY2VQcm92aWRlckludGVyZmFjZTs=', '{\"use_selection0\":{\"use\":\"2f14ec19-1b67-44be-8306-2a9e74588464\",\"as\":\"ItemImport\"},\"use_selection1\":{\"use\":\"cc923dc9-8f5c-46ea-810c-d93df2e5752b\",\"as\":\"default\"},\"use_selection2\":{\"use\":\"db00768d-c7a6-421d-8f39-577550ddf792\",\"as\":\"default\"},\"use_selection3\":{\"use\":\"36063502-2115-4c8d-b16a-0c76cc8c1ada\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFJlZ2lzdGVycyB0aGUgc2VydmljZSBwcm92aWRlciB3aXRoIGEgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcihDb250YWluZXIgJGNvbnRhaW5lcikNCgl7DQoJCSRjb250YWluZXItPmFsaWFzKEl0ZW1JbXBvcnQ6OmNsYXNzLCAnSXRlbS5JbXBvcnQnKQ0KCQkJLT5zaGFyZSgnSXRlbS5JbXBvcnQnLCBbJHRoaXMsICdnZXRJdGVtSW1wb3J0J10sIHRydWUpOw0KDQoJCSRjb250YWluZXItPmFsaWFzKFBhcmVudFRhYmxlOjpjbGFzcywgJ0ltcG9ydC5QYXJlbnRUYWJsZScpDQoJCQktPnNoYXJlKCdJbXBvcnQuUGFyZW50VGFibGUnLCBbJHRoaXMsICdnZXRQYXJlbnRUYWJsZSddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhKb2luVGFibGVzOjpjbGFzcywgJ0ltcG9ydC5Kb2luVGFibGVzJykNCgkJCS0+c2hhcmUoJ0ltcG9ydC5Kb2luVGFibGVzJywgWyR0aGlzLCAnZ2V0Sm9pblRhYmxlcyddLCB0cnVlKTsNCg0KCQkkY29udGFpbmVyLT5hbGlhcyhSb3dEYXRhQXJyYXk6OmNsYXNzLCAnSXRlbS5Sb3dEYXRhQXJyYXknKQ0KCQkJLT5zaGFyZSgnSXRlbS5Sb3dEYXRhQXJyYXknLCBbJHRoaXMsICdnZXRSb3dEYXRhQXJyYXknXSwgdHJ1ZSk7DQoJfQ0KDQoJLyoqDQoJICogR2V0IFRoZSBJbXBvcnQgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBJdGVtSW1wb3J0DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEl0ZW1JbXBvcnQoQ29udGFpbmVyICRjb250YWluZXIpOiBJdGVtSW1wb3J0DQoJew0KCQlyZXR1cm4gbmV3IEl0ZW1JbXBvcnQoDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5TdGF0dXMnKSwNCgkJCSRjb250YWluZXItPmdldCgnSW1wb3J0Lk1lc3NhZ2UnKSwNCgkJCSRjb250YWluZXItPmdldCgnSW1wb3J0Lk1hcHBlcicpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuRGF0YScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdTcHJlYWRzaGVldC5JbXBvcnRlcicpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJdGVtLlJvd0RhdGFBcnJheScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuUm93JyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5QYXJlbnRUYWJsZScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuSm9pblRhYmxlcycpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuQXNzZXNzb3InKSwNCgkJCSRjb250YWluZXItPmdldCgnRGF0YS5JdGVtJykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIFBhcmVudFRhYmxlIENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgUGFyZW50VGFibGUNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFyZW50VGFibGUoQ29udGFpbmVyICRjb250YWluZXIpOiBQYXJlbnRUYWJsZQ0KCXsNCgkJcmV0dXJuIG5ldyBQYXJlbnRUYWJsZSgNCgkJCSRjb250YWluZXItPmdldCgnSW1wb3J0LlJvdycpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuSXRlbScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdJbXBvcnQuTWFwcGVyJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5NZXNzYWdlJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5EYXRhJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0RhdGEuSXRlbScpLA0KCQkJJGNvbnRhaW5lci0+Z2V0KCdMb2FkJykNCgkJKTsNCgl9DQoNCgkvKioNCgkgKiBHZXQgVGhlIEpvaW5UYWJsZXMgQ2xhc3MuDQoJICoNCgkgKiBAcGFyYW0gICBDb250YWluZXIgICRjb250YWluZXIgIFRoZSBESSBjb250YWluZXIuDQoJICoNCgkgKiBAcmV0dXJuICBKb2luVGFibGVzDQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldEpvaW5UYWJsZXMoQ29udGFpbmVyICRjb250YWluZXIpOiBKb2luVGFibGVzDQoJew0KCQlyZXR1cm4gbmV3IEpvaW5UYWJsZXMoDQoJCQkkY29udGFpbmVyLT5nZXQoJ0ltcG9ydC5NYXBwZXInKSwNCgkJCSRjb250YWluZXItPmdldCgnSW1wb3J0Lkl0ZW0nKSwNCgkJCSRjb250YWluZXItPmdldCgnSW1wb3J0LkRhdGEnKSwNCgkJCSRjb250YWluZXItPmdldCgnRGF0YS5JdGVtJyksDQoJCQkkY29udGFpbmVyLT5nZXQoJ0xvYWQnKQ0KCQkpOw0KCX0NCg0KCS8qKg0KCSAqIEdldCBUaGUgUm93RGF0YUFycmF5IENsYXNzLg0KCSAqDQoJICogQHBhcmFtICAgQ29udGFpbmVyICAkY29udGFpbmVyICBUaGUgREkgY29udGFpbmVyLg0KCSAqDQoJICogQHJldHVybiAgUm93RGF0YUFycmF5DQoJICogQHNpbmNlIDUuMC4yDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIGdldFJvd0RhdGFBcnJheShDb250YWluZXIgJGNvbnRhaW5lcik6IFJvd0RhdGFBcnJheQ0KCXsNCgkJcmV0dXJuIG5ldyBSb3dEYXRhQXJyYXkoKTsNCgl9', '{\"load_selection0\":{\"load\":\"647316a5-eb42-4bec-82dd-ca0dc2861ad3\"}}', '{}', '', 1, '2020-01-28 22:18:52', 9, '', 1),
-(887, '647316a5-eb42-4bec-82dd-ca0dc2861ad3', 'JCB.Console.ItemImport', 'ItemImport', 'class', '[[[ComponentNamespace]]] Item Import\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '85321deb-5c3a-401b-9ce1-039a746add51', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Console.ItemImport', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFRoZSBxdWV1ZSBzdGF0dXMgZmllbGQNCgkgKg0KCSAqIEB2YXIgc3RyaW5nDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJHF1ZXVlU3RhdHVzRmllbGQgPSAnaW1wb3J0X3N0YXR1cyc7DQoNCgkvKioNCgkgKiBUaGUgcXVldWUgYXdhaXRpbmcgc3RhdHVzDQoJICoNCgkgKiBAdmFyIGludA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgaW50ICRxdWV1ZVdhaXRTdGF0ZSA9IDE7DQoNCgkvKioNCgkgKiBUaGUgcXVldWUgcHJvY2Vzc2luZyBzdGF0dXMNCgkgKg0KCSAqIEB2YXIgaW50DQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBpbnQgJHF1ZXVlUHJvY2Vzc2luZ1N0YXRlID0gMjsNCg0KCS8qKg0KCSAqIFRoZSBxdWV1ZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkcXVldWVUYWJsZSA9ICdpdGVtX2ltcG9ydCc7DQoNCgkvKioNCgkgKiBUaGUgbWFpbiBpbXBvcnQgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAdmFyIHN0cmluZw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YXJnZXROYW1lID0gJ2l0ZW0nOw0KDQoJLyoqDQoJICogVGhlIHRhcmdldCBpbXBvcnQgY2xhc3MgdG8gYmUgcHVsbGVkIGZyb20gdGhlIEltcG9ydCBGYWN0b3J5IGNsYXNzLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFyZ2V0SW1wb3J0Q2xhc3MgPSAnSXRlbS5JbXBvcnQnOw0KDQoJLyoqDQoJICogVGhlIGRlZmF1bHQgY29tbWFuZCBuYW1lLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyAkZGVmYXVsdE5hbWUgPSAnW1tbY29tcG9uZW50XV1dOkl0ZW06aW1wb3J0Jzs=', '{}', '{}', '', 1, '2021-02-11 15:14:37', 6, '', 1);
+(887, '647316a5-eb42-4bec-82dd-ca0dc2861ad3', 'JCB.Console.ItemImport', 'ItemImport', 'class', '[[[ComponentNamespace]]] Item Import\r\n\r\n@since 5.0.2', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '85321deb-5c3a-401b-9ce1-039a746add51', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].Console.ItemImport', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFRoZSBxdWV1ZSBzdGF0dXMgZmllbGQNCgkgKg0KCSAqIEB2YXIgc3RyaW5nDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdHJpbmcgJHF1ZXVlU3RhdHVzRmllbGQgPSAnaW1wb3J0X3N0YXR1cyc7DQoNCgkvKioNCgkgKiBUaGUgcXVldWUgYXdhaXRpbmcgc3RhdHVzDQoJICoNCgkgKiBAdmFyIGludA0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgaW50ICRxdWV1ZVdhaXRTdGF0ZSA9IDE7DQoNCgkvKioNCgkgKiBUaGUgcXVldWUgcHJvY2Vzc2luZyBzdGF0dXMNCgkgKg0KCSAqIEB2YXIgaW50DQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBpbnQgJHF1ZXVlUHJvY2Vzc2luZ1N0YXRlID0gMjsNCg0KCS8qKg0KCSAqIFRoZSBxdWV1ZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkcXVldWVUYWJsZSA9ICdpdGVtX2ltcG9ydCc7DQoNCgkvKioNCgkgKiBUaGUgbWFpbiBpbXBvcnQgdGFyZ2V0IG5hbWUuDQoJICoNCgkgKiBAdmFyIHN0cmluZw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICR0YXJnZXROYW1lID0gJ2l0ZW0nOw0KDQoJLyoqDQoJICogVGhlIHRhcmdldCBpbXBvcnQgY2xhc3MgdG8gYmUgcHVsbGVkIGZyb20gdGhlIEltcG9ydCBGYWN0b3J5IGNsYXNzLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0cmluZyAkdGFyZ2V0SW1wb3J0Q2xhc3MgPSAnSXRlbS5JbXBvcnQnOw0KDQoJLyoqDQoJICogVGhlIGRlZmF1bHQgY29tbWFuZCBuYW1lLg0KCSAqDQoJICogQHZhciBzdHJpbmcNCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyAkZGVmYXVsdE5hbWUgPSAnW1tbY29tcG9uZW50XV1dOkl0ZW06aW1wb3J0Jzs=', '{}', '{}', '', 1, '2021-02-11 15:14:37', 6, '', 1),
+(980, 'fbc235cd-e4cb-45e6-824e-51b3911243cc', 'Joomla.File.Image', 'Image', 'final class', 'Image Class\r\n\r\n@since 5.1.1', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIwDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\[[[ComponentNamespace]]].File.Image', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcSW1hZ2VcSW1hZ2UgYXMgSm9vbWxhSW1hZ2U7DQp1c2UgSm9vbWxhXENNU1xMb2dcTG9nOw0KdXNlIEpvb21sYVxGaWxlc3lzdGVtXEZpbGU7DQp1c2UgSm9vbWxhXEZpbGVzeXN0ZW1cRm9sZGVyOw==', '{\"use_selection0\":{\"use\":\"f11dc790-713e-4706-9a85-a318ed3ad56e\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIFByb2Nlc3Mgb25lIGltYWdlIGludG8gbXVsdGlwbGUgZGltZW5zaW9uZWQgdmVyc2lvbnMuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRzb3VyY2UgICAgICAgICBGdWxsIHBhdGggdG8gc291cmNlIGltYWdlLg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGRlc3RpbmF0aW9uRGlyIERlc3RpbmF0aW9uIGZvbGRlciAod2lsbCBiZSBjcmVhdGVkIGlmIG1pc3NpbmcpLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGRpbWVuc2lvbnMgICAgIEZvcm1hdDogW1snbmFtZScgPT4gJ3RodW1iLmpwZycsICd3aWR0aCcgPT4gMTAwLCAnaGVpZ2h0JyA9PiAxMDBdLCAuLi5dDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheSAgUmVzdWx0IGFycmF5OiBbJ3RodW1iLmpwZycgPT4gWy4uLm1ldGFkYXRhLi4uXSwgJ2ludmFsaWQuanBnJyA9PiBudWxsLCAuLi5dDQoJICogQHNpbmNlICAgNS4xLjENCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gcHJvY2VzcyhzdHJpbmcgJHNvdXJjZSwgc3RyaW5nICRkZXN0aW5hdGlvbkRpciwgYXJyYXkgJGRpbWVuc2lvbnMpOiBhcnJheQ0KCXsNCgkJJHJlc3VsdHMgPSBbXTsNCg0KCQlmb3JlYWNoICgkZGltZW5zaW9ucyBhcyAkc2V0KQ0KCQl7DQoJCQlpZiAoDQoJCQkJIWlzc2V0KCRzZXRbJ25hbWUnXSwgJHNldFsnd2lkdGgnXSwgJHNldFsnaGVpZ2h0J10pIHx8DQoJCQkJIWlzX251bWVyaWMoJHNldFsnd2lkdGgnXSkgfHwNCgkJCQkhaXNfbnVtZXJpYygkc2V0WydoZWlnaHQnXSkNCgkJCSkNCgkJCXsNCgkJCQkkcmVzdWx0c1skc2V0WyduYW1lJ10gPz8gJ3Vua25vd24nXSA9IG51bGw7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCSRvdXRwdXRQYXRoID0gcnRyaW0oJGRlc3RpbmF0aW9uRGlyLCBESVJFQ1RPUllfU0VQQVJBVE9SKSAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkc2V0WyduYW1lJ107DQoJCQkkcmVzdWx0c1skc2V0WyduYW1lJ11dID0gJHRoaXMtPmNyb3BSZXNpemUoJHNvdXJjZSwgJG91dHB1dFBhdGgsIChpbnQpICRzZXRbJ3dpZHRoJ10sIChpbnQpICRzZXRbJ2hlaWdodCddKTsNCgkJfQ0KDQoJCXJldHVybiAkcmVzdWx0czsNCgl9DQoNCgkvKioNCgkgKiBDcm9wIG9yIHNjYWxlIGFuIGltYWdlIHRvIHRhcmdldCBzaXplIHVzaW5nIGNlbnRlciBjcm9wIG9yIGp1c3QgcmVzaXplIGlmIGFzcGVjdCByYXRpbyBtYXRjaGVzLg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkc291cmNlICAgICAgRnVsbCBhYnNvbHV0ZSBwYXRoIHRvIHNvdXJjZSBpbWFnZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICRkZXN0aW5hdGlvbiBGdWxsIGFic29sdXRlIHBhdGggdG8gZGVzdGluYXRpb24gaW1hZ2UuDQoJICogQHBhcmFtICAgaW50ICAgICAkdGFyZ2V0VyAgICAgVGFyZ2V0IHdpZHRoDQoJICogQHBhcmFtICAgaW50ICAgICAkdGFyZ2V0SCAgICAgVGFyZ2V0IGhlaWdodA0KCSAqDQoJICogQHJldHVybiAgYXJyYXl8bnVsbCAgSW1hZ2UgbWV0YWRhdGEgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFpbHVyZS4NCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBjcm9wUmVzaXplKHN0cmluZyAkc291cmNlLCBzdHJpbmcgJGRlc3RpbmF0aW9uLCBpbnQgJHRhcmdldFcsIGludCAkdGFyZ2V0SCk6ID9hcnJheQ0KCXsNCgkJdHJ5DQoJCXsNCgkJCWlmICghaXNfZmlsZSgkc291cmNlKSkNCgkJCXsNCgkJCQl0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oIlNvdXJjZSBpbWFnZSBub3QgZm91bmQ6ICRzb3VyY2UiKTsNCgkJCX0NCg0KCQkJJGRlc3RGb2xkZXIgPSBkaXJuYW1lKCRkZXN0aW5hdGlvbik7DQoJCQlpZiAoIWlzX2RpcigkZGVzdEZvbGRlcikpDQoJCQl7DQoJCQkJRm9sZGVyOjpjcmVhdGUoJGRlc3RGb2xkZXIpOw0KCQkJfQ0KDQoJCQkkaW1hZ2UgPSBuZXcgSm9vbWxhSW1hZ2UoJHNvdXJjZSk7DQoNCgkJCWlmICghJGltYWdlLT5pc0xvYWRlZCgpKQ0KCQkJew0KCQkJCXRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiRmFpbGVkIHRvIGxvYWQgaW1hZ2U6ICRzb3VyY2UiKTsNCgkJCX0NCg0KCQkJJG9yaWdpbmFsVyA9ICRpbWFnZS0+Z2V0V2lkdGgoKTsNCgkJCSRvcmlnaW5hbEggPSAkaW1hZ2UtPmdldEhlaWdodCgpOw0KDQoJCQkvLyBJZiBhbHJlYWR5IGNvcnJlY3Qgc2l6ZSwgY29weSBkaXJlY3RseQ0KCQkJaWYgKCRvcmlnaW5hbFcgPT09ICR0YXJnZXRXICYmICRvcmlnaW5hbEggPT09ICR0YXJnZXRIKQ0KCQkJew0KCQkJCUZpbGU6OmNvcHkoJHNvdXJjZSwgJGRlc3RpbmF0aW9uKTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQkvLyBQZXJmb3JtIGNyb3AtcmVzaXplIGRpcmVjdGx5DQoJCQkJJGltYWdlID0gJGltYWdlLT5jcm9wUmVzaXplKCR0YXJnZXRXLCAkdGFyZ2V0SCwgdHJ1ZSk7DQoJCQkJJHR5cGUgPSAkdGhpcy0+Z2V0SW1hZ2VUeXBlKCRzb3VyY2UpOw0KDQoJCQkJaWYgKCR0eXBlID09PSBudWxsIHx8ICEkaW1hZ2UtPnRvRmlsZSgkZGVzdGluYXRpb24sICR0eXBlKSkNCgkJCQl7DQoJCQkJCXRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigiRmFpbGVkIHRvIHNhdmUgaW1hZ2UgdG8gJGRlc3RpbmF0aW9uIik7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBSZXR1cm4gbWV0YWRhdGENCgkJCXJldHVybiBbDQoJCQkJJ25hbWUnICAgICAgPT4gYmFzZW5hbWUoJGRlc3RpbmF0aW9uKSwNCgkJCQknZXh0ZW5zaW9uJyA9PiBNaW1lSGVscGVyOjpFeHRlbnNpb24oJGRlc3RpbmF0aW9uKSwNCgkJCQknc2l6ZScgICAgICA9PiBpc19maWxlKCRkZXN0aW5hdGlvbikgPyBmaWxlc2l6ZSgkZGVzdGluYXRpb24pIDogMCwNCgkJCQknbWltZScgICAgICA9PiBNaW1lSGVscGVyOjpNaW1lVHlwZSgkZGVzdGluYXRpb24pLA0KCQkJCSdwYXRoJyAgICAgID0+ICRkZXN0aW5hdGlvbiwNCgkJCV07DQoJCX0NCgkJY2F0Y2ggKFxUaHJvd2FibGUgJGUpDQoJCXsNCgkJCUxvZzo6YWRkKCRlLT5nZXRNZXNzYWdlKCksIExvZzo6RVJST1IsICdpbWFnZS1jcm9wcGVyJyk7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgaW1hZ2UgdHlwZSBjb25zdGFudCBmcm9tIHRoZSBmaWxlIHBhdGgNCgkgKg0KCSAqIEBwYXJhbSAgc3RyaW5nICAkcGF0aCAgQWJzb2x1dGUgcGF0aCB0byB0aGUgaW1hZ2UgZmlsZQ0KCSAqDQoJICogQHJldHVybiBpbnR8bnVsbCAgUmV0dXJucyB0aGUgSU1BR0VUWVBFXyogY29uc3RhbnQgb3IgbnVsbCBpZiB1bmRldGVjdGFibGUNCgkgKiBAc2luY2UgIDUuMS4xDQoJICovDQoJcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gZ2V0SW1hZ2VUeXBlKHN0cmluZyAkcGF0aCk6ID9pbnQNCgl7DQoJCS8vIFVzZSBleGlmX2ltYWdldHlwZSB0byBnZXQgdGhlIGNvbnN0YW50DQoJCSR0eXBlID0gQGV4aWZfaW1hZ2V0eXBlKCRwYXRoKTsNCg0KCQkvLyBWYWxpZGF0ZSBpdCdzIGEga25vd24gSU1BR0VUWVBFDQoJCXJldHVybiBpc19pbnQoJHR5cGUpID8gJHR5cGUgOiBudWxsOw0KCX0=', '{}', '{}', '', 1, '2022-05-11 13:15:13', 24, '', 1),
+(1035, 'ac77cee7-7018-4496-a453-9757623e3849', 'VDM.Interfaces.Database.VersioningInterface', 'VersioningInterface', 'interface', 'Database Versioning Interface\r\n\r\n@since 5.1.1', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.VersioningInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFN3aXRjaCB0byBwcmV2ZW50L2FsbG93IGhpc3RvcnkgZnJvbSBiZWluZyBzZXQuDQoJICoNCgkgKiBAcGFyYW0gICBpbnR8bnVsbCAgICAkdHJpZ2dlciAgIHRvZ2dsZSB0aGUgaGlzdG9yeSAoMCA9IG5vLCAxID0geWVzLCBudWxsID0gZGVmYXVsdCkNCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYNCgkgKiBAc2luY2UgICA1LjEuMQ0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gaGlzdG9yeSg/aW50ICR0cmlnZ2VyID0gbnVsbCk6IHNlbGY7', '{}', '{}', '', 1, '2025-06-08 19:50:22', 6, '', 1),
+(1036, 'd9839333-a8f1-4a36-9256-5df4d349b3f6', 'VDM.Abstraction.Database.Versioning', 'Versioning', 'abstract class', 'Versioning\r\n\r\n@since 5.1.1', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '6cbef8f8-4813-48e3-b05a-65e1aea95171', '', '', '', '{\"0\":\"ac77cee7-7018-4496-a453-9757623e3849\"}', '', '[[[NamespacePrefix]]]\\Joomla\\Abstraction.Versioning', 1, '{}', '{}', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb25JbnRlcmZhY2UgYXMgQ01TQXBwbGljYXRpb247DQp1c2UgSm9vbWxhXENNU1xDb21wb25lbnRcQ29tcG9uZW50SGVscGVyOw0KdXNlIEpvb21sYVxDTVNcRGF0ZVxEYXRlOw0KdXNlIEpvb21sYVxDTVNcRmFjdG9yeTsNCnVzZSBKb29tbGFcQ01TXFRhYmxlXENvbnRlbnRIaXN0b3J5Ow0KdXNlIEpvb21sYVxDTVNcVGFibGVcQ29udGVudFR5cGU7DQp1c2UgSm9vbWxhXENNU1xUYWJsZVxUYWJsZUludGVyZmFjZTsNCnVzZSBKb29tbGFcQ01TXFVzZXJcVXNlcjsNCnVzZSBKb29tbGFcRGF0YWJhc2VcRGF0YWJhc2VJbnRlcmZhY2UgYXMgSm9vbWxhRGF0YWJhc2U7DQp1c2UgSm9vbWxhXFJlZ2lzdHJ5XFJlZ2lzdHJ5Ow==', '{\"use_selection0\":{\"use\":\"640b5352-fb09-425f-a26e-cd44eda03f15\",\"as\":\"default\"}}', 'CS8qKg0KCSAqIENNUyBBcHBsaWNhdGlvbg0KCSAqDQoJICogQHZhciAgIENNU0FwcGxpY2F0aW9uDQoJICogQHNpbmNlIDUuMS4xDQoJICoqLw0KCXByb3RlY3RlZCBDTVNBcHBsaWNhdGlvbiAkYXBwOw0KDQoJLyoqDQoJICogSm9vbWxhIEhpc3RvcnkgQ2xhc3MNCgkgKg0KCSAqIEB2YXIgICBDb250ZW50SGlzdG9yeQ0KCSAqIEBzaW5jZSA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBDb250ZW50SGlzdG9yeSAkY29udGVudEhpc3Rvcnk7DQoNCgkvKioNCgkgKiBKb29tbGEgQ29udGVudCBUeXBlIENsYXNzDQoJICoNCgkgKiBAdmFyICAgQ29udGVudFR5cGUNCgkgKiBAc2luY2UgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgQ29udGVudFR5cGUgJHR5cGVUYWJsZTsNCg0KCS8qKg0KCSAqIEN1cnJlbnQgY29tcG9uZW50IHBhcmFtcw0KCSAqDQoJICogQHZhciAgIFJlZ2lzdHJ5DQoJICogQHNpbmNlIDUuMS4xDQoJICovDQoJcHJvdGVjdGVkIFJlZ2lzdHJ5ICRwYXJhbXM7DQoNCgkvKioNCgkgKiBDdXJyZW50IHVzZXIgSUQNCgkgKg0KCSAqIEB2YXIgICBpbnQNCgkgKiBAc2luY2UgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgaW50ICR1c2VySWQ7DQoNCgkvKioNCgkgKiBDdXJyZW50IGNvbXBvbmVudCBjb2RlIG5hbWUNCgkgKg0KCSAqIEB2YXIgICBzdHJpbmcNCgkgKiBAc2luY2UgNS4xLjENCgkgKi8NCglwcm90ZWN0ZWQgc3RyaW5nICRjb21wb25lbnROYW1lc3BhY2U7DQoNCgkvKioNCgkgKiBUaGUgY3VycmVudCBlbnRpdHkNCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nfG51bGwNCgkgKiBAc2luY2UgIDUuMS4xDQoJICovDQoJcHJvdGVjdGVkID9zdHJpbmcgJGVudGl0eTsNCg0KCS8qKg0KCSAqIFN3aXRjaCB0byBzZXQgdGhlIGhpc3RvcnkNCgkgKg0KCSAqIEB2YXIgICAgaW50DQoJICogQHNpbmNlICA1LjEuMQ0KCSAqKi8NCglwcm90ZWN0ZWQgaW50ICRoaXN0b3J5Ow0KDQoJLyoqDQoJICogTnVtYmVyIG9mIG1heCBpdGVtIHZlcnNpb25zIHRvIHN0b3JlIGluIGhpc3RvcnkNCgkgKg0KCSAqIEB2YXIgICAgaW50DQoJICogQHNpbmNlICA1LjEuMQ0KCSAqKi8NCglwcm90ZWN0ZWQgaW50ICRtYXhWZXJzaW9uczsNCg0KCS8qKg0KCSAqIENsYXNzIGNvbnN0cnVjdG9yLg0KCSAqDQoJICogSW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCBjb250ZXh0IGJ5IHNldHRpbmcgdGhlIGFwcGxpY2F0aW9uLCBkYXRhYmFzZSwNCgkgKiBjb250ZW50IGhpc3RvcnkgdHJhY2tpbmcsIGFuZCBjb250ZW50IHR5cGUgdGFibGUgaW5zdGFuY2VzLiBBbHNvIGxvYWRzDQoJICogY29tcG9uZW50LXNwZWNpZmljIHBhcmFtZXRlcnMgbGlrZSBoaXN0b3J5IHRyYWNraW5nIGFuZCB2ZXJzaW9uIGxpbWl0cy4NCgkgKg0KCSAqIEBwYXJhbSAgSm9vbWxhRGF0YWJhc2V8bnVsbCAgJGRiICAgICAgICAgT3B0aW9uYWwgZGF0YWJhc2Ugb2JqZWN0LiBEZWZhdWx0cyB0byBKb29tbGEncyBmYWN0b3J5IERCLg0KCSAqIEBwYXJhbSAgQ01TQXBwbGljYXRpb258bnVsbCAgJGFwcCAgICAgICAgT3B0aW9uYWwgYXBwbGljYXRpb24gb2JqZWN0LiBEZWZhdWx0cyB0byBGYWN0b3J5OjpnZXRBcHBsaWNhdGlvbigpLg0KCSAqIEBwYXJhbSAgQ29udGVudEhpc3Rvcnl8bnVsbCAgJGhpc3RvcnkgICAgT3B0aW9uYWwgY29udGVudCBoaXN0b3J5IHRhYmxlIGluc3RhbmNlLiBEZWZhdWx0cyB0byBuZXcgQ29udGVudEhpc3RvcnkuDQoJICogQHBhcmFtICBDb250ZW50VHlwZXxudWxsICAgICAkdHlwZVRhYmxlICBPcHRpb25hbCBjb250ZW50IHR5cGUgdGFibGUgaW5zdGFuY2UuIERlZmF1bHRzIHRvIG5ldyBDb250ZW50VHlwZS4NCgkgKg0KCSAqIEB0aHJvd3MgXEV4Y2VwdGlvbiAgSWYgdGhlIHBhcmVudCBjb25zdHJ1Y3RvciBvciBhbnkgZGVwZW5kZW5jeSB0aHJvd3MuDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCg/Sm9vbWxhRGF0YWJhc2UgJGRiID0gbnVsbCwgP0NNU0FwcGxpY2F0aW9uICRhcHAgPSBudWxsLA0KCQk/Q29udGVudEhpc3RvcnkgJGhpc3RvcnkgPSBudWxsLCA/Q29udGVudFR5cGUgJHR5cGVUYWJsZSA9IG51bGwpDQoJew0KCQlwYXJlbnQ6Ol9fY29uc3RydWN0KCRkYik7DQoNCgkJJHRoaXMtPmFwcCA9ICRhcHAgPzogRmFjdG9yeTo6Z2V0QXBwbGljYXRpb24oKTsNCgkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5ID0gJGhpc3RvcnkgPzogbmV3IENvbnRlbnRIaXN0b3J5KCR0aGlzLT5kYik7DQoJCSR0aGlzLT50eXBlVGFibGUgPSAkdHlwZVRhYmxlID86IG5ldyBDb250ZW50VHlwZSgkdGhpcy0+ZGIpOw0KDQoJCSR1c2VyID0gJHRoaXMtPmFwcC0+Z2V0SWRlbnRpdHkoKTsNCgkJJHRoaXMtPnVzZXJJZCA9ICR1c2VyIGluc3RhbmNlb2YgVXNlciA/IChpbnQpICR1c2VyLT5pZCA6IDA7DQoNCgkJLy8gc2V0IHRoZSBjb21wb25lbnQgZGV0YWlscw0KCQkkdGhpcy0+Y29tcG9uZW50TmFtZXNwYWNlID0gSGVscGVyOjpnZXROYW1lc3BhY2UoKTsNCgkJJHRoaXMtPnBhcmFtcyA9IEhlbHBlcjo6Z2V0UGFyYW1zKCk7DQoJCSR0aGlzLT5oaXN0b3J5ID0gJHRoaXMtPnBhcmFtcy0+Z2V0KCdzYXZlX2hpc3RvcnknLCAwKTsNCgkJJHRoaXMtPm1heFZlcnNpb25zID0gJHRoaXMtPnBhcmFtcy0+Z2V0KCdoaXN0b3J5X2xpbWl0JywgMCk7DQoJfQ0KDQoJLyoqDQoJICogU3dpdGNoIHRvIHByZXZlbnQvYWxsb3cgaGlzdG9yeSBmcm9tIGJlaW5nIHNldC4NCgkgKg0KCSAqIEBwYXJhbSAgIGludHxudWxsICAgICR0cmlnZ2VyICAgdG9nZ2xlIHRoZSBoaXN0b3J5ICgwID0gbm8sIDEgPSB5ZXMsIG51bGwgPSBkZWZhdWx0KQ0KCSAqDQoJICogQHJldHVybiAgc2VsZg0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBoaXN0b3J5KD9pbnQgJHRyaWdnZXIgPSBudWxsKTogc2VsZg0KCXsNCgkJJHRoaXMtPmhpc3RvcnkgPSAkdHJpZ2dlciAhPT0gbnVsbCA/ICR0cmlnZ2VyIDogJHRoaXMtPnBhcmFtcy0+Z2V0KCdzYXZlX2hpc3RvcnknLCAwKTsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ0KDQoJLyoqDQoJICogU2F2ZSBhIGhpc3RvcnkgcmVjb3JkIGZvciBhIHN0b3JlZCBpdGVtLg0KCSAqDQoJICogQHBhcmFtIGludCAgICAkaWQgICAgICBUaGUgSUQgb2YgdGhlIHJlY29yZA0KCSAqDQoJICogQHJldHVybiBib29sIFRydWUgaWYgc2F2ZWQsIGZhbHNlIGlmIHNraXBwZWQgb3IgZmFpbGVkDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRIaXN0b3J5KGludCAkaWQpOiBib29sDQoJew0KCQkkdGFibGVDbGFzcyA9ICR0aGlzLT5nZXRUYWJsZUNsYXNzKCk7DQoNCgkJaWYgKCR0YWJsZUNsYXNzID09PSBudWxsKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvKiogQHZhciBUYWJsZUludGVyZmFjZSAkdGFibGUgKi8NCgkJJHRhYmxlID0gbmV3ICR0YWJsZUNsYXNzKCR0aGlzLT5kYik7DQoNCgkJaWYgKCEkdGFibGUtPmxvYWQoJGlkKSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy8gc2V0IHRoZSB0eXBlIGFsaWFzDQoJCSR0eXBlX2FsaWFzID0gJ2NvbV8nIC4gJHRoaXMtPmNvbXBvbmVudENvZGUgLiAnLicgLiAkdGhpcy0+ZW50aXR5Ow0KDQoJCSRpdGVtID0gKG9iamVjdCkgJHRhYmxlLT5nZXRQcm9wZXJ0aWVzKCk7DQoJCXVuc2V0KCRpdGVtLT50eXBlQWxpYXMsICRpdGVtLT50YWdzSGVscGVyKTsNCg0KCQkvLyBSZXF1aXJlZDogaXRlbV9pZCwgdmVyc2lvbl9kYXRhLCBlZGl0b3JfdXNlcl9pZA0KCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPnJlc2V0KCk7DQoJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+dmVyc2lvbl9pZCA9IG51bGw7DQoJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+aXRlbV9pZCA9ICR0eXBlX2FsaWFzIC4gJy4nIC4gJGlkOw0KCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPnZlcnNpb25fbm90ZSA9ICcnOw0KCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPnZlcnNpb25fZGF0YSA9IGpzb25fZW5jb2RlKCRpdGVtKTsNCgkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5lZGl0b3JfdXNlcl9pZCA9ICR0aGlzLT51c2VySWQ7DQoJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+c2F2ZV9kYXRlID0gKG5ldyBEYXRlKCkpLT50b1NxbCgpOw0KDQoJCS8vIERvbid0IHNhdmUgaWYgaGFzaCBhbHJlYWR5IGV4aXN0cyBhbmQgc2FtZSB2ZXJzaW9uIG5vdGUNCgkJJHRoaXMtPnR5cGVUYWJsZS0+bG9hZChbJ3R5cGVfYWxpYXMnID0+ICR0eXBlX2FsaWFzXSk7DQoJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+c2hhMV9oYXNoID0gJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5nZXRTaGExKCRpdGVtLCAkdGhpcy0+dHlwZVRhYmxlKTsNCg0KCQlpZiAoJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5nZXRIYXNoTWF0Y2goKSkNCgkJew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQkkcmVzdWx0ID0gJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5zdG9yZSgpOw0KDQoJCSRtYXhfdmVyc2lvbnNfY29udGV4dCA9ICR0aGlzLT5wYXJhbXMtPmdldCgnaGlzdG9yeV9saW1pdF8nIC4gJHRoaXMtPmVudGl0eSwgMCk7DQoNCgkJaWYgKCRtYXhfdmVyc2lvbnNfY29udGV4dCkNCgkJew0KCQkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5kZWxldGVPbGRWZXJzaW9ucygkbWF4X3ZlcnNpb25zX2NvbnRleHQpOw0KCQl9DQoJCWVsc2VpZiAoJHRoaXMtPm1heFZlcnNpb25zKQ0KCQl7DQoJCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPmRlbGV0ZU9sZFZlcnNpb25zKCR0aGlzLT5tYXhWZXJzaW9ucyk7DQoJCX0NCg0KCQlyZXR1cm4gJHJlc3VsdDsNCgl9DQoNCgkvKioNCgkgKiBTYXZlIG11bHRpcGxlIHZlcnNpb24gcmVjb3JkcyBmb3IgYWxyZWFkeSBzdG9yZWQgaXRlbXMuDQoJICoNCgkgKiBAcGFyYW0gaW50W10gICAgJGlkcyAgICAgQXJyYXkgb2YgSURzDQoJICogQHBhcmFtIHN0cmluZyAgICRlbnRpdHkgIFRhYmxlIGVudGl0eSBuYW1lDQoJICoNCgkgKiBAcmV0dXJuIGludCBOdW1iZXIgb2Ygc3VjY2Vzc2Z1bCB2ZXJzaW9uIHNhdmVzDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBzZXRNdWx0aXBsZUhpc3RvcnkoYXJyYXkgJGlkcyk6IGludA0KCXsNCgkJJHRhYmxlQ2xhc3MgPSAkdGhpcy0+Z2V0VGFibGVDbGFzcygpOw0KDQoJCWlmICgkdGFibGVDbGFzcyA9PT0gbnVsbCkNCgkJew0KCQkJcmV0dXJuIDA7DQoJCX0NCg0KCQkvKiogQHZhciBUYWJsZUludGVyZmFjZSAkdGFibGUgKi8NCgkJJHRhYmxlID0gbmV3ICR0YWJsZUNsYXNzKCR0aGlzLT5kYik7DQoNCgkJLy8gc2V0IHNvbWUgdmFyIG5lZWRlZCBpbiBsb29wDQoJCSRkYXRlID0gKG5ldyBEYXRlKCkpLT50b1NxbCgpOw0KCQkkbWF4X3ZlcnNpb25zX2NvbnRleHQgPSAkdGhpcy0+cGFyYW1zLT5nZXQoJ2hpc3RvcnlfbGltaXRfJyAuICR0aGlzLT5lbnRpdHksIDApOw0KCQkkdHlwZV9hbGlhcyA9ICdjb21fJyAuICR0aGlzLT5jb21wb25lbnRDb2RlIC4gJy4nIC4gJHRoaXMtPmVudGl0eTsNCgkJJHRoaXMtPnR5cGVUYWJsZS0+bG9hZChbJ3R5cGVfYWxpYXMnID0+ICR0eXBlX2FsaWFzXSk7DQoJCSRjb3VudCA9IDA7DQoNCgkJZm9yZWFjaCAoJGlkcyBhcyAkaWQpDQoJCXsNCgkJCSRpZCA9IChpbnQpICRpZDsNCgkJCWlmICgkaWQgPD0gMCkNCgkJCXsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJaWYgKCEkdGFibGUtPmxvYWQoJGlkKSkNCgkJCXsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJJGl0ZW0gPSAob2JqZWN0KSAkdGFibGUtPmdldFByb3BlcnRpZXMoKTsNCgkJCXVuc2V0KCRpdGVtLT50eXBlQWxpYXMsICRpdGVtLT50YWdzSGVscGVyKTsNCg0KCQkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5yZXNldCgpOw0KCQkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT52ZXJzaW9uX2lkID0gbnVsbDsNCgkJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+aXRlbV9pZCA9ICR0eXBlX2FsaWFzICAuICcuJyAuICRpZDsNCgkJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+dmVyc2lvbl9ub3RlID0gJyc7DQoJCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPnZlcnNpb25fZGF0YSA9IGpzb25fZW5jb2RlKCRpdGVtKTsNCgkJCSR0aGlzLT5jb250ZW50SGlzdG9yeS0+ZWRpdG9yX3VzZXJfaWQgPSAkdGhpcy0+dXNlcklkOw0KCQkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5zYXZlX2RhdGUgPSAkZGF0ZTsNCg0KCQkJLy8gRG9uJ3Qgc2F2ZSBpZiBoYXNoIGFscmVhZHkgZXhpc3RzIGFuZCBzYW1lIHZlcnNpb24gbm90ZQ0KCQkJJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5zaGExX2hhc2ggPSAkdGhpcy0+Y29udGVudEhpc3RvcnktPmdldFNoYTEoJGl0ZW0sICR0aGlzLT50eXBlVGFibGUpOw0KDQoJCQlpZiAoJHRoaXMtPmNvbnRlbnRIaXN0b3J5LT5nZXRIYXNoTWF0Y2goKSkNCgkJCXsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJJHJlc3VsdCA9ICR0aGlzLT5jb250ZW50SGlzdG9yeS0+c3RvcmUoKTsNCg0KCQkJaWYgKCRtYXhfdmVyc2lvbnNfY29udGV4dCkNCgkJCXsNCgkJCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPmRlbGV0ZU9sZFZlcnNpb25zKCRtYXhfdmVyc2lvbnNfY29udGV4dCk7DQoJCQl9DQoJCQllbHNlaWYgKCR0aGlzLT5tYXhWZXJzaW9ucykNCgkJCXsNCgkJCQkkdGhpcy0+Y29udGVudEhpc3RvcnktPmRlbGV0ZU9sZFZlcnNpb25zKCR0aGlzLT5tYXhWZXJzaW9ucyk7DQoJCQl9DQoNCgkJCWlmICgkcmVzdWx0KQ0KCQkJew0KCQkJCSsrJGNvdW50Ow0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICRjb3VudDsNCgl9DQoNCgkvKioNCgkgKiBHZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIGZvciBhIHRhYmxlIGlmIGl0IGV4aXN0cy4NCgkgKg0KCSAqIFRoaXMgbWV0aG9kIGZpcnN0IGV4dHJhY3RzIHRoZSBiYXNlIHRhYmxlIG5hbWUgdXNpbmcgYGdldFRhYmxlTmFtZWAuDQoJICogSWYgdGhlIGV4dHJhY3Rpb24gZmFpbHMgKGUuZy4sIHdyb25nIGNvbXBvbmVudCBwcmVmaXgpLCBpdCByZXR1cm5zIG51bGwuDQoJICogSWYgc3VjY2Vzc2Z1bCwgaXQgY29uc3RydWN0cyB0aGUgRlFDTiBpbiB0aGUgZm9ybWF0Og0KCSAqICAgXE5hbWVzcGFjZVxDb21wb25lbnRcQ29tcG9uZW50TmFtZVxBZG1pbmlzdHJhdG9yXFRhYmxlXFRhYmxlTmFtZVRhYmxlDQoJICoNCgkgKiBUaGUgdGFibGUgbmFtZSBpcyBjb252ZXJ0ZWQgdG8gUGFzY2FsQ2FzZSBhbmQgc3VmZml4ZWQgd2l0aCBgVGFibGVgLg0KCSAqIFRoZSBjb25zdHJ1Y3RlZCBjbGFzcyBuYW1lIGlzIHZlcmlmaWVkIHdpdGggYGNsYXNzX2V4aXN0c2AuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZ3xudWxsICBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUsIG9yIG51bGwgaWYgaXQgZG9lcyBub3QgZXhpc3QuDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRUYWJsZUNsYXNzKCk6ID9zdHJpbmcNCgl7DQoJCWlmIChlbXB0eSgkdGhpcy0+ZW50aXR5KSkNCgkJew0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQkkdGFibGVDbGFzcyA9IHVjZmlyc3QoJHRoaXMtPmVudGl0eSkgLiAnVGFibGUnOw0KDQoJCSRjbGFzcyA9ICR0aGlzLT5jb21wb25lbnROYW1lc3BhY2UgLiAnXFxBZG1pbmlzdHJhdG9yXFxUYWJsZVxcJyAuICR0YWJsZUNsYXNzOw0KCQlpZiAoIWNsYXNzX2V4aXN0cygkY2xhc3MpKQ0KCQl7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCXJldHVybiAkY2xhc3M7DQoJfQ0KDQoJLyoqDQoJICogRXh0cmFjdCB0aGUgYWN0dWFsIHRhYmxlIG5hbWUgYnkgcmVtb3ZpbmcgdGhlIGNvbXBvbmVudCBwcmVmaXguDQoJICoNCgkgKiBUaGlzIG1ldGhvZCBjaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdGFibGUgbmFtZSBpbmNsdWRlcyB0aGUgY29tcG9uZW50LXNwZWNpZmljIHByZWZpeCwNCgkgKiB3aGljaCB1c3VhbGx5IHN0YXJ0cyB3aXRoIGAjX19gIGZvbGxvd2VkIGJ5IHRoZSBjb21wb25lbnQgbmFtZSBhbmQgYW4gdW5kZXJzY29yZSAoZS5nLiwgYCNfX215Y29tcG9uZW50X2ApLg0KCSAqIElmIGl0IG1hdGNoZXMgdGhpcyBpbnN0YW5jZSdzIGNvbXBvbmVudCBwcmVmaXggc3RvcmVkIGluIGAkdGhpcy0+dGFibGVgLCB0aGUgcHJlZml4IGlzIHN0cmlwcGVkIGFuZCB0aGUgc2hvcnQgdGFibGUgbmFtZSBpcyByZXR1cm5lZC4NCgkgKiBJZiB0aGUgcHJlZml4IGlzIGRpZmZlcmVudCAoaW1wbHlpbmcgYSBmb3JlaWduIGNvbXBvbmVudCksIGBudWxsYCBpcyByZXR1cm5lZC4NCgkgKiBJZiBubyBwcmVmaXggaXMgcHJlc2VudCwgdGhlIG9yaWdpbmFsIHZhbHVlIGlzIHJldHVybmVkIHVuY2hhbmdlZC4NCgkgKg0KCSAqIEBwYXJhbSAgc3RyaW5nICAkdGFibGUgIFRoZSBmdWxsIG9yIHNob3J0IHRhYmxlIG5hbWUuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZ3xudWxsICBUaGUgc3RyaXBwZWQgdGFibGUgbmFtZSwgb3JpZ2luYWwgaWYgbm8gcHJlZml4IGlzIGZvdW5kLCBvciBudWxsIGlmIG5vdCByZW1vdmFibGUuDQoJICogQHNpbmNlICA1LjEuMQ0KCSAqLw0KCXByb3RlY3RlZCBmdW5jdGlvbiBnZXRUYWJsZUVudGl0eU5hbWUoc3RyaW5nICR0YWJsZSk6ID9zdHJpbmcNCgl7DQoJCWlmIChzdHJwb3MoJHRhYmxlLCAnI19fJykgPT09IGZhbHNlKQ0KCQl7DQoJCQlyZXR1cm4gJHRhYmxlOw0KCQl9DQoNCgkJaWYgKGVtcHR5KCR0aGlzLT50YWJsZSkpDQoJCXsNCgkJCXJldHVybiBudWxsOw0KCQl9DQoNCgkJJHByZWZpeCA9ICR0aGlzLT50YWJsZSAuICdfJzsNCgkJaWYgKHN0cl9zdGFydHNfd2l0aCgkdGFibGUsICRwcmVmaXgpKQ0KCQl7DQoJCQlyZXR1cm4gc3Vic3RyKCR0YWJsZSwgc3RybGVuKCRwcmVmaXgpKTsNCgkJfQ0KDQoJCXJldHVybiBudWxsOw0KCX0=', '{}', '{}', '', 1, '2025-06-08 20:05:15', 26, '', 1),
+(1037, '78931d43-9fb9-4cc1-a2ca-b3e189ef842e', 'VDM.Interfaces.Database.DefaultInterface', 'DefaultInterface', 'interface', 'Database Default Interface\r\n\r\n@since 5.1.1', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Interfaces.Database.DefaultInterface', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFN3aXRjaCB0byBwcmV2ZW50L2FsbG93IGRlZmF1bHRzIGZyb20gYmVpbmcgYWRkZWQuDQoJICoNCgkgKiBAcGFyYW0gICBib29sICAgICR0cmlnZ2VyICAgICAgdG9nZ2xlIHRoZSBkZWZhdWx0cw0KCSAqDQoJICogQHJldHVybiAgc2VsZg0KCSAqIEBzaW5jZSAgIDUuMS4xDQoJICoqLw0KCXB1YmxpYyBmdW5jdGlvbiBkZWZhdWx0cyhib29sICR0cmlnZ2VyID0gdHJ1ZSk6IHNlbGY7', '{}', '{}', '', 1, '2025-06-08 21:17:15', 3, '', 1),
+(1038, 'b8176bdf-5615-4d91-8dfa-990d42f44127', 'VDM.Database.DefaultTrait', 'DefaultTrait', 'trait', 'Database Default Trait\r\n\r\n@since 5.1.1', 2, 'LyoqDQogKiBAcGFja2FnZSAgICBKb29tbGEuQ29tcG9uZW50LkJ1aWxkZXINCiAqDQogKiBAY3JlYXRlZCAgICA0dGggU2VwdGVtYmVyLCAyMDIyDQogKiBAYXV0aG9yICAgICBMbGV3ZWxseW4gdmFuIGRlciBNZXJ3ZSA8aHR0cHM6Ly9kZXYudmRtLmlvPg0KICogQGdpdCAgICAgICAgSm9vbWxhIENvbXBvbmVudCBCdWlsZGVyIDxodHRwczovL2dpdC52ZG0uZGV2L2pvb21sYS9Db21wb25lbnQtQnVpbGRlcj4NCiAqIEBjb3B5cmlnaHQgIENvcHlyaWdodCAoQykgMjAxNSBWYXN0IERldmVsb3BtZW50IE1ldGhvZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqIEBsaWNlbnNlICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBvciBsYXRlcjsgc2VlIExJQ0VOU0UudHh0DQogKi8NCg==', '1.0.0', '', '', '', '', '', '', '[[[NamespacePrefix]]]\\Joomla\\Database.DefaultTrait', '', '{}', '{}', '', '{}', 'CS8qKg0KCSAqIFN3aXRjaCB0byBzZXQgdGhlIGRlZmF1bHRzDQoJICoNCgkgKiBAdmFyICAgIGJvb2wNCgkgKiBAc2luY2UgIDMuMi4wDQoJICoqLw0KCXByb3RlY3RlZCBib29sICRkZWZhdWx0cyA9IHRydWU7DQoNCgkvKioNCgkgKiBTd2l0Y2ggdG8gcHJldmVudC9hbGxvdyBkZWZhdWx0cyBmcm9tIGJlaW5nIGFkZGVkLg0KCSAqDQoJICogQHBhcmFtICAgYm9vbCAgICAkdHJpZ2dlciAgICAgIHRvZ2dsZSB0aGUgZGVmYXVsdHMNCgkgKg0KCSAqIEByZXR1cm4gIHNlbGYNCgkgKiBAc2luY2UgICAzLjIuMA0KCSAqKi8NCglwdWJsaWMgZnVuY3Rpb24gZGVmYXVsdHMoYm9vbCAkdHJpZ2dlciA9IHRydWUpOiBzZWxmDQoJew0KCQkkdGhpcy0+ZGVmYXVsdHMgPSAkdHJpZ2dlcjsNCg0KCQlyZXR1cm4gJHRoaXM7DQoJfQ==', '{}', '{}', '', 1, '2025-06-09 08:20:20', 2, '', 1);
--
-- Dumping data for table `#__componentbuilder_admin_view`
@@ -2328,7 +2335,7 @@ INSERT INTO `#__componentbuilder_layout` (`id`, `add_php_view`, `alias`, `descri
(135, 1, 'radio', 'Radio', '', 'PD9waHAgaWYgKCFlbXB0eSgkb3B0aW9ucykpOiA/Pg0KCTw/cGhwIGZvcmVhY2ggKCRvcHRpb25zIGFzICRrZXkgPT4gJHZhbHVlKTogPz4NCgkJPD9waHANCgkJCS8vIERldGVybWluZSB0aGUgb3B0aW9uIGtleSBhbmQgdmFsdWUuDQoJCQkkb3B0aW9uX2tleSA9ICRrZXk7DQoJCQkkb3B0aW9uX3ZhbHVlID0gJHZhbHVlOw0KDQoJCQlpZiAoaXNfb2JqZWN0KCR2YWx1ZSkgJiYgaXNzZXQoJHZhbHVlLT5rZXksICR2YWx1ZS0+dmFsdWUpKSB7DQoJCQkJJG9wdGlvbl9rZXkgPSAkdmFsdWUtPmtleTsNCgkJCQkkb3B0aW9uX3ZhbHVlID0gJHZhbHVlLT52YWx1ZTsNCgkJCX0gZWxzZWlmIChpc19hcnJheSgkdmFsdWUpICYmIGlzc2V0KCR2YWx1ZVsna2V5J10sICR2YWx1ZVsndmFsdWUnXSkpIHsNCgkJCQkkb3B0aW9uX2tleSA9ICR2YWx1ZVsna2V5J107DQoJCQkJJG9wdGlvbl92YWx1ZSA9ICR2YWx1ZVsndmFsdWUnXTsNCgkJCX0NCg0KCQkJLy8gQ2hlY2sgaWYgdGhpcyBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGVkLg0KCQkJJGlzQ2hlY2tlZCA9ICgkZGVmYXVsdCA9PT0gJG9wdGlvbl9rZXkpID8gJyBjaGVja2VkJyA6ICcnOw0KCQk/Pg0KCQk8IS0tIFJlbmRlciB0aGUgcmFkaW8gaW5wdXQgZmllbGQgb25seSAtLT4NCgkJPGxhYmVsPg0KCQkJPGlucHV0DQoJCQkJdHlwZT0icmFkaW8iDQoJCQkJY2xhc3M9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY2xhc3MgLiAkY2xhc3Nfb3RoZXIpOyA/PiINCgkJCQlpZD0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRpZCAuICdfJyAuICRvcHRpb25fa2V5KTsgPz4iDQoJCQkJbmFtZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRuYW1lKTsgPz4iDQoJCQkJdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkb3B0aW9uX2tleSk7ID8+Ig0KCQkJCTw/cGhwIGVjaG8gJGlzQ2hlY2tlZDsgPz4NCgkJCQk8P3BocCBlY2hvICRvbmtleWRvd247ID8+DQoJCQkJPD9waHAgZWNobyAkb25jaGFuZ2U7ID8+DQoJCQkJPD9waHAgZWNobyAkZGlzYWJsZWQ7ID8+DQoJCQk+DQoJCQk8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG9wdGlvbl92YWx1ZSk7ID8+PC9zcGFuPg0KCQk8L2xhYmVsPjxicj4NCgk8P3BocCBlbmRmb3JlYWNoOyA/Pg0KPD9waHAgZWxzZTogPz4NCgk8IS0tIFNob3cgYSBtZXNzYWdlIGlmIG5vIG9wdGlvbnMgYXJlIGF2YWlsYWJsZSAtLT4NCgk8cD48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoVGV4dDo6XygnRW1wdHknKSk7ID8+PC9wPg0KPD9waHAgZW5kaWY7ID8+', 'Radio', 'Ly8gRXh0cmFjdCBhbGwga2V5cyBmcm9tICRkaXNwbGF5RGF0YSBhcyBpbmRpdmlkdWFsIHZhcmlhYmxlcy4NCmV4dHJhY3QoJGRpc3BsYXlEYXRhKTsNCg0KLy8gQXNzaWduIGRlZmF1bHQgdmFsdWVzIGZvciB2YXJpYWJsZXMgdGhhdCBtaWdodCBub3QgYmUgcHJlc2VudCBpbiAkZGlzcGxheURhdGEuDQoNCi8vIFRoZSAnaWQnIHBhcmFtZXRlciwgZGVmYXVsdGluZyB0byBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IHNldCBvciBpcyBudWxsLg0KJGlkID8/PSAnJzsNCg0KLy8gVGhlICduYW1lJyBwYXJhbWV0ZXIsIGRlZmF1bHRpbmcgdG8gJ2lkJyBpZiBub3Qgc2V0LiBBZGRpdGlvbmFsbHksIHJlcGxhY2UgaHlwaGVucyB3aXRoIHVuZGVyc2NvcmVzLg0KJG5hbWUgPz89ICRpZDsNCiRuYW1lID0gc3RyX3JlcGxhY2UoJy0nLCAnXycsICRuYW1lKTsNCg0KLy8gVGhlICdjbGFzcycgcGFyYW1ldGVyLCBkZWZhdWx0aW5nIHRvICd1ay1yYWRpbycgaWYgbm90IHNldCBvciBpcyBudWxsLg0KJGNsYXNzID8/PSAndWstcmFkaW8nOw0KDQovLyBUaGUgJ2NsYXNzX290aGVyJyBwYXJhbWV0ZXIsIHByZXBlbmRlZCB3aXRoIGEgc3BhY2UgaWYgc2V0LCBvdGhlcndpc2UgZGVmYXVsdGluZyB0byBhbiBlbXB0eSBzdHJpbmcuDQokY2xhc3Nfb3RoZXIgPSBpc3NldCgkY2xhc3Nfb3RoZXIpID8gJyAnIC4gJGNsYXNzX290aGVyIDogJyc7DQoNCi8vIFRoZSAnb3B0aW9ucycgcGFyYW1ldGVyLCBzZXQgb25seSBpZiBpdCBleGlzdHMgYW5kIGlzIGFuIGFycmF5LCBvdGhlcndpc2UgZGVmYXVsdHMgdG8gYGZhbHNlYC4NCiRvcHRpb25zID0gKGlzc2V0KCRvcHRpb25zKSAmJiBpc19hcnJheSgkb3B0aW9ucykpID8gJG9wdGlvbnMgOiBmYWxzZTsNCg0KLy8gVGhlICdkZWZhdWx0JyBwYXJhbWV0ZXIsIGRlZmF1bHRpbmcgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBzZXQgb3IgaXMgbnVsbC4NCiRkZWZhdWx0ID8/PSAnJzsNCg0KLy8gVGhlICdkaXNhYmxlZCcgcGFyYW1ldGVyLCBkZWZhdWx0aW5nIHRvIGFuIGVtcHR5IHN0cmluZyBpZiBub3Qgc2V0IG9yIGlzIG51bGwuDQokZGlzYWJsZWQgPSAhZW1wdHkoJHJlYWRvbmx5KSB8fCAhZW1wdHkoJGRpc2FibGVkKSA/ICcgZGlzYWJsZWQ9ImRpc2FibGVkIicgOiAnJzsNCg0KLy8gVGhlICdvbmNoYW5nZScgYXR0cmlidXRlLCBhZGRlZCBvbmx5IGlmIHNldCwgb3RoZXJ3aXNlIGxlZnQgYXMgYW4gZW1wdHkgc3RyaW5nLg0KJG9uY2hhbmdlID0gaXNzZXQoJG9uY2hhbmdlKSA/ICcgb25jaGFuZ2U9IicgLiAkb25jaGFuZ2UgLiAnIicgOiAnJzsNCg0KLy8gVGhlICdvbmtleWRvd24nIGF0dHJpYnV0ZSwgYWRkZWQgb25seSBpZiBzZXQsIG90aGVyd2lzZSBsZWZ0IGFzIGFuIGVtcHR5IHN0cmluZy4NCiRvbmtleWRvd24gPSBpc3NldCgkb25rZXlkb3duKSA/ICcgb25rZXlkb3duPSInIC4gJG9ua2V5ZG93biAuICciJyA6ICcnOw==', '', '', 1, 6, '', 32, '', '7f6ff7df-4444-40ad-a7bf-5d126d6feac7'),
(136, '', 'importermessagelog', 'Importer Messages Log', 'c3542e52-cba1-42de-9ffa-0919c0082285', 'PD9waHAgZm9yZWFjaCAoJGRpc3BsYXlEYXRhIGFzICRpdGVtKTogPz4NCgk8P3BocCBpZiAoJGl0ZW0tPm1lc3NhZ2Vfc3RhdHVzID09IDEpOiA/Pg0KCQk8ZGl2IGNsYXNzPSJ1ay1hbGVydC1zdWNjZXNzIiB1ay1hbGVydD4NCgkJCTw/cGhwIGVjaG8gJGl0ZW0tPm1lc3NhZ2U7ID8+DQoJCTwvZGl2Pg0KCTw/cGhwIGVsc2VpZiAoJGl0ZW0tPm1lc3NhZ2Vfc3RhdHVzID09IDMpOiA/Pg0KCQk8ZGl2IGNsYXNzPSJ1ay1hbGVydC1kYW5nZXIiIHVrLWFsZXJ0Pg0KCQkJPD9waHAgZWNobyAkaXRlbS0+bWVzc2FnZTsgPz4NCgkJPC9kaXY+DQoJPD9waHAgZWxzZTogPz4NCgkJPGRpdiBjbGFzcz0idWstYWxlcnQtcHJpbWFyeSIgdWstYWxlcnQ+DQoJCQk8P3BocCBlY2hvICRpdGVtLT5tZXNzYWdlOyA/Pg0KCQk8L2Rpdj4NCgk8P3BocCBlbmRpZjsgPz4NCjw/cGhwIGVuZGZvcmVhY2g7ID8+', 'Importer Messages Log', '', '', '', 1, 3, '', 49, '', '0777dd83-d0dd-4fb1-8a31-13013dfc5dde'),
(137, '', 'importereasymapping', 'Importer Easy Mapping', '', 'PGRpdiBjbGFzcz0idWstY29udGFpbmVyIHVrLW1hcmdpbi1sYXJnZS10b3AiPg0KCTxoMSBjbGFzcz0idWstaGVhZGluZy1kaXZpZGVyIj48P3BocCBlY2hvIFRleHQ6Ol8oJ0RhdGEgaW1wb3J0ZXIgZG9jdW1lbnRhdGlvbicpOyA/PjwvaDE+DQoNCgk8cD48P3BocCBlY2hvIFRleHQ6Ol8oJ1dlbGNvbWUgdG8gdGhlIGRhdGEgaW1wb3J0ZXIhIFRoaXMgdG9vbCBhbGxvd3MgeW91IHRvIHVwbG9hZCBzcHJlYWRzaGVldHMsIG1hcCBjb2x1bW5zIHRvIGRhdGFiYXNlIGZpZWxkcywgYW5kIHRyYWNrIHRoZSBzdGF0dXMgb2YgaW1wb3J0cyBpbiBhIHF1ZXVlLiBCZWxvdyBpcyBhIHN0ZXAtYnktc3RlcCBndWlkZSBvbiBob3cgdG8gdXNlIHRoaXMgZmVhdHVyZSBlZmZlY3RpdmVseS4nKTsgPz48L3A+DQoNCgk8aDIgY2xhc3M9InVrLWhlYWRpbmctYnVsbGV0Ij48P3BocCBlY2hvIFRleHQ6Ol8oJ1VuZGVyc3RhbmRpbmcgdGhlIGltcG9ydGVyIGludGVyZmFjZScpOyA/PjwvaDI+DQoNCgk8cD48P3BocCBlY2hvIFRleHQ6Ol8oJ1RoZSBpbXBvcnQgaW50ZXJmYWNlIGNvbnNpc3RzIG9mIHR3byBtYWluIHRhYnM6Jyk7ID8+PC9wPg0KDQoJPHVsIGNsYXNzPSJ1ay1saXN0IHVrLWxpc3QtYnVsbGV0Ij4NCgkJPGxpPjxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdJbXBvcnRlciB0YWInKTsgPz46PC9zdHJvbmc+IDw/cGhwIGVjaG8gVGV4dDo6XygnVGhpcyBpcyB3aGVyZSB5b3UgdXBsb2FkIHlvdXIgc3ByZWFkc2hlZXQsIG1hcCB0aGUgY29sdW1ucyB0byB0aGUgZGF0YWJhc2UsIGFuZCBzdGFydCB0aGUgaW1wb3J0IHByb2Nlc3MuJyk7ID8+PC9saT4NCgkJPGxpPjxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdRdWV1ZSB0YWInKTsgPz46PC9zdHJvbmc+IDw/cGhwIGVjaG8gVGV4dDo6XygnVGhpcyBkaXNwbGF5cyB0aGUgc3RhdHVzIG9mIHlvdXIgaW1wb3J0cywgc2hvd2luZyB3aGV0aGVyIHRoZXkgYXJlIHBlbmRpbmcsIHByb2Nlc3NpbmcsIGNvbXBsZXRlZCwgb3IgaGF2ZSBlcnJvcnMuJyk7ID8+PC9saT4NCgk8L3VsPg0KDQoJPGgyIGNsYXNzPSJ1ay1oZWFkaW5nLWJ1bGxldCI+PD9waHAgZWNobyBUZXh0OjpfKCdTdGVwcyB0byBpbXBvcnQgZGF0YScpOyA/PjwvaDI+DQoNCgk8b2wgY2xhc3M9InVrLWxpc3QgdWstbGlzdC1kZWNpbWFsIj4NCgkJPGxpPg0KCQkJPHN0cm9uZz48P3BocCBlY2hvIFRleHQ6Ol8oJ1VwbG9hZCBhIHNwcmVhZHNoZWV0Jyk7ID8+PC9zdHJvbmc+DQoJCQk8dWwgY2xhc3M9InVrLWxpc3QgdWstbGlzdC1jaXJjbGUiPg0KCQkJCTxsaT48P3BocCBlY2hvIFRleHQ6Ol8oJ0RyYWcgYW5kIGRyb3AgeW91ciBzcHJlYWRzaGVldCBpbnRvIHRoZSBkZXNpZ25hdGVkIHVwbG9hZCBhcmVhIChvdXRsaW5lZCB3aXRoIGRvdHRlZCBsaW5lcykgb3IgY2xpY2sgdG8gc2VsZWN0IGEgZmlsZS4nKTsgPz48L2xpPg0KCQkJCTxsaT48P3BocCBlY2hvIFRleHQ6Ol8oJ1RoZSBzeXN0ZW0gc3VwcG9ydHMgc3RhbmRhcmQgc3ByZWFkc2hlZXQgZm9ybWF0cyBzdWNoIGFzIC54bHN4IGFuZCAuY3N2LicpOyA/PjwvbGk+DQoJCQk8L3VsPg0KCQk8L2xpPg0KCQk8bGk+DQoJCQk8c3Ryb25nPjw/cGhwIGVjaG8gVGV4dDo6XygnTWFwIGNvbHVtbnMnKTsgPz48L3N0cm9uZz4NCgkJCTx1bCBjbGFzcz0idWstbGlzdCB1ay1saXN0LWNpcmNsZSI+DQoJCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnQWZ0ZXIgdXBsb2FkaW5nLCB5b3Ugd2lsbCBiZSBwcm9tcHRlZCB0byBtYXAgdGhlIHNwcmVhZHNoZWV0IGNvbHVtbnMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgZGF0YWJhc2UgZmllbGRzLicpOyA/PjwvbGk+DQoJCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnSWYgeW91IHVzZWQgdGhlIGNvcnJlY3QgaGVhZGVyIG5hbWVzIChhcyBwcm92aWRlZCBpbiB0aGUgZXhhbXBsZSBmaWxlKSwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgbWFwIHRoZSBjb2x1bW5zIGZvciB5b3UuJyk7ID8+PC9saT4NCgkJCQk8bGk+PD9waHAgZWNobyBUZXh0OjpfKCdZb3UgY2FuIGFkanVzdCBhbnkgbWFwcGluZ3MgYmVmb3JlIHByb2NlZWRpbmcuJyk7ID8+PC9saT4NCgkJCTwvdWw+DQoJCTwvbGk+DQoJCTxsaT4NCgkJCTxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdTdGFydCB0aGUgaW1wb3J0Jyk7ID8+PC9zdHJvbmc+DQoJCQk8dWwgY2xhc3M9InVrLWxpc3QgdWstbGlzdC1jaXJjbGUiPg0KCQkJCTxsaT48P3BocCBlY2hvIFRleHQ6Ol8oJ09uY2UgdGhlIG1hcHBpbmdzIGFyZSBjb25maXJtZWQsIHN1Ym1pdCB0aGUgaW1wb3J0LicpOyA/PjwvbGk+DQoJCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnVGhlIHN5c3RlbSB3aWxsIHF1ZXVlIHRoZSBpbXBvcnQgcHJvY2Vzcy4nKTsgPz48L2xpPg0KCQkJPC91bD4NCgkJPC9saT4NCgkJPGxpPg0KCQkJPHN0cm9uZz48P3BocCBlY2hvIFRleHQ6Ol8oJ01vbml0b3IgdGhlIGltcG9ydCBzdGF0dXMnKTsgPz48L3N0cm9uZz4NCgkJCTx1bCBjbGFzcz0idWstbGlzdCB1ay1saXN0LWNpcmNsZSI+DQoJCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnTmF2aWdhdGUgdG8gdGhlIHF1ZXVlIHRhYiB0byB0cmFjayB0aGUgcHJvZ3Jlc3Mgb2YgeW91ciBpbXBvcnQuJyk7ID8+PC9saT4NCgkJCQk8bGk+PD9waHAgZWNobyBUZXh0OjpfKCdJbXBvcnRzIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgc3RhdHVzZXM6Jyk7ID8+DQoJCQkJCTx1bCBjbGFzcz0idWstbGlzdCB1ay1saXN0LWJ1bGxldCI+DQoJCQkJCQk8bGk+PHN0cm9uZz48P3BocCBlY2hvIFRleHQ6Ol8oJ1BlbmRpbmcnKTsgPz46PC9zdHJvbmc+IDw/cGhwIGVjaG8gVGV4dDo6XygnV2FpdGluZyB0byBiZSBwcm9jZXNzZWQuJyk7ID8+PC9saT4NCgkJCQkJCTxsaT48c3Ryb25nPjw/cGhwIGVjaG8gVGV4dDo6XygnUHJvY2Vzc2luZycpOyA/Pjo8L3N0cm9uZz4gPD9waHAgZWNobyBUZXh0OjpfKCdDdXJyZW50bHkgYmVpbmcgaW1wb3J0ZWQuJyk7ID8+PC9saT4NCgkJCQkJCTxsaT48c3Ryb25nPjw/cGhwIGVjaG8gVGV4dDo6XygnQ29tcGxldGVkJyk7ID8+Ojwvc3Ryb25nPiA8P3BocCBlY2hvIFRleHQ6Ol8oJ1N1Y2Nlc3NmdWxseSBpbXBvcnRlZC4nKTsgPz48L2xpPg0KCQkJCQkJPGxpPjxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdFcnJvcicpOyA/Pjo8L3N0cm9uZz4gPD9waHAgZWNobyBUZXh0OjpfKCdJc3N1ZXMgZW5jb3VudGVyZWQgKHdpdGggZXJyb3IgbWVzc2FnZXMgZGlzcGxheWVkKS4nKTsgPz48L2xpPg0KCQkJCQk8L3VsPg0KCQkJCTwvbGk+DQoJCQk8L3VsPg0KCQk8L2xpPg0KCTwvb2w+DQoNCgk8aDIgY2xhc3M9InVrLWhlYWRpbmctYnVsbGV0Ij48P3BocCBlY2hvIFRleHQ6Ol8oJ1VzaW5nIHRoZSBleGFtcGxlIGZpbGUnKTsgPz48L2gyPg0KDQoJPGRpdiBjbGFzcz0idWstYWxlcnQtcHJpbWFyeSIgdWstYWxlcnQ+DQoJCTxwPjxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdXaHkgdXNlIHRoZSBleGFtcGxlIGZpbGU/Jyk7ID8+PC9zdHJvbmc+PC9wPg0KCQk8dWwgY2xhc3M9InVrLWxpc3QgdWstbGlzdC1idWxsZXQiPg0KCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnSXQgaW5jbHVkZXMgdGhlIGNvcnJlY3QgaGVhZGVyIG5hbWVzIGZvciBkYXRhYmFzZSBmaWVsZHMuJyk7ID8+PC9saT4NCgkJCTxsaT48P3BocCBlY2hvIFRleHQ6Ol8oJ0lmIHlvdSB1c2UgdGhlc2UgaGVhZGVycyBpbiB5b3VyIGltcG9ydCBmaWxlLCB0aGUgc3lzdGVtIHdpbGwgYXV0b21hdGljYWxseSBtYXAgY29sdW1ucywgcmVkdWNpbmcgbWFudWFsIGVmZm9ydC4nKTsgPz48L2xpPg0KCQkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnUGFydGljdWxhcmx5IGhlbHBmdWwgZm9yIGxhcmdlIGRhdGFzZXRzIHdpdGggbWFueSBjb2x1bW5zLicpOyA/PjwvbGk+DQoJCTwvdWw+DQoJPC9kaXY+DQoNCgk8cD48P3BocCBlY2hvIFRleHQ6Ol8oJ1RvIGRvd25sb2FkIHRoZSBleGFtcGxlIGZpbGUsIGNsaWNrIHRoZSAiRXhhbXBsZSIgYnV0dG9uIGF0IHRoZSB0b3Agb2YgdGhlIGltcG9ydGVyIHRhYi4nKTsgPz48L3A+DQoNCgk8aDIgY2xhc3M9InVrLWhlYWRpbmctYnVsbGV0Ij48P3BocCBlY2hvIFRleHQ6Ol8oJ1doYXQgdG8gZXhwZWN0IGFmdGVyIGltcG9ydGluZycpOyA/PjwvaDI+DQoNCgk8cD48P3BocCBlY2hvIFRleHQ6Ol8oJ09uY2UgdGhlIGltcG9ydCBpcyBzdWJtaXR0ZWQsIHRoZSBzeXN0ZW0gcHJvY2Vzc2VzIGl0IGluIHRoZSBiYWNrZ3JvdW5kLiBIZXJl4oCZcyB3aGF0IGhhcHBlbnMgbmV4dDonKTsgPz48L3A+DQoNCgk8dWwgY2xhc3M9InVrLWxpc3QgdWstbGlzdC1idWxsZXQiPg0KCQk8bGk+PD9waHAgZWNobyBUZXh0OjpfKCdUaGUgaW1wb3J0IGFwcGVhcnMgaW4gdGhlIHF1ZXVlIHRhYiB3aXRoIGl0cyBzdGF0dXMuJyk7ID8+PC9saT4NCgkJPGxpPjw/cGhwIGVjaG8gVGV4dDo6XygnSWYgZXJyb3JzIG9jY3VyLCBtZXNzYWdlcyB3aWxsIGJlIGRpc3BsYXllZCB1bmRlciB0aGUgaW1wb3J0IGVudHJ5IGluIHRoZSBxdWV1ZS4nKTsgPz48L2xpPg0KCQk8bGk+PD9waHAgZWNobyBUZXh0OjpfKCdTdWNjZXNzZnVsIGltcG9ydHMgd2lsbCBiZSBtYXJrZWQgYXMgY29tcGxldGVkLicpOyA/PjwvbGk+DQoJCTxsaT48P3BocCBlY2hvIFRleHQ6Ol8oJ1lvdSBjYW4gcmV2aWV3IGVycm9ycyBhbmQgcmUtdXBsb2FkIGEgY29ycmVjdGVkIGZpbGUgaWYgbmVlZGVkLicpOyA/PjwvbGk+DQoJPC91bD4NCg0KCTxoMiBjbGFzcz0idWstaGVhZGluZy1idWxsZXQiPjw/cGhwIGVjaG8gVGV4dDo6XygnQ29tbW9uIGlzc3VlcyBhbmQgdHJvdWJsZXNob290aW5nJyk7ID8+PC9oMj4NCg0KCTx1bCBjbGFzcz0idWstbGlzdCB1ay1saXN0LWJ1bGxldCI+DQoJCTxsaT48c3Ryb25nPjw/cGhwIGVjaG8gVGV4dDo6XygnQ29sdW1ucyBhcmUgbm90IG1hcHBpbmcgY29ycmVjdGx5Jyk7ID8+Ojwvc3Ryb25nPiA8P3BocCBlY2hvIFRleHQ6Ol8oJ0Vuc3VyZSB5b3VyIHNwcmVhZHNoZWV0IGhlYWRlcnMgbWF0Y2ggdGhvc2UgaW4gdGhlIGV4YW1wbGUgZmlsZS4nKTsgPz48L2xpPg0KCQk8bGk+PHN0cm9uZz48P3BocCBlY2hvIFRleHQ6Ol8oJ0ZpbGUgdXBsb2FkIGZhaWxzJyk7ID8+Ojwvc3Ryb25nPiA8P3BocCBlY2hvIFRleHQ6Ol8oJ0NoZWNrIGlmIHlvdXIgZmlsZSBpcyBpbiBhIHN1cHBvcnRlZCBmb3JtYXQgKC54bHN4LCAuY3N2KS4nKTsgPz48L2xpPg0KCQk8bGk+PHN0cm9uZz48P3BocCBlY2hvIFRleHQ6Ol8oJ0ltcG9ydCByZW1haW5zIHN0dWNrIGluICJQZW5kaW5nIicpOyA/Pjo8L3N0cm9uZz4gPD9waHAgZWNobyBUZXh0OjpfKCdUaGVyZSBtYXkgYmUgYSBoaWdoIHF1ZXVlIHZvbHVtZTsgdHJ5IGFnYWluIGxhdGVyLicpOyA/PjwvbGk+DQoJPC91bD4NCg0KCTxkaXYgY2xhc3M9InVrLWFsZXJ0LWRhbmdlciIgdWstYWxlcnQ+DQoJCTxwPjxzdHJvbmc+PD9waHAgZWNobyBUZXh0OjpfKCdOb3RlJyk7ID8+Ojwvc3Ryb25nPiA8P3BocCBlY2hvIFRleHQ6Ol8oJ0xhcmdlIGZpbGVzIG1heSB0YWtlIGxvbmdlciB0byBwcm9jZXNzLiBZb3UgY2FuIGNoZWNrIHRoZSBxdWV1ZSBmb3Igc3RhdHVzIHVwZGF0ZXMuJyk7ID8+PC9wPg0KCTwvZGl2Pg0KDQoJPGgyIGNsYXNzPSJ1ay1oZWFkaW5nLWJ1bGxldCI+PD9waHAgZWNobyBUZXh0OjpfKCdDb25jbHVzaW9uJyk7ID8+PC9oMj4NCg0KCTxwPjw/cGhwIGVjaG8gVGV4dDo6XygnVGhlIGRhdGEgaW1wb3J0ZXIgcHJvdmlkZXMgYSBzdHJlYW1saW5lZCB3YXkgdG8gdXBsb2FkIGFuZCBwcm9jZXNzIHNwcmVhZHNoZWV0cyB3aGlsZSBlbnN1cmluZyBhY2N1cmFjeSB3aXRoIGNvbHVtbiBtYXBwaW5nLiBCeSBmb2xsb3dpbmcgdGhlIHN0ZXBzIGFib3ZlLCB5b3UgY2FuIGVmZmljaWVudGx5IGltcG9ydCB5b3VyIGRhdGEgYW5kIG1vbml0b3IgaXRzIHByb2dyZXNzLicpOyA/PjwvcD4NCjwvZGl2Pg==', 'Importer Easy Mapping', '', '', '', 1, 3, '', 50, '', 'c4d0c28e-eb98-4c0d-a91e-34096e5606fe'),
-(138, 1, 'importercolumnsdisplay', 'Importer Columns Display', 'ebfab0ae-d368-4d2a-807b-c9d2d0809a60', 'PD9waHAgZWNobyBMYXlvdXRIZWxwZXI6OnJlbmRlcignZmlsZWRpc3BsYXknLCAkZGlzcGxheURhdGEpOyA/Pg0KPD9waHAgaWYgKCRtYXAgPT09IG51bGwpOiA/Pg0KCTw/cGhwIGVjaG8gVGV4dDo6XygnU3ByZWFkc2hlZXQgc2VlbXMgdG8gaGF2ZSBubyBoZWFkZXJzIHNldCEgVGhlcmUgd2FzIGFuIGVycm9yIScpOyA/Pg0KPD9waHAgZWxzZTogPz4NCgk8ZGl2IGlkPSJzdWJmb3JtLWRpc3BsYXktYXJlYSI+DQoNCgkJPD9waHAgZWNobyAkbWFwLT5pbnB1dDsgPz4NCg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZG1faW1wb3J0W2ZpbGVdIiB2YWx1ZT0iPD9waHAgZWNobyAkZmlsZS0+Z3VpZDsgPz4iPg0KDQoJCTxqb29tbGEtdG9vbGJhci1idXR0b24gaWQ9InRvb2xiYXItZG93bmxvYWQtY3VzdG9tLWJ1dHRvbi1zYXZlaW1wb3J0bWFwIiB0YXNrPSJpbXBvcnRlci5zYXZlSW1wb3J0TWFwIj4NCgkJCTxkaXYgY2xhc3M9ImQtZ3JpZCI+DQoJCQkJPGJ1dHRvbiBjbGFzcz0iYnV0dG9uLWRvd25sb2FkIGN1c3RvbS1idXR0b24tc2F2ZWltcG9ydG1hcCBidG4gYnRuLXByaW1hcnkiIHR5cGU9ImJ1dHRvbiI+DQoJCQkJCTxzcGFuIGNsYXNzPSJpY29uLWRvd25sb2FkIGN1c3RvbS1idXR0b24tc2F2ZWltcG9ydG1hcCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4NCgkJCQkJPD9waHAgZWNobyBUZXh0OjpfKCdJbXBvcnQnKTsgPz4NCgkJCQk8L2J1dHRvbj4NCgkJCTwvZGl2Pg0KCQk8L2pvb21sYS10b29sYmFyLWJ1dHRvbj4NCgk8L2Rpdj4NCjw/cGhwIGVuZGlmOyAgPz4=', 'Importer Columns Display', 'JGhlYWRlcnMgPSBudWxsOw0KJGZpbGUgPSBudWxsOw0KDQovLyBDaGVjayBpZiAnZGF0YScgZXhpc3RzIGFuZCBpcyBhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBmaWxlDQppZiAoIWVtcHR5KCRkaXNwbGF5RGF0YVsnZGF0YSddKSAmJiBpc19hcnJheSgkZGlzcGxheURhdGFbJ2RhdGEnXSkpDQp7DQoJLy8gUmV0cmlldmUgdGhlIGZpcnN0IGZpbGUNCgkkZmlsZSA9IGFycmF5X3ZhbHVlcygkZGlzcGxheURhdGFbJ2RhdGEnXSlbMF07DQoNCgkvLyBGZXRjaCB0aGUgaGVhZGVycyBmb3IgdGhlIGZpbGUNCglpZiAoaXNfb2JqZWN0KCRmaWxlKSAmJiBpc3NldCgkZmlsZS0+ZmlsZV9wYXRoKSkNCgl7DQoJCSRoZWFkZXJzID0gU3VwZXJfX19mZjhkNWZkYl8yZDFmXzQxNzhfYmQxOF9hNDNiOGVmZDEwNjhfX19Qb3dlcjo6XygnU3ByZWFkc2hlZXQuSGVhZGVyJyktPmdldCgkZmlsZS0+ZmlsZV9wYXRoKTsNCgl9DQp9DQoNCi8vIEhlbHBlciBmdW5jdGlvbiB0byBhcHBlbmQgYSBmaWVsZCB0byBhIGZvcm0gZWxlbWVudA0KZnVuY3Rpb24gYXBwZW5kRmllbGRUb0Zvcm0oXFNpbXBsZVhNTEVsZW1lbnQgJGZvcm0sIGFycmF5ICRhdHRyaWJ1dGVzKSB7DQoJLy8gQ3JlYXRlIHRoZSBmaWVsZCBYTUwgZWxlbWVudA0KCSRmaWVsZFhNTCA9IG5ldyBcU2ltcGxlWE1MRWxlbWVudCgnPGZpZWxkLz4nKTsNCgkvLyBTZXQgYXR0cmlidXRlcyBmb3IgdGhlIGZpZWxkDQoJU3VwZXJfX18xMTk4YWVjZl84NGM2XzQ1ZDJfYWVhOF9kNTMxYWE0YWZkZmFfX19Qb3dlcjo6YXR0cmlidXRlcygkZmllbGRYTUwsICRhdHRyaWJ1dGVzKTsNCgkvLyBBcHBlbmQgdGhlIGZpZWxkIFhNTCB0byB0aGUgZm9ybQ0KCVN1cGVyX19fMTE5OGFlY2ZfODRjNl80NWQyX2FlYThfZDUzMWFhNGFmZGZhX19fUG93ZXI6OmFwcGVuZCgkZm9ybSwgJGZpZWxkWE1MKTsNCn0NCg0KLy8gSW5pdGlhbGl6ZSB0aGUgRk9STSBpZiB3ZSBoYXZlIGhlYWRlcnMNCiRtYXAgPSBudWxsOw0KaWYgKCFlbXB0eSgkaGVhZGVycykpDQp7DQoJLy8gd2UgdXBkYXRlIHRoZSBnbG9iYWwgaGVhZGVycw0KCUpvb21sYV9fX2FlYmZlYjlmX2Y4YTNfNDJiZV9hMjFkXzVkYjU2YWUzMGMxY19fX1Bvd2VyOjpzZXRTcHJlYWRzaGVldEhlYWRlcnMoJGhlYWRlcnMpOw0KDQoJLy8gZ2V0IHN1YmZvcm0gdmFsdWVzDQoJJHZhbHVlcyA9IEpvb21sYV9fX2FlYmZlYjlmX2Y4YTNfNDJiZV9hMjFkXzVkYjU2YWUzMGMxY19fX1Bvd2VyOjpnZXRJdGVtSW1wb3J0U3ViZm9ybVZhbHVlcygpOw0KDQoJLy8gZ2V0IHRoZSBhbW91bnQgb2Ygcm93cyBleHBlY3RlZA0KCSRyb3dzID0gY291bnQoJGhlYWRlcnMpOw0KDQoJLy8gQWRkIHRoZSBjb21wb25lbnQgZmllbGQgcHJlZml4DQoJSm9vbWxhX19fNTcxNDIyYzRfMDM0MF80OWY4X2I4NDZfNTcyOWM3YWY2ZWQ3X19fUG93ZXI6OmFkZEZpZWxkUHJlZml4KCdbW1tOYW1lc3BhY2VQcmVmaXhdXV1cQ29tcG9uZW50XFtbW0NvbXBvbmVudE5hbWVzcGFjZV1dXVxBZG1pbmlzdHJhdG9yXEZpZWxkJyk7DQoJLy8gQWRkIHRoZSBjb21wb25lbnQgcnVsZSBwcmVmaXgNCglKb29tbGFfX181NzE0MjJjNF8wMzQwXzQ5ZjhfYjg0Nl81NzI5YzdhZjZlZDdfX19Qb3dlcjo6YWRkUnVsZVByZWZpeCgnW1tbTmFtZXNwYWNlUHJlZml4XV1dXENvbXBvbmVudFxbW1tDb21wb25lbnROYW1lc3BhY2VdXV1cQWRtaW5pc3RyYXRvclxSdWxlJyk7DQoNCgkvLyBBREQgYW55IG90aGVyIGZpZWxkIEhFUkUgdGhhdCBuZWVkcyBzcGVjYWlsIGF0dGVudGlvbiAhISENCg0KCS8vIExvYWQgdGhlIG1hcCAnc3ViZm9ybScgZmllbGQgdHlwZQ0KCSRtYXAgPSBKb29tbGFfX181NzE0MjJjNF8wMzQwXzQ5ZjhfYjg0Nl81NzI5YzdhZjZlZDdfX19Qb3dlcjo6bG9hZEZpZWxkVHlwZSgnc3ViZm9ybScsIHRydWUpOw0KDQoJLy8gQ3JlYXRlIHRoZSByb290IGZpZWxkIGVsZW1lbnQgZm9yIHRoZSBzdWJmb3JtIFhNTA0KCSRtYXBYTUwgPSBuZXcgXFNpbXBsZVhNTEVsZW1lbnQoJzxmaWVsZC8+Jyk7DQoJDQoJLy8gRGVmaW5lIHRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgc3ViZm9ybSBmaWVsZA0KCSRtYXBBdHRyaWJ1dGVzID0gWw0KCQkndHlwZScgPT4gJ3N1YmZvcm0nLA0KCQknbmFtZScgPT4gJ21hcHMnLA0KCQknbGFiZWwnID0+IEp1c3RURVhUOjpfKCdNYXAnKSwNCgkJJ2xheW91dCcgPT4gJ2pvb21sYS5mb3JtLmZpZWxkLnN1YmZvcm0ucmVwZWF0YWJsZS10YWJsZScsDQoJCSdidXR0b25zJyA9PiAnZmFsc2UnLA0KCQknbXVsdGlwbGUnID0+ICd0cnVlJywNCgkJJ2ljb24nID0+ICdsaXN0JywNCgkJJ21pbicgPT4gJHJvd3MsDQoJCSdtYXgnID0+ICRyb3dzDQoJXTsNCg0KCS8vIFNldCB0aGUgYXR0cmlidXRlcyBmb3IgdGhlIHN1YmZvcm0gZmllbGQNCglTdXBlcl9fXzExOThhZWNmXzg0YzZfNDVkMl9hZWE4X2Q1MzFhYTRhZmRmYV9fX1Bvd2VyOjphdHRyaWJ1dGVzKCRtYXBYTUwsICRtYXBBdHRyaWJ1dGVzKTsNCg0KCS8vIEFkZCB0aGUgY2hpbGQgZm9ybSBlbGVtZW50IGluc2lkZSB0aGUgc3ViZm9ybQ0KCSRjaGlsZEZvcm0gPSAkbWFwWE1MLT5hZGRDaGlsZCgnZm9ybScpOw0KCQ0KCS8vIERlZmluZSB0aGUgYXR0cmlidXRlcyBmb3IgdGhlIGNoaWxkIGZvcm0NCgkkY2hpbGRGb3JtQXR0cmlidXRlcyA9IFsNCgkJJ2hpZGRlbicgPT4gJ3RydWUnLA0KCQknbmFtZScgPT4gJ2xpc3RfbWFwc19tb2RhbCcsDQoJCSdyZXBlYXQnID0+ICd0cnVlJw0KCV07DQoNCgkvLyBTZXQgdGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBjaGlsZCBmb3JtDQoJU3VwZXJfX18xMTk4YWVjZl84NGM2XzQ1ZDJfYWVhOF9kNTMxYWE0YWZkZmFfX19Qb3dlcjo6YXR0cmlidXRlcygkY2hpbGRGb3JtLCAkY2hpbGRGb3JtQXR0cmlidXRlcyk7DQoNCgkvLyBCdWlsZCBhbmQgYXBwZW5kIGNvbHVtbiBmaWVsZCBYTUwgdG8gdGhlIGNoaWxkIGZvcm0NCglhcHBlbmRGaWVsZFRvRm9ybSgkY2hpbGRGb3JtLCBbDQoJCSd0eXBlJyA9PiAnaW1wb3J0Y29sdW1ucycsDQoJCSduYW1lJyA9PiAnY29sdW1uJywNCgkJJ2xhYmVsJyA9PiBKdXN0VEVYVDo6XygnQ29sdW1uJyksDQoJCSdkZXNjcmlwdGlvbicgPT4gSnVzdFRFWFQ6Ol8oJ1RoZSBzcHJlYWRzaGVldCBjb2x1bW5zLicpLA0KCQknY2xhc3MnID0+ICdsaXN0X2NsYXNzJywNCgkJJ3JlYWRvbmx5JyA9PiAndHJ1ZScsDQoJCSdsYXlvdXQnID0+ICdqb29tbGEuZm9ybS5maWVsZC5saXN0LWZhbmN5LXNlbGVjdCcNCgldKTsNCg0KCS8vIEJ1aWxkIGFuZCBhcHBlbmQgdGFyZ2V0IGZpZWxkIFhNTCB0byB0aGUgY2hpbGQgZm9ybQ0KCWFwcGVuZEZpZWxkVG9Gb3JtKCRjaGlsZEZvcm0sIFsNCgkJJ3R5cGUnID0+ICd0YXJnZXRmaWVsZHMnLA0KCQknbmFtZScgPT4gJ3RhcmdldCcsDQoJCSdsYWJlbCcgPT4gSnVzdFRFWFQ6Ol8oJ1N5c3RlbSBUYXJnZXQgRmllbGRzJyksDQoJCSdkZXNjcmlwdGlvbicgPT4gSnVzdFRFWFQ6Ol8oJ1RoZSBzeXN0ZW0gdGFyZ2V0IGRhdGFiYXNlIGZpZWxkcy4nKSwNCgkJJ21lc3NhZ2UnID0+IEp1c3RURVhUOjpfKCdJbnB1dCBSZXF1aXJlZCcpLA0KCQknY2xhc3MnID0+ICdsaXN0X2NsYXNzJywNCgkJJ2xheW91dCcgPT4gJ2pvb21sYS5mb3JtLmZpZWxkLmxpc3QtZmFuY3ktc2VsZWN0Jw0KCV0pOw0KDQoJLy8gU2V0dXAgdGhlIHN1YmZvcm0gd2l0aCB0aGUgY29uc3RydWN0ZWQgWE1MDQoJJG1hcC0+c2V0dXAoJG1hcFhNTCwgJHZhbHVlcywgJ3ZkbV9pbXBvcnQnKTsNCn0=', '', '', 1, 8, '', 51, '', 'a51be5b8-9ec9-43de-9dd9-f739c8b39288');
+(138, 1, 'importercolumnsdisplay', 'Importer Columns Display', '', 'PD9waHAgZWNobyBMYXlvdXRIZWxwZXI6OnJlbmRlcignZmlsZWRpc3BsYXknLCAkZGlzcGxheURhdGEpOyA/Pg0KPD9waHAgaWYgKCRtYXAgPT09IG51bGwpOiA/Pg0KCTw/cGhwIGVjaG8gVGV4dDo6XygnU3ByZWFkc2hlZXQgc2VlbXMgdG8gaGF2ZSBubyBoZWFkZXJzIHNldCEgVGhlcmUgd2FzIGFuIGVycm9yIScpOyA/Pg0KPD9waHAgZWxzZTogPz4NCgk8ZGl2IGlkPSJzdWJmb3JtLWRpc3BsYXktYXJlYSI+DQoNCgkJPD9waHAgZWNobyAkbWFwLT5pbnB1dDsgPz4NCg0KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZG1faW1wb3J0W2ZpbGVdIiB2YWx1ZT0iPD9waHAgZWNobyAkZmlsZS0+Z3VpZDsgPz4iPg0KDQoJCTxqb29tbGEtdG9vbGJhci1idXR0b24gaWQ9InRvb2xiYXItZG93bmxvYWQtY3VzdG9tLWJ1dHRvbi1zYXZlaW1wb3J0bWFwIiB0YXNrPSJpbXBvcnRlci5zYXZlSW1wb3J0TWFwIj4NCgkJCTxkaXYgY2xhc3M9ImQtZ3JpZCI+DQoJCQkJPGJ1dHRvbiBjbGFzcz0iYnV0dG9uLWRvd25sb2FkIGN1c3RvbS1idXR0b24tc2F2ZWltcG9ydG1hcCBidG4gYnRuLXByaW1hcnkiIHR5cGU9ImJ1dHRvbiI+DQoJCQkJCTxzcGFuIGNsYXNzPSJpY29uLWRvd25sb2FkIGN1c3RvbS1idXR0b24tc2F2ZWltcG9ydG1hcCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4NCgkJCQkJPD9waHAgZWNobyBUZXh0OjpfKCdJbXBvcnQnKTsgPz4NCgkJCQk8L2J1dHRvbj4NCgkJCTwvZGl2Pg0KCQk8L2pvb21sYS10b29sYmFyLWJ1dHRvbj4NCgk8L2Rpdj4NCjw/cGhwIGVuZGlmOyAgPz4=', 'Importer Columns Display', 'JGhlYWRlcnMgPSBudWxsOw0KJGZpbGUgPSBudWxsOw0KDQovLyBDaGVjayBpZiAnZGF0YScgZXhpc3RzIGFuZCBpcyBhbiBhcnJheSB3aXRoIGF0IGxlYXN0IG9uZSBmaWxlDQppZiAoIWVtcHR5KCRkaXNwbGF5RGF0YVsnZGF0YSddKSAmJiBpc19hcnJheSgkZGlzcGxheURhdGFbJ2RhdGEnXSkpDQp7DQoJLy8gUmV0cmlldmUgdGhlIGZpcnN0IGZpbGUNCgkkZmlsZSA9IGFycmF5X3ZhbHVlcygkZGlzcGxheURhdGFbJ2RhdGEnXSlbMF07DQoNCgkvLyBGZXRjaCB0aGUgaGVhZGVycyBmb3IgdGhlIGZpbGUNCglpZiAoaXNfb2JqZWN0KCRmaWxlKSAmJiBpc3NldCgkZmlsZS0+ZmlsZV9wYXRoKSkNCgl7DQoJCSRoZWFkZXJzID0gU3VwZXJfX19mZjhkNWZkYl8yZDFmXzQxNzhfYmQxOF9hNDNiOGVmZDEwNjhfX19Qb3dlcjo6XygnU3ByZWFkc2hlZXQuSGVhZGVyJyktPmdldCgkZmlsZS0+ZmlsZV9wYXRoKTsNCgl9DQp9DQoNCi8vIEhlbHBlciBmdW5jdGlvbiB0byBhcHBlbmQgYSBmaWVsZCB0byBhIGZvcm0gZWxlbWVudA0KZnVuY3Rpb24gYXBwZW5kRmllbGRUb0Zvcm0oXFNpbXBsZVhNTEVsZW1lbnQgJGZvcm0sIGFycmF5ICRhdHRyaWJ1dGVzKSB7DQoJLy8gQ3JlYXRlIHRoZSBmaWVsZCBYTUwgZWxlbWVudA0KCSRmaWVsZFhNTCA9IG5ldyBcU2ltcGxlWE1MRWxlbWVudCgnPGZpZWxkLz4nKTsNCgkvLyBTZXQgYXR0cmlidXRlcyBmb3IgdGhlIGZpZWxkDQoJU3VwZXJfX18xMTk4YWVjZl84NGM2XzQ1ZDJfYWVhOF9kNTMxYWE0YWZkZmFfX19Qb3dlcjo6YXR0cmlidXRlcygkZmllbGRYTUwsICRhdHRyaWJ1dGVzKTsNCgkvLyBBcHBlbmQgdGhlIGZpZWxkIFhNTCB0byB0aGUgZm9ybQ0KCVN1cGVyX19fMTE5OGFlY2ZfODRjNl80NWQyX2FlYThfZDUzMWFhNGFmZGZhX19fUG93ZXI6OmFwcGVuZCgkZm9ybSwgJGZpZWxkWE1MKTsNCn0NCg0KLy8gSW5pdGlhbGl6ZSB0aGUgRk9STSBpZiB3ZSBoYXZlIGhlYWRlcnMNCiRtYXAgPSBudWxsOw0KaWYgKCFlbXB0eSgkaGVhZGVycykpDQp7DQoJLy8gd2UgdXBkYXRlIHRoZSBnbG9iYWwgaGVhZGVycw0KCUpvb21sYV9fX2FlYmZlYjlmX2Y4YTNfNDJiZV9hMjFkXzVkYjU2YWUzMGMxY19fX1Bvd2VyOjpzZXRTcHJlYWRzaGVldEhlYWRlcnMoJGhlYWRlcnMpOw0KDQoJLy8gZ2V0IHN1YmZvcm0gdmFsdWVzDQoJJHZhbHVlcyA9IEpvb21sYV9fX2FlYmZlYjlmX2Y4YTNfNDJiZV9hMjFkXzVkYjU2YWUzMGMxY19fX1Bvd2VyOjpnZXRJdGVtSW1wb3J0U3ViZm9ybVZhbHVlcygpOw0KDQoJLy8gZ2V0IHRoZSBhbW91bnQgb2Ygcm93cyBleHBlY3RlZA0KCSRyb3dzID0gY291bnQoJGhlYWRlcnMpOw0KDQoJLy8gQWRkIHRoZSBjb21wb25lbnQgZmllbGQgcHJlZml4DQoJSm9vbWxhX19fNTcxNDIyYzRfMDM0MF80OWY4X2I4NDZfNTcyOWM3YWY2ZWQ3X19fUG93ZXI6OmFkZEZpZWxkUHJlZml4KCdbW1tOYW1lc3BhY2VQcmVmaXhdXV1cQ29tcG9uZW50XFtbW0NvbXBvbmVudE5hbWVzcGFjZV1dXVxBZG1pbmlzdHJhdG9yXEZpZWxkJyk7DQoJLy8gQWRkIHRoZSBjb21wb25lbnQgcnVsZSBwcmVmaXgNCglKb29tbGFfX181NzE0MjJjNF8wMzQwXzQ5ZjhfYjg0Nl81NzI5YzdhZjZlZDdfX19Qb3dlcjo6YWRkUnVsZVByZWZpeCgnW1tbTmFtZXNwYWNlUHJlZml4XV1dXENvbXBvbmVudFxbW1tDb21wb25lbnROYW1lc3BhY2VdXV1cQWRtaW5pc3RyYXRvclxSdWxlJyk7DQoNCgkvLyBBREQgYW55IG90aGVyIGZpZWxkIEhFUkUgdGhhdCBuZWVkcyBzcGVjYWlsIGF0dGVudGlvbiAhISENCg0KCS8vIExvYWQgdGhlIG1hcCAnc3ViZm9ybScgZmllbGQgdHlwZQ0KCSRtYXAgPSBKb29tbGFfX181NzE0MjJjNF8wMzQwXzQ5ZjhfYjg0Nl81NzI5YzdhZjZlZDdfX19Qb3dlcjo6bG9hZEZpZWxkVHlwZSgnc3ViZm9ybScsIHRydWUpOw0KDQoJLy8gQ3JlYXRlIHRoZSByb290IGZpZWxkIGVsZW1lbnQgZm9yIHRoZSBzdWJmb3JtIFhNTA0KCSRtYXBYTUwgPSBuZXcgXFNpbXBsZVhNTEVsZW1lbnQoJzxmaWVsZC8+Jyk7DQoJDQoJLy8gRGVmaW5lIHRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgc3ViZm9ybSBmaWVsZA0KCSRtYXBBdHRyaWJ1dGVzID0gWw0KCQkndHlwZScgPT4gJ3N1YmZvcm0nLA0KCQknbmFtZScgPT4gJ21hcHMnLA0KCQknbGFiZWwnID0+IEp1c3RURVhUOjpfKCdNYXAnKSwNCgkJJ2xheW91dCcgPT4gJ2pvb21sYS5mb3JtLmZpZWxkLnN1YmZvcm0ucmVwZWF0YWJsZS10YWJsZScsDQoJCSdidXR0b25zJyA9PiAnZmFsc2UnLA0KCQknbXVsdGlwbGUnID0+ICd0cnVlJywNCgkJJ2ljb24nID0+ICdsaXN0JywNCgkJJ21pbicgPT4gJHJvd3MsDQoJCSdtYXgnID0+ICRyb3dzDQoJXTsNCg0KCS8vIFNldCB0aGUgYXR0cmlidXRlcyBmb3IgdGhlIHN1YmZvcm0gZmllbGQNCglTdXBlcl9fXzExOThhZWNmXzg0YzZfNDVkMl9hZWE4X2Q1MzFhYTRhZmRmYV9fX1Bvd2VyOjphdHRyaWJ1dGVzKCRtYXBYTUwsICRtYXBBdHRyaWJ1dGVzKTsNCg0KCS8vIEFkZCB0aGUgY2hpbGQgZm9ybSBlbGVtZW50IGluc2lkZSB0aGUgc3ViZm9ybQ0KCSRjaGlsZEZvcm0gPSAkbWFwWE1MLT5hZGRDaGlsZCgnZm9ybScpOw0KCQ0KCS8vIERlZmluZSB0aGUgYXR0cmlidXRlcyBmb3IgdGhlIGNoaWxkIGZvcm0NCgkkY2hpbGRGb3JtQXR0cmlidXRlcyA9IFsNCgkJJ2hpZGRlbicgPT4gJ3RydWUnLA0KCQknbmFtZScgPT4gJ2xpc3RfbWFwc19tb2RhbCcsDQoJCSdyZXBlYXQnID0+ICd0cnVlJw0KCV07DQoNCgkvLyBTZXQgdGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBjaGlsZCBmb3JtDQoJU3VwZXJfX18xMTk4YWVjZl84NGM2XzQ1ZDJfYWVhOF9kNTMxYWE0YWZkZmFfX19Qb3dlcjo6YXR0cmlidXRlcygkY2hpbGRGb3JtLCAkY2hpbGRGb3JtQXR0cmlidXRlcyk7DQoNCgkvLyBCdWlsZCBhbmQgYXBwZW5kIGNvbHVtbiBmaWVsZCBYTUwgdG8gdGhlIGNoaWxkIGZvcm0NCglhcHBlbmRGaWVsZFRvRm9ybSgkY2hpbGRGb3JtLCBbDQoJCSd0eXBlJyA9PiAnaW1wb3J0Y29sdW1ucycsDQoJCSduYW1lJyA9PiAnY29sdW1uJywNCgkJJ2xhYmVsJyA9PiBKdXN0VEVYVDo6XygnQ29sdW1uJyksDQoJCSdkZXNjcmlwdGlvbicgPT4gSnVzdFRFWFQ6Ol8oJ1RoZSBzcHJlYWRzaGVldCBjb2x1bW5zLicpLA0KCQknY2xhc3MnID0+ICdsaXN0X2NsYXNzJywNCgkJJ3JlYWRvbmx5JyA9PiAndHJ1ZScsDQoJCSdsYXlvdXQnID0+ICdqb29tbGEuZm9ybS5maWVsZC5saXN0LWZhbmN5LXNlbGVjdCcNCgldKTsNCg0KCS8vIEJ1aWxkIGFuZCBhcHBlbmQgdGFyZ2V0IGZpZWxkIFhNTCB0byB0aGUgY2hpbGQgZm9ybQ0KCWFwcGVuZEZpZWxkVG9Gb3JtKCRjaGlsZEZvcm0sIFsNCgkJJ3R5cGUnID0+ICd0YXJnZXRmaWVsZHMnLA0KCQknbmFtZScgPT4gJ3RhcmdldCcsDQoJCSdsYWJlbCcgPT4gSnVzdFRFWFQ6Ol8oJ1N5c3RlbSBUYXJnZXQgRmllbGRzJyksDQoJCSdkZXNjcmlwdGlvbicgPT4gSnVzdFRFWFQ6Ol8oJ1RoZSBzeXN0ZW0gdGFyZ2V0IGRhdGFiYXNlIGZpZWxkcy4nKSwNCgkJJ21lc3NhZ2UnID0+IEp1c3RURVhUOjpfKCdJbnB1dCBSZXF1aXJlZCcpLA0KCQknY2xhc3MnID0+ICdsaXN0X2NsYXNzJywNCgkJJ2xheW91dCcgPT4gJ2pvb21sYS5mb3JtLmZpZWxkLmxpc3QtZmFuY3ktc2VsZWN0Jw0KCV0pOw0KDQoJLy8gU2V0dXAgdGhlIHN1YmZvcm0gd2l0aCB0aGUgY29uc3RydWN0ZWQgWE1MDQoJJG1hcC0+c2V0dXAoJG1hcFhNTCwgJHZhbHVlcywgJ3ZkbV9pbXBvcnQnKTsNCn0=', '', '', 1, 9, '', 51, '', 'a51be5b8-9ec9-43de-9dd9-f739c8b39288');
--
-- Dumping data for table `#__componentbuilder_dynamic_get`
@@ -2336,7 +2343,7 @@ INSERT INTO `#__componentbuilder_layout` (`id`, `add_php_view`, `alias`, `descri
INSERT INTO `#__componentbuilder_dynamic_get` (`id`, `add_php_after_getitem`, `add_php_before_getitem`, `add_php_after_getitems`, `add_php_before_getitems`, `add_php_getlistquery`, `php_after_getitem`, `php_before_getitem`, `php_before_getitems`, `php_getlistquery`, `php_after_getitems`, `pagination`, `addcalculation`, `db_selection`, `db_table_main`, `filter`, `getcustom`, `gettype`, `global`, `join_db_table`, `join_view_table`, `main_source`, `name`, `order`, `php_calculation`, `php_custom_get`, `view_selection`, `view_table_main`, `where`, `php_router_parse`, `group`, `params`, `published`, `version`, `hits`, `ordering`, `guid`) VALUES
(36, '', '', 1, '', '', '', '', '', '', 'CQkvLyBkbyBhIHF1aWNrIGJ1aWxkIG9mIGFsbCBlZGl0IGxpbmtzIGxpbmtzDQoJCWlmIChpc3NldCgkaXRlbXMpICYmICRpdGVtcykNCgkJew0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRuciA9PiAmJGl0ZW0pDQoJCQl7DQoJCQkJJGNhbkRvID0gW1tbQ29tcG9uZW50XV1dSGVscGVyOjpnZXRBY3Rpb25zKCdsb29rJywkaXRlbSwnbG9va3MnKTsNCgkJCQlpZiAoJGNhbkRvLT5nZXQoJ2xvb2suZWRpdCcpKQ0KCQkJCXsNCgkJCQkJJGl0ZW0tPmVkaXRMaW5rID0gJzxiciAvPjxiciAvPjxhIGNsYXNzPSJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnkgdWstd2lkdGgtMS0xIiBocmVmPSInOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gSm9vbWxhX19fZDRjNzYwOTlfNGMzMl80MDhhXzg3MDFfZDBhNzI0NDg0ZGZkX19fUG93ZXI6Ol8oJ2luZGV4LnBocD9vcHRpb249Y29tX1tbW2NvbXBvbmVudF1dXSZ2aWV3PWxvb2smdGFzaz1sb29rLmVkaXQmaWQ9JyAuICRpdGVtLT5pZCk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnIj48aSBjbGFzcz0idWstaWNvbi1wZW5jaWwiPjwvaT48c3BhbiBjbGFzcz0idWstaGlkZGVuLXNtYWxsIj4nOw0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgLj0gVGV4dDo6XygnRWRpdCBMb29rJyk7DQoJCQkJCSRpdGVtLT5lZGl0TGluayAuPSAnPC9zcGFuPjwvYT4nOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQkkaXRlbS0+ZWRpdExpbmsgPSAnJzsNCgkJCQl9DQoJCQl9DQoJCX0=', 1, '', '', '', '{}', '', 2, '{}', '{}', '{}', 1, 'Looks', '{\"order0\":{\"table_key\":\"a.name\",\"direction\":\"ASC\"}}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"}}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 14, '', 13, '32b3ae7d-8aa8-47f1-ab2e-30076ddaa029'),
-(39, '', '', '', '', '', '', '', '', '', '', 1, '', '', '', '{\"filter0\":{\"filter_type\":1,\"state_key\":\"id\",\"operator\":1,\"table_key\":\"a.id\"}}', '', 1, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"595ba2c9-21fa-43a4-9af7-93c9cfb21b82\",\"row_type\":2,\"as\":\"d\",\"type\":1,\"on_field\":\"a.guid\",\"operator\":1,\"join_field\":\"d.entity\",\"selection\":\"d.email AS email\\r\\nd.mobile_phone AS mobile_phone\\r\\nd.dateofbirth AS dateofbirth\\r\\nd.website AS website\"}}', 1, 'Looking', '{}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 16, '', '', '98e6ea56-0911-4d89-b1f4-8f0bb1e4aa5a'),
+(39, '', '', '', '', '', '', '', '', '', '', 1, '', '', '', '{\"filter0\":{\"filter_type\":1,\"state_key\":\"id\",\"operator\":1,\"table_key\":\"a.id\"}}', '', 1, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"595ba2c9-21fa-43a4-9af7-93c9cfb21b82\",\"row_type\":2,\"as\":\"d\",\"type\":1,\"on_field\":\"a.guid\",\"operator\":1,\"join_field\":\"d.entity\",\"selection\":\"d.email AS email\\r\\nd.mobile_phone AS mobile_phone\\r\\nd.dateofbirth AS dateofbirth\\r\\nd.website AS website\"}}', 1, 'Looking', '{}', '', '', 'a.*', 'c1053952-8a84-4398-aef1-41726f7c0043', '{}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 17, '', '', '98e6ea56-0911-4d89-b1f4-8f0bb1e4aa5a'),
(139, '', '', '', '', '', '', '', '', '', '', 1, '', '', '', '{}', '', 1, '{}', '{}', '{}', 3, 'Item Importer', '{}', '', 'CQkJCSRndWlkID0gU3VwZXJfX180N2E2MzcyOF9jZDVkXzRkNTNfOTljZl8yNDA5YmQxYzc0NGNfX19Qb3dlcjo6Z2V0KCdbW1tjb21wb25lbnRdXV1faW1wb3J0ZXJfZ3VpZCcsIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OmdldCgpKTsNCgkJCQkkZmlsZV90eXBlID0gU3VwZXJfX185ZDc2YjhkY18zODgzXzQ3NTVfYjExY18xMzFkMTljYThhNTNfX19Qb3dlcjo6XygnTG9hZCcpLT52YWx1ZShbJ2EuZ3VpZCcgPT4gJ2d1aWQnXSwgWydhJyA9PiAnZmlsZV90eXBlJ10sIFsndGFyZ2V0JyA9PiBbJ3ZhbHVlJyA9PiAnJSJbW1tzdmlld11dXSIlJywgJ29wZXJhdG9yJyA9PiAnTElLRSddXSk7DQoNCgkJCQkkZGF0YSA9IChvYmplY3QpIFsNCgkJCQkJJ2d1aWQnID0+ICRndWlkLA0KCQkJCQknZmlsZV90eXBlJyA9PiAkZmlsZV90eXBlDQoJCQkJXTs=', '', '', '{}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 3, '', 58, 'ebfab0ae-d368-4d2a-807b-c9d2d0809a60'),
(140, '', '', '', '', '', '', '', '', '', '', 1, '', '', '', '{}', 'getMessages', 3, '{}', '{}', '{}', 1, 'ImportLogMessages', '{}', '', '', 'a.message AS message\r\na.message_status AS message_status', 'ab2bbdfc-c0a0-4ffc-9556-67d5af8bec64', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"},\"where1\":{\"table_key\":\"a.entity_type\",\"operator\":1,\"value_key\":\"$entity_type\"},\"where2\":{\"table_key\":\"a.entity\",\"operator\":1,\"value_key\":\"$entity\"}}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 1, '', 59, 'c3542e52-cba1-42de-9ffa-0919c0082285'),
(141, 1, '', 1, '', '', '', '', '', '', 'CQlpZiAoIWVtcHR5KCRpdGVtcykpDQoJCXsNCgkJCSRtb2RlbCA9IFN1cGVyX19fNjQwYjUzNTJfZmIwOV80MjVmX2EyNmVfY2Q0NGVkYTAzZjE1X19fUG93ZXI6OmdldE1vZGVsKCdpdGVtc19pbXBvcnRfcXVldWUnKTsNCgkJCSRudW1iZXIgPSBjb3VudCgkaXRlbXMpOw0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KCQkJew0KCQkJCSRpdGVtLT50YXJnZXQgPSAnaXRlbV9pbXBvcnQnOw0KCQkJCSRpdGVtLT5pbXBvcnRfc3RhdHVzID0gVGV4dDo6XygkbW9kZWwtPnNlbGVjdGlvblRyYW5zbGF0aW9uKCRpdGVtLT5pbXBvcnRfc3RhdHVzLCAnaW1wb3J0X3N0YXR1cycpKTsNCgkJCQkkaXRlbS0+Y3JlYXRlZCA9IFN1cGVyX19fOTkzZmU5MTNfOGUzNl80ODAwX2E1ZjdfNTQ0YWE3MjhlZTQ4X19fUG93ZXI6OmZhbmN5RGF0ZSgkaXRlbS0+Y3JlYXRlZCk7DQoJCQkJJGl0ZW0tPm51bWJlciA9ICRudW1iZXI7DQoJCQkJJG51bWJlci0tOw0KCQkJfQ0KCQl9', 1, '', '', '', '{\"filter0\":{\"filter_type\":2,\"state_key\":\"$this->user->id\",\"operator\":1,\"table_key\":\"a.created_by\"}}', 'getQueue', 4, '{}', '{}', '{\"join_view_table0\":{\"view_table\":\"224eb9c7-8b40-48cf-bf77-2afa291fd54a\",\"row_type\":1,\"as\":\"f\",\"type\":1,\"on_field\":\"a.file\",\"operator\":1,\"join_field\":\"f.guid\",\"selection\":\"f.name AS file_name\"}}', 1, 'Item Import Queue', '{\"order0\":{\"table_key\":\"a.id\",\"direction\":\"DESC\"}}', '', '', 'a.import_status AS import_status\r\na.created AS created\r\na.guid AS guid', 'a9f19a16-fadb-44ea-a9b6-41130aad05ec', '{\"where0\":{\"table_key\":\"a.published\",\"operator\":1,\"value_key\":\"1\"}}', '', '{}', '{\"dynamic_get_headers\":{\"add_site_view_model\":\"0\",\"site_view_model\":\"\",\"power_site_view_model\":[],\"add_site_view_html\":\"0\",\"site_view_html\":\"\",\"power_site_view_html\":[],\"add_site_view\":\"0\",\"site_view\":\"\",\"power_site_view\":[],\"add_site_view_controller\":\"0\",\"site_view_controller\":\"\",\"power_site_view_controller\":[],\"add_site_views_model\":\"0\",\"site_views_model\":\"\",\"power_site_views_model\":[],\"add_site_views_html\":\"0\",\"site_views_html\":\"\",\"power_site_views_html\":[],\"add_site_views\":\"0\",\"site_views\":\"\",\"power_site_views\":[],\"add_site_views_controller\":\"0\",\"site_views_controller\":\"\",\"power_site_views_controller\":[],\"add_custom_admin_view_model\":\"0\",\"custom_admin_view_model\":\"\",\"power_custom_admin_view_model\":[],\"add_custom_admin_view_html\":\"0\",\"custom_admin_view_html\":\"\",\"power_custom_admin_view_html\":[],\"add_custom_admin_view\":\"0\",\"custom_admin_view\":\"\",\"power_custom_admin_view\":[],\"add_custom_admin_view_controller\":\"0\",\"custom_admin_view_controller\":\"\",\"power_custom_admin_view_controller\":[],\"add_custom_admin_views_model\":\"0\",\"custom_admin_views_model\":\"\",\"power_custom_admin_views_model\":[],\"add_custom_admin_views_html\":\"0\",\"custom_admin_views_html\":\"\",\"power_custom_admin_views_html\":[],\"add_custom_admin_views\":\"0\",\"custom_admin_views\":\"\",\"power_custom_admin_views\":[],\"add_custom_admin_views_controller\":\"0\",\"custom_admin_views_controller\":\"\",\"power_custom_admin_views_controller\":[],\"add_ajax_model\":\"0\",\"ajax_model\":\"\",\"power_ajax_model\":[]}}', 1, 8, '', 60, '0ac7277b-8f9f-4119-b22b-26f8c22e988b');
@@ -2358,52 +2365,63 @@ INSERT INTO `#__componentbuilder_custom_code` (`id`, `code`, `component`, `comme
(398, 'CQlIdG1sOjpfKCdzY3JpcHQnLCAnbWVkaWEvY29tX1tbW2NvbXBvbmVudF1dXS91aWtpdC12My9qcy91aWtpdC5taW4uanMnLCBbJ3ZlcnNpb24nID0+ICdhdXRvJ10pOw0KCQlIdG1sOjpfKCdzY3JpcHQnLCAnbWVkaWEvY29tX1tbW2NvbXBvbmVudF1dXS91aWtpdC12My9qcy91aWtpdC1pY29ucy5taW4uanMnLCBbJ3ZlcnNpb24nID0+ICdhdXRvJ10pOw0KCQlIdG1sOjpfKCdzY3JpcHQnLCAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3ZkbS1pby91aWtpdEAzLjAuMC9kaXN0L2pzL3ZkbS5taW4uanMnLCBbJ3ZlcnNpb24nID0+ICdhdXRvJ10pOw0KCQlIdG1sOjpfKCdzdHlsZXNoZWV0JywgJ21lZGlhL2NvbV9bW1tjb21wb25lbnRdXV0vdWlraXQtdjMvY3NzL3Vpa2l0Lm1pbi5jc3MnLCBbJ3ZlcnNpb24nID0+ICdhdXRvJ10pOw==', '', 1, '', 'addUikitThreeToAdminViews', '', '', '', 'addUikitThreeToAdminViews', 2, '', '', '', 1, '2024-09-10 01:03:38', '2024-09-16 18:12:10', 3, '', 216),
(400, 'CQkJLy8gR2V0IEFwcGxpY2F0aW9uIG9iamVjdA0KCQkJJHRoaXMtPmFwcCA/Pz0gSm9vbWxhX19fMzk0MDMwNjJfODRmYl80NmUwX2JhYzRfMDAyM2Y3NjZlODI3X19fUG93ZXI6OmdldEFwcGxpY2F0aW9uKCk7DQoJCQkkdGhpcy0+YXBwLT5lbnF1ZXVlTWVzc2FnZSgnPGgzPlVubG9jayB0aGUgUG93ZXIgb2YgSm9vbWxhISBEZXZlbG9wbWVudDwvaDM+PHA+Q3VyaW91cyBhYm91dCBob3cgdGhpcyA8Yj5bW1thcmcwXV1dPC9iPiBjb21wb25lbnQgd2FzIGJ1aWx0PyBEaXNjb3ZlciB0aGUgcG93ZXJmdWwgSm9vbWxhISBDb21wb25lbnQgQnVpbGRlciAoPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJKb29tbGEhIENvbXBvbmVudCBCdWlsZGVyIj5KQ0I8L2E+KSwgYSB0b29sIHRoYXQgc2ltcGxpZmllcyBhbmQgZW5oYW5jZXMgY29tcG9uZW50IGRldmVsb3BtZW50LiBKb2luIHVzIG9uIDxhIGhyZWY9Imh0dHBzOi8vZ2l0LnZkbS5kZXYvam9vbWxhIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9Ikpvb21sYSEgQ29tcG9uZW50IEJ1aWxkZXIiPkdJVkVEPC9hPiB0byBleHBsb3JlIG1vcmUgYW5kIHNlZSBob3cgeW91IGNhbiBjcmVhdGUgeW91ciBvd24gY3VzdG9tIGNvbXBvbmVudHMuIFRoZSBmdXR1cmUgb2YgPGEgaHJlZj0iaHR0cDovL3ZkbS5iei9jb21wb25lbnQtYnVpbGRlciIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJKb29tbGEgQ29tcG9uZW50IEJ1aWxkZXIiPkpvb21sYSEgRGV2ZWxvcG1lbnQ8L2E+IHN0YXJ0cyBoZXJlITwvcD4nLCAnSW5mbycpOw0K', '', 1, '', 'unlockThePowerOfJoomlaDevelopment', '', '', '', 'Unlock the Power of Joomla! Development', 2, '', '', '', 1, '2024-09-16 00:00:42', '2024-09-16 16:17:20', 5, '', 218),
(411, 'CS8qKg0KCSAqIFRoZSBTcHJlYWRzaGVldCBIZWFkZXJzDQoJICoNCgkgKiBAdmFyICAgYXJyYXkNCgkgKiBAc2luY2UgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RhdGljIGFycmF5ICRTcHJlYWRzaGVldEhlYWRlcnMgPSBbXTsNCg0KCS8qKg0KCSAqIFRoZSBJdGVtIEltcG9ydCBGaWVsZHMNCgkgKg0KCSAqIEB2YXIgICBhcnJheQ0KCSAqIEBzaW5jZSA1LjAuMg0KCSAqLw0KCXByb3RlY3RlZCBzdGF0aWMgYXJyYXkgJEl0ZW1JbXBvcnRGaWVsZHMgPSBbXTsNCg0KCS8qKg0KCSAqIEdldCB0aGUgbGlzdCBvZiBoZWFkZXJzIHRvIHNob3cgaW4gY29sdW1uIGZpZWxkDQoJICoNCgkgKiBAcmV0dXJuICBhcnJheSAgVGhlIGxpc3Qgb2YgaGVhZGVycw0KCSAqIEBzaW5jZSAgIDUuMC4yDQoJICovDQoJcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRTcHJlYWRzaGVldEhlYWRlcnMoKTogYXJyYXkNCgl7DQoJCSRlbmRDb2x1bW4gPSAnREEnOw0KCQkkY29sdW1uID0gJ0EnOw0KCQkkb3B0aW9ucyA9IFtdOw0KCQl3aGlsZSAoJGNvbHVtbiAhPT0gJGVuZENvbHVtbikNCgkJew0KCQkJJG9wdGlvbnNbJGNvbHVtbl0gPSBzZWxmOjpnZXRTcHJlYWRzaGVldEhlYWRlcigkY29sdW1uKTsNCgkJCSRjb2x1bW4gPSArKyRjb2x1bW47DQoJCX0NCgkJcmV0dXJuICRvcHRpb25zOw0KCX0NCg0KCS8qKg0KCSAqIEdldCB0aGUgaGVhZGVyIGNvbHVtbiB2YWx1ZSAobmFtZSkNCgkgKg0KCSAqIEByZXR1cm4gIHN0cmluZyAgVGhlIGhlYWRlciB2YWx1ZQ0KCSAqIEBzaW5jZSAgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBnZXRTcHJlYWRzaGVldEhlYWRlcihzdHJpbmcgJGNvbHVtbik6IHN0cmluZw0KCXsNCgkJcmV0dXJuIHNlbGY6OiRTcHJlYWRzaGVldEhlYWRlcnNbJGNvbHVtbl0gPz8gJGNvbHVtbjsNCgl9DQoNCgkvKioNCgkgKiBTZXQgdGhlIGhlYWRlciBjb2x1bW4gdmFsdWVzDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICogQHNpbmNlICAgNS4wLjINCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldFNwcmVhZHNoZWV0SGVhZGVycyhhcnJheSAkaGVhZGVycyk6IHZvaWQNCgl7DQoJCXNlbGY6OiRTcHJlYWRzaGVldEhlYWRlcnMgPSAkaGVhZGVyczsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGltcG9ydCBmaWVsZHMgZnJvbSB0aGUgaXRlbSBlbnRpdHkuDQoJICoNCgkgKiBAcGFyYW0gYm9vbCAgJHNpbXBsZSBUaGUgc3dpdGNoIHRvIHJldHVybiBzaW1wbGUgbGlzdCAodG8gbGVhdmUgb3V0IHRoZSBsaW5rIGRhdGEpDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5IFJldHVybnMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2hlcmUgdGhlIGtleSBpcyB0aGUgdGFibGUuY29sdW1uIG5hbWUgYW5kIHRoZSB2YWx1ZSANCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHRoZSBsYWJlbCBvZiB0aGUgY29sdW1uIChwb3RlbnRpYWxseSBpbmNsdWRpbmcgYWRkaXRpb25hbCBpbmZvcm1hdGlvbikuDQoJICogQHNpbmNlICA1LjAuMg0KCSAqLw0KCXB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0SXRlbUltcG9ydEZpZWxkcyhib29sICRzaW1wbGUgPSBmYWxzZSk6IGFycmF5DQoJew0KCQlpZiAoIWVtcHR5KHNlbGY6OiRJdGVtSW1wb3J0RmllbGRzKSkNCgkJew0KCQkJcmV0dXJuIHNlbGY6OiRJdGVtSW1wb3J0RmllbGRzOw0KCQl9DQpbW1thcmcwXV1dDQoJCXNlbGY6OiRJdGVtSW1wb3J0RmllbGRzID0gc2VsZjo6Z2V0SW1wb3J0RmllbGRzKCRwYXJlbnQsICR0YWJsZXMsICRzaW1wbGUpOw0KDQoJCXJldHVybiBzZWxmOjokSXRlbUltcG9ydEZpZWxkczsNCgl9DQoNCgkvKioNCgkgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHRhcmdldCBmaWVsZHMgZnJvbSB0aGUgc3BlY2lmaWVkIHRhYmxlcywgd2l0aCBhcHByb3ByaWF0ZSBmaWx0ZXJpbmcgYmFzZWQgb24NCgkgKiBydWxlcyBsaWtlIGlnbm9yaW5nIGNlcnRhaW4gY29sdW1ucywgbGlua2luZyBydWxlcywgYW5kIHVzZXIgcm9sZXMuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRwYXJlbnQgVGhlIHBhcmVudCBlbnRpdHkgdG8gY2hlY2sgZm9yIHVwc3RyZWFtIGxpbmtpbmcuDQoJICogQHBhcmFtIGFycmF5ICAkdGFibGVzIEFuIGFzc29jaWF0aXZlIGFycmF5IG9mIHRhYmxlcyBhbmQgd2hldGhlciB0byBhZGQgR1VJRCBmb3IgZWFjaCB0YWJsZS4gDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUga2V5cyByZXByZXNlbnQgdGFibGUgbmFtZXMsIGFuZCB0aGUgdmFsdWVzIGFyZSBib29sZWFucyB0byBpbmRpY2F0ZQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hldGhlciB0byBpbmNsdWRlIHRoZSAnZ3VpZCcgY29sdW1uLg0KCSAqIEBwYXJhbSBib29sICAkc2ltcGxlIFRoZSBzd2l0Y2ggdG8gcmV0dXJuIHNpbXBsZSBsaXN0ICh0byBsZWF2ZSBvdXQgdGhlIGxpbmsgZGF0YSkNCgkgKg0KCSAqIEByZXR1cm4gYXJyYXkgUmV0dXJucyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aGVyZSB0aGUga2V5IGlzIHRoZSB0YWJsZS5jb2x1bW4gbmFtZSBhbmQgdGhlIHZhbHVlIA0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdGhlIGxhYmVsIG9mIHRoZSBjb2x1bW4gKHBvdGVudGlhbGx5IGluY2x1ZGluZyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uKS4NCgkgKiBAc2luY2UgIDUuMC4yDQoJICovDQoJcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBnZXRJbXBvcnRGaWVsZHMoc3RyaW5nICRwYXJlbnQsIGFycmF5ICR0YWJsZXMsIGJvb2wgJHNpbXBsZSA9IGZhbHNlKTogYXJyYXkNCgl7DQoJCS8vIEdldCB0aGUgY3VycmVudCB1c2VyIG9iamVjdC4NCgkJJHVzZXIgPSBKb29tbGFfX18zOTQwMzA2Ml84NGZiXzQ2ZTBfYmFjNF8wMDIzZjc2NmU4MjdfX19Qb3dlcjo6Z2V0VXNlcigpOw0KDQoJCSRpZ25vcmUgPSBbXTsNCgkJJHRhcmdldF9maWVsZHMgPSBbXTsNCg0KCQkvLyBMb29wIHRocm91Z2ggZWFjaCB0YWJsZSBwcm92aWRlZC4NCgkJZm9yZWFjaCAoJHRhYmxlcyBhcyAkdGFibGUgPT4gJGFkZF9ndWlkKQ0KCQl7DQoJCQkvLyBSZXRyaWV2ZSB0aGUgZmllbGRzIGZvciB0aGUgdGFibGUuIElmIG5vIGZpZWxkcywgZGVmYXVsdCB0byBhbiBlbXB0eSBhcnJheS4NCgkJCSRpdGVtcyA9IFN1cGVyX19fZmY4ZDVmZGJfMmQxZl80MTc4X2JkMThfYTQzYjhlZmQxMDY4X19fUG93ZXI6Ol8oJ1RhYmxlJyktPmZpZWxkcygkdGFibGUsIGZhbHNlLCB0cnVlKSA/PyBbXTsNCg0KCQkJLy8gUHJvY2VzcyBlYWNoIGZpZWxkIGlmIHRoZSB0YWJsZSBjb250YWlucyBhbnkgZmllbGRzLg0KCQkJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKQ0KCQkJew0KCQkJCSRmaWVsZF9uYW1lID0gJGl0ZW1bJ25hbWUnXTsNCg0KCQkJCS8vIElnbm9yZSBkb3duc3RyZWFtIGxpbmtpbmcgY29sdW1ucy4NCgkJCQlpZiAoaXNzZXQoJGlnbm9yZVskdGFibGVdWyRmaWVsZF9uYW1lXSkpDQoJCQkJew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQkvLyBTa2lwIGFkZGluZyB0aGUgJ2d1aWQnIGZpZWxkIGlmIHRoZSB0YWJsZSBkb2Vzbid0IHJlcXVpcmUgaXQuDQoJCQkJaWYgKCRmaWVsZF9uYW1lID09PSAnZ3VpZCcgJiYgISRhZGRfZ3VpZCkNCgkJCQl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCg0KCQkJCS8vIFNraXAgZmllbGRzIFsgYWRkIG1vcmUgZmllbGQgeW91IHdvdWxkIGxpa2UgdG8gc2tpcCBpbiBhbGwgdGFyZ2V0ZWQgdGFibGVzIF0NCgkJCQlpZiAoW1tbYXJnMV1dXSRmaWVsZF9uYW1lID09PSAnYWNjZXNzJyB8fA0KCQkJCQkkZmllbGRfbmFtZSA9PT0gJ21ldGFkYXRhJyB8fA0KCQkJCQkkZmllbGRfbmFtZSA9PT0gJ21ldGFrZXknIHx8DQoJCQkJCSRmaWVsZF9uYW1lID09PSAnbWV0YWRlc2MnICkNCgkJCQl7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCg0KCQkJCS8vIEluaXRpYWxpemUgYWRkaXRpb25hbCBpbmZvIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBmaWVsZCBsYWJlbC4NCgkJCQkkaW5mbyA9ICcgLSAnIC4gJHRhYmxlIC4gJy0+JyAuICRmaWVsZF9uYW1lIC4gJzonIC4gc3RydG9sb3dlcigkaXRlbVsnZGInXVsndHlwZSddKTsNCg0KCQkJCS8vIEhhbmRsZSBsaW5raW5nIGluZm9ybWF0aW9uIGlmIGF2YWlsYWJsZS4NCgkJCQlpZiAoIWVtcHR5KCRpdGVtWydsaW5rJ11bJ2VudGl0eSddKSAmJg0KCQkJCQkhZW1wdHkoJGl0ZW1bJ2xpbmsnXVsndmFsdWUnXSkgJiYNCgkJCQkJIWVtcHR5KCRpdGVtWydsaW5rJ11bJ2tleSddKSkNCgkJCQl7DQoJCQkJCQ0KCQkJCQkvLyBJZ25vcmUgdXBzdHJlYW0gbGlua2luZyBjb2x1bW5zLg0KCQkJCQlpZiAoaXNzZXQoJGlnbm9yZVskaXRlbVsnbGluayddWydlbnRpdHknXV1bJGl0ZW1bJ2xpbmsnXVsna2V5J11dKSkNCgkJCQkJew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0NCg0KCQkJCQkvLyBTa2lwIHBhcmVudCBsaW5rZXJzIGZvciBub24tcGFyZW50IHRhYmxlcy4NCgkJCQkJaWYgKCR0YWJsZSAhPT0gJHBhcmVudCAmJiAkaXRlbVsnbGluayddWydlbnRpdHknXSA9PT0gJHBhcmVudCkNCgkJCQkJew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0NCg0KCQkJCQkkaW5mbyAuPSAnID4+PiAnIC4gJGl0ZW1bJ2xpbmsnXVsnZW50aXR5J10gLiAnLT5bJyAuICRpdGVtWydsaW5rJ11bJ3ZhbHVlJ10gLiAnXS0+JyAuICRpdGVtWydsaW5rJ11bJ2tleSddOw0KCQkJCQkkaWdub3JlWyRpdGVtWydsaW5rJ11bJ2VudGl0eSddXSA9ICRpdGVtWydsaW5rJ11bJ2tleSddOw0KCQkJCX0NCg0KCQkJCWlmICgkc2ltcGxlKQ0KCQkJCXsNCgkJCQkJJHRhcmdldF9maWVsZHNbJHRhYmxlIC4gJy4nIC4gJGZpZWxkX25hbWVdID0gVGV4dDo6XygkaXRlbVsnbGFiZWwnXSk7DQoJCQkJfQ0KCQkJCWVsc2UNCgkJCQl7DQoJCQkJCS8vIEZvciBvdGhlciB1c2VycywgYXBwZW5kIHRoZSBhZGRpdGlvbmFsIGZpZWxkIGluZm8uDQoJCQkJCSR0YXJnZXRfZmllbGRzWyR0YWJsZSAuICcuJyAuICRmaWVsZF9uYW1lXSA9IFRleHQ6Ol8oJGl0ZW1bJ2xhYmVsJ10pIC4gJGluZm87DQoJCQkJfQ0KDQoJCQkJLy8gTWFyayB0aGUgY3VycmVudCBmaWVsZCBhcyBpZ25vcmVkIGZvciBmdXR1cmUgY2hlY2tzLg0KCQkJCSRpZ25vcmVbJHRhYmxlXVskZmllbGRfbmFtZV0gPSB0cnVlOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuICR0YXJnZXRfZmllbGRzOw0KCX0NCg0KCS8qKg0KCSAqIFJldHJpZXZlcyBhIGR5bmFtaWMgdmFsdWVzIG9mIHRoZSBpbXBvcnQgc3ViZm9ybSBmb3IgaXRlbSBtYXBwaW5nDQoJICoNCgkgKiBAcmV0dXJuIGFycmF5fG51bGwgdGhlIHZhbHVlcw0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEl0ZW1JbXBvcnRTdWJmb3JtVmFsdWVzKCk6ID9hcnJheQ0KCXsNCgkJJHN1YmZvcm1fbmFtZSA9ICdtYXBzJzsNCgkJJHZhbHVlcyA9IFtdOw0KCQkkaGVhZGVycyA9IHNlbGY6OmdldFNwcmVhZHNoZWV0SGVhZGVycygpOw0KCQkkdGFyZ2V0X2ZpZWxkcyA9IHNlbGY6OmdldEl0ZW1JbXBvcnRGaWVsZHMoKTsNCgkJJG51bWJlciA9IDA7DQoJCWZvcmVhY2ggKCRoZWFkZXJzIGFzICRoZWFkZXIgPT4gJHRleHQpDQoJCXsNCgkJCSR2YWx1ZXNbInskc3ViZm9ybV9uYW1lfXskbnVtYmVyfSJdID0gWydjb2x1bW4nID0+ICRoZWFkZXIsICd0YXJnZXQnID0+IHNlbGY6OmdldEltcG9ydEZpZWxkTWF0Y2goJHRleHQsICR0YXJnZXRfZmllbGRzKV07DQoJCQkkbnVtYmVyKys7DQoJCX0NCgkJcmV0dXJuICR2YWx1ZXM7DQoJfQ0KDQoJLyoqDQoJICogTWF0Y2hlcyBhIG5hbWUgdmFsdWUgYWdhaW5zdCB0aGUga2V5cyBhbmQgdmFsdWVzIG9mIGEgZ2l2ZW4gYXJyYXkuDQoJICogVGhlIGtleSBtdXN0IG1hdGNoIHN0cmljdGx5ICg9PT0pIGFuZCB0aGUgdmFsdWUgbXVzdCBzdGFydCB3aXRoIHRoZSBuYW1lIChjYXNlLWluc2Vuc2l0aXZlKS4NCgkgKg0KCSAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgICBUaGUgbmFtZSB0byBzZWFyY2ggZm9yLg0KCSAqIEBwYXJhbSBhcnJheSAgJGZpZWxkcyBUaGUgYXJyYXkgb2YgZmllbGRzIHRvIG1hdGNoIGFnYWluc3QuIFRoZSBhcnJheSBzaG91bGQgaGF2ZSBrZXlzIGFuZCB2YWx1ZXMuDQoJICoNCgkgKiBAcmV0dXJuIHN0cmluZ3xudWxsIFJldHVybnMgdGhlIGtleSBpZiBhIG1hdGNoIGlzIGZvdW5kLCBvciBudWxsIGlmIG5vIG1hdGNoIGlzIGZvdW5kLg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGdldEltcG9ydEZpZWxkTWF0Y2goc3RyaW5nICRuYW1lLCBhcnJheSAkZmllbGRzKTogc3RyaW5nDQoJew0KCQlmb3JlYWNoICgkZmllbGRzIGFzICRrZXkgPT4gJHZhbHVlKQ0KCQl7DQoJCQkvLyBDaGVjayBpZiB0aGUgbmFtZSBzdHJpY3RseSBtYXRjaGVzIHRoZSBrZXkNCgkJCWlmICgka2V5ID09PSAkbmFtZSkNCgkJCXsNCgkJCQlyZXR1cm4gJGtleTsNCgkJCX0NCg0KCQkJLy8gQ2hlY2sgaWYgdGhlIG5hbWUgc3RhcnRzIHdpdGggdGhlIHZhbHVlIChjYXNlLWluc2Vuc2l0aXZlKQ0KCQkJaWYgKHNlbGY6OnN0YXJ0c1dpdGhJZ25vcmVDYXNlKCR2YWx1ZSwgJG5hbWUgLiAnICcpKQ0KCQkJew0KCQkJCXJldHVybiAka2V5Ow0KCQkJfQ0KCQl9DQoNCgkJLy8gUmV0dXJuIG51bGwgaWYgbm8gbWF0Y2ggaXMgZm91bmQNCgkJcmV0dXJuICcnOw0KCX0NCg0KCS8qKg0KCSAqIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCBhbm90aGVyIHN0cmluZyAoY2FzZS1pbnNlbnNpdGl2ZSkuDQoJICoNCgkgKiBAcGFyYW0gc3RyaW5nICRoYXlzdGFjayAgVGhlIHN0cmluZyB0byBjaGVjay4NCgkgKiBAcGFyYW0gc3RyaW5nICRuZWVkbGUgICAgVGhlIHN0cmluZyB0byBtYXRjaCB0aGUgYmVnaW5uaW5nLg0KCSAqDQoJICogQHJldHVybiBib29sIFJldHVybnMgdHJ1ZSBpZiAkbmVlZGxlIG1hdGNoZXMgdGhlIHN0YXJ0IG9mICRoYXlzdGFjaywgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqIEBzaW5jZSAgNS4wLjINCgkgKi8NCglwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIHN0YXJ0c1dpdGhJZ25vcmVDYXNlKHN0cmluZyAkaGF5c3RhY2ssIHN0cmluZyAkbmVlZGxlKTogYm9vbA0KCXsNCgkJcmV0dXJuIHN0cmlwb3MoJGhheXN0YWNrLCAkbmVlZGxlKSA9PT0gMDsNCgl9', '', 1, '', 'getItemImportFields', '', '', '', 'helper::getItemImportFields', 2, '', '', '', 1, '2025-02-17 10:49:13', '2025-02-21 14:30:41', 9, '', 227),
-(412, 'CS8qKg0KCSAqIE1ldGhvZCB0byBlZGl0IGFuIGV4aXN0aW5nIHJlY29yZC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGtleSAgICAgVGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSBVUkwgdmFyaWFibGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAkdXJsVmFyICBUaGUgbmFtZSBvZiB0aGUgVVJMIHZhcmlhYmxlIGlmIGRpZmZlcmVudCBmcm9tIHRoZSBwcmltYXJ5IGtleQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvbWV0aW1lcyByZXF1aXJlZCB0byBhdm9pZCByb3V0ZXIgY29sbGlzaW9ucykuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIGFjY2VzcyBsZXZlbCBjaGVjayBhbmQgY2hlY2tvdXQgcGFzc2VzLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxLjYNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZWRpdCgka2V5ID0gbnVsbCwgJHVybFZhciA9IG51bGwpDQoJew0KCQkvLyBmb3IgbW9kYWwgdGl0bGUga2V5IHNlbGVjdGlvbiAodW5pcXVlIGtleSB0byBkbyBtYXBwaW5nKQ0KCQkkdGl0bGVLZXkgPSAkdGhpcy0+aW5wdXQtPmdldCgndGl0bGVLZXknLCAnaWQnLCAnd29yZCcpOw0KCQkkZ3VpZCA9IG51bGw7DQoJCSR2YWx1ZSA9IG51bGw7DQoNCiAJCS8vIERldGVybWluZSB0aGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgZm9yIHRoZSBkYXRhLg0KCQlpZiAoZW1wdHkoJGtleSkpDQoJCXsNCgkJCSRtb2RlbCA9ICR0aGlzLT5nZXRNb2RlbCgpOw0KCQkJJHRhYmxlID0gJG1vZGVsLT5nZXRUYWJsZSgpOw0KCQkJJGtleSA9ICR0YWJsZS0+Z2V0S2V5TmFtZSgpOw0KCQl9DQoNCgkJaWYgKCR0aXRsZUtleSA9PT0gJ2d1aWQnKQ0KCQl7DQoJCQkkZ3VpZCA9ICR0aGlzLT5pbnB1dC0+Z2V0KCdndWlkJywgbnVsbCwgJ3N0cmluZycpOw0KCQl9DQoNCgkJaWYgKCRndWlkICE9PSBudWxsICYmIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OnZhbGlkKCRndWlkKSkNCgkJew0KCQkJJHZhbHVlID0gU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6aXRlbSgkZ3VpZCwgJyMjI3ZpZXcjIyMnLCAnYS4nIC4gJGtleSwgJyMjI2NvbXBvbmVudCMjIycpOw0KCQl9DQoNCgkJaWYgKCR2YWx1ZSAhPT0gbnVsbCkNCgkJew0KCQkJJHRoaXMtPmlucHV0LT5zZXQoJGtleSwgJHZhbHVlKTsNCgkJfQ0KDQoJCXJldHVybiBwYXJlbnQ6OmVkaXQoJGtleSwgJHVybFZhcik7DQoJfQ==', '', 1, '', 'formControllerEdit', '', '', '', 'FormController Edit Method', 2, '', '', '', 1, '2025-03-26 18:02:02', '2025-03-26 19:31:58', 5, '', 228);
+(412, 'CS8qKg0KCSAqIE1ldGhvZCB0byBlZGl0IGFuIGV4aXN0aW5nIHJlY29yZC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGtleSAgICAgVGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IG9mIHRoZSBVUkwgdmFyaWFibGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAkdXJsVmFyICBUaGUgbmFtZSBvZiB0aGUgVVJMIHZhcmlhYmxlIGlmIGRpZmZlcmVudCBmcm9tIHRoZSBwcmltYXJ5IGtleQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNvbWV0aW1lcyByZXF1aXJlZCB0byBhdm9pZCByb3V0ZXIgY29sbGlzaW9ucykuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIGFjY2VzcyBsZXZlbCBjaGVjayBhbmQgY2hlY2tvdXQgcGFzc2VzLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxLjYNCgkgKi8NCglwdWJsaWMgZnVuY3Rpb24gZWRpdCgka2V5ID0gbnVsbCwgJHVybFZhciA9IG51bGwpDQoJew0KCQkvLyBmb3IgbW9kYWwgdGl0bGUga2V5IHNlbGVjdGlvbiAodW5pcXVlIGtleSB0byBkbyBtYXBwaW5nKQ0KCQkkdGl0bGVLZXkgPSAkdGhpcy0+aW5wdXQtPmdldCgndGl0bGVLZXknLCAnaWQnLCAnd29yZCcpOw0KCQkkZ3VpZCA9IG51bGw7DQoJCSR2YWx1ZSA9IG51bGw7DQoNCiAJCS8vIERldGVybWluZSB0aGUgbmFtZSBvZiB0aGUgcHJpbWFyeSBrZXkgZm9yIHRoZSBkYXRhLg0KCQlpZiAoZW1wdHkoJGtleSkpDQoJCXsNCgkJCSRtb2RlbCA9ICR0aGlzLT5nZXRNb2RlbCgpOw0KCQkJJHRhYmxlID0gJG1vZGVsLT5nZXRUYWJsZSgpOw0KCQkJJGtleSA9ICR0YWJsZS0+Z2V0S2V5TmFtZSgpOw0KCQl9DQoNCgkJaWYgKCR0aXRsZUtleSA9PT0gJ2d1aWQnKQ0KCQl7DQoJCQkkZ3VpZCA9ICR0aGlzLT5pbnB1dC0+Z2V0KCdndWlkJywgbnVsbCwgJ3N0cmluZycpOw0KCQl9DQoNCgkJaWYgKCRndWlkICE9PSBudWxsICYmIFN1cGVyX19fOWM1MTNiYWZfYjI3OV80M2ZkX2FlMjlfYTU4NWM4Y2JjNGYwX19fUG93ZXI6OnZhbGlkKCRndWlkKSkNCgkJew0KCQkJJHZhbHVlID0gU3VwZXJfX185YzUxM2JhZl9iMjc5XzQzZmRfYWUyOV9hNTg1YzhjYmM0ZjBfX19Qb3dlcjo6aXRlbSgkZ3VpZCwgJyMjI3ZpZXcjIyMnLCAnYS4nIC4gJGtleSwgJyMjI2NvbXBvbmVudCMjIycpOw0KCQl9DQoNCgkJaWYgKCR2YWx1ZSAhPT0gbnVsbCkNCgkJew0KCQkJJHRoaXMtPmlucHV0LT5zZXQoJGtleSwgJHZhbHVlKTsNCgkJfQ0KDQoJCXJldHVybiBwYXJlbnQ6OmVkaXQoJGtleSwgJHVybFZhcik7DQoJfQ==', '', 1, '', 'formControllerEdit', '', '', '', 'FormController Edit Method', 2, '', '', '', 1, '2025-03-26 18:02:02', '2025-05-31 17:45:37', 7, '', 228);
+
+--
+-- Dumping data for table `#__componentbuilder_class_extends`
+--
+
+INSERT INTO `#__componentbuilder_class_extends` (`id`, `comment`, `extension_type`, `head`, `name`, `params`, `published`, `created`, `modified`, `version`, `guid`, `hits`, `ordering`) VALUES
+(1, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQp1c2UgSm9vbWxhXENNU1xQbHVnaW5cQ01TUGx1Z2luOw0K', 'CMSPlugin', '', 1, '2019-08-23 00:11:33', '2023-08-22 03:50:43', 5, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', '', 1),
+(2, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQoNCkpMb2FkZXI6OmltcG9ydCgnY29tcG9uZW50cy5jb21fZmllbGRzLmxpYnJhcmllcy5maWVsZHNsaXN0cGx1Z2luJywgSlBBVEhfQURNSU5JU1RSQVRPUik7DQo=', 'FieldsListPlugin', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:14:06', 3, '837cda37-d614-407f-ba60-9d4b8f3dfc1f', '', 1),
+(3, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQ29tcG9uZW50XENvbXBvbmVudEhlbHBlcjsNCg0KSkxvYWRlcjo6cmVnaXN0ZXIoJ0ZpbmRlckluZGV4ZXJBZGFwdGVyJywgSlBBVEhfQURNSU5JU1RSQVRPUiAuICcvY29tcG9uZW50cy9jb21fZmluZGVyL2hlbHBlcnMvaW5kZXhlci9hZGFwdGVyLnBocCcpOw0K', 'FinderIndexerAdapter', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:13:39', 2, 'e896fa8c-04b3-4edd-b681-fdd235945966', '', 1),
+(4, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQp1c2UgSm9vbWxhXERhdGFiYXNlXERhdGFiYXNlRHJpdmVyOw0KDQpKTG9hZGVyOjpyZWdpc3RlcignUHJpdmFjeVBsdWdpbicsIEpQQVRIX0FETUlOSVNUUkFUT1IgLiAnL2NvbXBvbmVudHMvY29tX3ByaXZhY3kvaGVscGVycy9wbHVnaW4ucGhwJyk7DQpKTG9hZGVyOjpyZWdpc3RlcignUHJpdmFjeVJlbW92YWxTdGF0dXMnLCBKUEFUSF9BRE1JTklTVFJBVE9SIC4gJy9jb21wb25lbnRzL2NvbV9wcml2YWN5L2hlbHBlcnMvcmVtb3ZhbC9zdGF0dXMucGhwJyk7DQo=', 'PrivacyPlugin', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:12:43', 2, '204d6d55-d4c7-4162-bd2c-39d19302b406', '', 1),
+(5, '', 'powers', '', 'Test', '', 1, '2025-06-01 15:14:55', '', 1, '87302571-8256-4f5d-8e56-2488d08c1762', '', 2);
--
-- Dumping data for table `#__componentbuilder_class_property`
--
INSERT INTO `#__componentbuilder_class_property` (`id`, `comment`, `default`, `extension_type`, `guid`, `joomla_plugin_group`, `name`, `visibility`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES
-(1, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', '', 'plugins', 'e8f306d8-a1c3-48ba-a60d-228e9e43dffe', 1, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(2, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', '', 'plugins', 'db09e83f-f2aa-4c34-aad4-faf3b7427d1d', 1, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(3, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'cc83a326-07a4-41d0-a456-4123eb77e655', 1, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(4, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '4c1d6d19-abcd-44ca-a5c9-6152cffe60b5', 2, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(5, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '4e33f512-26ea-40e8-a46b-211681043c35', 2, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(6, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'dd133fb2-2910-4825-bdcf-e498d00db6da', 2, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(7, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '7f3afb18-6b1e-4369-b77d-0dfc7c96bff2', 3, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(8, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'f7bb8460-aedb-4ed1-a1ed-d1ea837d5098', 3, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(9, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '6c3f8f39-3221-449f-9a83-67d8074a5b8e', 3, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(10, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'c718afe3-87d4-40ae-a435-7506beb05db8', 4, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(11, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'ee972dea-aa60-4620-aa76-2c8dda7548ae', 4, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(12, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '12ba4a00-8c2e-4ed9-ba1d-b5004700329b', 4, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(13, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '5caa1e3e-31ae-44e0-8266-1287d4df4078', 5, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(14, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '87c59578-1998-4bad-a356-0ee12502c364', 5, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(15, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '21fea07d-70a6-4521-bcac-ad4152265be5', 5, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(16, 'CS8qKgoJICogVGhlIHBsdWdpbiBpZGVudGlmaWVyLgoJICoKCSAqIEB2YXIgICAgc3RyaW5nCgkgKiBAc2luY2UgIDEuMC4wCgkgKi8=', 'J0Zvbyc=', 'plugins', '9a502457-0ac7-49c4-b6b9-c011b90fea86', 6, 'context', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(17, 'CS8qKgoJICogVGhlIGV4dGVuc2lvbiBuYW1lLgoJICoKCSAqIEB2YXIgICAgc3RyaW5nCgkgKiBAc2luY2UgIDEuMC4wCgkgKi8=', 'J2NvbV9mb28n', 'plugins', 'd6a07bca-06bc-49e5-af67-7cb11a7dc894', 6, 'extension', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(18, 'CS8qKgoJICogVGhlIHN1YmxheW91dCB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhlIHJlc3VsdHMuCgkgKgoJICogQHZhciAgICBzdHJpbmcKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'J2Zvbyc=', 'plugins', 'd0cef121-b4e8-4163-8d93-72c02f6639f5', 6, 'layout', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(19, 'CS8qKgoJICogVGhlIHR5cGUgb2YgY29udGVudCB0aGF0IHRoZSBhZGFwdGVyIGluZGV4ZXMuCgkgKgoJICogQHZhciAgICBzdHJpbmcKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'J0Zvbyc=', 'plugins', '7743bbb2-e3dc-4db1-a027-bc1ae3b757f9', 6, 'type_title', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(20, 'CS8qKgoJICogVGhlIHRhYmxlIG5hbWUuCgkgKgoJICogQHZhciAgICBzdHJpbmcKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'JyNfX2Zvbyc=', 'plugins', '708c7ab2-ec75-402e-a1c0-d575f61107a8', 6, 'table', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(21, 'CS8qKgoJICogTG9hZCB0aGUgbGFuZ3VhZ2UgZmlsZSBvbiBpbnN0YW50aWF0aW9uLgoJICoKCSAqIEB2YXIgICAgYm9vbGVhbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '9f2164ea-00e0-47ae-a534-2b0d1d29bb48', 6, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(22, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'e55f65a0-08f0-4ceb-a828-77b6917dd194', 7, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(23, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'b594bcf3-414b-45a1-8fbc-146b9d5fda84', 7, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(24, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'dd7e3273-c456-4757-a92f-c86a055b80ae', 7, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(25, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'c07c62e4-7c72-4d5f-bcdb-82b759bd1a17', 8, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(26, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '9b22b269-d057-47d4-a4e2-60daade09f57', 8, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(27, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '1236fe74-96fd-4a85-a7e9-252d86b430e2', 8, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(28, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', 'ef18d4d6-5d70-422d-bd4b-09b62b763bcf', 9, 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(29, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'd7b220a0-7c60-42dd-bad4-52c9bef79300', 9, 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(30, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'eb3b3b5f-2706-4ec4-a75c-6927dee5256a', 9, 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(31, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', '', 'plugins', '56cc0535-fd9e-4db9-93f7-9f0dc9ab2a58', 10, 'app', 'protected', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(32, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcgoJICogQHNpbmNlICAxLjAuMAoJICov', '', 'plugins', 'a89d86a3-08b0-49bb-a21c-24c04ee2a280', 10, 'db', 'protected', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(33, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'af756e64-0781-4f35-a6f3-2917ccd7ca4c', 10, 'autoloadLanguage', 'protected', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(34, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', '', 'plugins', '1bbc677b-592e-4c46-b7c9-ce763e5ce5a9', 11, 'app', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(35, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcgoJICogQHNpbmNlICAxLjAuMAoJICov', '', 'plugins', '9890d282-7c5e-48bd-a995-ff4a5b5838e7', 11, 'db', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(36, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'dde7ac75-11f9-4af6-b86c-d184d5fe7349', 11, 'autoloadLanguage', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(37, 'CS8qKgoJICogQXBwbGljYXRpb24gb2JqZWN0CgkgKgoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbgoJICogQHNpbmNlICAxLjAuMAoJICov', 'dHJ1ZQ==', 'plugins', '27ba206b-73a3-4e9e-93b5-9b6a774c4ae2', 12, 'app', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(38, 'CS8qKgoJICogRGF0YWJhc2Ugb2JqZWN0CgkgKgoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXIKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', 'e63761b1-30b6-44eb-b421-e29b744eaaf9', 12, 'db', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(39, 'CS8qKgoJICogQWZmZWN0cyBjb25zdHJ1Y3RvciBiZWhhdmlvci4gSWYgdHJ1ZSwgbGFuZ3VhZ2UgZmlsZXMgd2lsbCBiZSBsb2FkZWQgYXV0b21hdGljYWxseS4KCSAqCgkgKiBAdmFyICAgIGJvb2xlYW4KCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'dHJ1ZQ==', 'plugins', '437b3159-1408-4fa2-91b0-8b5e5b7527a3', 12, 'autoloadLanguage', 'protected', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 5, '', 1),
+(1, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', '', 'plugins', 'e8f306d8-a1c3-48ba-a60d-228e9e43dffe', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:26:49', 22, '', 1),
+(2, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', '', 'plugins', 'db09e83f-f2aa-4c34-aad4-faf3b7427d1d', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:26:55', 22, '', 1),
+(3, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'cc83a326-07a4-41d0-a456-4123eb77e655', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:27:36', 21, '', 1),
+(4, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '4c1d6d19-abcd-44ca-a5c9-6152cffe60b5', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:28:45', 21, '', 1),
+(5, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '4e33f512-26ea-40e8-a46b-211681043c35', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:28:03', 20, '', 1),
+(6, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'dd133fb2-2910-4825-bdcf-e498d00db6da', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:29:18', 20, '', 1),
+(7, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '7f3afb18-6b1e-4369-b77d-0dfc7c96bff2', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:30:55', 19, '', 1),
+(8, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'f7bb8460-aedb-4ed1-a1ed-d1ea837d5098', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:31:12', 19, '', 1),
+(9, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '6c3f8f39-3221-449f-9a83-67d8074a5b8e', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:31:39', 19, '', 1),
+(10, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'c718afe3-87d4-40ae-a435-7506beb05db8', '9d4e911a-866f-4363-a47e-fc63f219aa01', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:49:10', 19, '', 1),
+(11, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'ee972dea-aa60-4620-aa76-2c8dda7548ae', '9d4e911a-866f-4363-a47e-fc63f219aa01', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:49:57', 19, '', 1),
+(12, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '12ba4a00-8c2e-4ed9-ba1d-b5004700329b', '9d4e911a-866f-4363-a47e-fc63f219aa01', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:50:14', 19, '', 1),
+(13, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '5caa1e3e-31ae-44e0-8266-1287d4df4078', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:22:51', 20, '', 1),
+(14, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '87c59578-1998-4bad-a356-0ee12502c364', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:23:10', 20, '', 1),
+(15, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '21fea07d-70a6-4521-bcac-ad4152265be5', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:53:39', 19, '', 1),
+(16, 'CS8qKg0KCSAqIFRoZSBwbHVnaW4gaWRlbnRpZmllci4NCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlICAxLjAuMA0KCSAqLw==', 'J0Zvbyc=', 'plugins', '9a502457-0ac7-49c4-b6b9-c011b90fea86', '75021594-d111-4e01-9d42-4e86e57bbec3', 'context', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:25:59', 19, '', 1),
+(17, 'CS8qKg0KCSAqIFRoZSBleHRlbnNpb24gbmFtZS4NCgkgKg0KCSAqIEB2YXIgICAgc3RyaW5nDQoJICogQHNpbmNlICAxLjAuMA0KCSAqLw==', 'J2NvbV9mb28n', 'plugins', 'd6a07bca-06bc-49e5-af67-7cb11a7dc894', '75021594-d111-4e01-9d42-4e86e57bbec3', 'extension', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:26:13', 19, '', 1),
+(18, 'CS8qKg0KCSAqIFRoZSBzdWJsYXlvdXQgdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoZSByZXN1bHRzLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'J2Zvbyc=', 'plugins', 'd0cef121-b4e8-4163-8d93-72c02f6639f5', '75021594-d111-4e01-9d42-4e86e57bbec3', 'layout', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:26:31', 19, '', 1),
+(19, 'CS8qKg0KCSAqIFRoZSB0eXBlIG9mIGNvbnRlbnQgdGhhdCB0aGUgYWRhcHRlciBpbmRleGVzLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'J0Zvbyc=', 'plugins', '7743bbb2-e3dc-4db1-a027-bc1ae3b757f9', '75021594-d111-4e01-9d42-4e86e57bbec3', 'type_title', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:27:00', 24, '', 1),
+(20, 'CS8qKg0KCSAqIFRoZSB0YWJsZSBuYW1lLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'JyNfX2Zvbyc=', 'plugins', '708c7ab2-ec75-402e-a1c0-d575f61107a8', '75021594-d111-4e01-9d42-4e86e57bbec3', 'table', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:27:13', 19, '', 1),
+(21, 'CS8qKg0KCSAqIExvYWQgdGhlIGxhbmd1YWdlIGZpbGUgb24gaW5zdGFudGlhdGlvbi4NCgkgKg0KCSAqIEB2YXIgICAgYm9vbGVhbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '9f2164ea-00e0-47ae-a534-2b0d1d29bb48', 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:23:35', 19, '', 1),
+(22, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'e55f65a0-08f0-4ceb-a828-77b6917dd194', 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:23:04', 19, '', 1),
+(23, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'b594bcf3-414b-45a1-8fbc-146b9d5fda84', 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:23:23', 19, '', 1),
+(24, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'dd7e3273-c456-4757-a92f-c86a055b80ae', '75021594-d111-4e01-9d42-4e86e57bbec3', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:27:46', 19, '', 1),
+(25, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'c07c62e4-7c72-4d5f-bcdb-82b759bd1a17', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:35:17', 20, '', 1),
+(26, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '9b22b269-d057-47d4-a4e2-60daade09f57', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:32:55', 19, '', 1),
+(27, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '1236fe74-96fd-4a85-a7e9-252d86b430e2', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:35:08', 20, '', 1),
+(28, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', 'ef18d4d6-5d70-422d-bd4b-09b62b763bcf', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'app', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:41:36', 21, '', 1),
+(29, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'd7b220a0-7c60-42dd-bad4-52c9bef79300', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'db', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:41:10', 19, '', 1),
+(30, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'eb3b3b5f-2706-4ec4-a75c-6927dee5256a', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'autoloadLanguage', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:41:59', 19, '', 1),
+(31, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', '', 'plugins', '56cc0535-fd9e-4db9-93f7-9f0dc9ab2a58', '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', 'app', 'protected', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:44:42', 19, '', 2),
+(32, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', '', 'plugins', 'a89d86a3-08b0-49bb-a21c-24c04ee2a280', '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', 'db', 'protected', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:44:18', 19, '', 2),
+(33, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'af756e64-0781-4f35-a6f3-2917ccd7ca4c', '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', 'autoloadLanguage', 'protected', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:45:31', 19, '', 2),
+(34, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', '', 'plugins', '1bbc677b-592e-4c46-b7c9-ce763e5ce5a9', '3f139f81-0697-4392-b065-6426adaa7ac6', 'app', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:48:57', 17, '', 3),
+(35, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBEYXRhYmFzZURyaXZlcg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', '', 'plugins', '9890d282-7c5e-48bd-a995-ff4a5b5838e7', '3f139f81-0697-4392-b065-6426adaa7ac6', 'db', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:47:57', 17, '', 3),
+(36, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'dde7ac75-11f9-4af6-b86c-d184d5fe7349', '3f139f81-0697-4392-b065-6426adaa7ac6', 'autoloadLanguage', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:48:38', 17, '', 3),
+(37, 'CS8qKg0KCSAqIEFwcGxpY2F0aW9uIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBDTVNBcHBsaWNhdGlvbg0KCSAqIEBzaW5jZSAgMS4wLjANCgkgKi8=', 'dHJ1ZQ==', 'plugins', '27ba206b-73a3-4e9e-93b5-9b6a774c4ae2', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'app', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:58:31', 19, '', 1),
+(38, 'CS8qKg0KCSAqIERhdGFiYXNlIG9iamVjdA0KCSAqDQoJICogQHZhciAgICBKRGF0YWJhc2VEcml2ZXINCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', 'e63761b1-30b6-44eb-b421-e29b744eaaf9', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'db', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:58:18', 19, '', 1),
+(39, 'CS8qKg0KCSAqIEFmZmVjdHMgY29uc3RydWN0b3IgYmVoYXZpb3IuIElmIHRydWUsIGxhbmd1YWdlIGZpbGVzIHdpbGwgYmUgbG9hZGVkIGF1dG9tYXRpY2FsbHkuDQoJICoNCgkgKiBAdmFyICAgIGJvb2xlYW4NCgkgKiBAc2luY2UgIDEuMC4wDQoJICov', 'dHJ1ZQ==', 'plugins', '437b3159-1408-4fa2-91b0-8b5e5b7527a3', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'autoloadLanguage', 'protected', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:58:10', 6, '', 1),
(40, '', 'VG9Lbm93R29k', 'powers', '614464ba-ae25-476d-bd8a-304a2e00e37a', '', 'WhatisEthernalLife', 'public', '', 1, '2023-08-22 03:54:15', '2025-01-11 12:28:42', 5, '', 4);
--
@@ -2411,128 +2429,128 @@ INSERT INTO `#__componentbuilder_class_property` (`id`, `comment`, `default`, `e
--
INSERT INTO `#__componentbuilder_class_method` (`id`, `arguments`, `code`, `comment`, `extension_type`, `guid`, `joomla_plugin_group`, `name`, `visibility`, `params`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES
-(1, 'JGNyZWRlbnRpYWxzLCAkb3B0aW9ucywgJiRyZXNwb25zZQ==', '', 'CS8qKgoJICogVGhpcyBtZXRob2Qgc2hvdWxkIGhhbmRsZSBhbnkgYXV0aGVudGljYXRpb24gYW5kIHJlcG9ydCBiYWNrIHRvIHRoZSBzdWJqZWN0CgkgKgoJICogQHBhcmFtICAgYXJyYXkgICAkY3JlZGVudGlhbHMgIEFycmF5IGhvbGRpbmcgdGhlIHVzZXIgY3JlZGVudGlhbHMKCSAqIEBwYXJhbSAgIGFycmF5ICAgJG9wdGlvbnMgICAgICBBcnJheSBvZiBleHRyYSBvcHRpb25zCgkgKiBAcGFyYW0gICBvYmplY3QgICYkcmVzcG9uc2UgICAgQXV0aGVudGljYXRpb24gcmVzcG9uc2Ugb2JqZWN0CgkgKgoJICogQHJldHVybiAgYm9vbGVhbgoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'ceae0988-19bd-44aa-98d2-2653e0863450', 1, 'onUserAuthenticate', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(2, 'JG9wdGlvbnM=', '', 'CS8qKgoJICogV2Ugc2V0IHRoZSBhdXRoZW50aWNhdGlvbiBjb29raWUgb25seSBhZnRlciBsb2dpbiBpcyBzdWNjZXNzZnVsbGx5IGZpbmlzaGVkLgoJICogV2Ugc2V0IGEgbmV3IGNvb2tpZSBlaXRoZXIgZm9yIGEgdXNlciB3aXRoIG5vIGNvb2tpZXMgb3Igb25lCgkgKiB3aGVyZSB0aGUgdXNlciB1c2VkIGEgY29va2llIHRvIGF1dGhlbnRpY2F0ZS4KCSAqCgkgKiBAcGFyYW0gICBhcnJheSAgJG9wdGlvbnMgIEFycmF5IGhvbGRpbmcgb3B0aW9ucwoJICoKCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgb24gc3VjY2VzcwoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '9ef228f9-391f-41aa-ae7b-23cf0c4f3abd', 1, 'onUserAfterLogin', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(3, 'JG9wdGlvbnM=', '', 'CS8qKgoJICogVGhpcyBpcyB3aGVyZSB3ZSBkZWxldGUgYW55IGF1dGhlbnRpY2F0aW9uIGNvb2tpZSB3aGVuIGEgdXNlciBsb2dzIG91dAoJICoKCSAqIEBwYXJhbSAgIGFycmF5ICAkb3B0aW9ucyAgQXJyYXkgaG9sZGluZyBvcHRpb25zIChsZW5ndGgsIHRpbWVUb0V4cGlyYXRpb24pCgkgKgoJICogQHJldHVybiAgYm9vbGVhbiAgVHJ1ZSBvbiBzdWNjZXNzCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'f478fb9d-d419-4d83-a38e-0e109959ee5f', 1, 'onUserAfterLogout', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(4, 'JiRzdWJqZWN0LCAkY29uZmlnID0gYXJyYXko', 'CQkkdGhpcy0+YWxsb3dMZWdhY3lMaXN0ZW5lcnMgPSBmYWxzZTsKCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkc3ViamVjdCwgJGNvbmZpZyk7', 'CS8qKgoJICogQ29uc3RydWN0b3IKCSAqCgkgKiBAcGFyYW0gICBEaXNwYXRjaGVySW50ZXJmYWNlICYkc3ViamVjdCAgIFRoZSBvYmplY3QgdG8gb2JzZXJ2ZQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICAgICAgICAkY29uZmlnICAgICBBbiBvcHRpb25hbCBhc3NvY2lhdGl2ZSBhcnJheSBvZiBjb25maWd1cmF0aW9uIHNldHRpbmdzLgoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWNvZ25pemVkIGtleSB2YWx1ZXMgaW5jbHVkZSAnbmFtZScsICdncm91cCcsICdwYXJhbXMnLCAnbGFuZ3VhZ2UnCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzIGxpc3QgaXMgbm90IG1lYW50IHRvIGJlIGNvbXByZWhlbnNpdmUpLgoJICoKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'plugins', '7bc74e45-e4f0-4dfe-b3d8-3bbf8685c9a6', 2, '__construct', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 20, '', 1),
-(5, 'Q21zRXZlbnRcVGFibGVcT2JqZWN0Q3JlYXRlRXZlbnQgJGV2ZW50', '', 'CS8qKgoJICogUnVucyB3aGVuIGEgbmV3IHRhYmxlIG9iamVjdCBpcyBiZWluZyBjcmVhdGVkCgkgKgoJICogQHBhcmFtICAgQ21zRXZlbnRcVGFibGVcT2JqZWN0Q3JlYXRlRXZlbnQgJGV2ZW50IFRoZSBldmVudCB0byBoYW5kbGUKCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'bfc2a9d6-f38c-47b4-863a-20b8bbb4881a', 2, 'onTableObjectCreate', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(6, 'Q21zRXZlbnRcVGFibGVcQWZ0ZXJTdG9yZUV2ZW50ICRldmVudA==', '', 'CS8qKgoJICogUG9zdC1wcm9jZXNzb3IgZm9yICR0YWJsZS0+c3RvcmUoJHVwZGF0ZU51bGxzKQoJICoKCSAqIEBwYXJhbSAgIENtc0V2ZW50XFRhYmxlXEFmdGVyU3RvcmVFdmVudCAkZXZlbnQgVGhlIGV2ZW50IHRvIGhhbmRsZQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '63dab292-6679-4544-84d9-7463211cf923', 2, 'onTableAfterStore', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(7, 'Q21zRXZlbnRcVGFibGVcQmVmb3JlRGVsZXRlRXZlbnQgJGV2ZW50', '', 'CS8qKgoJICogUHJlLXByb2Nlc3NvciBmb3IgJHRhYmxlLT5kZWxldGUoJHBrKQoJICoKCSAqIEBwYXJhbSAgIENtc0V2ZW50XFRhYmxlXEJlZm9yZURlbGV0ZUV2ZW50ICRldmVudCBUaGUgZXZlbnQgdG8gaGFuZGxlCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'afe79c43-b9d7-47b1-b223-9f0da0a3c436', 2, 'onTableBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(8, 'JGNvbnRleHQsICRhcnRpY2xl', '', 'CS8qKgoJICogVGhpcyBpcyBhbiBldmVudCB0aGF0IGlzIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIGNvbnRlbnQgaXMgZGVsZXRlZC4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoYWRkZWQgaW4gMS42KS4KCSAqIEBwYXJhbSAgIG9iamVjdCAgJGFydGljbGUgIEEgSlRhYmxlQ29udGVudCBvYmplY3QuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '73c389fa-fd28-4ac8-98f2-5f49ab55b31a', 3, 'onContentBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(9, 'JGNvbnRleHQsICRhcnRpY2xl', '', 'CS8qKgoJICogVGhpcyBpcyBhbiBldmVudCB0aGF0IGlzIGNhbGxlZCByaWdodCBhZnRlciB0aGUgY29udGVudCBpcyBkZWxldGVkLgoJICoKCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luIChhZGRlZCBpbiAxLjYpLgoJICogQHBhcmFtICAgb2JqZWN0ICAkYXJ0aWNsZSAgQSBKVGFibGVDb250ZW50IG9iamVjdC4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '71f78e36-cf86-486a-989c-03c2718e3d74', 3, 'onContentAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(10, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2U9MA==', '', 'CS8qKgoJICogVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHBsYWNlZAoJICogaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBnZW5lcmF0ZWQgY29udGVudC4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgYmVpbmcgcGFzc2VkIHRvIHRoZSBwbHVnaW4uCgkgKiBAcGFyYW0gICBvYmplY3QgICAmJHJvdyAgICAgVGhlIGFydGljbGUgb2JqZWN0LiAgTm90ZSAkYXJ0aWNsZS0+dGV4dCBpcyBhbHNvIGF2YWlsYWJsZQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcwoJICogQHBhcmFtICAgaW50ZWdlciAgJHBhZ2UgICAgIFRoZSAncGFnZScgbnVtYmVyCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'fb8ae84d-b775-4d4f-9954-831fffe230ae', 3, 'onContentBeforeDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(11, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2U9MA==', 'CQkvLyBBY2Nlc3MgdG8gcGx1Z2luIHBhcmFtZXRlcnMKCQkkc2FtcGxlID0gJHRoaXMtPnBhcmFtcy0+Z2V0KCdzYW1wbGUnLCAnNDInKTs=', 'CS8qKgoJICogVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbW1lZGlhdGVseQoJICogYWZ0ZXIgdGhlIGdlbmVyYXRlZCBjb250ZW50LgoJICoKCSAqIEBwYXJhbSAgIHN0cmluZyAgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBiZWluZyBwYXNzZWQgdG8gdGhlIHBsdWdpbgoJICogQHBhcmFtICAgb2JqZWN0ICAgJiRyb3cgICAgIFRoZSBhcnRpY2xlIG9iamVjdAoJICogQHBhcmFtICAgb2JqZWN0ICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcwoJICogQHBhcmFtICAgaW50ZWdlciAgJHBhZ2UgICAgIFRoZSAncGFnZScgbnVtYmVyCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'e376bd99-7582-47e8-a421-5e9fa4df2781', 3, 'onContentAfterDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(12, 'JGNvbnRleHQsICRhcnRpY2xlLCAkaXNOZXc=', '', 'CS8qKgoJICogVGhpcyBpcyBhbiBldmVudCB0aGF0IGlzIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIGNvbnRlbnQKCSAqIGlzIHNhdmVkIGludG8gdGhlIGRhdGFiYXNlLgoJICoKCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luIChhZGRlZCBpbiAxLjYpLgoJICogQHBhcmFtICAgb2JqZWN0ICAkYXJ0aWNsZSAgQSBKVGFibGVDb250ZW50IG9iamVjdC4KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGlzTmV3ICAgIElmIHRoZSBjb250ZW50IGlzIGp1c3QgYWJvdXQgdG8gYmUgY3JlYXRlZC4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '6322ab1e-0146-44a0-836c-c12496d6c37b', 3, 'onContentBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(13, 'JGNvbnRleHQsICRhcnRpY2xlLCAkaXNOZXc=', '', 'CS8qKgoJICogVGhpcyBpcyBhbiBldmVudCB0aGF0IGlzIGNhbGxlZCBhZnRlciB0aGUgY29udGVudCBpcyBzYXZlZAoJICogaW50byB0aGUgZGF0YWJhc2UuCgkgKgoJICogQHBhcmFtICAgc3RyaW5nICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgcGFzc2VkIHRvIHRoZSBwbHVnaW4gKGFkZGVkIGluIDEuNikKCSAqIEBwYXJhbSAgIG9iamVjdCAgJGFydGljbGUgIEEgSlRhYmxlQ29udGVudCBvYmplY3QKCSAqIEBwYXJhbSAgIGJvb2wgICAgJGlzTmV3ICAgIElmIHRoZSBjb250ZW50IGhhcyBqdXN0IGJlZW4gY3JlYXRlZAoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '6d3c1622-087f-48f9-a0eb-6fe6c3ff3abd', 3, 'onContentAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(14, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2UgPSAw', '', 'CS8qKgoJICogVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGluZm9ybWF0aW9uIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBiZXR3ZWVuIHRoZQoJICogY29udGVudCB0aXRsZSBhbmQgdGhlIGNvbnRlbnQgYm9keS4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgYmVpbmcgcGFzc2VkIHRvIHRoZSBwbHVnaW4uCgkgKiBAcGFyYW0gICBvYmplY3QgICAmJHJvdyAgICAgVGhlIGFydGljbGUgb2JqZWN0LiAgTm90ZSAkYXJ0aWNsZS0+dGV4dCBpcyBhbHNvIGF2YWlsYWJsZQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcwoJICogQHBhcmFtICAgaW50ZWdlciAgJHBhZ2UgICAgIFRoZSAncGFnZScgbnVtYmVyCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'cc61ce82-44ef-4eaf-89cf-03fb4138c942', 3, 'onContentAfterTitle', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(15, 'JGNvbnRleHQsICRwa3MsICR2YWx1ZQ==', '', 'CS8qKgoJICogVGhpcyBpcyBhbiBldmVudCB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBjb250ZW50cyBzdGF0ZSBpcyBjaGFuZ2VkLgoJICoKCSAqIEBwYXJhbSAgIHN0cmluZyAgICRjb250ZXh0ICBUaGUgY29udGV4dCBmb3IgdGhlIGNvbnRlbnQgcGFzc2VkIHRvIHRoZSBwbHVnaW4uCgkgKiBAcGFyYW0gICBhcnJheSAgICAkcGtzICAgICAgQSBsaXN0IG9mIHByaW1hcnkga2V5IGlkcyBvZiB0aGUgY29udGVudCB0aGF0IGhhcyBjaGFuZ2VkIHN0YXRlLgoJICogQHBhcmFtICAgaW50ZWdlciAgJHZhbHVlICAgIFRoZSB2YWx1ZSBvZiB0aGUgc3RhdGUgdGhhdCB0aGUgY29udGVudCBoYXMgYmVlbiBjaGFuZ2VkIHRvLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '92e46234-5c28-4eb1-b3e9-b7adbfc7bbd4', 3, 'onContentChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(16, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2UgPSAw', '', 'CS8qKgoJICogVGhpcyBpcyB0aGUgZmlyc3Qgc3RhZ2UgaW4gcHJlcGFyaW5nIGNvbnRlbnQgZm9yIG91dHB1dCBhbmQgaXMgdGhlCgkgKiBtb3N0IGNvbW1vbiBwb2ludCBmb3IgY29udGVudCBvcmllbnRhdGVkIHBsdWdpbnMgdG8gZG8gdGhlaXIgd29yay4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgYmVpbmcgcGFzc2VkIHRvIHRoZSBwbHVnaW4uCgkgKiBAcGFyYW0gICBvYmplY3QgICAmJHJvdyAgICAgVGhlIGFydGljbGUgb2JqZWN0LiAgTm90ZSAkYXJ0aWNsZS0+dGV4dCBpcyBhbHNvIGF2YWlsYWJsZQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcwoJICogQHBhcmFtICAgaW50ZWdlciAgJHBhZ2UgICAgIFRoZSAncGFnZScgbnVtYmVyCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '92fe98ad-c529-494a-9147-5ae1e4d78068', 3, 'onContentPrepare', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(17, 'JG5hbWU=', 'CQkkbGluayA9ICdpbmRleC5waHA/b3B0aW9uPWNvbV9mb28mYW1wO3ZpZXc9Zm9vJmFtcDtsYXlvdXQ9bW9kYWwmYW1wO3RtcGw9Y29tcG9uZW50JmFtcDsnCgkJCS4gU2Vzc2lvbjo6Z2V0Rm9ybVRva2VuKCkgLiAnPTEmYW1wO2VkaXRvcj0nIC4gJG5hbWU7CgoJCSRidXR0b24gPSBuZXcgQ01TT2JqZWN0OwoJCSRidXR0b24tPm1vZGFsID0gdHJ1ZTsKCQkkYnV0dG9uLT5jbGFzcyA9ICdidG4gYnRuLXNlY29uZGFyeSc7CgkJJGJ1dHRvbi0+bGluayA9ICRsaW5rOwoJCSRidXR0b24tPnRleHQgPSBUZXh0OjpfKCdQTEdfRURJVE9SU1hURF9GT09fQlVUVE9OX0ZPTycpOwoJCSRidXR0b24tPm5hbWUgPSAnZmlsZS1hZGQnOwoJCSRidXR0b24tPm9wdGlvbnMgPSBhcnJheSgKCQkJJ2hlaWdodCcgICAgID0+ICczMDBweCcsCgkJCSd3aWR0aCcgICAgICA9PiAnODAwcHgnLAoJCQknYm9keUhlaWdodCcgPT4gJzcwJywKCQkJJ21vZGFsV2lkdGgnID0+ICc4MCcsCgkJKTsKCgkJcmV0dXJuICRidXR0b247', 'CS8qKgoJICogRGlzcGxheSB0aGUgYnV0dG9uCgkgKgoJICogQHBhcmFtICAgc3RyaW5nICRuYW1lIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gdG8gYWRkCgkgKgoJICogQHJldHVybiAgQ01TT2JqZWN0ICBUaGUgYnV0dG9uIG9wdGlvbnMgYXMgSk9iamVjdAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'b1d55780-5ba8-40d2-8dd6-fd9cd1ecf7f4', 4, 'onDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(18, 'JGZpZWxkLCBET01FbGVtZW50ICRwYXJlbnQsIEpGb3JtICRmb3Jt', '', 'CS8qKgoJICogVHJhbnNmb3JtcyB0aGUgZmllbGQgaW50byBhIERPTSBYTUwgZWxlbWVudCBhbmQgYXBwZW5kcyBpdCBhcyBhIGNoaWxkIG9uIHRoZSBnaXZlbiBwYXJlbnQuCgkgKgoJICogQHBhcmFtICAgc3RkQ2xhc3MgICAkZmllbGQgIFRoZSBmaWVsZC4KCSAqIEBwYXJhbSAgIERPTUVsZW1lbnQgJHBhcmVudCBUaGUgZmllbGQgbm9kZSBwYXJlbnQuCgkgKiBAcGFyYW0gICBKRm9ybSAgICAgICRmb3JtICAgVGhlIGZvcm0uCgkgKgoJICogQHJldHVybiAgRE9NRWxlbWVudAoJICoKCSAqIEBzaW5jZSAgIDEuMC4wCgkgKi8=', 'plugins', '62a85e6b-8d40-46fb-bb82-6999d79bddac', 5, 'onCustomFieldsPrepareDom', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(19, 'JGNvbnRleHQsICRpdGVtLCAkaXNOZXcsICRkYXRhID0gYXJyYXko', '', 'CS8qKgoJICogVGhlIHNhdmUgZXZlbnQuCgkgKgoJICogQHBhcmFtICAgc3RyaW5nICAkY29udGV4dCBUaGUgY29udGV4dAoJICogQHBhcmFtICAgSlRhYmxlICAkaXRlbSAgICBUaGUgdGFibGUKCSAqIEBwYXJhbSAgIGJvb2xlYW4gJGlzTmV3ICAgSXMgbmV3IGl0ZW0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGRhdGEgICAgVGhlIHZhbGlkYXRlZCBkYXRhCgkgKgoJICogQHJldHVybiAgYm9vbGVhbgoJICoKCSAqIEBzaW5jZSAgIDEuMC4wCgkgKi8=', 'plugins', 'd831a202-15f1-4458-b26c-7c69dee2caf5', 5, 'onContentBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(20, 'JGV4dGVuc2lvbiwgJHBrcywgJHZhbHVl', 'CQkvLyBNYWtlIHN1cmUgd2UncmUgaGFuZGxpbmcgY29tX2NvbnRlbnQgY2F0ZWdvcmllcy4KCQlpZiAoJGV4dGVuc2lvbiA9PT0gJ2NvbV9mb28nKQoJCXsKCQkJJHRoaXMtPmNhdGVnb3J5U3RhdGVDaGFuZ2UoJHBrcywgJHZhbHVlKTsKCQl9', 'CS8qKgoJICogTWV0aG9kIHRvIHVwZGF0ZSB0aGUgaXRlbSBsaW5rIGluZm9ybWF0aW9uIHdoZW4gdGhlIGl0ZW0gY2F0ZWdvcnkgaXMKCSAqIGNoYW5nZWQuIFRoaXMgaXMgZmlyZWQgd2hlbiB0aGUgaXRlbSBjYXRlZ29yeSBpcyBwdWJsaXNoZWQgb3IgdW5wdWJsaXNoZWQKCSAqIGZyb20gdGhlIGxpc3Qgdmlldy4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkZXh0ZW5zaW9uICBUaGUgZXh0ZW5zaW9uIHdob3NlIGNhdGVnb3J5IGhhcyBiZWVuIHVwZGF0ZWQuCgkgKiBAcGFyYW0gICBhcnJheSAgICAkcGtzICAgICAgICBBIGxpc3Qgb2YgcHJpbWFyeSBrZXkgaWRzIG9mIHRoZSBjb250ZW50IHRoYXQgaGFzIGNoYW5nZWQgc3RhdGUuCgkgKiBAcGFyYW0gICBpbnRlZ2VyICAkdmFsdWUgICAgICBUaGUgdmFsdWUgb2YgdGhlIHN0YXRlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGJlZW4gY2hhbmdlZCB0by4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'fcccc173-d2ef-411c-9d39-b1db373bdc5d', 6, 'onFinderCategoryChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(21, 'JGNvbnRleHQsICR0YWJsZQ==', 'CQlpZiAoJGNvbnRleHQgPT09ICdjb21fZm9vLmZvbycpCgkJewoJCQkkaWQgPSAkdGFibGUtPmlkOwoJCX0KCQllbHNlaWYgKCRjb250ZXh0ID09PSAnY29tX2ZpbmRlci5pbmRleCcpCgkJewoJCQkkaWQgPSAkdGFibGUtPmxpbmtfaWQ7CgkJfQoJCWVsc2UKCQl7CgkJCXJldHVybiB0cnVlOwoJCX0KCgkJLy8gUmVtb3ZlIGl0ZW0gZnJvbSB0aGUgaW5kZXguCgkJcmV0dXJuICR0aGlzLT5yZW1vdmUoJGlkKTs=', 'CS8qKgoJICogTWV0aG9kIHRvIHJlbW92ZSB0aGUgbGluayBpbmZvcm1hdGlvbiBmb3IgaXRlbXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZC4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgYWN0aW9uIGJlaW5nIHBlcmZvcm1lZC4KCSAqIEBwYXJhbSAgIEpUYWJsZSAgJHRhYmxlICAgIEEgSlRhYmxlIG9iamVjdCBjb250YWluaW5nIHRoZSByZWNvcmQgdG8gYmUgZGVsZXRlZAoJICoKCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgb24gc3VjY2Vzcy4KCSAqCgkgKiBAc2luY2UgICAyLjUKCSAqIEB0aHJvd3MgIEV4Y2VwdGlvbiBvbiBkYXRhYmFzZSBlcnJvci4KCSAqLw==', 'plugins', '581a6599-d81c-4b98-9eca-5d934abad88c', 6, 'onFinderAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(22, 'JGNvbnRleHQsICRyb3csICRpc05ldw==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuCgkJaWYgKCRjb250ZXh0ID09PSAnY29tX2Zvby5mb28nKQoJCXsKCQkJLy8gQ2hlY2sgaWYgdGhlIGFjY2VzcyBsZXZlbHMgYXJlIGRpZmZlcmVudC4KCQkJaWYgKCEkaXNOZXcgJiYgJHRoaXMtPm9sZF9hY2Nlc3MgIT0gJHJvdy0+YWNjZXNzKQoJCQl7CgkJCQkvLyBQcm9jZXNzIHRoZSBjaGFuZ2UuCgkJCQkkdGhpcy0+aXRlbUFjY2Vzc0NoYW5nZSgkcm93KTsKCQkJfQoKCQkJLy8gUmVpbmRleCB0aGUgaXRlbS4KCQkJJHRoaXMtPnJlaW5kZXgoJHJvdy0+aWQpOwoJCX0KCgkJLy8gQ2hlY2sgZm9yIGFjY2VzcyBjaGFuZ2VzIGluIHRoZSBjYXRlZ29yeS4KCQlpZiAoJGNvbnRleHQgPT09ICdjb21fY2F0ZWdvcmllcy5jYXRlZ29yeScpCgkJewoJCQkvLyBDaGVjayBpZiB0aGUgYWNjZXNzIGxldmVscyBhcmUgZGlmZmVyZW50LgoJCQlpZiAoISRpc05ldyAmJiAkdGhpcy0+b2xkX2NhdGFjY2VzcyAhPSAkcm93LT5hY2Nlc3MpCgkJCXsKCQkJCSR0aGlzLT5jYXRlZ29yeUFjY2Vzc0NoYW5nZSgkcm93KTsKCQkJfQoJCX0KCgkJcmV0dXJuIHRydWU7', 'CS8qKgoJICogU21hcnQgU2VhcmNoIGFmdGVyIHNhdmUgY29udGVudCBtZXRob2QuCgkgKiBSZWluZGV4ZXMgdGhlIGxpbmsgaW5mb3JtYXRpb24gZm9yIGFuIGFydGljbGUgdGhhdCBoYXMgYmVlbiBzYXZlZC4KCSAqIEl0IGFsc28gbWFrZXMgYWRqdXN0bWVudHMgaWYgdGhlIGFjY2VzcyBsZXZlbCBvZiBhbiBpdGVtIG9yIHRoZQoJICogY2F0ZWdvcnkgdG8gd2hpY2ggaXQgYmVsb25ncyBoYXMgY2hhbmdlZC4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgcGFzc2VkIHRvIHRoZSBwbHVnaW4uCgkgKiBAcGFyYW0gICBKVGFibGUgICAkcm93ICAgICAgQSBKVGFibGUgb2JqZWN0LgoJICogQHBhcmFtICAgYm9vbGVhbiAgJGlzTmV3ICAgIFRydWUgaWYgdGhlIGNvbnRlbnQgaGFzIGp1c3QgYmVlbiBjcmVhdGVkLgoJICoKCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgb24gc3VjY2Vzcy4KCSAqCgkgKiBAc2luY2UgICAyLjUKCSAqIEB0aHJvd3MgIEV4Y2VwdGlvbiBvbiBkYXRhYmFzZSBlcnJvci4KCSAqLw==', 'plugins', '352d0b79-64d3-4e3d-a47d-beb62e9baa83', 6, 'onFinderAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(23, 'JGNvbnRleHQsICRyb3csICRpc05ldw==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuCgkJaWYgKCRjb250ZXh0ID09PSAnY29tX2Zvby5mb28nKQoJCXsKCQkJLy8gUXVlcnkgdGhlIGRhdGFiYXNlIGZvciB0aGUgb2xkIGFjY2VzcyBsZXZlbCBpZiB0aGUgaXRlbSBpc24ndCBuZXcuCgkJCWlmICghJGlzTmV3KQoJCQl7CgkJCQkkdGhpcy0+Y2hlY2tJdGVtQWNjZXNzKCRyb3cpOwoJCQl9CgkJfQoKCQkvLyBDaGVjayBmb3IgYWNjZXNzIGxldmVscyBmcm9tIHRoZSBjYXRlZ29yeS4KCQlpZiAoJGNvbnRleHQgPT09ICdjb21fY2F0ZWdvcmllcy5jYXRlZ29yeScpCgkJewoJCQkvLyBRdWVyeSB0aGUgZGF0YWJhc2UgZm9yIHRoZSBvbGQgYWNjZXNzIGxldmVsIGlmIHRoZSBpdGVtIGlzbid0IG5ldy4KCQkJaWYgKCEkaXNOZXcpCgkJCXsKCQkJCSR0aGlzLT5jaGVja0NhdGVnb3J5QWNjZXNzKCRyb3cpOwoJCQl9CgkJfQoKCQlyZXR1cm4gdHJ1ZTs=', 'CS8qKgoJICogU21hcnQgU2VhcmNoIGJlZm9yZSBjb250ZW50IHNhdmUgbWV0aG9kLgoJICogVGhpcyBldmVudCBpcyBmaXJlZCBiZWZvcmUgdGhlIGRhdGEgaXMgYWN0dWFsbHkgc2F2ZWQuCgkgKgoJICogQHBhcmFtICAgc3RyaW5nICAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luLgoJICogQHBhcmFtICAgSlRhYmxlICAgJHJvdyAgICAgIEEgSlRhYmxlIG9iamVjdC4KCSAqIEBwYXJhbSAgIGJvb2xlYW4gICRpc05ldyAgICBJZiB0aGUgY29udGVudCBpcyBqdXN0IGFib3V0IHRvIGJlIGNyZWF0ZWQuCgkgKgoJICogQHJldHVybiAgYm9vbGVhbiAgVHJ1ZSBvbiBzdWNjZXNzLgoJICoKCSAqIEBzaW5jZSAgIDIuNQoJICogQHRocm93cyAgRXhjZXB0aW9uIG9uIGRhdGFiYXNlIGVycm9yLgoJICov', 'plugins', '8d12aba2-a150-450a-bf9a-b178ce2bea0b', 6, 'onFinderBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(24, 'JGNvbnRleHQsICRwa3MsICR2YWx1ZQ==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuCgkJaWYgKCRjb250ZXh0ID09PSAnY29tX2Zvby5mb28nKQoJCXsKCQkJJHRoaXMtPml0ZW1TdGF0ZUNoYW5nZSgkcGtzLCAkdmFsdWUpOwoJCX0KCgkJLy8gSGFuZGxlIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC4KCQlpZiAoJGNvbnRleHQgPT09ICdjb21fcGx1Z2lucy5wbHVnaW4nICYmICR2YWx1ZSA9PT0gMCkKCQl7CgkJCSR0aGlzLT5wbHVnaW5EaXNhYmxlKCRwa3MpOwoJCX0=', 'CS8qKgoJICogTWV0aG9kIHRvIHVwZGF0ZSB0aGUgbGluayBpbmZvcm1hdGlvbiBmb3IgaXRlbXMgdGhhdCBoYXZlIGJlZW4gY2hhbmdlZAoJICogZnJvbSBvdXRzaWRlIHRoZSBlZGl0IHNjcmVlbi4gVGhpcyBpcyBmaXJlZCB3aGVuIHRoZSBpdGVtIGlzIHB1Ymxpc2hlZCwKCSAqIHVucHVibGlzaGVkLCBhcmNoaXZlZCwgb3IgdW5hcmNoaXZlZCBmcm9tIHRoZSBsaXN0IHZpZXcuCgkgKgoJICogQHBhcmFtICAgc3RyaW5nICAgJGNvbnRleHQgIFRoZSBjb250ZXh0IGZvciB0aGUgY29udGVudCBwYXNzZWQgdG8gdGhlIHBsdWdpbi4KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRwa3MgICAgICBBbiBhcnJheSBvZiBwcmltYXJ5IGtleSBpZHMgb2YgdGhlIGNvbnRlbnQgdGhhdCBoYXMgY2hhbmdlZCBzdGF0ZS4KCSAqIEBwYXJhbSAgIGludGVnZXIgICR2YWx1ZSAgICBUaGUgdmFsdWUgb2YgdGhlIHN0YXRlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGJlZW4gY2hhbmdlZCB0by4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMi41CgkgKi8=', 'plugins', 'ff59ece3-e098-461a-bfbd-9c997130b272', 6, 'onFinderChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(25, 'RmluZGVySW5kZXhlclJlc3VsdCAkaXRlbSwgJGZvcm1hdCA9ICdodG1sJw==', 'CQkkaXRlbS0+c2V0TGFuZ3VhZ2UoKTsKCgkJLy8gQ2hlY2sgaWYgdGhlIGV4dGVuc2lvbiBpcyBlbmFibGVkLgoJCWlmIChDb21wb25lbnRIZWxwZXI6OmlzRW5hYmxlZCgkdGhpcy0+ZXh0ZW5zaW9uKSA9PT0gZmFsc2UpCgkJewoJCQlyZXR1cm47CgkJfQoKCQkvLyBBZGQgdGhlIG1ldGFkYXRhIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLgoJCSRpdGVtLT5hZGRJbnN0cnVjdGlvbihGaW5kZXJJbmRleGVyOjpNRVRBX0NPTlRFWFQsICdtZXRha2V5Jyk7CgkJJGl0ZW0tPmFkZEluc3RydWN0aW9uKEZpbmRlckluZGV4ZXI6Ok1FVEFfQ09OVEVYVCwgJ21ldGFkZXNjJyk7CgkJJGl0ZW0tPmFkZEluc3RydWN0aW9uKEZpbmRlckluZGV4ZXI6Ok1FVEFfQ09OVEVYVCwgJ21ldGFhdXRob3InKTsKCQkkaXRlbS0+YWRkSW5zdHJ1Y3Rpb24oRmluZGVySW5kZXhlcjo6TUVUQV9DT05URVhULCAnYXV0aG9yJyk7CgkJJGl0ZW0tPmFkZEluc3RydWN0aW9uKEZpbmRlckluZGV4ZXI6Ok1FVEFfQ09OVEVYVCwgJ2NyZWF0ZWRfYnlfYWxpYXMnKTsKCgkJLy8gQWRkIHRoZSBsYW5ndWFnZSB0YXhvbm9teSBkYXRhLgoJCSRpdGVtLT5hZGRUYXhvbm9teSgnTGFuZ3VhZ2UnLCAkaXRlbS0+bGFuZ3VhZ2UpOwoKCQkvLyBHZXQgY29udGVudCBleHRyYXMuCgkJRmluZGVySW5kZXhlckhlbHBlcjo6Z2V0Q29udGVudEV4dHJhcygkaXRlbSk7CgoJCS8vIEluZGV4IHRoZSBpdGVtLgoJCSR0aGlzLT5pbmRleGVyLT5pbmRleCgkaXRlbSk7', 'CS8qKgoJICogTWV0aG9kIHRvIGluZGV4IGFuIGl0ZW0uIFRoZSBpdGVtIG11c3QgYmUgYSBGaW5kZXJJbmRleGVyUmVzdWx0IG9iamVjdC4KCSAqCgkgKiBAcGFyYW0gICBGaW5kZXJJbmRleGVyUmVzdWx0ICAkaXRlbSAgICBUaGUgaXRlbSB0byBpbmRleCBhcyBhIEZpbmRlckluZGV4ZXJSZXN1bHQgb2JqZWN0LgoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICAgJGZvcm1hdCAgVGhlIGl0ZW0gZm9ybWF0LiAgTm90IHVzZWQuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDIuNQoJICogQHRocm93cyAgRXhjZXB0aW9uIG9uIGRhdGFiYXNlIGVycm9yLgoJICov', 'plugins', 'fc7c009e-e630-4507-8034-0b5e9886fca3', 6, 'index', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(26, 'RmluZGVySW5kZXhlclJlc3VsdCAkaXRlbSwgJGZvcm1hdCA9ICdodG1sJw==', 'CQkvLyBMb2FkIGRlcGVuZGVudCBjbGFzc2VzLgoKCQlyZXR1cm4gdHJ1ZTs=', 'CS8qKgoJICogTWV0aG9kIHRvIHNldHVwIHRoZSBpbmRleGVyIHRvIGJlIHJ1bi4KCSAqCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MuCgkgKgoJICogQHNpbmNlICAgMi41CgkgKi8=', 'plugins', '00c39a5b-ca64-4785-aeae-e767e0bda078', 6, 'setup', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(27, 'JHF1ZXJ5ID0gbnVsbA==', 'CQkkZGIgPSBGYWN0b3J5OjpnZXREYm8oKTsKCgkJLy8gQ2hlY2sgaWYgd2UgY2FuIHVzZSB0aGUgc3VwcGxpZWQgU1FMIHF1ZXJ5LgoJCSRxdWVyeSA9ICRxdWVyeSBpbnN0YW5jZW9mIEpEYXRhYmFzZVF1ZXJ5ID8gJHF1ZXJ5IDogJGRiLT5nZXRRdWVyeSh0cnVlKTsKCgkJcmV0dXJuICRxdWVyeTs=', 'CS8qKgoJICogTWV0aG9kIHRvIGdldCB0aGUgU1FMIHF1ZXJ5IHVzZWQgdG8gcmV0cmlldmUgdGhlIGxpc3Qgb2YgY29udGVudCBpdGVtcy4KCSAqCgkgKiBAcGFyYW0gICBtaXhlZCAgJHF1ZXJ5ICBBIEpEYXRhYmFzZVF1ZXJ5IG9iamVjdCBvciBudWxsLgoJICoKCSAqIEByZXR1cm4gIEpEYXRhYmFzZVF1ZXJ5ICBBIGRhdGFiYXNlIG9iamVjdC4KCSAqCgkgKiBAc2luY2UgICAyLjUKCSAqLw==', 'plugins', 'c43086af-3832-462e-91c7-79e5d7cbf6ba', 6, 'getListQuery', 'protected', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(28, 'JHF1ZXJ5ID0gbnVsbA==', 'CQlzdGF0aWMgJGFyZWFzID0gYXJyYXkoCgkJCSd0YWdzJyA9PiAnUExHX1NFQVJDSF9GT09fRk9PJwoJCSk7CgoJCXJldHVybiAkYXJlYXM7', 'CS8qKgoJICogRGV0ZXJtaW5lIGFyZWFzIHNlYXJjaGFibGUgYnkgdGhpcyBwbHVnaW4uCgkgKgoJICogQHJldHVybiAgYXJyYXkgIEFuIGFycmF5IG9mIHNlYXJjaCBhcmVhcy4KCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'ca414ec7-a0cb-4b3d-9561-a7492d896383', 7, 'onContentSearchAreas', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(29, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogU2VhcmNoIGNvbnRlbnQgKHRhZ3MpLgoJICoKCSAqIFRoZSBTUUwgbXVzdCByZXR1cm4gdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCBhcmUgdXNlZCBpbiBhIGNvbW1vbiBkaXNwbGF5CgkgKiByb3V0aW5lOiBocmVmLCB0aXRsZSwgc2VjdGlvbiwgY3JlYXRlZCwgdGV4dCwgYnJvd3Nlcm5hdi4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0ZXh0ICAgICAgVGFyZ2V0IHNlYXJjaCBzdHJpbmcuCgkgKiBAcGFyYW0gICBzdHJpbmcgICRwaHJhc2UgICAgTWF0Y2hpbmcgb3B0aW9uIChwb3NzaWJsZSB2YWx1ZXM6IGV4YWN0fGFueXxhbGwpLiAgRGVmYXVsdCBpcyAiYW55Ii4KCSAqIEBwYXJhbSAgIHN0cmluZyAgJG9yZGVyaW5nICBPcmRlcmluZyBvcHRpb24gKHBvc3NpYmxlIHZhbHVlczogbmV3ZXN0fG9sZGVzdHxwb3B1bGFyfGFscGhhfGNhdGVnb3J5KS4gIERlZmF1bHQgaXMgIm5ld2VzdCIuCgkgKiBAcGFyYW0gICBzdHJpbmcgICRhcmVhcyAgICAgQW4gYXJyYXkgaWYgdGhlIHNlYXJjaCBpcyB0byBiZSByZXN0cmljdGVkIHRvIGFyZWFzIG9yIG51bGwgdG8gc2VhcmNoIGFsbCBhcmVhcy4KCSAqCgkgKiBAcmV0dXJuICBhcnJheSAgU2VhcmNoIHJlc3VsdHMuCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'adea8559-f582-4b68-9d69-fcd514320353', 7, 'onContentSearch', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(30, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25BZnRlckluaXRpYWxpc2UuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '65779269-1540-4b00-a28b-181b9c579277', 8, 'onAfterInitialise', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(31, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25BZnRlclJvdXRlLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'e31c6e96-d490-4046-9545-133279fb973c', 8, 'onAfterRoute', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(32, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25BZnRlckRpc3BhdGNoLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '26b2d364-40b1-4e2f-9061-85699f8045e2', 8, 'onAfterDispatch', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(33, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', 'CQkvLyBBY2Nlc3MgdG8gcGx1Z2luIHBhcmFtZXRlcnMKCQkkc2FtcGxlID0gJHRoaXMtPnBhcmFtcy0+Z2V0KCdzYW1wbGUnLCAnNDInKTs=', 'CS8qKgoJICogb25BZnRlclJlbmRlci4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '68834ef3-373e-4797-bb34-6b6d3499b70e', 8, 'onAfterRender', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(34, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25BZnRlckNvbXBpbGVIZWFkLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'e221ab75-51da-4f9a-bb8c-031e31b6c4a9', 8, 'onAfterCompileHead', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(35, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogT25BZnRlckNvbXByZXNzLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '40434794-c4e9-4dce-9043-5c682c95ed78', 8, 'onAfterCompress', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(36, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25BZnRlclJlc3BvbmQuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '6c6e9986-d4ad-4eb7-be11-fb5f94c8b29f', 8, 'onAfterRespond', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(37, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQXV0aG9yaXNhdGlvbi4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'f4e76718-018a-4a99-80f1-78b989a8a017', 9, 'onUserAuthorisation', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(38, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQXV0aG9yaXNhdGlvbkZhaWx1cmUuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '300988bc-4d3f-4512-b009-2b3731d4a234', 9, 'onUserAuthorisationFailure', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(39, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQmVmb3JlU2F2ZS4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'dbbed809-e837-4f5c-ab0f-9edaebcfd796', 9, 'onUserBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(40, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQWZ0ZXJTYXZlLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'bf8eccf6-1cb3-45d8-b216-33dcef221b3c', 9, 'onUserAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(41, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQmVmb3JlRGVsZXRlLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '11911fb5-c762-4c4d-8144-cd43e7fc9e29', 9, 'onUserBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(42, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQWZ0ZXJEZWxldGUuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '1383d6c4-3340-46e7-95f5-56568a30ea6f', 9, 'onUserAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(43, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyTG9naW4uCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '3845713d-4a2a-41c1-b1b5-df126a581d5e', 9, 'onUserLogin', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(44, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyTG9naW5GYWlsdXJlLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'e7ad952f-4c9f-4b4a-a37c-027aa7bed3be', 9, 'onUserLoginFailure', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(45, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQWZ0ZXJMb2dpbi4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '6443b288-6b80-41c6-824f-fbf7e39545b8', 9, 'onUserAfterLogin', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(46, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyTG9nb3V0LgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '979e8928-70e8-4813-9e87-c4a3cb7f3e41', 9, 'onUserLogout', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(47, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQmVmb3JlU2F2ZUdyb3VwLgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '90985779-0b61-4331-8c4f-9d63bb14b149', 9, 'onUserBeforeSaveGroup', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(48, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQWZ0ZXJTYXZlR3JvdXAuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'c71e62d1-46fb-4237-84f2-a3c62a62dd58', 9, 'onUserAfterSaveGroup', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(49, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQmVmb3JlRGVsZXRlR3JvdXAuCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'a740f931-5847-4ddb-950e-a09e3f8cb059', 9, 'onUserBeforeDeleteGroup', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(50, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKgoJICogb25Vc2VyQWZ0ZXJEZWxldGVHcm91cC4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'f9e37adc-4f62-4783-9e17-d709ed60d821', 9, 'onUserAfterDeleteGroup', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 18, '', 1),
-(51, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKgoJICogUGVyZm9ybXMgdmFsaWRhdGlvbiB0byBkZXRlcm1pbmUgaWYgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgcmVtb3ZlIGluZm9ybWF0aW9uIHJlcXVlc3QgY2FuIGJlIHByb2Nlc3NlZAoJICoKCSAqIEBwYXJhbSAgIFByaXZhY3lUYWJsZVJlcXVlc3QgICRyZXF1ZXN0ICBUaGUgcmVxdWVzdCByZWNvcmQgYmVpbmcgcHJvY2Vzc2VkCgkgKiBAcGFyYW0gICBKVXNlciAgICAgICAgICAgICAgICAkdXNlciAgICAgVGhlIHVzZXIgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0IGlmIGF2YWlsYWJsZQoJICoKCSAqIEByZXR1cm4gIFByaXZhY3lSZW1vdmFsU3RhdHVzCgkgKgoJICogQHNpbmNlICAgMS4wLjAKCSAqLw==', 'plugins', 'ddc9d897-8902-4ac3-bf38-f37e6af1a46a', 10, 'onPrivacyCanRemoveData', 'public', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(52, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKgoJICogUHJvY2Vzc2VzIGFuIGV4cG9ydCByZXF1ZXN0IGZvciBKb29tbGEgY29yZSB1c2VyIGRhdGEKCSAqCgkgKiBAcGFyYW0gICBQcml2YWN5VGFibGVSZXF1ZXN0ICAkcmVxdWVzdCAgVGhlIHJlcXVlc3QgcmVjb3JkIGJlaW5nIHByb2Nlc3NlZAoJICogQHBhcmFtICAgSlVzZXIgICAgICAgICAgICAgICAgJHVzZXIgICAgIFRoZSB1c2VyIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdCBpZiBhdmFpbGFibGUKCSAqCgkgKiBAcmV0dXJuICBQcml2YWN5RXhwb3J0RG9tYWluW10KCSAqCgkgKiBAc2luY2UgICAxLjAuMAoJICov', 'plugins', '3692862c-6688-4afe-809e-c6677b318fea', 10, 'onPrivacyExportRequest', 'public', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(53, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKgoJICogUmVtb3ZlcyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSByZW1vdmUgaW5mb3JtYXRpb24gcmVxdWVzdAoJICoKCSAqIEBwYXJhbSAgIFByaXZhY3lUYWJsZVJlcXVlc3QgICRyZXF1ZXN0ICBUaGUgcmVxdWVzdCByZWNvcmQgYmVpbmcgcHJvY2Vzc2VkCgkgKiBAcGFyYW0gICBKVXNlciAgICAgICAgICAgICAgICAkdXNlciAgICAgVGhlIHVzZXIgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0IGlmIGF2YWlsYWJsZQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAuMAoJICov', 'plugins', '1e9e7ad9-ea31-43a2-a288-ffaa4bec5101', 10, 'onPrivacyRemoveData', 'public', '', 1, '2019-07-16 00:25:53', '2022-01-07 20:08:43', 18, '', 2),
-(54, 'JiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Q29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'eaa35b7f-7d1c-49d3-831f-bb0244252666', 11, 'jcb_ce_onBeforeQueryComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:52:16', 17, '', 3),
-(55, 'JiRjb21wb25lbnQ=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsQ29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '9eb554e0-76ea-4a03-8f46-8475d5bf5333', 11, 'jcb_ce_onBeforeModelComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:44:24', 17, '', 3),
-(56, 'JiRjb21wb25lbnQ=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxDb21wb25lbnREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIENvbXBvbmVudCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '8313b40b-c2c5-4e11-ae90-c00f64ea0694', 11, 'jcb_ce_onAfterModelComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:40:59', 17, '', 3),
-(57, 'JiRpZCwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Vmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f94ccd78-499a-4506-a861-db10d9318d4b', 11, 'jcb_ce_onBeforeQueryViewData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:56:39', 17, '', 3),
-(58, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '75abc21c-b567-45fa-a2f0-c63881016117', 11, 'jcb_ce_onBeforeModelViewData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:33:46', 17, '', 3),
-(59, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxWaWV3RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIFZpZXcgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '399887f9-be54-49ce-8f39-857f006f42a1', 11, 'jcb_ce_onAfterModelViewData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:29:02', 17, '', 3),
-(60, 'JiRpZCwgJiR0YWJsZSwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Q3VzdG9tVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBDdXN0b20gVmlldyBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'c155d2f5-438b-42ed-bd99-a5da5e58a5aa', 11, 'jcb_ce_onBeforeQueryCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:07:57', 17, '', 3),
-(61, 'JiR2aWV3LCAmJGlkLCAmJHRhYmxl', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsQ3VzdG9tVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBDdXN0b20gVmlldyBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '6467fa89-e765-4fad-827d-27b5cc19c7f5', 11, 'jcb_ce_onBeforeModelCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 10:55:34', 17, '', 3),
-(62, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxDdXN0b21WaWV3RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIEN1c3RvbSBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '0d7d1e31-f051-4073-b2a6-da5641db35e5', 11, 'jcb_ce_onAfterModelCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:42:29', 17, '', 3),
-(63, 'JiRpZCwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5RmllbGREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBGaWVsZCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '68234c9c-ce45-40cb-bf20-26439ca59fb5', 11, 'jcb_ce_onBeforeQueryFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:52:15', 17, '', 3),
-(64, 'JiRmaWVsZA==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsRmllbGREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBGaWVsZCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'fad73446-8b5e-47ea-9a45-204955be1396', 11, 'jcb_ce_onBeforeModelFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:06:05', 17, '', 3),
-(65, 'JiRmaWVsZA==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxGaWVsZERhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIEZpZWxkIERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '5489124e-92e1-47f2-abcc-9f2e3d3734d2', 11, 'jcb_ce_onAfterModelFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:51:57', 17, '', 3),
-(66, 'JiRqb29tbGFWZXJzaW9uRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyU2V0Sm9vbWxhVmVyc2lvbkRhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFNldCBKb29tbGEgVmVyc2lvbiBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '5975f8a2-c0bf-407b-93e6-df71c23d1340', 11, 'jcb_ce_onAfterSetJoomlaVersionData', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:54:12', 17, '', 3),
-(67, 'JiRsaWJyYXJpZXM=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldExpYmFyaWVzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgTGliYXJpZXNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '5b6d33b1-e3cb-404f-87df-4141d46edf22', 11, 'jcb_ce_onBeforeSetLibaries', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:13:41', 17, '', 3),
-(68, 'JiRkeW5hbWljX2ZpZWxkcywgJiRyZWFkX29ubHksICYkZGJrZXksICYkdmlldywgJiRjb21wb25lbnQsICYkbmFtZVNpbmdsZUNvZGUsICYkbmFtZUxpc3RDb2RlLCAmJGxhbmdfdmlldywgJiRsYW5nX3ZpZXdz', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkRmllbGRzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBGaWVsZHNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '95cc5748-044e-4117-8902-13a88f793227', 11, 'jcb_ce_onBeforeBuildFields', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:40:10', 17, '', 3),
-(69, 'JiRkeW5hbWljX2ZpZWxkcywgJiRyZWFkX29ubHksICYkZGJrZXksICYkdmlldywgJiRjb21wb25lbnQsICYkbmFtZVNpbmdsZUNvZGUsICYkbmFtZUxpc3RDb2RlLCAmJGxhbmdfdmlldywgJiRsYW5nX3ZpZXdz', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRGaWVsZHMgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEZpZWxkc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '006eae8a-de76-4692-b688-ef61ec5ba883', 11, 'jcb_ce_onAfterBuildFields', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:39:46', 17, '', 3),
-(70, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkRmlsZXNDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBGaWxlcyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'ce8e5ff6-9ae2-4f63-8585-0a0eb90894d9', 11, 'jcb_ce_onBeforeBuildFilesContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 14:02:46', 17, '', 3),
-(71, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5FZGl0Vmlld0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBFZGl0IFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '945405b1-e1f3-475d-a210-57bfd6d85285', 11, 'jcb_ce_onBeforeBuildAdminEditViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 13:56:36', 17, '', 3),
-(72, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkVkaXRWaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIEVkaXQgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '0ab51c86-7cec-477e-84a1-473f6dfc3efe', 11, 'jcb_ce_onAfterBuildAdminEditViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 14:40:52', 19, '', 3),
-(73, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5MaXN0Vmlld0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBMaXN0IFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '8d11988c-b5da-417a-a822-bbee15805f75', 11, 'jcb_ce_onBeforeBuildAdminListViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 13:58:31', 18, '', 3),
-(74, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkxpc3RWaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExpc3QgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '488f76e1-9410-428c-8b80-2d2d1f3f473b', 11, 'jcb_ce_onAfterBuildAdminListViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 13:59:08', 19, '', 3),
-(75, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pblZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExpc3QgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cb762829-b0d9-4986-b08b-2469773b7dc8', 11, 'jcb_ce_onAfterBuildAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 14:00:49', 17, '', 3),
-(76, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQ3VzdG9tQWRtaW5WaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBDdXN0b20gQWRtaW4gVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '9ac1e7f9-9542-43d4-b3f7-eed1864f1f91', 11, 'jcb_ce_onBeforeBuildCustomAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:05:25', 17, '', 3),
-(77, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRDdXN0b21BZG1pblZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEN1c3RvbSBBZG1pbiBWaWV3IENvbnRlbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '11c8561b-1e5f-4ceb-a8aa-9ed23c9fcf04', 11, 'jcb_ce_onAfterBuildCustomAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 14:11:30', 17, '', 3),
-(78, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZVZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '9bf22b7f-70eb-4308-9bde-656224e12bb5', 11, 'jcb_ce_onBeforeBuildSiteViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 14:13:05', 17, '', 3),
-(79, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRGaWxlc0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEZpbGVzIENvbnRlbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'c79225f1-83d1-48ac-9205-bc3b8c6004cb', 11, 'jcb_ce_onAfterBuildFilesContent', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 08:25:34', 17, '', 3),
-(80, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5MYW5nIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '124a98a5-bfad-4bd0-801e-8eb11afc490c', 11, 'jcb_ce_onBeforeBuildAdminLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:28:47', 17, '', 3),
-(81, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkxhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '6cd1c885-8831-4ab2-8938-7fbd6afe7284', 11, 'jcb_ce_onAfterBuildAdminLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:29:00', 17, '', 3),
-(82, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZUxhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '872b2b74-0a31-476e-bf69-f07ad0c30013', 11, 'jcb_ce_onBeforeBuildSiteLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:29:14', 17, '', 3),
-(83, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRTaXRlTGFuZyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIFNpdGUgTGFuZ10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '8af20c08-1024-48f1-9455-c3477d18d88e', 11, 'jcb_ce_onAfterBuildSiteLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:29:25', 17, '', 3),
-(84, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZVN5c0xhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIFN5cyBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '7801e292-d42c-477c-ab81-33bc5ecf3c86', 11, 'jcb_ce_onBeforeBuildSiteSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:29:38', 17, '', 3),
-(85, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRTaXRlU3lzTGFuZyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIFNpdGUgU3lzIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '2eca1668-2713-426a-8ab0-7b8ab8c3038b', 11, 'jcb_ce_onAfterBuildSiteSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:31:33', 17, '', 3),
-(86, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5TeXNMYW5nIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBTeXMgTGFuZ10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '59e2c26b-1c09-408e-a7dd-61ebf8131ae9', 11, 'jcb_ce_onBeforeBuildAdminSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:30:23', 17, '', 3),
-(87, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pblN5c0xhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIFN5cyBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '48f340d6-3b5b-43eb-9d0e-fc9e6bae059d', 11, 'jcb_ce_onAfterBuildAdminSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-03 20:29:52', 17, '', 3),
-(88, 'JHRhcmdldEFyZWE=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWxsTGFuZ0ZpbGVzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBbGwgTGFuZyBGaWxlc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '520da18b-a159-4fe6-b89e-0d6fff7a4c09', 11, 'jcb_ce_onBeforeBuildAllLangFiles', 'public', '', 1, '2019-08-14 14:59:09', '2024-08-04 16:39:14', 18, '', 3),
-(89, 'JiRuYW1lLCAmJHBhdGgsICYkYm9tLCAmJHZpZXc=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldEZpbGVDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgRmlsZSBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '4fec5742-a4ad-4246-8dbd-c1fa33809657', 11, 'jcb_ce_onBeforeSetFileContent', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:11:05', 18, '', 3),
-(90, 'JiRjb250ZW50LCAmJG5hbWUsICYkcGF0aCwgJiRib20sICYkdmlldw==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkdldEZpbGVDb250ZW50cyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEdldCBGaWxlIENvbnRlbnRzXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'e7b0f288-56f3-4949-b956-d99fad261f84', 11, 'jcb_ce_onGetFileContents', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:10:19', 17, '', 3),
-(91, 'JiRjb250ZW50LCAmJG5hbWUsICYkcGF0aCwgJiRib20sICYkdmlldw==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVdyaXRlRmlsZUNvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgRmlsZSBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '72e032e3-76f6-4a5f-89de-3daadfc402b6', 11, 'jcb_ce_onBeforeWriteFileContent', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:11:49', 17, '', 3),
-(92, 'JiR0aW1lcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldENvbmZpZ0ZpZWxkc2V0cyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgQ29uZmlnIEZpZWxkc2V0c10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '94e5d802-32a1-487d-8a56-59e065c94968', 11, 'jcb_ce_onBeforeSetConfigFieldsets', 'public', '', 1, '2019-08-14 14:59:09', '2023-12-30 09:47:40', 17, '', 3),
-(93, 'JiR0aW1lcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyU2V0Q29uZmlnRmllbGRzZXRzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFNldCBDb25maWcgRmllbGRzZXRzXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '677860f0-6bb1-4884-b86d-4cb827b9b233', 11, 'jcb_ce_onAfterSetConfigFieldsets', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:53:02', 17, '', 3),
-(94, 'JiRjb21wb25lbnRQYXRoLCAmJHJlcG9GdWxsUGF0aCwgJiRjb21wb25lbnREYXRh', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVVwZGF0ZVJlcG8gZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBVcGRhdGUgUmVwb10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'bea8eec3-c5d6-48fa-88eb-180630e988f1', 11, 'jcb_ce_onBeforeUpdateRepo', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:54:53', 17, '', 3),
-(95, 'JiRjb21wb25lbnRQYXRoLCAmJHJlcG9GdWxsUGF0aCwgJiRjb21wb25lbnREYXRh', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyVXBkYXRlUmVwbyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFVwZGF0ZSBSZXBvXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '1d871930-4da5-442d-aaf7-85710d30db2f', 11, 'jcb_ce_onAfterUpdateRepo', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 09:55:25', 17, '', 3),
-(96, 'JiRjb21wb25lbnRQYXRoLCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJGNvbXBvbmVudEZvbGRlck5hbWU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVppcENvbXBvbmVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBaaXAgQ29tcG9uZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cb6f9b25-7946-4138-a2bb-dddde1418f12', 11, 'jcb_ce_onBeforeZipComponent', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:15:02', 17, '', 3),
-(97, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRiYWNrdXBQYXRo', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJhY2t1cFppcCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCYWNrdXAgWmlwXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '2d3acb7b-0191-470f-a95c-e013a0e367d7', 11, 'jcb_ce_onBeforeBackupZip', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:00:00', 17, '', 3),
-(98, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRjb21wb25lbnRTYWxlc05hbWU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vdmVUb1NlcnZlciBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb3ZlIFRvIFNlcnZlcl0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '7cc9b264-71fa-4316-8993-66deb5df511e', 11, 'jcb_ce_onBeforeMoveToServer', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:00:30', 17, '', 3),
-(99, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRjb21wb25lbnRGb2xkZXJOYW1l', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyWmlwQ29tcG9uZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFppcCBDb21wb25lbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '323b818c-5806-468c-aee0-57ee6d36df70', 11, 'jcb_ce_onAfterZipComponent', 'public', '', 1, '2019-08-14 14:59:09', '2024-01-05 10:00:52', 18, '', 3),
-(100, 'JiRjb250ZXh0LCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJHBsdWdpbkZvbGRlck5hbWUsICYkcGx1Z2luRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVppcFBsdWdpbiBldmVudA==', 'CS8qKgoJICogRXZlbnQgVHJpZ2dlcmVkIGluIHRoZSBjb21waWxlciBbb24gQmVmb3JlIFppcCBQbHVnaW5dCgkgKgoJICogQHJldHVybiAgdm9pZAoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'cb0431f2-b906-4db1-ac24-a80125305f59', 11, 'jcb_ce_onBeforeZipPlugin', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(101, 'JiRjb250ZXh0LCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJHBsdWdpbkZvbGRlck5hbWUsICYkcGx1Z2luRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyWmlwUGx1Z2luIGV2ZW50', 'CS8qKgoJICogRXZlbnQgVHJpZ2dlcmVkIGluIHRoZSBjb21waWxlciBbb24gQWZ0ZXIgWmlwIFBsdWdpbl0KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'b3a95602-090b-4ccf-be19-3414b47949ee', 11, 'jcb_ce_onAfterZipPlugin', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(102, 'JGluc3RhbGxlciwgJGV4dGVudGlvbl9pZA==', '', 'CS8qKgoJICogb25FeHRlbnNpb25BZnRlclVwZGF0ZS4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'a49ca2dd-16fc-4e39-a684-dfe7e1546cdd', 11, 'onExtensionAfterUpdate', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
-(103, 'JiR1cmwsICYkaGVhZGVycw==', '', 'CS8qKgoJICogb25JbnN0YWxsZXJCZWZvcmVQYWNrYWdlRG93bmxvYWQuCgkgKgoJICogRm9yIG1vZGlmaWNhdGlvbiBvZiBVUkwgYW5kIGhlYWRlcnMgYmVmb3JlIHBhY2thZ2UgZG93bmxvYWQKCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'e64853c8-beaa-482f-993c-920d73563210', 12, 'onInstallerBeforePackageDownload', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(104, 'JGNvbnRleHQsICRlaWQsICR2YWx1ZQ==', '', 'CS8qKgoJICogb25FeHRlbnNpb25BZnRlclVwZGF0ZS4KCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBiZWluZyBwYXNzZWQgdG8gdGhlIHBsdWdpbi4KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGVpZCAgICAgIEV4dGVuc2lvbiBpZHMgdG8gdW4vcHVibGlzaAoJICogQHBhcmFtICAgaW50ICAgICAkdmFsdWUgICAgUHVibGlzaCB2YWx1ZQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', 'e3e7df88-07ff-4ff4-8f51-9b86b9c273cc', 12, 'onExtensionAfterUpdate', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(105, 'JiRzaG93SmVkQW5kV2ViSW5zdGFsbGVyLCAmJGRpc3BsYXlPYmplY3Q=', '', 'CS8qKgoJICogb25JbnN0YWxsZXJCZWZvcmVEaXNwbGF5LgoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '1da96c1f-6075-403b-94df-19fff6263053', 12, 'onInstallerBeforeDisplay', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(106, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKgoJICogb25JbnN0YWxsZXJWaWV3QmVmb3JlRmlyc3RUYWIuCgkgKgoJICogQHJldHVybiAgYXJyYXkgb2YgdGFicwoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'eefabd77-68f4-4396-b20e-a907c3f1a95b', 12, 'onInstallerViewBeforeFirstTab', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(107, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKgoJICogb25JbnN0YWxsZXJBZGRJbnN0YWxsYXRpb25UYWIuCgkgKgoJICogQHJldHVybiAgYXJyYXkgb2YgdGFicwoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '4a903f38-81bb-47b6-acac-a3d7212617d7', 12, 'onInstallerAddInstallationTab', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(108, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKgoJICogb25JbnN0YWxsZXJWaWV3QWZ0ZXJMYXN0VGFiLgoJICoKCSAqIEByZXR1cm4gIGFycmF5IG9mIHRhYnMKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '0c44dc39-1973-4b30-9af7-acf6abc482fd', 12, 'onInstallerViewAfterLastTab', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(109, 'JG1vZGVsLCAmJHBhY2thZ2U=', '', 'CS8qKgoJICogb25JbnN0YWxsZXJCZWZvcmVJbnN0YWxsYXRpb24uCgkgKgoJICogVGhpcyBldmVudCBhbGxvd3MgYW4gaW5wdXQgcHJlLXRyZWF0bWVudCwgYSBjdXN0b20gcHJlLXBhY2tpbmcgb3IgY3VzdG9tIGluc3RhbGxhdGlvbi4KCSAqIChlLmcuIGZyb20gYSBKU09OIGRlc2NyaXB0aW9uKS4KCSAqCgkgKiBAcmV0dXJuICBib29sZWFuCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '0e694b93-694a-4f20-9e7f-290a920a10b3', 12, 'onInstallerBeforeInstallation', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(110, 'JG1vZGVsLCAmJHBhY2thZ2U=', '', 'CS8qKgoJICogb25JbnN0YWxsZXJCZWZvcmVJbnN0YWxsZXIuCgkgKgoJICogVGhpcyBldmVudCBhbGxvd3MgYSBjdXN0b20gaW5zdGFsbGF0aW9uIG9mIHRoZSBwYWNrYWdlIG9yIGEgY3VzdG9taXphdGlvbiBvZiB0aGUgcGFja2FnZToKCSAqCgkgKiBAcmV0dXJuICBib29sZWFuCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '51f5bea3-6a9e-4165-9e61-9cc91c865bfe', 12, 'onInstallerBeforeInstaller', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(111, 'JG1vZGVsLCAmJHBhY2thZ2UsICRpbnN0YWxsZXIsICYkcmVzdWx0LCAmJG1zZw==', '', 'CS8qKgoJICogb25JbnN0YWxsZXJBZnRlckluc3RhbGxlci4KCSAqCgkgKiBUaGlzIGV2ZW50IGFsbG93cyBhIGN1c3RvbSBhIHBvc3QtZmxpZ2h0CgkgKgoJICogQHJldHVybiAgYm9vbGVhbgoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', 'e3633016-5801-44ab-81d8-ff19c396745f', 12, 'onInstallerAfterInstaller', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 18, '', 1),
-(112, 'JGNvbnRleHQsICYkZGF0YQ==', '', 'CS8qKgoJICogUnVucyBvbiBjb250ZW50IHByZXBhcmF0aW9uIG9mIGRhdGEKCSAqCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBmb3IgdGhlIGRhdGEKCSAqIEBwYXJhbSAgIG9iamVjdCAgJGRhdGEgICAgIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBkYXRhIGZvciB0aGUgZm9ybS4KCSAqCgkgKiBAcmV0dXJuICBib29sZWFuCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'ab056f69-a17e-4060-99c3-3b0505da2c49', 3, 'onContentPrepareData', 'public', '', 1, '2019-08-17 01:59:23', '2022-01-07 20:08:43', 14, '', 4),
-(113, 'Rm9ybSAkZm9ybSwgJGRhdGE=', '', 'CS8qKgoJICogUnVucyBvbiBjb250ZW50IHByZXBhcmF0aW9uIG9mIGZvcm0uCgkgKgoJICogQHBhcmFtICAgRm9ybSAgICAgJGZvcm0gIFRoZSBmb3JtCgkgKiBAcGFyYW0gICBzdGRDbGFzcyAgJGRhdGEgIFRoZSBkYXRhCgkgKgoJICogQHJldHVybiAgYm9vbGVhbgoJICoKCSAqIEBzaW5jZSAgIDEuMAoJICov', 'plugins', '2d8f2ef2-5f8c-420f-a3c9-c252315b10ab', 3, 'onContentPrepareForm', 'public', '', 1, '2019-08-17 01:59:23', '2022-01-07 20:08:43', 14, '', 4),
-(114, 'SkZvcm0gJGZvcm0sICYkZGF0YQ==', '', 'CS8qKgoJICogVGhlIHZhbGlkYXRpb24gZXZlbnQuCgkgKgoJICogQHBhcmFtICAgSkZvcm0gICAgICRmb3JtICBUaGUgZm9ybQoJICogQHBhcmFtICAgc3RkQ2xhc3MgICRkYXRhICBUaGUgZGF0YQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '962e479a-7e71-40e2-92ff-b944f8345e42', 3, 'onUserBeforeDataValidation', 'public', '', 1, '2019-08-17 01:59:23', '0000-00-00 00:00:00', 1, '', 4),
-(115, 'JGNvbnRleHQsICRkYXRhLCBGb3JtICRmb3Jt', '', 'CS8qKgoJICogTm9ybWFsaXplcyB0aGUgcmVxdWVzdCBkYXRhLgoJICoKCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0CgkgKiBAcGFyYW0gICBvYmplY3QgICRkYXRhICAgICBUaGUgb2JqZWN0CgkgKiBAcGFyYW0gICBGb3JtICAgICRmb3JtICAgICBUaGUgZm9ybQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '782ad30f-b914-439a-913e-1f173041f146', 3, 'onContentNormaliseRequestData', 'public', '', 1, '2019-08-22 01:09:18', '2022-01-07 20:08:43', 13, '', 5),
-(116, 'JiRjb25maWcsICRjb21waWxlcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUdldCBldmVudA==', 'CS8qKgoJICogRXZlbnQgVHJpZ2dlcmVkIGluIHRoZSBjb21waWxlciBbb24gQmVmb3JlIEdldF0KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', '36244a14-d958-4eca-a144-641e7a443116', 11, 'jcb_ce_onBeforeGet', 'public', '', 1, '2019-08-22 01:09:18', '2022-01-07 20:08:43', 18, '', 1),
-(117, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyR2V0IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEdldF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '0695639b-a4b9-4e90-a6cb-a7664b8299fa', 11, 'jcb_ce_onAfterGet', 'public', '', 1, '2019-08-22 01:09:18', '2023-12-30 10:04:20', 19, '', 1),
-(118, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWNjZXNzU2VjdGlvbnMgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBY2Nlc3MgU2VjdGlvbnNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f9646de6-8bfe-46bb-94ef-32ee5a491623', 11, 'jcb_ce_onBeforeBuildAccessSections', 'public', '', 1, '2019-08-26 17:31:27', '2024-01-03 20:46:45', 5, '', 6),
-(119, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBY2Nlc3NTZWN0aW9ucyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFjY2VzcyBTZWN0aW9uc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '23d68585-5186-4ca4-8f20-0020030f0275', 11, 'jcb_ce_onAfterBuildAccessSections', 'public', '', 1, '2019-08-26 17:31:27', '2023-12-30 13:47:34', 5, '', 6),
-(120, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUdldENvbXBvbmVudERhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBHZXQgQ29tcG9uZW50IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '4c963ae0-d84d-4841-8758-ea3f95063c8c', 11, 'jcb_ce_onBeforeGetComponentData', 'public', '', 1, '2019-08-28 13:10:02', '2023-12-29 18:28:02', 4, '', 7),
-(121, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyR2V0Q29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEdldCBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '71a8f4a8-2bdf-4896-83af-cf871edd9d3a', 11, 'jcb_ce_onAfterGetComponentData', 'public', '', 1, '2019-08-28 13:10:02', '2023-12-29 18:28:26', 9, '', 7),
-(122, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIG9uQmVmb3JlQ29tcGlsZUhlYWQgZXZlbnQ=', 'LyoqDQogKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBoZWFkIGlzIGNvbXBpbGVkIGFuZCBhbGxvd3MgbWFuaXB1bGF0aW9uIG9mIHRoZSBoZWFkIGRhdGEuDQogKiBJbiB0aGlzIGNhc2UsIGl0J3MgdXNlZCB0byBhZGQgYSBKYXZhU2NyaXB0IGZpbGUgdG8gdGhlIGZyb250IGVuZCBvZiB0aGUgSm9vbWxhIHNpdGUuDQogKg0KICogQHJldHVybiAgdm9pZA0KICoNCiAqIEBzaW5jZSAgIDMuMC4wDQogKiBAdGhyb3dzICBFeGNlcHRpb24gb24gZXJyb3IuDQogKi8=', 'plugins', 'c4450b88-658c-4b19-a4a9-c82d14c12d98', 8, 'onBeforeCompileHead', 'public', '', 1, '2023-11-09 05:24:03', '2023-11-09 05:24:50', 2, '', 8);
+(1, 'JGNyZWRlbnRpYWxzLCAkb3B0aW9ucywgJiRyZXNwb25zZQ==', '', 'CS8qKg0KCSAqIFRoaXMgbWV0aG9kIHNob3VsZCBoYW5kbGUgYW55IGF1dGhlbnRpY2F0aW9uIGFuZCByZXBvcnQgYmFjayB0byB0aGUgc3ViamVjdA0KCSAqDQoJICogQHBhcmFtICAgYXJyYXkgICAkY3JlZGVudGlhbHMgIEFycmF5IGhvbGRpbmcgdGhlIHVzZXIgY3JlZGVudGlhbHMNCgkgKiBAcGFyYW0gICBhcnJheSAgICRvcHRpb25zICAgICAgQXJyYXkgb2YgZXh0cmEgb3B0aW9ucw0KCSAqIEBwYXJhbSAgIG9iamVjdCAgJiRyZXNwb25zZSAgICBBdXRoZW50aWNhdGlvbiByZXNwb25zZSBvYmplY3QNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4NCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'ceae0988-19bd-44aa-98d2-2653e0863450', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'onUserAuthenticate', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:20:56', 20, '', 1),
+(2, 'JG9wdGlvbnM=', '', 'CS8qKg0KCSAqIFdlIHNldCB0aGUgYXV0aGVudGljYXRpb24gY29va2llIG9ubHkgYWZ0ZXIgbG9naW4gaXMgc3VjY2Vzc2Z1bGxseSBmaW5pc2hlZC4NCgkgKiBXZSBzZXQgYSBuZXcgY29va2llIGVpdGhlciBmb3IgYSB1c2VyIHdpdGggbm8gY29va2llcyBvciBvbmUNCgkgKiB3aGVyZSB0aGUgdXNlciB1c2VkIGEgY29va2llIHRvIGF1dGhlbnRpY2F0ZS4NCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAkb3B0aW9ucyAgQXJyYXkgaG9sZGluZyBvcHRpb25zDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '9ef228f9-391f-41aa-ae7b-23cf0c4f3abd', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'onUserAfterLogin', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:21:49', 20, '', 1),
+(3, 'JG9wdGlvbnM=', '', 'CS8qKg0KCSAqIFRoaXMgaXMgd2hlcmUgd2UgZGVsZXRlIGFueSBhdXRoZW50aWNhdGlvbiBjb29raWUgd2hlbiBhIHVzZXIgbG9ncyBvdXQNCgkgKg0KCSAqIEBwYXJhbSAgIGFycmF5ICAkb3B0aW9ucyAgQXJyYXkgaG9sZGluZyBvcHRpb25zIChsZW5ndGgsIHRpbWVUb0V4cGlyYXRpb24pDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'f478fb9d-d419-4d83-a38e-0e109959ee5f', 'ca987443-0740-48ad-9db3-c623cdb02d51', 'onUserAfterLogout', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:22:22', 20, '', 1),
+(4, 'JiRzdWJqZWN0LCAkY29uZmlnID0gYXJyYXko', 'CQkkdGhpcy0+YWxsb3dMZWdhY3lMaXN0ZW5lcnMgPSBmYWxzZTsKCgkJcGFyZW50OjpfX2NvbnN0cnVjdCgkc3ViamVjdCwgJGNvbmZpZyk7', 'CS8qKgoJICogQ29uc3RydWN0b3IKCSAqCgkgKiBAcGFyYW0gICBEaXNwYXRjaGVySW50ZXJmYWNlICYkc3ViamVjdCAgIFRoZSBvYmplY3QgdG8gb2JzZXJ2ZQoJICogQHBhcmFtICAgYXJyYXkgICAgICAgICAgICAgICAkY29uZmlnICAgICBBbiBvcHRpb25hbCBhc3NvY2lhdGl2ZSBhcnJheSBvZiBjb25maWd1cmF0aW9uIHNldHRpbmdzLgoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWNvZ25pemVkIGtleSB2YWx1ZXMgaW5jbHVkZSAnbmFtZScsICdncm91cCcsICdwYXJhbXMnLCAnbGFuZ3VhZ2UnCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzIGxpc3QgaXMgbm90IG1lYW50IHRvIGJlIGNvbXByZWhlbnNpdmUpLgoJICoKCSAqIEBzaW5jZSAgMS4wLjAKCSAqLw==', 'plugins', '7bc74e45-e4f0-4dfe-b3d8-3bbf8685c9a6', 'db09e83f-f2aa-4c34-aad4-faf3b7427d1d', '__construct', 'public', '', 1, '2019-07-15 11:06:03', '2022-01-07 20:08:43', 20, '', 1),
+(5, 'Q21zRXZlbnRcVGFibGVcT2JqZWN0Q3JlYXRlRXZlbnQgJGV2ZW50', '', 'CS8qKg0KCSAqIFJ1bnMgd2hlbiBhIG5ldyB0YWJsZSBvYmplY3QgaXMgYmVpbmcgY3JlYXRlZA0KCSAqDQoJICogQHBhcmFtICAgQ21zRXZlbnRcVGFibGVcT2JqZWN0Q3JlYXRlRXZlbnQgJGV2ZW50IFRoZSBldmVudCB0byBoYW5kbGUNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'bfc2a9d6-f38c-47b4-863a-20b8bbb4881a', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'onTableObjectCreate', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:23:47', 20, '', 1),
+(6, 'Q21zRXZlbnRcVGFibGVcQWZ0ZXJTdG9yZUV2ZW50ICRldmVudA==', '', 'CS8qKg0KCSAqIFBvc3QtcHJvY2Vzc29yIGZvciAkdGFibGUtPnN0b3JlKCR1cGRhdGVOdWxscykNCgkgKg0KCSAqIEBwYXJhbSAgIENtc0V2ZW50XFRhYmxlXEFmdGVyU3RvcmVFdmVudCAkZXZlbnQgVGhlIGV2ZW50IHRvIGhhbmRsZQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '63dab292-6679-4544-84d9-7463211cf923', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'onTableAfterStore', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:25:08', 20, '', 1),
+(7, 'Q21zRXZlbnRcVGFibGVcQmVmb3JlRGVsZXRlRXZlbnQgJGV2ZW50', '', 'CS8qKg0KCSAqIFByZS1wcm9jZXNzb3IgZm9yICR0YWJsZS0+ZGVsZXRlKCRwaykNCgkgKg0KCSAqIEBwYXJhbSAgIENtc0V2ZW50XFRhYmxlXEJlZm9yZURlbGV0ZUV2ZW50ICRldmVudCBUaGUgZXZlbnQgdG8gaGFuZGxlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'afe79c43-b9d7-47b1-b223-9f0da0a3c436', '976cc8de-7092-41b8-9c04-f00be8fe4bde', 'onTableBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:25:59', 20, '', 1),
+(8, 'JGNvbnRleHQsICRhcnRpY2xl', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYW4gZXZlbnQgdGhhdCBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIHRoZSBjb250ZW50IGlzIGRlbGV0ZWQuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoYWRkZWQgaW4gMS42KS4NCgkgKiBAcGFyYW0gICBvYmplY3QgICRhcnRpY2xlICBBIEpUYWJsZUNvbnRlbnQgb2JqZWN0Lg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '73c389fa-fd28-4ac8-98f2-5f49ab55b31a', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:32:36', 19, '', 1),
+(9, 'JGNvbnRleHQsICRhcnRpY2xl', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYW4gZXZlbnQgdGhhdCBpcyBjYWxsZWQgcmlnaHQgYWZ0ZXIgdGhlIGNvbnRlbnQgaXMgZGVsZXRlZC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luIChhZGRlZCBpbiAxLjYpLg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgJGFydGljbGUgIEEgSlRhYmxlQ29udGVudCBvYmplY3QuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '71f78e36-cf86-486a-989c-03c2718e3d74', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:34:53', 19, '', 1),
+(10, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2U9MA==', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBwbGFjZWQNCgkgKiBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGdlbmVyYXRlZCBjb250ZW50Lg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IGJlaW5nIHBhc3NlZCB0byB0aGUgcGx1Z2luLg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICYkcm93ICAgICBUaGUgYXJ0aWNsZSBvYmplY3QuICBOb3RlICRhcnRpY2xlLT50ZXh0IGlzIGFsc28gYXZhaWxhYmxlDQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcw0KCSAqIEBwYXJhbSAgIGludGVnZXIgICRwYWdlICAgICBUaGUgJ3BhZ2UnIG51bWJlcg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'fb8ae84d-b775-4d4f-9954-831fffe230ae', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentBeforeDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:35:38', 19, '', 1),
+(11, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2U9MA==', 'CQkvLyBBY2Nlc3MgdG8gcGx1Z2luIHBhcmFtZXRlcnMNCgkJJHNhbXBsZSA9ICR0aGlzLT5wYXJhbXMtPmdldCgnc2FtcGxlJywgJzQyJyk7', 'CS8qKg0KCSAqIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBwbGFjZWQgaW1tZWRpYXRlbHkNCgkgKiBhZnRlciB0aGUgZ2VuZXJhdGVkIGNvbnRlbnQuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgYmVpbmcgcGFzc2VkIHRvIHRoZSBwbHVnaW4NCgkgKiBAcGFyYW0gICBvYmplY3QgICAmJHJvdyAgICAgVGhlIGFydGljbGUgb2JqZWN0DQoJICogQHBhcmFtICAgb2JqZWN0ICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcw0KCSAqIEBwYXJhbSAgIGludGVnZXIgICRwYWdlICAgICBUaGUgJ3BhZ2UnIG51bWJlcg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'e376bd99-7582-47e8-a421-5e9fa4df2781', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentAfterDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:36:20', 19, '', 1),
+(12, 'JGNvbnRleHQsICRhcnRpY2xlLCAkaXNOZXc=', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYW4gZXZlbnQgdGhhdCBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIHRoZSBjb250ZW50DQoJICogaXMgc2F2ZWQgaW50byB0aGUgZGF0YWJhc2UuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBwYXNzZWQgdG8gdGhlIHBsdWdpbiAoYWRkZWQgaW4gMS42KS4NCgkgKiBAcGFyYW0gICBvYmplY3QgICRhcnRpY2xlICBBIEpUYWJsZUNvbnRlbnQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGlzTmV3ICAgIElmIHRoZSBjb250ZW50IGlzIGp1c3QgYWJvdXQgdG8gYmUgY3JlYXRlZC4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '6322ab1e-0146-44a0-836c-c12496d6c37b', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:41:01', 19, '', 1),
+(13, 'JGNvbnRleHQsICRhcnRpY2xlLCAkaXNOZXc=', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYW4gZXZlbnQgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGNvbnRlbnQgaXMgc2F2ZWQNCgkgKiBpbnRvIHRoZSBkYXRhYmFzZS4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luIChhZGRlZCBpbiAxLjYpDQoJICogQHBhcmFtICAgb2JqZWN0ICAkYXJ0aWNsZSAgQSBKVGFibGVDb250ZW50IG9iamVjdA0KCSAqIEBwYXJhbSAgIGJvb2wgICAgJGlzTmV3ICAgIElmIHRoZSBjb250ZW50IGhhcyBqdXN0IGJlZW4gY3JlYXRlZA0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '6d3c1622-087f-48f9-a0eb-6fe6c3ff3abd', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:41:37', 19, '', 1),
+(14, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2UgPSAw', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYSByZXF1ZXN0IGZvciBpbmZvcm1hdGlvbiB0aGF0IHNob3VsZCBiZSBwbGFjZWQgYmV0d2VlbiB0aGUNCgkgKiBjb250ZW50IHRpdGxlIGFuZCB0aGUgY29udGVudCBib2R5Lg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IGJlaW5nIHBhc3NlZCB0byB0aGUgcGx1Z2luLg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICYkcm93ICAgICBUaGUgYXJ0aWNsZSBvYmplY3QuICBOb3RlICRhcnRpY2xlLT50ZXh0IGlzIGFsc28gYXZhaWxhYmxlDQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcw0KCSAqIEBwYXJhbSAgIGludGVnZXIgICRwYWdlICAgICBUaGUgJ3BhZ2UnIG51bWJlcg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cc61ce82-44ef-4eaf-89cf-03fb4138c942', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentAfterTitle', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:42:57', 19, '', 1),
+(15, 'JGNvbnRleHQsICRwa3MsICR2YWx1ZQ==', '', 'CS8qKg0KCSAqIFRoaXMgaXMgYW4gZXZlbnQgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY29udGVudHMgc3RhdGUgaXMgY2hhbmdlZC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRjb250ZXh0ICBUaGUgY29udGV4dCBmb3IgdGhlIGNvbnRlbnQgcGFzc2VkIHRvIHRoZSBwbHVnaW4uDQoJICogQHBhcmFtICAgYXJyYXkgICAgJHBrcyAgICAgIEEgbGlzdCBvZiBwcmltYXJ5IGtleSBpZHMgb2YgdGhlIGNvbnRlbnQgdGhhdCBoYXMgY2hhbmdlZCBzdGF0ZS4NCgkgKiBAcGFyYW0gICBpbnRlZ2VyICAkdmFsdWUgICAgVGhlIHZhbHVlIG9mIHRoZSBzdGF0ZSB0aGF0IHRoZSBjb250ZW50IGhhcyBiZWVuIGNoYW5nZWQgdG8uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '92e46234-5c28-4eb1-b3e9-b7adbfc7bbd4', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:43:43', 19, '', 1),
+(16, 'JGNvbnRleHQsICYkcm93LCAmJHBhcmFtcywgJHBhZ2UgPSAw', '', 'CS8qKg0KCSAqIFRoaXMgaXMgdGhlIGZpcnN0IHN0YWdlIGluIHByZXBhcmluZyBjb250ZW50IGZvciBvdXRwdXQgYW5kIGlzIHRoZQ0KCSAqIG1vc3QgY29tbW9uIHBvaW50IGZvciBjb250ZW50IG9yaWVudGF0ZWQgcGx1Z2lucyB0byBkbyB0aGVpciB3b3JrLg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAgJGNvbnRleHQgIFRoZSBjb250ZXh0IG9mIHRoZSBjb250ZW50IGJlaW5nIHBhc3NlZCB0byB0aGUgcGx1Z2luLg0KCSAqIEBwYXJhbSAgIG9iamVjdCAgICYkcm93ICAgICBUaGUgYXJ0aWNsZSBvYmplY3QuICBOb3RlICRhcnRpY2xlLT50ZXh0IGlzIGFsc28gYXZhaWxhYmxlDQoJICogQHBhcmFtICAgbWl4ZWQgICAgJiRwYXJhbXMgIFRoZSBhcnRpY2xlIHBhcmFtcw0KCSAqIEBwYXJhbSAgIGludGVnZXIgICRwYWdlICAgICBUaGUgJ3BhZ2UnIG51bWJlcg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '92fe98ad-c529-494a-9147-5ae1e4d78068', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentPrepare', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:45:24', 19, '', 1),
+(17, 'JG5hbWU=', 'CQkkbGluayA9ICdpbmRleC5waHA/b3B0aW9uPWNvbV9mb28mYW1wO3ZpZXc9Zm9vJmFtcDtsYXlvdXQ9bW9kYWwmYW1wO3RtcGw9Y29tcG9uZW50JmFtcDsnDQoJCQkuIFNlc3Npb246OmdldEZvcm1Ub2tlbigpIC4gJz0xJmFtcDtlZGl0b3I9JyAuICRuYW1lOw0KDQoJCSRidXR0b24gPSBuZXcgQ01TT2JqZWN0Ow0KCQkkYnV0dG9uLT5tb2RhbCA9IHRydWU7DQoJCSRidXR0b24tPmNsYXNzID0gJ2J0biBidG4tc2Vjb25kYXJ5JzsNCgkJJGJ1dHRvbi0+bGluayA9ICRsaW5rOw0KCQkkYnV0dG9uLT50ZXh0ID0gVGV4dDo6XygnUExHX0VESVRPUlNYVERfRk9PX0JVVFRPTl9GT08nKTsNCgkJJGJ1dHRvbi0+bmFtZSA9ICdmaWxlLWFkZCc7DQoJCSRidXR0b24tPm9wdGlvbnMgPSBhcnJheSgNCgkJCSdoZWlnaHQnICAgICA9PiAnMzAwcHgnLA0KCQkJJ3dpZHRoJyAgICAgID0+ICc4MDBweCcsDQoJCQknYm9keUhlaWdodCcgPT4gJzcwJywNCgkJCSdtb2RhbFdpZHRoJyA9PiAnODAnLA0KCQkpOw0KDQoJCXJldHVybiAkYnV0dG9uOw==', 'CS8qKg0KCSAqIERpc3BsYXkgdGhlIGJ1dHRvbg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICRuYW1lIFRoZSBuYW1lIG9mIHRoZSBidXR0b24gdG8gYWRkDQoJICoNCgkgKiBAcmV0dXJuICBDTVNPYmplY3QgIFRoZSBidXR0b24gb3B0aW9ucyBhcyBKT2JqZWN0DQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'b1d55780-5ba8-40d2-8dd6-fd9cd1ecf7f4', '9d4e911a-866f-4363-a47e-fc63f219aa01', 'onDisplay', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 19:51:26', 19, '', 1),
+(18, 'JGZpZWxkLCBET01FbGVtZW50ICRwYXJlbnQsIEpGb3JtICRmb3Jt', '', 'CS8qKg0KCSAqIFRyYW5zZm9ybXMgdGhlIGZpZWxkIGludG8gYSBET00gWE1MIGVsZW1lbnQgYW5kIGFwcGVuZHMgaXQgYXMgYSBjaGlsZCBvbiB0aGUgZ2l2ZW4gcGFyZW50Lg0KCSAqDQoJICogQHBhcmFtICAgc3RkQ2xhc3MgICAkZmllbGQgIFRoZSBmaWVsZC4NCgkgKiBAcGFyYW0gICBET01FbGVtZW50ICRwYXJlbnQgVGhlIGZpZWxkIG5vZGUgcGFyZW50Lg0KCSAqIEBwYXJhbSAgIEpGb3JtICAgICAgJGZvcm0gICBUaGUgZm9ybS4NCgkgKg0KCSAqIEByZXR1cm4gIERPTUVsZW1lbnQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMC4wDQoJICov', 'plugins', '62a85e6b-8d40-46fb-bb82-6999d79bddac', 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', 'onCustomFieldsPrepareDom', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:24:05', 19, '', 1),
+(19, 'JGNvbnRleHQsICRpdGVtLCAkaXNOZXcsICRkYXRhID0gYXJyYXko', '', 'CS8qKg0KCSAqIFRoZSBzYXZlIGV2ZW50Lg0KCSAqDQoJICogQHBhcmFtICAgc3RyaW5nICAkY29udGV4dCBUaGUgY29udGV4dA0KCSAqIEBwYXJhbSAgIEpUYWJsZSAgJGl0ZW0gICAgVGhlIHRhYmxlDQoJICogQHBhcmFtICAgYm9vbGVhbiAkaXNOZXcgICBJcyBuZXcgaXRlbQ0KCSAqIEBwYXJhbSAgIGFycmF5ICAgJGRhdGEgICAgVGhlIHZhbGlkYXRlZCBkYXRhDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuDQoJICoNCgkgKiBAc2luY2UgICAxLjAuMA0KCSAqLw==', 'plugins', 'd831a202-15f1-4458-b26c-7c69dee2caf5', 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', 'onContentBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:25:05', 19, '', 1),
+(20, 'JGV4dGVuc2lvbiwgJHBrcywgJHZhbHVl', 'CQkvLyBNYWtlIHN1cmUgd2UncmUgaGFuZGxpbmcgY29tX2NvbnRlbnQgY2F0ZWdvcmllcy4NCgkJaWYgKCRleHRlbnNpb24gPT09ICdjb21fZm9vJykNCgkJew0KCQkJJHRoaXMtPmNhdGVnb3J5U3RhdGVDaGFuZ2UoJHBrcywgJHZhbHVlKTsNCgkJfQ==', 'CS8qKg0KCSAqIE1ldGhvZCB0byB1cGRhdGUgdGhlIGl0ZW0gbGluayBpbmZvcm1hdGlvbiB3aGVuIHRoZSBpdGVtIGNhdGVnb3J5IGlzDQoJICogY2hhbmdlZC4gVGhpcyBpcyBmaXJlZCB3aGVuIHRoZSBpdGVtIGNhdGVnb3J5IGlzIHB1Ymxpc2hlZCBvciB1bnB1Ymxpc2hlZA0KCSAqIGZyb20gdGhlIGxpc3Qgdmlldy4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRleHRlbnNpb24gIFRoZSBleHRlbnNpb24gd2hvc2UgY2F0ZWdvcnkgaGFzIGJlZW4gdXBkYXRlZC4NCgkgKiBAcGFyYW0gICBhcnJheSAgICAkcGtzICAgICAgICBBIGxpc3Qgb2YgcHJpbWFyeSBrZXkgaWRzIG9mIHRoZSBjb250ZW50IHRoYXQgaGFzIGNoYW5nZWQgc3RhdGUuDQoJICogQHBhcmFtICAgaW50ZWdlciAgJHZhbHVlICAgICAgVGhlIHZhbHVlIG9mIHRoZSBzdGF0ZSB0aGF0IHRoZSBjb250ZW50IGhhcyBiZWVuIGNoYW5nZWQgdG8uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'fcccc173-d2ef-411c-9d39-b1db373bdc5d', '75021594-d111-4e01-9d42-4e86e57bbec3', 'onFinderCategoryChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:28:26', 19, '', 1),
+(21, 'JGNvbnRleHQsICR0YWJsZQ==', 'CQlpZiAoJGNvbnRleHQgPT09ICdjb21fZm9vLmZvbycpDQoJCXsNCgkJCSRpZCA9ICR0YWJsZS0+aWQ7DQoJCX0NCgkJZWxzZWlmICgkY29udGV4dCA9PT0gJ2NvbV9maW5kZXIuaW5kZXgnKQ0KCQl7DQoJCQkkaWQgPSAkdGFibGUtPmxpbmtfaWQ7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCS8vIFJlbW92ZSBpdGVtIGZyb20gdGhlIGluZGV4Lg0KCQlyZXR1cm4gJHRoaXMtPnJlbW92ZSgkaWQpOw==', 'CS8qKg0KCSAqIE1ldGhvZCB0byByZW1vdmUgdGhlIGxpbmsgaW5mb3JtYXRpb24gZm9yIGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgYWN0aW9uIGJlaW5nIHBlcmZvcm1lZC4NCgkgKiBAcGFyYW0gICBKVGFibGUgICR0YWJsZSAgICBBIEpUYWJsZSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVjb3JkIHRvIGJlIGRlbGV0ZWQNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgb24gc3VjY2Vzcy4NCgkgKg0KCSAqIEBzaW5jZSAgIDIuNQ0KCSAqIEB0aHJvd3MgIEV4Y2VwdGlvbiBvbiBkYXRhYmFzZSBlcnJvci4NCgkgKi8=', 'plugins', '581a6599-d81c-4b98-9eca-5d934abad88c', '75021594-d111-4e01-9d42-4e86e57bbec3', 'onFinderAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:28:43', 19, '', 1),
+(22, 'JGNvbnRleHQsICRyb3csICRpc05ldw==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuDQoJCWlmICgkY29udGV4dCA9PT0gJ2NvbV9mb28uZm9vJykNCgkJew0KCQkJLy8gQ2hlY2sgaWYgdGhlIGFjY2VzcyBsZXZlbHMgYXJlIGRpZmZlcmVudC4NCgkJCWlmICghJGlzTmV3ICYmICR0aGlzLT5vbGRfYWNjZXNzICE9ICRyb3ctPmFjY2VzcykNCgkJCXsNCgkJCQkvLyBQcm9jZXNzIHRoZSBjaGFuZ2UuDQoJCQkJJHRoaXMtPml0ZW1BY2Nlc3NDaGFuZ2UoJHJvdyk7DQoJCQl9DQoNCgkJCS8vIFJlaW5kZXggdGhlIGl0ZW0uDQoJCQkkdGhpcy0+cmVpbmRleCgkcm93LT5pZCk7DQoJCX0NCg0KCQkvLyBDaGVjayBmb3IgYWNjZXNzIGNoYW5nZXMgaW4gdGhlIGNhdGVnb3J5Lg0KCQlpZiAoJGNvbnRleHQgPT09ICdjb21fY2F0ZWdvcmllcy5jYXRlZ29yeScpDQoJCXsNCgkJCS8vIENoZWNrIGlmIHRoZSBhY2Nlc3MgbGV2ZWxzIGFyZSBkaWZmZXJlbnQuDQoJCQlpZiAoISRpc05ldyAmJiAkdGhpcy0+b2xkX2NhdGFjY2VzcyAhPSAkcm93LT5hY2Nlc3MpDQoJCQl7DQoJCQkJJHRoaXMtPmNhdGVnb3J5QWNjZXNzQ2hhbmdlKCRyb3cpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRydWU7', 'CS8qKg0KCSAqIFNtYXJ0IFNlYXJjaCBhZnRlciBzYXZlIGNvbnRlbnQgbWV0aG9kLg0KCSAqIFJlaW5kZXhlcyB0aGUgbGluayBpbmZvcm1hdGlvbiBmb3IgYW4gYXJ0aWNsZSB0aGF0IGhhcyBiZWVuIHNhdmVkLg0KCSAqIEl0IGFsc28gbWFrZXMgYWRqdXN0bWVudHMgaWYgdGhlIGFjY2VzcyBsZXZlbCBvZiBhbiBpdGVtIG9yIHRoZQ0KCSAqIGNhdGVnb3J5IHRvIHdoaWNoIGl0IGJlbG9uZ3MgaGFzIGNoYW5nZWQuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgb2YgdGhlIGNvbnRlbnQgcGFzc2VkIHRvIHRoZSBwbHVnaW4uDQoJICogQHBhcmFtICAgSlRhYmxlICAgJHJvdyAgICAgIEEgSlRhYmxlIG9iamVjdC4NCgkgKiBAcGFyYW0gICBib29sZWFuICAkaXNOZXcgICAgVHJ1ZSBpZiB0aGUgY29udGVudCBoYXMganVzdCBiZWVuIGNyZWF0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MuDQoJICoNCgkgKiBAc2luY2UgICAyLjUNCgkgKiBAdGhyb3dzICBFeGNlcHRpb24gb24gZGF0YWJhc2UgZXJyb3IuDQoJICov', 'plugins', '352d0b79-64d3-4e3d-a47d-beb62e9baa83', '75021594-d111-4e01-9d42-4e86e57bbec3', 'onFinderAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:29:37', 19, '', 1),
+(23, 'JGNvbnRleHQsICRyb3csICRpc05ldw==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuDQoJCWlmICgkY29udGV4dCA9PT0gJ2NvbV9mb28uZm9vJykNCgkJew0KCQkJLy8gUXVlcnkgdGhlIGRhdGFiYXNlIGZvciB0aGUgb2xkIGFjY2VzcyBsZXZlbCBpZiB0aGUgaXRlbSBpc24ndCBuZXcuDQoJCQlpZiAoISRpc05ldykNCgkJCXsNCgkJCQkkdGhpcy0+Y2hlY2tJdGVtQWNjZXNzKCRyb3cpOw0KCQkJfQ0KCQl9DQoNCgkJLy8gQ2hlY2sgZm9yIGFjY2VzcyBsZXZlbHMgZnJvbSB0aGUgY2F0ZWdvcnkuDQoJCWlmICgkY29udGV4dCA9PT0gJ2NvbV9jYXRlZ29yaWVzLmNhdGVnb3J5JykNCgkJew0KCQkJLy8gUXVlcnkgdGhlIGRhdGFiYXNlIGZvciB0aGUgb2xkIGFjY2VzcyBsZXZlbCBpZiB0aGUgaXRlbSBpc24ndCBuZXcuDQoJCQlpZiAoISRpc05ldykNCgkJCXsNCgkJCQkkdGhpcy0+Y2hlY2tDYXRlZ29yeUFjY2Vzcygkcm93KTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw==', 'CS8qKg0KCSAqIFNtYXJ0IFNlYXJjaCBiZWZvcmUgY29udGVudCBzYXZlIG1ldGhvZC4NCgkgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIGJlZm9yZSB0aGUgZGF0YSBpcyBhY3R1YWxseSBzYXZlZC4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBwYXNzZWQgdG8gdGhlIHBsdWdpbi4NCgkgKiBAcGFyYW0gICBKVGFibGUgICAkcm93ICAgICAgQSBKVGFibGUgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIGJvb2xlYW4gICRpc05ldyAgICBJZiB0aGUgY29udGVudCBpcyBqdXN0IGFib3V0IHRvIGJlIGNyZWF0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MuDQoJICoNCgkgKiBAc2luY2UgICAyLjUNCgkgKiBAdGhyb3dzICBFeGNlcHRpb24gb24gZGF0YWJhc2UgZXJyb3IuDQoJICov', 'plugins', '8d12aba2-a150-450a-bf9a-b178ce2bea0b', '75021594-d111-4e01-9d42-4e86e57bbec3', 'onFinderBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:30:09', 19, '', 1),
+(24, 'JGNvbnRleHQsICRwa3MsICR2YWx1ZQ==', 'CQkvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGFydGljbGVzIGhlcmUuDQoJCWlmICgkY29udGV4dCA9PT0gJ2NvbV9mb28uZm9vJykNCgkJew0KCQkJJHRoaXMtPml0ZW1TdGF0ZUNoYW5nZSgkcGtzLCAkdmFsdWUpOw0KCQl9DQoNCgkJLy8gSGFuZGxlIHdoZW4gdGhlIHBsdWdpbiBpcyBkaXNhYmxlZC4NCgkJaWYgKCRjb250ZXh0ID09PSAnY29tX3BsdWdpbnMucGx1Z2luJyAmJiAkdmFsdWUgPT09IDApDQoJCXsNCgkJCSR0aGlzLT5wbHVnaW5EaXNhYmxlKCRwa3MpOw0KCQl9', 'CS8qKg0KCSAqIE1ldGhvZCB0byB1cGRhdGUgdGhlIGxpbmsgaW5mb3JtYXRpb24gZm9yIGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQNCgkgKiBmcm9tIG91dHNpZGUgdGhlIGVkaXQgc2NyZWVuLiBUaGlzIGlzIGZpcmVkIHdoZW4gdGhlIGl0ZW0gaXMgcHVibGlzaGVkLA0KCSAqIHVucHVibGlzaGVkLCBhcmNoaXZlZCwgb3IgdW5hcmNoaXZlZCBmcm9tIHRoZSBsaXN0IHZpZXcuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICAkY29udGV4dCAgVGhlIGNvbnRleHQgZm9yIHRoZSBjb250ZW50IHBhc3NlZCB0byB0aGUgcGx1Z2luLg0KCSAqIEBwYXJhbSAgIGFycmF5ICAgICRwa3MgICAgICBBbiBhcnJheSBvZiBwcmltYXJ5IGtleSBpZHMgb2YgdGhlIGNvbnRlbnQgdGhhdCBoYXMgY2hhbmdlZCBzdGF0ZS4NCgkgKiBAcGFyYW0gICBpbnRlZ2VyICAkdmFsdWUgICAgVGhlIHZhbHVlIG9mIHRoZSBzdGF0ZSB0aGF0IHRoZSBjb250ZW50IGhhcyBiZWVuIGNoYW5nZWQgdG8uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAyLjUNCgkgKi8=', 'plugins', 'ff59ece3-e098-461a-bfbd-9c997130b272', '75021594-d111-4e01-9d42-4e86e57bbec3', 'onFinderChangeState', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:30:38', 19, '', 1),
+(25, 'RmluZGVySW5kZXhlclJlc3VsdCAkaXRlbSwgJGZvcm1hdCA9ICdodG1sJw==', 'CQkkaXRlbS0+c2V0TGFuZ3VhZ2UoKTsNCg0KCQkvLyBDaGVjayBpZiB0aGUgZXh0ZW5zaW9uIGlzIGVuYWJsZWQuDQoJCWlmIChDb21wb25lbnRIZWxwZXI6OmlzRW5hYmxlZCgkdGhpcy0+ZXh0ZW5zaW9uKSA9PT0gZmFsc2UpDQoJCXsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEFkZCB0aGUgbWV0YWRhdGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMuDQoJCSRpdGVtLT5hZGRJbnN0cnVjdGlvbihGaW5kZXJJbmRleGVyOjpNRVRBX0NPTlRFWFQsICdtZXRha2V5Jyk7DQoJCSRpdGVtLT5hZGRJbnN0cnVjdGlvbihGaW5kZXJJbmRleGVyOjpNRVRBX0NPTlRFWFQsICdtZXRhZGVzYycpOw0KCQkkaXRlbS0+YWRkSW5zdHJ1Y3Rpb24oRmluZGVySW5kZXhlcjo6TUVUQV9DT05URVhULCAnbWV0YWF1dGhvcicpOw0KCQkkaXRlbS0+YWRkSW5zdHJ1Y3Rpb24oRmluZGVySW5kZXhlcjo6TUVUQV9DT05URVhULCAnYXV0aG9yJyk7DQoJCSRpdGVtLT5hZGRJbnN0cnVjdGlvbihGaW5kZXJJbmRleGVyOjpNRVRBX0NPTlRFWFQsICdjcmVhdGVkX2J5X2FsaWFzJyk7DQoNCgkJLy8gQWRkIHRoZSBsYW5ndWFnZSB0YXhvbm9teSBkYXRhLg0KCQkkaXRlbS0+YWRkVGF4b25vbXkoJ0xhbmd1YWdlJywgJGl0ZW0tPmxhbmd1YWdlKTsNCg0KCQkvLyBHZXQgY29udGVudCBleHRyYXMuDQoJCUZpbmRlckluZGV4ZXJIZWxwZXI6OmdldENvbnRlbnRFeHRyYXMoJGl0ZW0pOw0KDQoJCS8vIEluZGV4IHRoZSBpdGVtLg0KCQkkdGhpcy0+aW5kZXhlci0+aW5kZXgoJGl0ZW0pOw==', 'CS8qKg0KCSAqIE1ldGhvZCB0byBpbmRleCBhbiBpdGVtLiBUaGUgaXRlbSBtdXN0IGJlIGEgRmluZGVySW5kZXhlclJlc3VsdCBvYmplY3QuDQoJICoNCgkgKiBAcGFyYW0gICBGaW5kZXJJbmRleGVyUmVzdWx0ICAkaXRlbSAgICBUaGUgaXRlbSB0byBpbmRleCBhcyBhIEZpbmRlckluZGV4ZXJSZXN1bHQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgICAgICAgICAgICAgICRmb3JtYXQgIFRoZSBpdGVtIGZvcm1hdC4gIE5vdCB1c2VkLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMi41DQoJICogQHRocm93cyAgRXhjZXB0aW9uIG9uIGRhdGFiYXNlIGVycm9yLg0KCSAqLw==', 'plugins', 'fc7c009e-e630-4507-8034-0b5e9886fca3', '75021594-d111-4e01-9d42-4e86e57bbec3', 'index', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:31:02', 19, '', 1),
+(26, 'RmluZGVySW5kZXhlclJlc3VsdCAkaXRlbSwgJGZvcm1hdCA9ICdodG1sJw==', 'CQkvLyBMb2FkIGRlcGVuZGVudCBjbGFzc2VzLg0KDQoJCXJldHVybiB0cnVlOw==', 'CS8qKg0KCSAqIE1ldGhvZCB0byBzZXR1cCB0aGUgaW5kZXhlciB0byBiZSBydW4uDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIG9uIHN1Y2Nlc3MuDQoJICoNCgkgKiBAc2luY2UgICAyLjUNCgkgKi8=', 'plugins', '00c39a5b-ca64-4785-aeae-e767e0bda078', '75021594-d111-4e01-9d42-4e86e57bbec3', 'setup', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:31:24', 21, '', 1),
+(27, 'JHF1ZXJ5ID0gbnVsbA==', 'CQkkZGIgPSBGYWN0b3J5OjpnZXREYm8oKTsNCg0KCQkvLyBDaGVjayBpZiB3ZSBjYW4gdXNlIHRoZSBzdXBwbGllZCBTUUwgcXVlcnkuDQoJCSRxdWVyeSA9ICRxdWVyeSBpbnN0YW5jZW9mIEpEYXRhYmFzZVF1ZXJ5ID8gJHF1ZXJ5IDogJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQlyZXR1cm4gJHF1ZXJ5Ow==', 'CS8qKg0KCSAqIE1ldGhvZCB0byBnZXQgdGhlIFNRTCBxdWVyeSB1c2VkIHRvIHJldHJpZXZlIHRoZSBsaXN0IG9mIGNvbnRlbnQgaXRlbXMuDQoJICoNCgkgKiBAcGFyYW0gICBtaXhlZCAgJHF1ZXJ5ICBBIEpEYXRhYmFzZVF1ZXJ5IG9iamVjdCBvciBudWxsLg0KCSAqDQoJICogQHJldHVybiAgSkRhdGFiYXNlUXVlcnkgIEEgZGF0YWJhc2Ugb2JqZWN0Lg0KCSAqDQoJICogQHNpbmNlICAgMi41DQoJICov', 'plugins', 'c43086af-3832-462e-91c7-79e5d7cbf6ba', '75021594-d111-4e01-9d42-4e86e57bbec3', 'getListQuery', 'protected', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:32:03', 19, '', 1),
+(28, 'JHF1ZXJ5ID0gbnVsbA==', 'CQlzdGF0aWMgJGFyZWFzID0gYXJyYXkoDQoJCQkndGFncycgPT4gJ1BMR19TRUFSQ0hfRk9PX0ZPTycNCgkJKTsNCg0KCQlyZXR1cm4gJGFyZWFzOw==', 'CS8qKg0KCSAqIERldGVybWluZSBhcmVhcyBzZWFyY2hhYmxlIGJ5IHRoaXMgcGx1Z2luLg0KCSAqDQoJICogQHJldHVybiAgYXJyYXkgIEFuIGFycmF5IG9mIHNlYXJjaCBhcmVhcy4NCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'ca414ec7-a0cb-4b3d-9561-a7492d896383', '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', 'onContentSearchAreas', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:46:33', 19, '', 1),
+(29, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIFNlYXJjaCBjb250ZW50ICh0YWdzKS4NCgkgKg0KCSAqIFRoZSBTUUwgbXVzdCByZXR1cm4gdGhlIGZvbGxvd2luZyBmaWVsZHMgdGhhdCBhcmUgdXNlZCBpbiBhIGNvbW1vbiBkaXNwbGF5DQoJICogcm91dGluZTogaHJlZiwgdGl0bGUsIHNlY3Rpb24sIGNyZWF0ZWQsIHRleHQsIGJyb3dzZXJuYXYuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICR0ZXh0ICAgICAgVGFyZ2V0IHNlYXJjaCBzdHJpbmcuDQoJICogQHBhcmFtICAgc3RyaW5nICAkcGhyYXNlICAgIE1hdGNoaW5nIG9wdGlvbiAocG9zc2libGUgdmFsdWVzOiBleGFjdHxhbnl8YWxsKS4gIERlZmF1bHQgaXMgImFueSIuDQoJICogQHBhcmFtICAgc3RyaW5nICAkb3JkZXJpbmcgIE9yZGVyaW5nIG9wdGlvbiAocG9zc2libGUgdmFsdWVzOiBuZXdlc3R8b2xkZXN0fHBvcHVsYXJ8YWxwaGF8Y2F0ZWdvcnkpLiAgRGVmYXVsdCBpcyAibmV3ZXN0Ii4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICRhcmVhcyAgICAgQW4gYXJyYXkgaWYgdGhlIHNlYXJjaCBpcyB0byBiZSByZXN0cmljdGVkIHRvIGFyZWFzIG9yIG51bGwgdG8gc2VhcmNoIGFsbCBhcmVhcy4NCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5ICBTZWFyY2ggcmVzdWx0cy4NCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'adea8559-f582-4b68-9d69-fcd514320353', '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', 'onContentSearch', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:47:00', 19, '', 1),
+(30, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uQWZ0ZXJJbml0aWFsaXNlLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '65779269-1540-4b00-a28b-181b9c579277', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterInitialise', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:49:19', 19, '', 1),
+(31, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uQWZ0ZXJSb3V0ZS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'e31c6e96-d490-4046-9545-133279fb973c', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterRoute', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:49:51', 19, '', 1),
+(32, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uQWZ0ZXJEaXNwYXRjaC4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '26b2d364-40b1-4e2f-9061-85699f8045e2', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterDispatch', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:50:18', 19, '', 1),
+(33, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', 'CQkvLyBBY2Nlc3MgdG8gcGx1Z2luIHBhcmFtZXRlcnMNCgkJJHNhbXBsZSA9ICR0aGlzLT5wYXJhbXMtPmdldCgnc2FtcGxlJywgJzQyJyk7', 'CS8qKg0KCSAqIG9uQWZ0ZXJSZW5kZXIuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '68834ef3-373e-4797-bb34-6b6d3499b70e', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterRender', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:50:37', 19, '', 1),
+(34, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uQWZ0ZXJDb21waWxlSGVhZC4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'e221ab75-51da-4f9a-bb8c-031e31b6c4a9', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterCompileHead', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:50:58', 19, '', 1),
+(35, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIE9uQWZ0ZXJDb21wcmVzcy4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '40434794-c4e9-4dce-9043-5c682c95ed78', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterCompress', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:51:19', 19, '', 1),
+(36, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uQWZ0ZXJSZXNwb25kLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '6c6e9986-d4ad-4eb7-be11-fb5f94c8b29f', '3f139f81-0697-4392-b065-6426adaa7ac6', 'onAfterRespond', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:51:39', 19, '', 1),
+(37, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckF1dGhvcmlzYXRpb24uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f4e76718-018a-4a99-80f1-78b989a8a017', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAuthorisation', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:59:13', 19, '', 1),
+(38, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckF1dGhvcmlzYXRpb25GYWlsdXJlLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '300988bc-4d3f-4512-b009-2b3731d4a234', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAuthorisationFailure', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:59:24', 19, '', 1),
+(39, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckJlZm9yZVNhdmUuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'dbbed809-e837-4f5c-ab0f-9edaebcfd796', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserBeforeSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 20:59:44', 19, '', 1),
+(40, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckFmdGVyU2F2ZS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'bf8eccf6-1cb3-45d8-b216-33dcef221b3c', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAfterSave', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:00:04', 19, '', 1),
+(41, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckJlZm9yZURlbGV0ZS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '11911fb5-c762-4c4d-8144-cd43e7fc9e29', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserBeforeDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:00:25', 19, '', 1),
+(42, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckFmdGVyRGVsZXRlLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '1383d6c4-3340-46e7-95f5-56568a30ea6f', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAfterDelete', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:00:39', 19, '', 1),
+(43, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckxvZ2luLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '3845713d-4a2a-41c1-b1b5-df126a581d5e', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserLogin', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:00:56', 19, '', 1),
+(44, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckxvZ2luRmFpbHVyZS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'e7ad952f-4c9f-4b4a-a37c-027aa7bed3be', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserLoginFailure', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:01:15', 19, '', 1),
+(45, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckFmdGVyTG9naW4uDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '6443b288-6b80-41c6-824f-fbf7e39545b8', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAfterLogin', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:01:42', 19, '', 1),
+(46, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckxvZ291dC4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '979e8928-70e8-4813-9e87-c4a3cb7f3e41', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserLogout', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:01:57', 21, '', 1),
+(47, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckJlZm9yZVNhdmVHcm91cC4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '90985779-0b61-4331-8c4f-9d63bb14b149', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserBeforeSaveGroup', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:02:12', 19, '', 1),
+(48, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckFmdGVyU2F2ZUdyb3VwLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'c71e62d1-46fb-4237-84f2-a3c62a62dd58', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAfterSaveGroup', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:02:28', 19, '', 1),
+(49, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckJlZm9yZURlbGV0ZUdyb3VwLg0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'a740f931-5847-4ddb-950e-a09e3f8cb059', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserBeforeDeleteGroup', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:02:46', 19, '', 1),
+(50, 'JHRleHQsICRwaHJhc2UgPSAnJywgJG9yZGVyaW5nID0gJycsICRhcmVhcyA9IG51bGw=', '', 'CS8qKg0KCSAqIG9uVXNlckFmdGVyRGVsZXRlR3JvdXAuDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f9e37adc-4f62-4783-9e17-d709ed60d821', '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', 'onUserAfterDeleteGroup', 'public', '', 1, '2019-07-15 11:06:03', '2025-05-31 21:03:00', 19, '', 1),
+(51, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKg0KCSAqIFBlcmZvcm1zIHZhbGlkYXRpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHJlbW92ZSBpbmZvcm1hdGlvbiByZXF1ZXN0IGNhbiBiZSBwcm9jZXNzZWQNCgkgKg0KCSAqIEBwYXJhbSAgIFByaXZhY3lUYWJsZVJlcXVlc3QgICRyZXF1ZXN0ICBUaGUgcmVxdWVzdCByZWNvcmQgYmVpbmcgcHJvY2Vzc2VkDQoJICogQHBhcmFtICAgSlVzZXIgICAgICAgICAgICAgICAgJHVzZXIgICAgIFRoZSB1c2VyIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdCBpZiBhdmFpbGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIFByaXZhY3lSZW1vdmFsU3RhdHVzDQoJICoNCgkgKiBAc2luY2UgICAxLjAuMA0KCSAqLw==', 'plugins', 'ddc9d897-8902-4ac3-bf38-f37e6af1a46a', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'onPrivacyCanRemoveData', 'public', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:42:33', 19, '', 2),
+(52, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKg0KCSAqIFByb2Nlc3NlcyBhbiBleHBvcnQgcmVxdWVzdCBmb3IgSm9vbWxhIGNvcmUgdXNlciBkYXRhDQoJICoNCgkgKiBAcGFyYW0gICBQcml2YWN5VGFibGVSZXF1ZXN0ICAkcmVxdWVzdCAgVGhlIHJlcXVlc3QgcmVjb3JkIGJlaW5nIHByb2Nlc3NlZA0KCSAqIEBwYXJhbSAgIEpVc2VyICAgICAgICAgICAgICAgICR1c2VyICAgICBUaGUgdXNlciBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QgaWYgYXZhaWxhYmxlDQoJICoNCgkgKiBAcmV0dXJuICBQcml2YWN5RXhwb3J0RG9tYWluW10NCgkgKg0KCSAqIEBzaW5jZSAgIDEuMC4wDQoJICov', 'plugins', '3692862c-6688-4afe-809e-c6677b318fea', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'onPrivacyExportRequest', 'public', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:43:07', 19, '', 2),
+(53, 'UHJpdmFjeVRhYmxlUmVxdWVzdCAkcmVxdWVzdCwgSlVzZXIgJHVzZXIgPSBudWxs', '', 'CS8qKg0KCSAqIFJlbW92ZXMgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgcmVtb3ZlIGluZm9ybWF0aW9uIHJlcXVlc3QNCgkgKg0KCSAqIEBwYXJhbSAgIFByaXZhY3lUYWJsZVJlcXVlc3QgICRyZXF1ZXN0ICBUaGUgcmVxdWVzdCByZWNvcmQgYmVpbmcgcHJvY2Vzc2VkDQoJICogQHBhcmFtICAgSlVzZXIgICAgICAgICAgICAgICAgJHVzZXIgICAgIFRoZSB1c2VyIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdCBpZiBhdmFpbGFibGUNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMC4wDQoJICov', 'plugins', '1e9e7ad9-ea31-43a2-a288-ffaa4bec5101', '2d8677ea-cda3-48d3-828d-da656c52dbe1', 'onPrivacyRemoveData', 'public', '', 1, '2019-07-16 00:25:53', '2025-05-31 20:43:38', 19, '', 2),
+(54, 'JiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Q29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'eaa35b7f-7d1c-49d3-831f-bb0244252666', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeQueryComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:09:33', 19, '', 3),
+(55, 'JiRjb21wb25lbnQ=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsQ29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '9eb554e0-76ea-4a03-8f46-8475d5bf5333', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeModelComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:10:50', 19, '', 3),
+(56, 'JiRjb21wb25lbnQ=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxDb21wb25lbnREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIENvbXBvbmVudCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '8313b40b-c2c5-4e11-ae90-c00f64ea0694', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterModelComponentData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:18:04', 19, '', 3),
+(57, 'JiRpZCwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Vmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f94ccd78-499a-4506-a861-db10d9318d4b', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeQueryViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:08:56', 19, '', 3),
+(58, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '75abc21c-b567-45fa-a2f0-c63881016117', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeModelViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:09:52', 19, '', 3),
+(59, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxWaWV3RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIFZpZXcgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '399887f9-be54-49ce-8f39-857f006f42a1', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterModelViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:43', 19, '', 3),
+(60, 'JiRpZCwgJiR0YWJsZSwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5Q3VzdG9tVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBDdXN0b20gVmlldyBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'c155d2f5-438b-42ed-bd99-a5da5e58a5aa', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeQueryCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:10:24', 20, '', 3),
+(61, 'JiR2aWV3LCAmJGlkLCAmJHRhYmxl', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsQ3VzdG9tVmlld0RhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBDdXN0b20gVmlldyBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '6467fa89-e765-4fad-827d-27b5cc19c7f5', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeModelCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:10:39', 19, '', 3),
+(62, 'JiR2aWV3', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxDdXN0b21WaWV3RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIEN1c3RvbSBWaWV3IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '0d7d1e31-f051-4073-b2a6-da5641db35e5', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterModelCustomViewData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:18:00', 18, '', 3),
+(63, 'JiRpZCwgJiRxdWVyeSwgJiRkYg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVF1ZXJ5RmllbGREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBRdWVyeSBGaWVsZCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '68234c9c-ce45-40cb-bf20-26439ca59fb5', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeQueryFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:09:09', 18, '', 3),
+(64, 'JiRmaWVsZA==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vZGVsRmllbGREYXRhIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb2RlbCBGaWVsZCBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'fad73446-8b5e-47ea-9a45-204955be1396', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeModelFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:10:30', 19, '', 3),
+(65, 'JiRmaWVsZA==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyTW9kZWxGaWVsZERhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIE1vZGVsIEZpZWxkIERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '5489124e-92e1-47f2-abcc-9f2e3d3734d2', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterModelFieldData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:53', 18, '', 3),
+(66, 'JiRqb29tbGFWZXJzaW9uRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyU2V0Sm9vbWxhVmVyc2lvbkRhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFNldCBKb29tbGEgVmVyc2lvbiBEYXRhXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '5975f8a2-c0bf-407b-93e6-df71c23d1340', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterSetJoomlaVersionData', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:30', 19, '', 3),
+(67, 'JiRsaWJyYXJpZXM=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldExpYmFyaWVzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgTGliYXJpZXNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '5b6d33b1-e3cb-404f-87df-4141d46edf22', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeSetLibaries', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:08:04', 18, '', 3),
+(68, 'JiRkeW5hbWljX2ZpZWxkcywgJiRyZWFkX29ubHksICYkZGJrZXksICYkdmlldywgJiRjb21wb25lbnQsICYkbmFtZVNpbmdsZUNvZGUsICYkbmFtZUxpc3RDb2RlLCAmJGxhbmdfdmlldywgJiRsYW5nX3ZpZXdz', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkRmllbGRzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBGaWVsZHNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '95cc5748-044e-4117-8902-13a88f793227', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildFields', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:04', 19, '', 3),
+(69, 'JiRkeW5hbWljX2ZpZWxkcywgJiRyZWFkX29ubHksICYkZGJrZXksICYkdmlldywgJiRjb21wb25lbnQsICYkbmFtZVNpbmdsZUNvZGUsICYkbmFtZUxpc3RDb2RlLCAmJGxhbmdfdmlldywgJiRsYW5nX3ZpZXdz', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRGaWVsZHMgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEZpZWxkc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '006eae8a-de76-4692-b688-ef61ec5ba883', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildFields', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:03', 18, '', 3),
+(70, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkRmlsZXNDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBGaWxlcyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'ce8e5ff6-9ae2-4f63-8585-0a0eb90894d9', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildFilesContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:00', 20, '', 3),
+(71, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5FZGl0Vmlld0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBFZGl0IFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '945405b1-e1f3-475d-a210-57bfd6d85285', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAdminEditViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:26', 19, '', 3),
+(72, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkVkaXRWaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIEVkaXQgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '0ab51c86-7cec-477e-84a1-473f6dfc3efe', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAdminEditViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:58', 20, '', 3),
+(73, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5MaXN0Vmlld0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBMaXN0IFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '8d11988c-b5da-417a-a822-bbee15805f75', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAdminListViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:18', 20, '', 3),
+(74, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkxpc3RWaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExpc3QgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '488f76e1-9410-428c-8b80-2d2d1f3f473b', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAdminListViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:33', 20, '', 3),
+(75, 'JiR2aWV3LCAmJHZpZXdOYW1lX3NpbmdsZSwgJiR2aWV3TmFtZV9saXN0', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pblZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExpc3QgVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cb762829-b0d9-4986-b08b-2469773b7dc8', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:19', 18, '', 3),
+(76, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQ3VzdG9tQWRtaW5WaWV3Q29udGVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBDdXN0b20gQWRtaW4gVmlldyBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '9ac1e7f9-9542-43d4-b3f7-eed1864f1f91', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildCustomAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:08', 19, '', 3),
+(77, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRDdXN0b21BZG1pblZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEN1c3RvbSBBZG1pbiBWaWV3IENvbnRlbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '11c8561b-1e5f-4ceb-a8aa-9ed23c9fcf04', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildCustomAdminViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:10', 18, '', 3),
+(78, 'JiR2aWV3LCAmJGNvZGU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZVZpZXdDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIFZpZXcgQ29udGVudF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '9bf22b7f-70eb-4308-9bde-656224e12bb5', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildSiteViewContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:14:34', 19, '', 3),
+(79, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRGaWxlc0NvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEZpbGVzIENvbnRlbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'c79225f1-83d1-48ac-9205-bc3b8c6004cb', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildFilesContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:20:52', 19, '', 3),
+(80, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5MYW5nIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '124a98a5-bfad-4bd0-801e-8eb11afc490c', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAdminLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:22', 19, '', 3),
+(81, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pbkxhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '6cd1c885-8831-4ab2-8938-7fbd6afe7284', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAdminLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:44', 18, '', 3),
+(82, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZUxhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '872b2b74-0a31-476e-bf69-f07ad0c30013', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildSiteLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:14:40', 19, '', 3),
+(83, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRTaXRlTGFuZyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIFNpdGUgTGFuZ10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '8af20c08-1024-48f1-9455-c3477d18d88e', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildSiteLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:20:48', 18, '', 3),
+(84, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkU2l0ZVN5c0xhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBTaXRlIFN5cyBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '7801e292-d42c-477c-ab81-33bc5ecf3c86', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildSiteSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:14:37', 19, '', 3),
+(85, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRTaXRlU3lzTGFuZyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIFNpdGUgU3lzIExhbmddDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '2eca1668-2713-426a-8ab0-7b8ab8c3038b', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildSiteSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:20:32', 18, '', 3),
+(86, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWRtaW5TeXNMYW5nIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBZG1pbiBTeXMgTGFuZ10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '59e2c26b-1c09-408e-a7dd-61ebf8131ae9', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAdminSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:14', 19, '', 3),
+(87, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBZG1pblN5c0xhbmcgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFkbWluIFN5cyBMYW5nXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '48f340d6-3b5b-43eb-9d0e-fc9e6bae059d', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAdminSysLang', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:21:27', 18, '', 3),
+(88, 'JHRhcmdldEFyZWE=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWxsTGFuZ0ZpbGVzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBbGwgTGFuZyBGaWxlc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '520da18b-a159-4fe6-b89e-0d6fff7a4c09', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAllLangFiles', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:19:11', 20, '', 3),
+(89, 'JiRuYW1lLCAmJHBhdGgsICYkYm9tLCAmJHZpZXc=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldEZpbGVDb250ZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgRmlsZSBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '4fec5742-a4ad-4246-8dbd-c1fa33809657', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeSetFileContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:08:41', 20, '', 3),
+(90, 'JiRjb250ZW50LCAmJG5hbWUsICYkcGF0aCwgJiRib20sICYkdmlldw==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkdldEZpbGVDb250ZW50cyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEdldCBGaWxlIENvbnRlbnRzXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'e7b0f288-56f3-4949-b956-d99fad261f84', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onGetFileContents', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:06:28', 18, '', 3),
+(91, 'JiRjb250ZW50LCAmJG5hbWUsICYkcGF0aCwgJiRib20sICYkdmlldw==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVdyaXRlRmlsZUNvbnRlbnQgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgRmlsZSBDb250ZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '72e032e3-76f6-4a5f-89de-3daadfc402b6', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeWriteFileContent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:07:08', 18, '', 3),
+(92, 'JiR0aW1lcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVNldENvbmZpZ0ZpZWxkc2V0cyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBTZXQgQ29uZmlnIEZpZWxkc2V0c10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '94e5d802-32a1-487d-8a56-59e065c94968', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeSetConfigFieldsets', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:08:50', 18, '', 3),
+(93, 'JiR0aW1lcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyU2V0Q29uZmlnRmllbGRzZXRzIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFNldCBDb25maWcgRmllbGRzZXRzXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '677860f0-6bb1-4884-b86d-4cb827b9b233', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterSetConfigFieldsets', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:39', 18, '', 3),
+(94, 'JiRjb21wb25lbnRQYXRoLCAmJHJlcG9GdWxsUGF0aCwgJiRjb21wb25lbnREYXRh', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVVwZGF0ZVJlcG8gZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBVcGRhdGUgUmVwb10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'bea8eec3-c5d6-48fa-88eb-180630e988f1', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeUpdateRepo', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:07:55', 19, '', 3),
+(95, 'JiRjb21wb25lbnRQYXRoLCAmJHJlcG9GdWxsUGF0aCwgJiRjb21wb25lbnREYXRh', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyVXBkYXRlUmVwbyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFVwZGF0ZSBSZXBvXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '1d871930-4da5-442d-aaf7-85710d30db2f', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterUpdateRepo', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:25', 18, '', 3),
+(96, 'JiRjb21wb25lbnRQYXRoLCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJGNvbXBvbmVudEZvbGRlck5hbWU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVppcENvbXBvbmVudCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBaaXAgQ29tcG9uZW50XQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cb6f9b25-7946-4138-a2bb-dddde1418f12', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeZipComponent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:06:54', 19, '', 3),
+(97, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRiYWNrdXBQYXRo', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJhY2t1cFppcCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCYWNrdXAgWmlwXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '2d3acb7b-0191-470f-a95c-e013a0e367d7', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBackupZip', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:01', 18, '', 3),
+(98, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRjb21wb25lbnRTYWxlc05hbWU=', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZU1vdmVUb1NlcnZlciBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBNb3ZlIFRvIFNlcnZlcl0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '7cc9b264-71fa-4316-8993-66deb5df511e', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeMoveToServer', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:10:35', 20, '', 3),
+(99, 'JiRmaWxlcGF0aCwgJiR0ZW1wUGF0aCwgJiRjb21wb25lbnRGb2xkZXJOYW1l', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyWmlwQ29tcG9uZW50IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFppcCBDb21wb25lbnRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '323b818c-5806-468c-aee0-57ee6d36df70', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterZipComponent', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:19', 19, '', 3),
+(100, 'JiRjb250ZXh0LCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJHBsdWdpbkZvbGRlck5hbWUsICYkcGx1Z2luRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZVppcFBsdWdpbiBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBaaXAgUGx1Z2luXQ0KCSAqDQoJICogQHJldHVybiAgdm9pZA0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'cb0431f2-b906-4db1-ac24-a80125305f59', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeZipPlugin', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:06:37', 17, '', 3),
+(101, 'JiRjb250ZXh0LCAmJGZpbGVwYXRoLCAmJHRlbXBQYXRoLCAmJHBsdWdpbkZvbGRlck5hbWUsICYkcGx1Z2luRGF0YQ==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyWmlwUGx1Z2luIGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIFppcCBQbHVnaW5dDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'b3a95602-090b-4ccf-be19-3414b47949ee', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterZipPlugin', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:17:10', 17, '', 3),
+(102, 'JGluc3RhbGxlciwgJGV4dGVudGlvbl9pZA==', '', 'CS8qKgoJICogb25FeHRlbnNpb25BZnRlclVwZGF0ZS4KCSAqCgkgKiBAcmV0dXJuICB2b2lkCgkgKgoJICogQHNpbmNlICAgMS4wCgkgKi8=', 'plugins', 'a49ca2dd-16fc-4e39-a684-dfe7e1546cdd', 'ee972dea-aa60-4620-aa76-2c8dda7548ae', 'onExtensionAfterUpdate', 'public', '', 1, '2019-08-14 14:59:09', '2022-01-07 20:08:43', 16, '', 3),
+(103, 'JiR1cmwsICYkaGVhZGVycw==', '', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQmVmb3JlUGFja2FnZURvd25sb2FkLg0KCSAqDQoJICogRm9yIG1vZGlmaWNhdGlvbiBvZiBVUkwgYW5kIGhlYWRlcnMgYmVmb3JlIHBhY2thZ2UgZG93bmxvYWQNCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', 'e64853c8-beaa-482f-993c-920d73563210', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerBeforePackageDownload', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:36:37', 19, '', 1),
+(104, 'JGNvbnRleHQsICRlaWQsICR2YWx1ZQ==', '', 'CS8qKg0KCSAqIG9uRXh0ZW5zaW9uQWZ0ZXJVcGRhdGUuDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBvZiB0aGUgY29udGVudCBiZWluZyBwYXNzZWQgdG8gdGhlIHBsdWdpbi4NCgkgKiBAcGFyYW0gICBhcnJheSAgICRlaWQgICAgICBFeHRlbnNpb24gaWRzIHRvIHVuL3B1Ymxpc2gNCgkgKiBAcGFyYW0gICBpbnQgICAgICR2YWx1ZSAgICBQdWJsaXNoIHZhbHVlDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'e3e7df88-07ff-4ff4-8f51-9b86b9c273cc', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onExtensionAfterUpdate', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:37:00', 19, '', 1),
+(105, 'JiRzaG93SmVkQW5kV2ViSW5zdGFsbGVyLCAmJGRpc3BsYXlPYmplY3Q=', '', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQmVmb3JlRGlzcGxheS4NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '1da96c1f-6075-403b-94df-19fff6263053', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerBeforeDisplay', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:37:18', 19, '', 1),
+(106, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyVmlld0JlZm9yZUZpcnN0VGFiLg0KCSAqDQoJICogQHJldHVybiAgYXJyYXkgb2YgdGFicw0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', 'eefabd77-68f4-4396-b20e-a907c3f1a95b', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerViewBeforeFirstTab', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:37:55', 19, '', 1),
+(107, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQWRkSW5zdGFsbGF0aW9uVGFiLg0KCSAqDQoJICogQHJldHVybiAgYXJyYXkgb2YgdGFicw0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '4a903f38-81bb-47b6-acac-a3d7212617d7', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerAddInstallationTab', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:38:28', 19, '', 1),
+(108, 'JHRhYnMgPSBhcnJheSg=', 'CQlyZXR1cm4gJHRhYnM7', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyVmlld0FmdGVyTGFzdFRhYi4NCgkgKg0KCSAqIEByZXR1cm4gIGFycmF5IG9mIHRhYnMNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '0c44dc39-1973-4b30-9af7-acf6abc482fd', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerViewAfterLastTab', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:39:04', 19, '', 1),
+(109, 'JG1vZGVsLCAmJHBhY2thZ2U=', '', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQmVmb3JlSW5zdGFsbGF0aW9uLg0KCSAqDQoJICogVGhpcyBldmVudCBhbGxvd3MgYW4gaW5wdXQgcHJlLXRyZWF0bWVudCwgYSBjdXN0b20gcHJlLXBhY2tpbmcgb3IgY3VzdG9tIGluc3RhbGxhdGlvbi4NCgkgKiAoZS5nLiBmcm9tIGEgSlNPTiBkZXNjcmlwdGlvbikuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '0e694b93-694a-4f20-9e7f-290a920a10b3', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerBeforeInstallation', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:39:32', 19, '', 1),
+(110, 'JG1vZGVsLCAmJHBhY2thZ2U=', '', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQmVmb3JlSW5zdGFsbGVyLg0KCSAqDQoJICogVGhpcyBldmVudCBhbGxvd3MgYSBjdXN0b20gaW5zdGFsbGF0aW9uIG9mIHRoZSBwYWNrYWdlIG9yIGEgY3VzdG9taXphdGlvbiBvZiB0aGUgcGFja2FnZToNCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4NCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '51f5bea3-6a9e-4165-9e61-9cc91c865bfe', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerBeforeInstaller', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:40:03', 19, '', 1),
+(111, 'JG1vZGVsLCAmJHBhY2thZ2UsICRpbnN0YWxsZXIsICYkcmVzdWx0LCAmJG1zZw==', '', 'CS8qKg0KCSAqIG9uSW5zdGFsbGVyQWZ0ZXJJbnN0YWxsZXIuDQoJICoNCgkgKiBUaGlzIGV2ZW50IGFsbG93cyBhIGN1c3RvbSBhIHBvc3QtZmxpZ2h0DQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'e3633016-5801-44ab-81d8-ff19c396745f', '93940067-92d1-4cc2-b4e2-d3fc118d99bd', 'onInstallerAfterInstaller', 'public', '', 1, '2019-08-14 14:59:09', '2025-05-31 20:40:34', 19, '', 1),
+(112, 'JGNvbnRleHQsICYkZGF0YQ==', '', 'CS8qKg0KCSAqIFJ1bnMgb24gY29udGVudCBwcmVwYXJhdGlvbiBvZiBkYXRhDQoJICoNCgkgKiBAcGFyYW0gICBzdHJpbmcgICRjb250ZXh0ICBUaGUgY29udGV4dCBmb3IgdGhlIGRhdGENCgkgKiBAcGFyYW0gICBvYmplY3QgICRkYXRhICAgICBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgZGF0YSBmb3IgdGhlIGZvcm0uDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'ab056f69-a17e-4060-99c3-3b0505da2c49', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentPrepareData', 'public', '', 1, '2019-08-17 01:59:23', '2025-05-31 19:46:40', 15, '', 4),
+(113, 'Rm9ybSAkZm9ybSwgJGRhdGE=', '', 'CS8qKg0KCSAqIFJ1bnMgb24gY29udGVudCBwcmVwYXJhdGlvbiBvZiBmb3JtLg0KCSAqDQoJICogQHBhcmFtICAgRm9ybSAgICAgJGZvcm0gIFRoZSBmb3JtDQoJICogQHBhcmFtICAgc3RkQ2xhc3MgICRkYXRhICBUaGUgZGF0YQ0KCSAqDQoJICogQHJldHVybiAgYm9vbGVhbg0KCSAqDQoJICogQHNpbmNlICAgMS4wDQoJICov', 'plugins', '2d8f2ef2-5f8c-420f-a3c9-c252315b10ab', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentPrepareForm', 'public', '', 1, '2019-08-17 01:59:23', '2025-05-31 19:47:38', 15, '', 4),
+(114, 'SkZvcm0gJGZvcm0sICYkZGF0YQ==', '', 'CS8qKgoJICogVGhlIHZhbGlkYXRpb24gZXZlbnQuCgkgKgoJICogQHBhcmFtICAgSkZvcm0gICAgICRmb3JtICBUaGUgZm9ybQoJICogQHBhcmFtICAgc3RkQ2xhc3MgICRkYXRhICBUaGUgZGF0YQoJICoKCSAqIEByZXR1cm4gIHZvaWQKCSAqCgkgKiBAc2luY2UgICAxLjAKCSAqLw==', 'plugins', '962e479a-7e71-40e2-92ff-b944f8345e42', 'cc83a326-07a4-41d0-a456-4123eb77e655', 'onUserBeforeDataValidation', 'public', '', 1, '2019-08-17 01:59:23', '0000-00-00 00:00:00', 1, '', 4),
+(115, 'JGNvbnRleHQsICRkYXRhLCBGb3JtICRmb3Jt', '', 'CS8qKg0KCSAqIE5vcm1hbGl6ZXMgdGhlIHJlcXVlc3QgZGF0YS4NCgkgKg0KCSAqIEBwYXJhbSAgIHN0cmluZyAgJGNvbnRleHQgIFRoZSBjb250ZXh0DQoJICogQHBhcmFtICAgb2JqZWN0ICAkZGF0YSAgICAgVGhlIG9iamVjdA0KCSAqIEBwYXJhbSAgIEZvcm0gICAgJGZvcm0gICAgIFRoZSBmb3JtDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '782ad30f-b914-439a-913e-1f173041f146', '37f35ae4-fc6c-49f0-b070-8701da85455d', 'onContentNormaliseRequestData', 'public', '', 1, '2019-08-22 01:09:18', '2025-05-31 19:48:10', 14, '', 5),
+(116, 'JiRjb25maWcsICRjb21waWxlcg==', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUdldCBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBHZXRdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '36244a14-d958-4eca-a144-641e7a443116', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeGet', 'public', '', 1, '2019-08-22 01:09:18', '2025-05-31 20:14:30', 21, '', 1),
+(117, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyR2V0IGV2ZW50', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEdldF0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '0695639b-a4b9-4e90-a6cb-a7664b8299fa', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterGet', 'public', '', 1, '2019-08-22 01:09:18', '2025-05-31 20:18:21', 21, '', 1),
+(118, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUJ1aWxkQWNjZXNzU2VjdGlvbnMgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBCdWlsZCBBY2Nlc3MgU2VjdGlvbnNdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', 'f9646de6-8bfe-46bb-94ef-32ee5a491623', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeBuildAccessSections', 'public', '', 1, '2019-08-26 17:31:27', '2025-05-31 20:16:54', 6, '', 6),
+(119, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyQnVpbGRBY2Nlc3NTZWN0aW9ucyBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEJ1aWxkIEFjY2VzcyBTZWN0aW9uc10NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '23d68585-5186-4ca4-8f20-0020030f0275', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterBuildAccessSections', 'public', '', 1, '2019-08-26 17:31:27', '2025-05-31 20:22:04', 6, '', 6),
+(120, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkJlZm9yZUdldENvbXBvbmVudERhdGEgZXZlbnQ=', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEJlZm9yZSBHZXQgQ29tcG9uZW50IERhdGFdDQoJICoNCgkgKiBAcmV0dXJuICB2b2lkDQoJICoNCgkgKiBAc2luY2UgICAxLjANCgkgKi8=', 'plugins', '4c963ae0-d84d-4841-8758-ea3f95063c8c', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onBeforeGetComponentData', 'public', '', 1, '2019-08-28 13:10:02', '2025-05-31 20:11:21', 5, '', 7),
+(121, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIGpjYl9jZV9vbkFmdGVyR2V0Q29tcG9uZW50RGF0YSBldmVudA==', 'CS8qKg0KCSAqIEV2ZW50IFRyaWdnZXJlZCBpbiB0aGUgY29tcGlsZXIgW29uIEFmdGVyIEdldCBDb21wb25lbnQgRGF0YV0NCgkgKg0KCSAqIEByZXR1cm4gIHZvaWQNCgkgKg0KCSAqIEBzaW5jZSAgIDEuMA0KCSAqLw==', 'plugins', '71a8f4a8-2bdf-4896-83af-cf871edd9d3a', 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', 'jcb_ce_onAfterGetComponentData', 'public', '', 1, '2019-08-28 13:10:02', '2025-05-31 20:18:14', 10, '', 7),
+(122, '', 'CQkvLyBkbyBzb21ldGhpbmcgb24gdGhlIG9uQmVmb3JlQ29tcGlsZUhlYWQgZXZlbnQ=', 'LyoqDQogKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBoZWFkIGlzIGNvbXBpbGVkIGFuZCBhbGxvd3MgbWFuaXB1bGF0aW9uIG9mIHRoZSBoZWFkIGRhdGEuDQogKiBJbiB0aGlzIGNhc2UsIGl0J3MgdXNlZCB0byBhZGQgYSBKYXZhU2NyaXB0IGZpbGUgdG8gdGhlIGZyb250IGVuZCBvZiB0aGUgSm9vbWxhIHNpdGUuDQogKg0KICogQHJldHVybiAgdm9pZA0KICoNCiAqIEBzaW5jZSAgIDMuMC4wDQogKiBAdGhyb3dzICBFeGNlcHRpb24gb24gZXJyb3IuDQogKi8=', 'plugins', 'c4450b88-658c-4b19-a4a9-c82d14c12d98', 'f7bb8460-aedb-4ed1-a1ed-d1ea837d5098', 'onBeforeCompileHead', 'public', '', 1, '2023-11-09 05:24:03', '2023-11-09 05:24:50', 2, '', 8);
--
-- Dumping data for table `#__componentbuilder_placeholder`
@@ -2744,7 +2762,7 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`,
(199, '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', 2, '', '', 'Name (Key - Required)', 'NULL', '', '201327fe-3067-4316-a155-3fe2a52e05c0', '\"\"', 1, '2015-03-19 17:30:59', '2025-03-26 11:23:23', 12, '', 4, '5d3d34dd-4876-4c6a-86ab-b4e162f22c08', '', '', '', '', ''),
(203, '', '', '', '', '', '', '', '', 1, '', 'INT', '', '', '', 'Not Required', 'NOT NULL', '', '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd', '\"\"', 1, '2015-05-08 16:19:16', '2023-09-27 07:57:19', 16, '', 19, 'da5e6901-6958-40e5-a4f5-6822d6fe57ac', '', '', '', '', ''),
(280, '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'Website (no required)', 'NOT NULL', '', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1', '\"\"', 1, '2015-04-08 00:36:16', '2024-09-16 23:30:59', 3, '', 105, '6c3a6983-d1bf-4e5e-9e99-deea00b0cefd', '', '', '', '', ''),
-(324, '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'URL', 'NOT NULL', '', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1', '\"\"', 1, '2015-05-19 16:08:22', '2022-06-18 10:23:24', 4, '', 378, 'd29d6854-bb4a-4fa2-83a1-5a1b9c9a0eaf', '', '', '', '', ''),
+(324, '', '', '', '', '', '', '', '', 255, '', 'VARCHAR', '', '', '', 'URL', 'NULL', '', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1', '\"\"', 1, '2015-05-19 16:08:22', '2025-06-06 21:15:50', 5, '', 378, 'd29d6854-bb4a-4fa2-83a1-5a1b9c9a0eaf', '', '', '', '', ''),
(583, '', '', '', '', '', '', '', '', 7, '', 'CHAR', 2, '', '', 'ISO Three (country)', 'NULL', '', '201327fe-3067-4316-a155-3fe2a52e05c0', '\"\"', 1, '2015-07-09 14:03:26', '2025-03-26 20:35:45', 12, '', 561, '95f46f99-0909-4a47-879b-ede06ef35fb8', '', '', '', '', ''),
(584, '', '', '', '', '', '', '', '', 7, '', 'CHAR', 2, '', '', 'ISO Two (country)', 'NULL', '', '201327fe-3067-4316-a155-3fe2a52e05c0', '\"\"', 1, '2015-07-09 14:05:40', '2025-03-27 13:10:32', 13, '', 560, '2039d1c3-162c-401c-96fe-f127683ee3fe', '', '', '', '', ''),
(586, '', '', '', '', '', '', '', '', 7, '', 'CHAR', 1, '', '', 'Code Three (currency)', 'NULL', '', '201327fe-3067-4316-a155-3fe2a52e05c0', '\"\"', 1, '2015-07-09 14:33:44', '2025-03-27 13:14:31', 3, '', 558, '59f0d051-768e-41de-87a0-f47551f7d0d1', '', '', '', '', ''),
@@ -2860,54 +2878,54 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`,
--
INSERT INTO `#__componentbuilder_fieldtype` (`id`, `description`, `name`, `properties`, `short_description`, `params`, `published`, `version`, `hits`, `ordering`, `guid`) VALUES
-(1, 'The calendar form field type provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value. If the field has a saved value this is shown in the text box.', 'Calendar', '{\"properties0\":{\"name\":\"type\",\"example\":\"calendar\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be calendar.\"},\"properties1\":{\"name\":\"name\",\"example\":\"date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"NOW\",\"adjustable\":\"1\",\"description\":\"(optional) is the default date. This must be given in the same format as specified by the format argument. You can put \\\"NOW\\\" to have current time.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the text box.\"},\"properties5\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is read-only (true or false). If the text box is read-only, the date cannot be changed, but can be selected and copied. No calendar icon will be shown.\"},\"properties6\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is disabled (true or false). If the text box is disabled, the date cannot be changed, selected or copied.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"format\",\"example\":\"%d-%m-%Y\",\"adjustable\":\"1\",\"description\":\"(optional) is the date format to be used. This is in the format used by PHP to specify date string formats (see below). If no format argument is given, \'%Y-%m-%d\' is assumed (giving dates like \'2008-04-16\').\"},\"properties9\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is time zone to be used. There are two values; server_utc and user_utc. The first one is server time zone and the later is user time zone as configured in global configuration and user information respectively.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties12\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties13\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"translateformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true, the calendar will use a language string to determine the format. The `format` attribute is ignored. If false, the `format` attribute is used (same behaviour as today). (starting with 3.7.0)\"},\"properties16\":{\"name\":\"showtime\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true and translateformat is true, the language key DATE_FORMAT_CALENDAR_DATETIME is used, otherwise DATE_FORMAT_CALENDAR_DATE. (starting with 3.7.0)\"},\"properties17\":{\"name\":\"timeformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): can be set to 12 (and specify AM or PM) or 24 (starting with 3.7.0)\"},\"properties18\":{\"name\":\"singleheader\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to false, the year and the month selection will be set on two separates lines, with independant selection (starting with 3.7.0)\"},\"properties19\":{\"name\":\"todaybutton\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a button is added at the bottom of the datePicker to select the date of the current day (starting with 3.7.0)\"},\"properties20\":{\"name\":\"weeknumbers\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a column is added at the left of the datePicker to display the number of the week in the current year (starting with 3.7.0)\"},\"properties21\":{\"name\":\"filltable\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, dates of the previous and next month is added at the top and the bottom of the current month to fill the grid (starting with 3.7.0)\"},\"properties22\":{\"name\":\"minyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative lower limit for the year selection. The user could not select a year before your limit (starting with 3.7.0)\"},\"properties23\":{\"name\":\"maxyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative upper limit for the year selection. The user could not select a year after your limit (starting with 3.7.0)\"}}', 'provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value.', '{\"source\":{\"618e8916-4028-4d5b-b85c-970304685913-settings\":\"6ae1ea0dac5b29ee5cb356c6f17fe14562366587\",\"618e8916-4028-4d5b-b85c-970304685913-readme\":\"c9eeddeadaced241e8e7289a1c7ac591d731043f\"}}', 1, 11, '', '', '6cf5a33f-cb25-4a58-bfec-7e1511896402'),
-(2, 'The category form field type provides a drop down list of all published categories for a certain extension. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected. If the show_root', 'Category', '{\"properties0\":{\"name\":\"type\",\"example\":\"category\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be category.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mycategory\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a category\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"extension\",\"example\":\"com_content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the name of the extension for which the categories will be retrieved. For example, to list content categories, use the value \'com_content\'. You can add also target one view, use the value \'com_component.view\'.\"},\"properties4\":{\"name\":\"scope\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is an alias for extension.\"},\"properties5\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"show_root\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is whether a choice representing the root category will be shown. Remove completely if it is not to be shown.\"},\"properties7\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default category ID number.\"},\"properties8\":{\"name\":\"description\",\"example\":\"select one of the following categories\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties10\":{\"name\":\"published\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (1\\/0\\/2\\/-2) is whether the drop down will show only published (1), unpublished (0), archived (2) or trashed (-2) categories. It is possible to combine different publishing status by entering the list of the corresponding numbers separated by comma (e.g. \\\"0,2,-2\\\" will display only unpublished, archived and trashed categories in the drop-down).\"},\"properties11\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a drop down list of categories for an extension.', '', 1, 13, '', '', 'f70346b3-2096-4f44-8b26-01ab87da7d1e'),
-(3, 'The checkbox form field type provides a single checkbox. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Checkbox', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkbox\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkbox\"},\"properties1\":{\"name\":\"name\",\"example\":\"show_title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Show title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"value\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is the value of the parameter if this checkbox is set (usually 1).\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value (usually 0 or 1).\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Show the title of the item\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (JavaScript use)\"}}', 'provides a single checkbox to be checked or unchecked', '', 1, 7, '', '', '10066262-b6e3-4f82-941e-cbe4f61ddd6c'),
-(4, 'The checkboxes form field type provides a set of checkboxes. Note: unlike most standard form field types, such as textfield or checkbox, this field is not an \"out of the box\" solution. It will create checkboxes for you, and submit their values in form of ', 'Checkboxes', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkboxs\"},\"properties1\":{\"name\":\"name\",\"example\":\"toppings\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select Toppings\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"anch|Anchovies,chor|Chorizo,on|Onions,mush|Mushrooms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties5\":{\"name\":\"description\",\"example\":\"Select the topping of your choice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides unlimited checkboxes that can be used for multi-select.', '', 1, 4, '', '', 'ac10859b-58da-4584-9682-36a6c2c8d04d'),
-(5, 'Provides a color picker. Enter the color as #ff00ff or pick it from the palet.', 'Color', '{\"properties0\":{\"name\":\"type\",\"example\":\"color\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be color.\"},\"properties1\":{\"name\":\"name\",\"example\":\"backgroundcolor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"default\",\"example\":\"#FFFFFF\",\"adjustable\":\"1\",\"description\":\"(optional) provides a color when not set.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Background\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Select the background color here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a color picker when clicking the input box.', '', 1, 5, '', '', '7f60f198-53e7-4fe9-813f-d1b6c553680e'),
-(6, 'The list form field type provides a drop down list or a list box of other current component table entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Custom', '{\"properties0\":{\"name\":\"type\",\"example\":\"subjects\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a Subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties12\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties15\":{\"name\":\"extends\",\"example\":\"list\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties16\":{\"name\":\"button\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) to add new button next to field in edit view\"},\"properties17\":{\"name\":\"table\",\"example\":\"#__###component###_subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. The ###TABLE### placeholder holds the table in the php.\"},\"properties18\":{\"name\":\"component\",\"example\":\"com_###component###\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties19\":{\"name\":\"entity\",\"example\":\"###view###\",\"adjustable\":\"1\",\"description\":\"(optional) The area\\/entity this custom field is loaded. This value can be used in the field custom code.\"},\"properties20\":{\"name\":\"view\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties21\":{\"name\":\"views\",\"example\":\"subjects\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties22\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to. The ###TEXT### placeholder holds the value_field in the php.\"},\"properties23\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key. The ###ID### placeholder holds the key_field in the php.\"},\"properties24\":{\"name\":\"prime_php\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"This field makes sure that the PHP used here is used to build the field type, and other are custom fields with the same field type are ignored. So to avoid that they over write the PHP added here. You should only have one prime per\\/type. To disable remove the field or set to 0\"},\"properties25\":{\"name\":\"type_php_1\",\"example\":\"\\/\\/ Get the user object.\\r\\n\\t\\t$user = Factory::getUser();\\r\\n\\t\\t\\/\\/ Get the databse object.\\r\\n\\t\\t$db = Factory::getDBO();\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\'),array(\'###ID###\',\'###CODE_TEXT###\')));\\r\\n\\t\\t$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\r\\n\\t\\t$query->where($db->quoteName(\'a.published\') . \' = 1\');\\r\\n\\t\\t$query->order(\'a.###TEXT### ASC\');\\r\\n\\t\\t\\/\\/ Implement View Level Access (if set in table)\\r\\n\\t\\tif (!$user->authorise(\'core.options\', \'[[[com_component]]]\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$columns = $db->getTableColumns(\'###TABLE###\');\\r\\n\\t\\t\\tif(isset($columns[\'access\']))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$groups = implode(\',\', $user->getAuthorisedViewLevels());\\r\\n\\t\\t\\t\\t$query->where(\'a.access IN (\' . $groups . \')\');\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\t$db->setQuery((string)$query);\\r\\n\\t\\t$items = $db->loadObjectList();\\r\\n\\t\\t$options = [];\\r\\n\\t\\tif ($items)\\r\\n\\t\\t{\\r\\n\\t\\t\\tif ($this->multiple === false)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', \'\', Text::_(\'Select an option\'));\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tforeach($items as $item)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT###);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn $options;\",\"adjustable\":\"1\",\"description\":\"The php for the getOptions method.\"}}', 'provides a drop down list of items entries.', '', 1, 32, '', '', 'dd2e1f4b-f5db-45e8-85fa-efd27bae7b6a'),
-(7, 'The a list of users that can be targeting one or more groups and excluded users that already belongs to an item in a view.', 'CustomUser', '{\"properties0\":{\"name\":\"type\",\"example\":\"staffusers\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type.\"},\"properties1\":{\"name\":\"name\",\"example\":\"staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties8\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties9\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties10\":{\"name\":\"hint\",\"example\":\"select a user\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"extends\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties13\":{\"name\":\"table\",\"example\":\"#__users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. Must be #__users\"},\"properties14\":{\"name\":\"component\",\"example\":\"com_users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties15\":{\"name\":\"view\",\"example\":\"###view###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties16\":{\"name\":\"views\",\"example\":\"###views###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties17\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to.\"},\"properties18\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key.\"},\"properties19\":{\"name\":\"type_php_1\",\"example\":\"\\t\\t\\/\\/ set the groups array\\r\\n\\t\\treturn ComponentHelper::getParams(\'com_###component###\')->get(\'###type###\');\",\"adjustable\":\"1\",\"description\":\"The php for the getGroups method.\"},\"properties22\":{\"name\":\"type_phpx_1\",\"example\":\"\\t\\t\\/\\/ To ensure that there is only one record per user\\r\\n\\t\\t\\/\\/ Get a db connection.\\r\\n\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\/\\/ Create a new query object.\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t\\/\\/ Select all records from the #__###component###_###view### table from ###CODE### column\\\".\\r\\n\\t\\t$query->select($db->quoteName(\'###CODE###\'));\\r\\n\\t\\t$query->from($db->quoteName(\'#__###component###_###view###\'));\\r\\n\\t\\t$db->setQuery($query);\\r\\n\\t\\t$db->execute();\\r\\n\\t\\t$found = $db->getNumRows();\\r\\n\\t\\tif ($found)\\r\\n\\t\\t{\\r\\n\\t\\t\\t\\/\\/ return all users already used\\r\\n\\t\\t\\treturn array_unique($db->loadColumn());\\r\\n\\t\\t}\\r\\n\\t\\treturn null;\",\"adjustable\":\"1\",\"description\":\"The php for the getExcluded method.\"}}', 'Provides list of users.', '', 1, 6, '', '', 'a4a39f70-070f-459c-be4b-0ac103a29b9a'),
-(8, 'The Editor field type provides a WYSIWYG editor.', 'Editor', '{\"properties0\":{\"name\":\"type\",\"example\":\"editor\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editor.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextblock\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Test Field\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.\"},\"properties7\":{\"name\":\"height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.\"},\"properties8\":{\"name\":\"cols\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width of the editor (in columns).\"},\"properties9\":{\"name\":\"rows\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height of the editor (in rows).\"},\"properties10\":{\"name\":\"buttons\",\"example\":\"no\",\"adjustable\":\"1\",\"description\":\"(optional) can be an array of plugin buttons to be excluded or set to false. The default editors-xtd are: article, image, pagebreak and readmore.\"},\"properties11\":{\"name\":\"syntax\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) can be used to set the code syntax matching for this field.\"},\"properties12\":{\"name\":\"hide\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) array of plugin buttons to be hidden. eg... set buttons=\\\"true\\\" hide=\\\"readmore,pagebreak\\\"\"},\"properties13\":{\"name\":\"editor\",\"example\":\"codemirror|none\",\"adjustable\":\"1\",\"description\":\"specifies the editor to be used and can include two options (editor=\\\"desired|alternative\\\")\"},\"properties14\":{\"name\":\"filter\",\"example\":\"safehtml\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties16\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides an editor area field.', '', 1, 12, '', '', '51f288d2-6eaa-42bc-a182-a6f69b3032b8'),
-(9, 'The hidden form field type provides a hidden field for saving a field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). If the parameter has a saved value this is entered i', 'Hidden', '{\"properties0\":{\"name\":\"type\",\"example\":\"hidden\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be hidden.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mysecretvariable\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the data which needs to be collected.\"},\"properties5\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties4\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"}}', 'provides a hidden field for saving a form field whose value cannot be altered directly by a user.', '', 1, 2, '', '', '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd'),
-(10, 'The integer form field type provides a select box with a range of integer values. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Integer', '{\"properties0\":{\"name\":\"type\",\"example\":\"integer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be integer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"first\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties10\":{\"name\":\"last\",\"example\":\"20\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties11\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of integers between a minimum and maximum.', '', 1, 6, '', '', 'fdbb50ea-35d2-45b2-a0bc-076fdf1544b8'),
-(11, 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties12\":{\"name\":\"useglobal\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties13\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of custom-defined entries.', '', 1, 12, '', '', 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d'),
-(12, 'The media form field type provides modal access to the media manager for the choice of an image. Users with appropriate permissions will be able to upload files.', 'Media', '{\"properties0\":{\"name\":\"type\",\"example\":\"media\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be media.\"},\"properties1\":{\"name\":\"name\",\"example\":\"media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"directory\",\"example\":\"\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the directory from which the user will be able to choose a file. This attribute should be relative to the top level \\/images\\/ folder.\"},\"properties5\":{\"name\":\"preview\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) shows or hides the preview of the currently chosen image. (\\\"true\\\": Show always, \\\"tooltip\\\": Show as tooltip, \\\"false\\\": Show never) (since Joomla! 2.5.5)\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties7\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides modal access to the media manager for insertion of images with upload for users with appropriate permissions.', '', 1, 5, '', '', '69957007-e3d4-4976-a32b-611d02dbad71'),
-(13, 'Provides a meter to show value in a range, updated with jQuery if needed or simply a fixed value.', 'Meter', '{\"properties0\":{\"name\":\"type\",\"example\":\"meter\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be meter.\"},\"properties1\":{\"name\":\"name\",\"example\":\"meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"width\",\"example\":\"330px\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of meter box\"},\"properties4\":{\"name\":\"color\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The background color\"},\"properties5\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"animated\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the bar have strips\"},\"properties7\":{\"name\":\"active\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the strips on the bar move\"},\"properties8\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties10\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties11\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties12\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a meter to show value in a range.', '', 1, 3, '', '', '81668284-e572-4e17-927b-ba697fc64bd0'),
-(14, 'This form field makes it possible to create titles, texts, descriptions and even alert boxes. It also allows you to bring order in the settings for extensions, by separating them with useful titles. Or adding descriptions for certain settings (without having to rely on the tooltips). Or adding any other text you want.', 'Note', '{\"properties0\":{\"name\":\"type\",\"example\":\"note\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be note\"},\"properties1\":{\"name\":\"name\",\"example\":\"note_one\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory or optional if using description) (translatable) is the descriptive title of the note \"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional if using label)(translatable) the description\\/text of the note \"},\"properties4\":{\"name\":\"heading\",\"example\":\"h4\",\"adjustable\":\"1\",\"description\":\"(optional) the type of heading element to use for the label (default: h4)\"},\"properties5\":{\"name\":\"class\",\"example\":\"alert\",\"adjustable\":\"1\",\"description\":\"(optional) a class name (or class names), like these examples ( alert, alert alert-info, alert alert-success, alert alert-error )\"},\"properties6\":{\"name\":\"close\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) a value of \'true\' (for alerts) or the value for the data-dismiss of the bootstrap close icon\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'supports a one line text field.', '', 1, 5, '', '', 'f9ecacd0-8481-4157-8c71-d7aaefc2b7c3'),
-(15, 'Provides a one line text box with up-down handles to set a number in the field.', 'Number', '{\"properties0\":{\"name\":\"type\",\"example\":\"number\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be number.\"},\"properties1\":{\"name\":\"name\",\"example\":\"number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties8\":{\"name\":\"max\",\"example\":\"40\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties9\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this number, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Javascript that should run on changing of the value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a one line text box with up-down handles to set a number in the field.', '', 1, 5, '', '', '5abd2b73-643b-4273-841a-787991aad968'),
-(16, 'The password form field type provides a text box for entry of a password. The password characters will be obscured as they are entered. If the field has a saved value this is entered (in obscured form) into the text box. If not, the default value (if any)', 'Password', '{\"properties0\":{\"name\":\"type\",\"example\":\"password\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be password.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mypassword\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter A Password\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"default\",\"example\":\"secret\",\"adjustable\":\"1\",\"description\":\"(optional) is the default password.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"message\",\"example\":\"Error! Please add password here.\",\"adjustable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties18\":{\"name\":\"rules\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether the password should adhere to certain rules.\"},\"properties12\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties13\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties14\":{\"name\":\"hint\",\"example\":\"Password Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties15\":{\"name\":\"autocomplete\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties19\":{\"name\":\"strengthmeter\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) measures the strength of the password.\"},\"properties20\":{\"name\":\"force\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) forces a password to be set.\"},\"properties16\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties17\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a text box for entry of a password. The password characters will be obscured as they are entered.', '', 1, 11, '', '', '0022598d-0ee1-44f2-aa94-c2eb47595f73'),
-(17, 'The radio form field type provides radio buttons to select different options. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Radio', '{\"properties0\":{\"name\":\"type\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be radio.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myradiovalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"btn-group btn-group-yesno\",\"adjustable\":\"1\",\"description\":\"(optional) New in Joomla 3, if set to class=\\\"btn-group btn-group-yesno\\\" will show the nice coloured buttons\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|Yes,0|No\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default radio button item value.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties11\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides radio buttons to select different options.', '', 1, 18, '', '', 'b868ed59-4208-4206-8504-95a35a74a11c'),
-(18, 'Provides a horizontal scroll bar to specify a value in a range.', 'Range', '{\"properties0\":{\"name\":\"type\",\"example\":\"range\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be range.\"},\"properties1\":{\"name\":\"name\",\"example\":\"range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties8\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties9\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"jQuery(\'#jform_range\').closest(\'.controls\').find(\'span\').remove(); var value = jQuery(\'#jform_range\').val();jQuery(\'#jform_range\').closest(\'.controls\').append(\' \'+value+\'\');\",\"adjustable\":\"1\",\"description\":\"(optional) javascript to run when the range is changed\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a horizontal scroll bar to specify a value in a range.', '', 1, 5, '', '', '627d3845-7273-4f75-8e63-7b3a319a42c8'),
-(19, 'Provides a modal with rows of formfields that you specify. As many options can be added as desired. Note this form field has a jQuery based javascript file as a dependency.', 'Repeatable', '{\"properties0\":{\"name\":\"type\",\"example\":\"repeatable\",\"adjustable\":\"1\",\"description\":\"(mandatory) must be repeatable.\"},\"properties1\":{\"name\":\"name\",\"example\":\"repeatable_list\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Repeatable List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"aid\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) id of the hidden from field. (the modal will have this id with an added suffix of \\\"_modal\\\" and the table within the modal will have this id with a suffix of _modal_table\\\")\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) class of the table.\"},\"properties7\":{\"name\":\"select\",\"example\":\"Click here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) The text to show on the modal button.\"},\"properties8\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties9\":{\"name\":\"maximum\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties10\":{\"name\":\"fields\",\"example\":\"1,2,3\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids with commas. Do not add custom fields that are not also used in this component.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Allows form fields which can have as many options as the user desires.', '', 1, 5, '', '', '05bf68d4-52f9-4705-8ae7-cba137fce0ad'),
-(20, 'The spacer form field type provides a visual separator between parameter field elements. It is purely a visual aid and no field value is stored.', 'Spacer', '{\"properties0\":{\"name\":\"type\",\"example\":\"spacer\",\"adjustable\":\"0\",\"mandatory\":\"1\",\"translatable\":\"0\",\"description\":\"(mandatory) must be spacer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myspacer\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"0\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"mandatory\":\"0\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the text to use as a spacer.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"mandatory\":\"0\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"hr\",\"example\":\"\",\"adjustable\":\"1\",\"mandatory\":\"0\",\"translatable\":\"0\",\"description\":\"(optional) is whether to display a horizontal rule (\'true\' or \'false\'). If this attribute is \'true\', the label attribute will be ignored.\"},\"properties5\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"mandatory\":\"0\",\"translatable\":\"0\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"}}', 'provides a visual separator between form fields. It is purely a visual aid and no value is stored.', '', 1, 1, '', '', '626d0cba-a908-4a4f-a447-96d781aeaa0b'),
-(21, 'Using this generic form field type forces you to write SQL in an XML file and is rather limited. For more flexibility, consider using Custom FieldType.\r\n\r\nThe sql form field type provides a drop down list of entries obtained by running a query on the Joom', 'SQL', '{\"properties0\":{\"name\":\"type\",\"example\":\"sql\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be sql.\"},\"properties1\":{\"name\":\"name\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an article\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"query\",\"example\":\"SELECT id, concat( title, \' (\', created, \')\') AS title FROM #__content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the SQL query which will provide the data for the drop-down list. The query must return two columns; one called \'value\' (unless overridden by the key_field attribute) which will hold the values of the list items; the other called the same as the value of the name attribute (unless overridden by the value_field attribute) containing the text to be shown in the drop-down list.\"},\"properties4\":{\"name\":\"default\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value. This is the value of the \'value\' field, unless overridden by the key_field attribute.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties7\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties8\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values for the parameter. If omitted then the column called \'value\' will be used, if it exists.\"},\"properties10\":{\"name\":\"value_field\",\"example\":\"title\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values to be shown to the user in the drop-down list. If omitted then the column with the same name as the name attribute will be used, if it exists.\"},\"properties11\":{\"name\":\"translate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) will translate the output of the value_field if set to true. It defaults to false.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a drop down list of entries obtained by running a query on the Joomla Database. The first results column returned by the query provides the values for the drop down box.', '', 1, 3, '', '', 'd4c16f1e-fd6e-4714-90eb-f9d97edd9c32'),
-(22, 'The Tag field type provides a point where you can enter tags - this is either AJAX or nested.', 'Tag', '{\"properties0\":{\"name\":\"type\",\"example\":\"tag\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be tag.\"},\"properties1\":{\"name\":\"name\",\"example\":\"tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"mode\",\"example\":\"ajax\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the way the tags will be loaded, the options are ( ajax or nested )\"},\"properties3\":{\"name\":\"label\",\"example\":\"Tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Assign tags to ###VIEW### items. Tag names must be unique.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the description of the field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the id to add to the field. Note if none is set this will be the name of the field.\"},\"properties6\":{\"name\":\"class\",\"example\":\"inputbox small\",\"adjustable\":\"1\",\"description\":\"(optional) is the class to add to the field.\"},\"properties7\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines if non published tags should be allowed.\"},\"properties8\":{\"name\":\"language\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is language to filter the existing tags by.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is the ability to add more than 1 tag to the form field.\"},\"properties10\":{\"name\":\"custom\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if the ajax mode is chosen setting this to [deny] will prevent users from adding in new tags.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides an entry point for tags (either AJAX or Nested).', '', 1, 3, '', '', '48cba89e-8fcb-481e-a7d3-2e41773e452d'),
-(23, 'The tel field type is an alias for a text field. Telephone numbers can be validated using the tel rule and filtered using the tel input filter.', 'Tel', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter phone number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validated\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to validated the input data.\"},\"properties13\":{\"name\":\"message\",\"example\":\"Error! Please add phone number here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties14\":{\"name\":\"hint\",\"example\":\"Your Phone Number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides an input field for a telephone number.', '', 1, 6, '', '', '1c6c519c-3bc8-4914-8940-3e9591b0bce6'),
-(24, 'The text form field type provides a text box for data entry. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Text', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextvalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Your Name Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties18\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a text box for data entry.', '', 1, 10, '', '', '201327fe-3067-4316-a155-3fe2a52e05c0'),
-(25, 'The textarea form field type provides a text area for entry of multi-line text. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Textarea', '{\"properties0\":{\"name\":\"type\",\"example\":\"textarea\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be textarea.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextarea\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"rows\",\"example\":\"10\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.\"},\"properties4\":{\"name\":\"cols\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"default text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Text Area\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties9\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties10\":{\"name\":\"hint\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the textarea.\"},\"properties11\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties14\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a text area for entry of multi-line text.', '', 1, 9, '', '', '76fe1250-6fa7-49e5-a0ee-f06d8d4c9f99'),
-(26, 'The timezones form field type provides a drop down list of time zones. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Timezone', '{\"properties0\":{\"name\":\"type\",\"example\":\"timezone\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be timezone.\"},\"properties1\":{\"name\":\"name\",\"example\":\"timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default time zone. For example, use \'-10\' for \'(UTC -10:00) Hawaii\'.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a drop down list of time zones.', '', 1, 3, '', '', 'ed8d8cf4-cb05-49cc-95ef-4ef275f539f9'),
-(27, 'This field essentially is a text field with the type of url. If a fully qualified url (that is one with a scheme and domain such as http://example.com) is entered and it uses idn (that is uses characters that are non ascii such as รช or ฮจ) it will translat', 'URL', '{\"properties0\":{\"name\":\"type\",\"example\":\"url\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be url.\"},\"properties1\":{\"name\":\"name\",\"example\":\"website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter website address\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"relative\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) set to true for relative URLs\"},\"properties12\":{\"name\":\"filter\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties13\":{\"name\":\"validated\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties14\":{\"name\":\"scheme\",\"example\":\"http,https,mailto\",\"adjustable\":\"1\",\"description\":\"(optional) Validates that the value is a URL with a valid scheme (which can be restricted by the optional comma-separated field \'scheme\'), and passes a basic syntax check.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add website here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"Your Website Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties19\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties18\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a URL text input field.', '', 1, 10, '', '', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1'),
-(28, 'The user form field type provides a modal select box of users.', 'User', '{\"properties0\":{\"name\":\"type\",\"example\":\"user\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be user.\"},\"properties1\":{\"name\":\"name\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"User\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a modal list of users.', '', 1, 4, '', '', 'b0641980-5e78-42f6-972f-86aa607db23e'),
-(29, 'The usergroup form field type provides a modal select box of user groups.', 'Usergrouplist', '{\"properties0\":{\"name\":\"type\",\"example\":\"usergrouplist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be usergrouplist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"usergroup\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Group\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select a group\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) (translatable) is the layout, for example joomla.form.field.list-fancy-select.\"},\"properties6\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties8\":{\"name\":\"checksuperusergroup\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is boolean to omit Super User groups. Values 1 or 0.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a drop down list of user groups.', '', 1, 7, '', '', 'e2f31181-fbb3-4c3a-859d-72b6b0cff308'),
-(30, 'The filelist form field type provides a drop down list of files from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on the', 'Filelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"filelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be filelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfile\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a file\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of files selected for inclusion in the drop-down list. If omitted, all files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a drop down list of files from a specified directory.', '', 1, 4, '', 1, '0c80df15-52c6-4647-983b-4bb4888a2edf'),
-(31, 'The folderlist form field type provides a drop down list of folders from a specfied directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on ', 'Folderlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"folderlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be folderlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfolder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a folder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the filesystem path to the directory containing the folders to be listed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default folder name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of folders selected for inclusion in the drop-down list. If omitted, all folders in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude folders from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties9\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a drop down list of folders from a specified directory.', '', 1, 4, '', 2, 'd3ab2ae4-9370-4497-ae6d-dee2e0b74b7a'),
-(32, 'Note: When using the file input type you should always add the attribute enctype=\"multipart/form-data\" to your form tag. Otherwise, the uploaded files will not be attached correctly.\r\n\r\nNote 2: You can put a soft limit file size by adding a hidden field with name=\"MAX_FILE_SIZE\" and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.', 'File', '{\"properties0\":{\"name\":\"type\",\"example\":\"file\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be file.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfilevalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose an image from your computer with maximum 100KB\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value, but doesn\'t mean much for a file.\"},\"properties5\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the file box in characters.\"},\"properties6\":{\"name\":\"accept\",\"example\":\"image\\/*\",\"adjustable\":\"1\",\"description\":\"(optional) Tells the browser what MIME types your form will allow to be uploaded.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"labelclass\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) adds a CSS class for form field\'s label; for Joomla 2.5.4+\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties11\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) For Joomla form validating it to be filled in\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Whether to Joomla validate the field according to rules\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides an input field for files', '', 1, 9, '', 3, '6da71c1e-119c-4e0d-a309-f3e52ecfa1d1'),
-(33, 'The menuitem form field type provides a drop down grouped list of the available menu items from your Joomla site.', 'Menuitem', '{\"properties0\":{\"name\":\"type\",\"example\":\"menuitem\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menuitem.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mymenuitem\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a menu item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu item. Note that this is the ItemID number of the menu item.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether all menu items are listed or only published menu items. If state is \'0\' then all menu items will be listed. If state is \'1\' then only published menu items will be listed.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"int\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'provides a drop down list of the available menu items from your Joomla site.', '', 1, 6, '', 4, 'f183b0e2-017f-48bd-8dba-d332ce1b8d9e'),
-(34, 'Remember all views already have [accesslevel] added by default, only add this if you need more custom access selection! Provides a dropdown list of accesslevel options with the current option selected.', 'Accesslevel', '{\"properties0\":{\"name\":\"type\",\"example\":\"accesslevel\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be accesslevel\"},\"properties1\":{\"name\":\"name\",\"example\":\"accesstwo\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute. \"},\"properties2\":{\"name\":\"label\",\"example\":\"Access Two\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select an access level to this concept.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'List of accesslevels', '', 1, 6, '', 5, '913ed2ce-836c-48e8-97af-e482441f47df'),
-(35, 'Provides a form with rows of fields that you specify. As many options can be added as desired. Note this form field has a jQuery based javascript file as a dependency.', 'Subform', '{\"properties0\":{\"name\":\"type\",\"example\":\"subform\",\"description\":\"(mandatory) must be subform.\"},\"properties1\":{\"name\":\"name\",\"example\":\"options\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Option List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"layout\",\"example\":\"joomla.form.field.subform.repeatable-table\",\"adjustable\":\"1\",\"description\":\"(mandatory) The layout for the repeatable table.\"},\"properties4\":{\"name\":\"component\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) To change the component where it should search for layout\"},\"properties5\":{\"name\":\"client\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Function to initialise the application clientFrontend: site or 0Backend: admin or 1\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The rows to be multiple.\"},\"properties7\":{\"name\":\"buttons\",\"example\":\"add,remove,move\",\"adjustable\":\"1\",\"description\":\"(optional) Which buttons to show if multiple mode is true.Options: add,remove,move\"},\"properties8\":{\"name\":\"fields\",\"example\":\"guid,guid,guid\",\"adjustable\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids\\/guids with commas. Do not add custom fields that are not also used in this component.\"},\"properties9\":{\"name\":\"formsource\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) you can add a path to a xml file containing the fields.\"},\"properties10\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties12\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties13\":{\"name\":\"max\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties14\":{\"name\":\"min\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The minimum number of rows of fields required\"},\"properties15\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties16\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Allows form fields which can have as many options as the user desires.', '', 1, 15, '', 6, '7139f2c8-a70a-46a6-bbe3-4eefe54ca515'),
-(36, 'Provides an input field for an email address.', 'Email', '{\"properties0\":{\"name\":\"type\",\"example\":\"email\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be email.\"},\"properties1\":{\"name\":\"name\",\"example\":\"email\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Email Address\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"email\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"unique\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) Used in validation, to check if we should test for uniqueness, to insure that this email does not already belong to another user. Check line 99 in \\/libraries\\/src\\/Form\\/Rule\\/EmailRule.php\"},\"properties14\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"your@email.com\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Email form field type', '', 1, 7, '', 7, '35948af5-9e79-4454-8dfa-682ee4fdf650'),
-(37, 'Provides a dropdown list of plugin options from the folder.', 'Plugins', '{\"properties0\":{\"name\":\"type\",\"example\":\"plugins\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editors.\"},\"properties1\":{\"name\":\"name\",\"example\":\"editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"folder\",\"example\":\"editors\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) editors or captcha.\"},\"properties7\":{\"name\":\"filter\",\"example\":\"cmd\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a dropdown list of plugin options from the folder.', '', 1, 8, '', 8, '37fa4e1d-b7ca-4a8f-aa4b-d8085c135233'),
-(38, 'Provides the use of a captcha plugin.', 'Captcha', '{\"properties0\":{\"name\":\"type\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties3\":{\"name\":\"name\",\"example\":\"captcha\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"validate\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties1\":{\"name\":\"label\",\"example\":\"Captcha\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"We do not like spam, please show us you are human\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"namespace\",\"example\":\"componentbuilder\",\"description\":\"(optional) the component name seems to work\"}}', 'Captcha robot check.', '', 1, 2, '', 9, '206fdad4-14d0-45f1-9c84-3d09abf48a39'),
-(39, 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Groupedlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"groupedlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be groupedlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mygrouplist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"Group Name@@1,1|Option 1|1,2|Option 2|1,Group Name 2@@2,3|Option 3|2\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'provides a drop down list of custom-defined entries.', '', 1, 3, '', 10, '088d47c0-b058-4894-b92e-dcf1b9d5a722'),
-(40, 'The modulelayout form field type provides a drop down list of all available layouts for a module, grouped by core and template. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Modulelayout', '{\"properties0\":{\"name\":\"type\",\"example\":\"modulelayout\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modulelayout.\"},\"properties1\":{\"name\":\"name\",\"example\":\"layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Module layout\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"module\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a specific module name (e.g. mod_articles_category).\"},\"properties5\":{\"name\":\"client_id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional). If 0 (site): Forces searching for layouts only in directories \\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/. If 1 (administrator): Forces searching for layouts only in directories \\/administrator\\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/administrator\\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/.\\r\\n\"},\"properties6\":{\"name\":\"template\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a template name (e.g. protostar or isis). If set forces searching for module template overrides only in this template.\"}}', 'modulelayout', '', 1, 2, '', 11, '7520c8f4-543d-4c7a-8e4f-e2da71c3b1cd'),
-(41, 'Joomla Privacy Field Type', 'Privacy@', '{\"properties0\":{\"name\":\"type\",\"example\":\"privacy\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"privacy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Privacy Policy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full privacy policy.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.system.privacyconsent.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.system.privacyconsent.label\')->render($this->getLayoutData());\\r\\n\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$privacyArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($privacyArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $privacyArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'privacynote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site and agreeing to the Privacy Policy you agree to this web site storing your information.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'privacyArticle\' => $privacyArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Joomla Privacy Field', '', 1, 7, '', 12, '60c1d674-8bb7-4b31-97ed-ee1f16bc412a'),
-(42, 'Joomla Terms Field Type', 'Terms@', '{\"properties0\":{\"name\":\"type\",\"example\":\"terms\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"terms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Terms & Conditions\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full terms and conditions.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Form\\\\FormHelper;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Associations;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.user.terms.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.user.terms.label\')->render($this->getLayoutData());\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$termsArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($termsArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $termsArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\tif (Associations::isEnabled())\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$termsAssociated = Associations::getAssociations(\'com_content\', \'#__content\', \'com_content.item\', $termsArticle);\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t$currentLang = Factory::getLanguage()->getTag();\\r\\n\\r\\n\\t\\t\\tif (isset($termsAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $termsAssociated))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute(\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->id,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->catid,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->language\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'termsnote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site you accept the Terms & Conditions.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'termsArticle\' => $termsArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Joomla Terms Field', '', 1, 7, '', 12, '20e88943-08db-49e6-a571-dba70cdf4cca'),
-(43, 'Provides a combobox field, which offers a list like the List Form Field Type, but additionally allows free text.', 'Combo', '{\"properties0\":{\"name\":\"type\",\"example\":\"combo\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be combo.\"},\"properties1\":{\"name\":\"name\",\"example\":\"type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"combobox\",\"adjustable\":\"1\",\"description\":\"(optional) specify your own classes for additonal markup, defaults to \\\"combobox\\\".\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties10\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Provides a combobox list field, allows free text.', '', 1, 3, '', 13, '2c8b128f-7da2-4f55-b1d7-3613f902f590'),
-(44, 'The imagelist form field type provides a drop down list of image files in a specified directory. Only files with .png, .gif, .jpg, .bmp, .ico extensions are listed. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on the list is \'- Do not use -\' (which is translatable) and is given the value \'-1\' and this is followed by \'- Use default -\' (also translatable) given the value \'0\'.', 'Imagelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"imagelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be imagelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myimagelist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an image\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the image files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default image file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude image files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the image file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a drop down list of image files from a specified directory.', '', 1, 3, '', 14, '72680e92-2859-49c6-ad92-c2329c52f9f8'),
-(45, '', 'Modal Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"modal_menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modal_menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"base\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Base Item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"Current\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) show select options\"},\"properties5\":{\"name\":\"new\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties6\":{\"name\":\"edit\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties7\":{\"name\":\"description\",\"example\":\"Select a menu item to always be used as the base for the menu display. You must set the Start Level to the same level or higher than the level of the base item. This will cause the module to be displayed on all assigned pages. If Current is selected the active item is used as the base. This causes the module to only display when the parent menu item is active.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties8\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties9\":{\"name\":\"disable\",\"example\":\"separator,alias,heading,url\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties10\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\\r\\n\"}}', 'Modal Menu', '', 1, 7, '', 15, '715256a4-8cc2-4d66-9d08-31e58ca5b036'),
-(46, 'The menu form field type provides a drop down list of the available menus from your Joomla! site. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected. ', 'Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"menutype\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the filed.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Menu to Show\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose which menu should be rendered with this instance of module.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"clientid\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu. Note that this is the name of the menu shown in the Type column on the Menu Manager screen and not the menu ID number.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties7\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Menu Type', '', 1, 4, '', 16, '6349f152-8ef5-43bd-a89b-ce18f33ac5e5'),
-(47, 'Dynamic Checkboxes', 'DynamicCheckboxes@', '{\"properties0\":{\"name\":\"type\",\"example\":\"change_this\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"dynamic_checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Dynamic Checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The checkbox linked to global subform of the same name\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"option\",\"example\":\"1|Default\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this checkboxes. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties5\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties8\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties9\":{\"name\":\"extends\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"Must be checkboxes\"},\"properties10\":{\"name\":\"type_phpHEADER_1\",\"example\":\"\\\\JFormHelper::loadFieldClass(\'checkboxes\');\\r\\nuse VDM\\\\Joomla\\\\Utilities\\\\Component\\\\Helper;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties11\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.5\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t\\/\\/ True if the field has \'value\' set. In other words, it has been stored, don\'t use the default values.\\r\\n\\t\\t$hasValue = (isset($this->value) && !empty($this->value));\\r\\n\\r\\n\\t\\t\\/\\/ If a value has been stored, use it. Otherwise, use the defaults.\\r\\n\\t\\t$checkedOptions = $hasValue ? $this->value : $this->checkedOptions;\\r\\n\\r\\n\\t\\t\\/\\/ get the form options\\r\\n\\t\\t$options = $this->getOptions();\\r\\n\\r\\n\\t\\t\\/\\/ get the component params\\r\\n\\t\\t$params = Helper::getParams();\\r\\n\\t\\t$subform = $params->get($this->fieldname);\\r\\n\\r\\n\\t\\t\\/\\/ add the paths found in global settings\\r\\n\\t\\tif (is_array($subform) && $subform !== [])\\r\\n\\t\\t{\\r\\n\\t\\t\\tforeach ($subform as $value)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tif (isset($value->path) && strlen($value->path) > 3)\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t$tmp = new \\\\stdClass;\\r\\n\\t\\t\\t\\t\\t$tmp->value = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->text = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->checked = false;\\r\\n\\r\\n\\t\\t\\t\\t\\t$options[] = $tmp;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'checkedOptions\' => is_array($checkedOptions) ? $checkedOptions : explode(\',\', (string) $checkedOptions),\\r\\n\\t\\t\\t\'hasValue\' => $hasValue,\\r\\n\\t\\t\\t\'options\' => $options\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Super Power Repository Paths', '', 1, 14, '', 12, '7ed21e79-cbc5-48e3-9ed0-ca72b0f2f1a1'),
-(48, 'The ModalSelectField offers an intuitive, user-friendly modal popup interface within Joomla\'s administrator forms. It enables users to select existing records, create new records, edit existing records, or clear selected records directly from within the form. The field retrieves and displays the selected record\'s title dynamically, based on configurable database parameters. It simplifies relational data handling, enhancing the user experience by minimizing page transitions and streamlining record management tasks in Joomla administration interfaces.', 'ModalSelect', '{\"properties0\":{\"name\":\"type\",\"example\":\"ModalSelect\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be ModalSelect.\"},\"properties1\":{\"name\":\"name\",\"example\":\"targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"sql_title_table\",\"example\":\"#__###component###_targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Database table (with prefix) used for retrieving title.\"},\"properties4\":{\"name\":\"sql_title_column\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Column used for the title display in the modal input field.\"},\"properties5\":{\"name\":\"sql_title_key\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Primary key column name of the selected item (usually id).\"},\"properties7\":{\"name\":\"urlSelect\",\"example\":\"index.php?option=com_###component###&view=targetviews&layout=modal&tmpl=component&titleKey=id\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to select an existing record. Important note, the [titleKey] in the url must be equal to [sql_title_key]\"},\"properties8\":{\"name\":\"urlNew\",\"example\":\"index.php?option=com_###component###&task=targetview.add&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to create a new record.\"},\"properties9\":{\"name\":\"urlEdit\",\"example\":\"index.php?option=com_###component###&task=targetview.edit&id={id}&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for editing selected record. {id} dynamically replaced with the [sql_title_key] valiue.\"},\"properties10\":{\"name\":\"titleSelect\",\"example\":\"Select Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title for the record selection window.\"},\"properties11\":{\"name\":\"titleNew\",\"example\":\"New Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when creating a new record.\"},\"properties12\":{\"name\":\"titleEdit\",\"example\":\"Edit Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when editing existing record.\"},\"properties13\":{\"name\":\"iconSelect\",\"example\":\"icon-copy\",\"adjustable\":\"1\",\"description\":\"CSS icon class from Icomoon or FontAwesome for select button.\"},\"properties14\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow users to select a record (true\\/false). Default: true.\"},\"properties15\":{\"name\":\"new\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow users to create a new record (true\\/false). Default: false.\"},\"properties16\":{\"name\":\"edit\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow editing of selected record (true\\/false). Default: false.\"},\"properties17\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow clearing of the current selection (true\\/false). Default: true.\"},\"properties18\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties19\":{\"name\":\"class\",\"example\":\"input-large\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'input-large\'.\"},\"properties20\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties21\":{\"name\":\"hint\",\"example\":\"Select a Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties22\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value of the field (item ID).\"},\"properties23\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties24\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties25\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Provides a modal popup to select, create, edit, or clear a database record. (J5+ only)', '', 1, 30, '', 17, 'a1cdb0a5-517c-425c-998a-333e92af3e32');
+(1, 'The calendar form field type provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value. If the field has a saved value this is shown in the text box.', 'Calendar', '{\"properties0\":{\"name\":\"type\",\"example\":\"calendar\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be calendar.\"},\"properties1\":{\"name\":\"name\",\"example\":\"date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a date\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"NOW\",\"adjustable\":\"1\",\"description\":\"(optional) is the default date. This must be given in the same format as specified by the format argument. You can put \\\"NOW\\\" to have current time.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the text box.\"},\"properties5\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is read-only (true or false). If the text box is read-only, the date cannot be changed, but can be selected and copied. No calendar icon will be shown.\"},\"properties6\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether the text box is disabled (true or false). If the text box is disabled, the date cannot be changed, selected or copied.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"format\",\"example\":\"%d-%m-%Y\",\"adjustable\":\"1\",\"description\":\"(optional) is the date format to be used. This is in the format used by PHP to specify date string formats (see below). If no format argument is given, \'%Y-%m-%d\' is assumed (giving dates like \'2008-04-16\').\"},\"properties9\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is time zone to be used. There are two values; server_utc and user_utc. The first one is server time zone and the later is user time zone as configured in global configuration and user information respectively.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties12\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties13\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"translateformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true, the calendar will use a language string to determine the format. The `format` attribute is ignored. If false, the `format` attribute is used (same behaviour as today). (starting with 3.7.0)\"},\"properties16\":{\"name\":\"showtime\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): If set to true and translateformat is true, the language key DATE_FORMAT_CALENDAR_DATETIME is used, otherwise DATE_FORMAT_CALENDAR_DATE. (starting with 3.7.0)\"},\"properties17\":{\"name\":\"timeformat\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): can be set to 12 (and specify AM or PM) or 24 (starting with 3.7.0)\"},\"properties18\":{\"name\":\"singleheader\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to false, the year and the month selection will be set on two separates lines, with independant selection (starting with 3.7.0)\"},\"properties19\":{\"name\":\"todaybutton\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a button is added at the bottom of the datePicker to select the date of the current day (starting with 3.7.0)\"},\"properties20\":{\"name\":\"weeknumbers\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, a column is added at the left of the datePicker to display the number of the week in the current year (starting with 3.7.0)\"},\"properties21\":{\"name\":\"filltable\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): if set to true, dates of the previous and next month is added at the top and the bottom of the current month to fill the grid (starting with 3.7.0)\"},\"properties22\":{\"name\":\"minyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative lower limit for the year selection. The user could not select a year before your limit (starting with 3.7.0)\"},\"properties23\":{\"name\":\"maxyear\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional): set a signed integer for a number of years (-10, -2, 0, 7, 12, ...) to define the relative upper limit for the year selection. The user could not select a year after your limit (starting with 3.7.0)\"}}', 'Text box for entry of a date.', '{\"source\":{\"618e8916-4028-4d5b-b85c-970304685913-settings\":\"6ae1ea0dac5b29ee5cb356c6f17fe14562366587\",\"618e8916-4028-4d5b-b85c-970304685913-readme\":\"c9eeddeadaced241e8e7289a1c7ac591d731043f\"}}', 1, 13, '', '', '6cf5a33f-cb25-4a58-bfec-7e1511896402'),
+(2, 'The category form field type provides a drop down list of all published categories for a certain extension. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Category', '{\"properties0\":{\"name\":\"type\",\"example\":\"category\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be category.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mycategory\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a category\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"extension\",\"example\":\"com_content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the name of the extension for which the categories will be retrieved. For example, to list content categories, use the value \'com_content\'. You can add also target one view, use the value \'com_component.view\'.\"},\"properties4\":{\"name\":\"scope\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is an alias for extension.\"},\"properties5\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"show_root\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is whether a choice representing the root category will be shown. Remove completely if it is not to be shown.\"},\"properties7\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default category ID number.\"},\"properties8\":{\"name\":\"description\",\"example\":\"select one of the following categories\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties10\":{\"name\":\"published\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (1\\/0\\/2\\/-2) is whether the drop down will show only published (1), unpublished (0), archived (2) or trashed (-2) categories. It is possible to combine different publishing status by entering the list of the corresponding numbers separated by comma (e.g. \\\"0,2,-2\\\" will display only unpublished, archived and trashed categories in the drop-down).\"},\"properties11\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Drop down list of categories.', '', 1, 15, '', '', 'f70346b3-2096-4f44-8b26-01ab87da7d1e'),
+(3, 'The checkbox form field type provides a single checkbox. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Checkbox', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkbox\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkbox\"},\"properties1\":{\"name\":\"name\",\"example\":\"show_title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Show title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"value\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is the value of the parameter if this checkbox is set (usually 1).\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value (usually 0 or 1).\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Show the title of the item\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (JavaScript use)\"}}', 'A single checkbox.', '', 1, 10, '', '', '10066262-b6e3-4f82-941e-cbe4f61ddd6c'),
+(4, 'The checkboxes form field type provides a set of checkboxes. Note: unlike most standard form field types, such as textfield or checkbox, this field is not an \"out of the box\" solution. It will create checkboxes for you, and submit their values in form of an array.', 'Checkboxes', '{\"properties0\":{\"name\":\"type\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be checkboxs\"},\"properties1\":{\"name\":\"name\",\"example\":\"toppings\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select Toppings\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"anch|Anchovies,chor|Chorizo,on|Onions,mush|Mushrooms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties5\":{\"name\":\"description\",\"example\":\"Select the topping of your choice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Checkboxes that can be used for multi-select.', '', 1, 5, '', '', 'ac10859b-58da-4584-9682-36a6c2c8d04d'),
+(5, 'Provides a color picker input that allows users to select a color from a visual palette or enter a hexadecimal color code, such as #ff00ff.', 'Color', '{\"properties0\":{\"name\":\"type\",\"example\":\"color\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be color.\"},\"properties1\":{\"name\":\"name\",\"example\":\"backgroundcolor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"default\",\"example\":\"#FFFFFF\",\"adjustable\":\"1\",\"description\":\"(optional) provides a color when not set.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Background\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Select the background color here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Color picker when clicking the input box.', '', 1, 6, '', '', '7f60f198-53e7-4fe9-813f-d1b6c553680e'),
+(6, 'The list form field type provides a drop down list or a list box of other current component table entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Custom', '{\"properties0\":{\"name\":\"type\",\"example\":\"subjects\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a Subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties12\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties15\":{\"name\":\"extends\",\"example\":\"list\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties16\":{\"name\":\"button\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) to add new button next to field in edit view\"},\"properties17\":{\"name\":\"table\",\"example\":\"#__###component###_subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. The ###TABLE### placeholder holds the table in the php.\"},\"properties18\":{\"name\":\"component\",\"example\":\"com_###component###\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties19\":{\"name\":\"entity\",\"example\":\"###view###\",\"adjustable\":\"1\",\"description\":\"(optional) The area\\/entity this custom field is loaded. This value can be used in the field custom code.\"},\"properties20\":{\"name\":\"view\",\"example\":\"subject\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties21\":{\"name\":\"views\",\"example\":\"subjects\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties22\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to. The ###TEXT### placeholder holds the value_field in the php.\"},\"properties23\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key. The ###ID### placeholder holds the key_field in the php.\"},\"properties24\":{\"name\":\"prime_php\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"This field makes sure that the PHP used here is used to build the field type, and other are custom fields with the same field type are ignored. So to avoid that they over write the PHP added here. You should only have one prime per\\/type. To disable remove the field or set to 0\"},\"properties25\":{\"name\":\"type_php_1\",\"example\":\"\\/\\/ Get the user object.\\r\\n\\t\\t$user = Factory::getUser();\\r\\n\\t\\t\\/\\/ Get the databse object.\\r\\n\\t\\t$db = Factory::getDBO();\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\'),array(\'###ID###\',\'###CODE_TEXT###\')));\\r\\n\\t\\t$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\r\\n\\t\\t$query->where($db->quoteName(\'a.published\') . \' = 1\');\\r\\n\\t\\t$query->order(\'a.###TEXT### ASC\');\\r\\n\\t\\t\\/\\/ Implement View Level Access (if set in table)\\r\\n\\t\\tif (!$user->authorise(\'core.options\', \'[[[com_component]]]\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$columns = $db->getTableColumns(\'###TABLE###\');\\r\\n\\t\\t\\tif(isset($columns[\'access\']))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$groups = implode(\',\', $user->getAuthorisedViewLevels());\\r\\n\\t\\t\\t\\t$query->where(\'a.access IN (\' . $groups . \')\');\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\t$db->setQuery((string)$query);\\r\\n\\t\\t$items = $db->loadObjectList();\\r\\n\\t\\t$options = [];\\r\\n\\t\\tif ($items)\\r\\n\\t\\t{\\r\\n\\t\\t\\tif ($this->multiple === false)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', \'\', Text::_(\'Select an option\'));\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tforeach($items as $item)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$options[] = Html::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT###);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn $options;\",\"adjustable\":\"1\",\"description\":\"The php for the getOptions method.\"}}', 'Custom drop down list of items entries.', '', 1, 35, '', '', 'dd2e1f4b-f5db-45e8-85fa-efd27bae7b6a'),
+(7, 'A CustomUser fieldtype displays a filtered list of users based on selected user groups. It can exclude users already linked to items in the current view, making it useful for assigning unique users within specific contexts.', 'CustomUser', '{\"properties0\":{\"name\":\"type\",\"example\":\"staffusers\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type.\"},\"properties1\":{\"name\":\"name\",\"example\":\"staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Staff\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties8\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties9\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties10\":{\"name\":\"hint\",\"example\":\"select a user\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"extends\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The JFormField sub class that should be extended. The options are (\'list\',\'radio\',\'checkboxes\')\"},\"properties13\":{\"name\":\"table\",\"example\":\"#__users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The table being linked to. Must be #__users\"},\"properties14\":{\"name\":\"component\",\"example\":\"com_users\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the component where this table is found. Must be com_users\"},\"properties15\":{\"name\":\"view\",\"example\":\"###view###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The single view name if the place this field is added.\"},\"properties16\":{\"name\":\"views\",\"example\":\"###views###\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The list view name if the place this field is added.\"},\"properties17\":{\"name\":\"value_field\",\"example\":\"name\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The name of the text field in table linked to.\"},\"properties18\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The field from the linked table to save in this table as the unique key.\"},\"properties19\":{\"name\":\"type_php_1\",\"example\":\"\\t\\t\\/\\/ set the groups array\\r\\n\\t\\treturn ComponentHelper::getParams(\'com_###component###\')->get(\'###type###\');\",\"adjustable\":\"1\",\"description\":\"The php for the getGroups method.\"},\"properties20\":{\"name\":\"type_phpx_1\",\"example\":\"\\t\\t\\/\\/ To ensure that there is only one record per user\\r\\n\\t\\t\\/\\/ Get a db connection.\\r\\n\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\/\\/ Create a new query object.\\r\\n\\t\\t$query = $db->getQuery(true);\\r\\n\\t\\t\\/\\/ Select all records from the #__###component###_###view### table from ###CODE### column\\\".\\r\\n\\t\\t$query->select($db->quoteName(\'###CODE###\'));\\r\\n\\t\\t$query->from($db->quoteName(\'#__###component###_###view###\'));\\r\\n\\t\\t$db->setQuery($query);\\r\\n\\t\\t$db->execute();\\r\\n\\t\\t$found = $db->getNumRows();\\r\\n\\t\\tif ($found)\\r\\n\\t\\t{\\r\\n\\t\\t\\t\\/\\/ return all users already used\\r\\n\\t\\t\\treturn array_unique($db->loadColumn());\\r\\n\\t\\t}\\r\\n\\t\\treturn null;\",\"adjustable\":\"1\",\"description\":\"The php for the getExcluded method.\"}}', 'List of users.', '', 1, 7, '', '', 'a4a39f70-070f-459c-be4b-0ac103a29b9a'),
+(8, 'The Editor field type provides a WYSIWYG (What You See Is What You Get) editor for rich text input, allowing users to format content visually without writing HTML.', 'Editor', '{\"properties0\":{\"name\":\"type\",\"example\":\"editor\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editor.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextblock\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Test Field\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.\"},\"properties7\":{\"name\":\"height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.\"},\"properties8\":{\"name\":\"cols\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the width of the editor (in columns).\"},\"properties9\":{\"name\":\"rows\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) defines the height of the editor (in rows).\"},\"properties10\":{\"name\":\"buttons\",\"example\":\"no\",\"adjustable\":\"1\",\"description\":\"(optional) can be an array of plugin buttons to be excluded or set to false. The default editors-xtd are: article, image, pagebreak and readmore.\"},\"properties11\":{\"name\":\"syntax\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) can be used to set the code syntax matching for this field.\"},\"properties12\":{\"name\":\"hide\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) array of plugin buttons to be hidden. eg... set buttons=\\\"true\\\" hide=\\\"readmore,pagebreak\\\"\"},\"properties13\":{\"name\":\"editor\",\"example\":\"codemirror|none\",\"adjustable\":\"1\",\"description\":\"specifies the editor to be used and can include two options (editor=\\\"desired|alternative\\\")\"},\"properties14\":{\"name\":\"filter\",\"example\":\"safehtml\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties16\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Editor area field.', '', 1, 13, '', '', '51f288d2-6eaa-42bc-a182-a6f69b3032b8'),
+(9, 'The hidden form field type provides a hidden field for saving a field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). If the parameter has a saved value, this is entered; otherwise, the default value (if defined) will be used.', 'Hidden', '{\"properties0\":{\"name\":\"type\",\"example\":\"hidden\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be hidden.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mysecretvariable\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the data which needs to be collected.\"},\"properties3\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties4\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"}}', 'Hidden field for storing fixed values.', '', 1, 3, '', '', '82f1b5ca-bb9b-44d7-9a7a-9a03fb2a31dd'),
+(10, 'The integer form field type provides a select box with a range of integer values. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected.', 'Integer', '{\"properties0\":{\"name\":\"type\",\"example\":\"integer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be integer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Size\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"first\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties10\":{\"name\":\"last\",\"example\":\"20\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties11\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown of integers in a set range.', '', 1, 7, '', '', 'fdbb50ea-35d2-45b2-a0bc-076fdf1544b8'),
+(11, 'The list form field type provides a drop down list or a list box of custom-defined entries. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'List', '{\"properties0\":{\"name\":\"type\",\"example\":\"list\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be list.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mylist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) New layout field added in Joomla 4\"},\"properties7\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties8\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties9\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties10\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties11\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties12\":{\"name\":\"useglobal\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties13\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties14\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties15\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of a custom-defined entries.', '', 1, 14, '', '', 'a51dfc06-1b9b-4d0a-86ba-f705bcd40d4d'),
+(12, 'The media form field type provides modal access to the media manager for the choice of an image or other kind of media, e.g. video. Users with appropriate permissions will be able to upload files.', 'Media', '{\"properties0\":{\"name\":\"type\",\"example\":\"media\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be media.\"},\"properties1\":{\"name\":\"name\",\"example\":\"media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Media\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"directory\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the directory from which the user will be able to choose a file. This attribute should be relative to the top level \\/images\\/ folder. The default is that the user will be confined to the top level \\/images\\/ folder.\"},\"properties5\":{\"name\":\"preview\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) shows or hides the preview of the currently chosen image. (\\\"true\\\": Show always, \\\"tooltip\\\": Show as tooltip, \\\"false\\\": Show never). Default is \\\"tooltip\\\".\"},\"properties6\":{\"name\":\"preview_width\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-width of preview image (default: \\\"200\\\")\"},\"properties7\":{\"name\":\"preview_height\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) sets the max-height of preview image (default: \\\"200\\\")\"},\"properties8\":{\"name\":\"types\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a comma-separated list of file types (images, audios, videos, documents, directories). Default is images. This list decides which of the allowed file extensions from Media Manager configuration are used. For example, images,documents means only files with an allowed images extension or an allowed documents extension are available for selection. When the type directories is used then the field will allow selection of a directory; this can be useful in setting extension parameters, to define an upload destination for example.\"},\"properties9\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Select or upload media via modal.', '', 1, 9, '', '', '69957007-e3d4-4976-a32b-611d02dbad71'),
+(13, 'The Meter form field type displays a visual indicator representing a numeric value within a specified range. It is useful for showing progress, performance, or any measurable quantity with optional thresholds for low, high, and optimum values.', 'Meter', '{\"properties0\":{\"name\":\"type\",\"example\":\"meter\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be meter.\"},\"properties1\":{\"name\":\"name\",\"example\":\"meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Meter\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"width\",\"example\":\"330px\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of meter box\"},\"properties4\":{\"name\":\"color\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The background color\"},\"properties5\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"animated\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the bar have strips\"},\"properties7\":{\"name\":\"active\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) lets the strips on the bar move\"},\"properties8\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties10\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties11\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties12\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays a value within a defined range.', '', 1, 4, '', '', '81668284-e572-4e17-927b-ba697fc64bd0'),
+(14, 'This form field makes it possible to create titles, texts, descriptions and even alert boxes. It also allows you to bring order in the settings for extensions, by separating them with useful titles. Or adding descriptions for certain settings (without having to rely on the tooltips). Or adding any other text you want.', 'Note', '{\"properties0\":{\"name\":\"type\",\"example\":\"note\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be note\"},\"properties1\":{\"name\":\"name\",\"example\":\"note_one\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory or optional if using description) (translatable) is the descriptive title of the note \"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional if using label)(translatable) the description\\/text of the note \"},\"properties4\":{\"name\":\"heading\",\"example\":\"h4\",\"adjustable\":\"1\",\"description\":\"(optional) the type of heading element to use for the label (default: h4)\"},\"properties5\":{\"name\":\"class\",\"example\":\"alert\",\"adjustable\":\"1\",\"description\":\"(optional) a class name (or class names), like these examples ( alert, alert alert-info, alert alert-success, alert alert-error )\"},\"properties6\":{\"name\":\"close\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) a value of \'true\' (for alerts) or the value for the data-dismiss of the bootstrap close icon\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Displays custom text or headings in forms.', '', 1, 6, '', '', 'f9ecacd0-8481-4157-8c71-d7aaefc2b7c3'),
+(15, 'The number form field type provides a single-line input for numeric values, typically displayed with up/down step controls (spinner). It supports attributes such as minimum, maximum, and step values, allowing you to define numeric ranges and precision for user input.', 'Number', '{\"properties0\":{\"name\":\"type\",\"example\":\"number\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be number.\"},\"properties1\":{\"name\":\"name\",\"example\":\"number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Number\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the lowest on the list.\"},\"properties8\":{\"name\":\"max\",\"example\":\"40\",\"mandatory\":\"1\",\"description\":\"(mandatory) this value is the highest on the list.\"},\"properties9\":{\"name\":\"step\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this number, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Javascript that should run on changing of the value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Single-line number input with step controls.', '', 1, 6, '', '', '5abd2b73-643b-4273-841a-787991aad968'),
+(16, 'The password form field type provides a text box for entry of a password. The password characters will be obscured as they are entered. If the field has a saved value this is entered (in obscured form) into the text box. If not, the default value (if any)', 'Password', '{\"properties0\":{\"name\":\"type\",\"example\":\"password\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be password.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mypassword\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter A Password\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"default\",\"example\":\"secret\",\"adjustable\":\"1\",\"description\":\"(optional) is the default password.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"message\",\"example\":\"Error! Please add password here.\",\"adjustable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"rules\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether the password should adhere to certain rules.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Password Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"strengthmeter\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) measures the strength of the password.\"},\"properties18\":{\"name\":\"force\",\"example\":\"off\",\"adjustable\":\"1\",\"description\":\"(optional) forces a password to be set.\"},\"properties19\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties20\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text box for entry of a password.', '', 1, 12, '', '', '0022598d-0ee1-44f2-aa94-c2eb47595f73'),
+(17, 'The radio form field type displays a set of radio buttons for selecting one option from a predefined list. If the field has a saved value, that option is selected when the page loads; otherwise, the default value (if any) is used.', 'Radio', '{\"properties0\":{\"name\":\"type\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be radio.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myradiovalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"btn-group btn-group-yesno\",\"adjustable\":\"1\",\"description\":\"(optional) New in Joomla 3, if set to class=\\\"btn-group btn-group-yesno\\\" will show the nice coloured buttons\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|Yes,0|No\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default radio button item value.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties11\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties13\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Radio buttons for option selection.', '', 1, 19, '', '', 'b868ed59-4208-4206-8504-95a35a74a11c'),
+(18, 'The Range form field type displays a horizontal slider that allows users to select a numeric value within a defined range. It supports attributes such as minimum, maximum, and step values to control the sliderโs behavior and precision. This field offers a user-friendly alternative to numeric input fields when selecting values from a fixed interval.', 'Range', '{\"properties0\":{\"name\":\"type\",\"example\":\"range\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be range.\"},\"properties1\":{\"name\":\"name\",\"example\":\"range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Range\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"9\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties7\":{\"name\":\"min\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the min on the meter.\"},\"properties8\":{\"name\":\"max\",\"example\":\"20\",\"adjustable\":\"1\",\"description\":\"(mandatory) this value is the max on meter.\"},\"properties9\":{\"name\":\"step\",\"example\":\"1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) each option will be the previous option incremented by this integer, starting with the first value until the last value is reached.\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"jQuery(\'#jform_range\').closest(\'.controls\').find(\'span\').remove(); var value = jQuery(\'#jform_range\').val();jQuery(\'#jform_range\').closest(\'.controls\').append(\' \'+value+\'\');\",\"adjustable\":\"1\",\"description\":\"(optional) javascript to run when the range is changed\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Slider to select a value within a range.', '', 1, 7, '', '', '627d3845-7273-4f75-8e63-7b3a319a42c8'),
+(19, 'Provides a modal interface containing rows of form fields that you define. Users can add as many entries as needed, with each row repeating the specified field set. This field type relies on a jQuery-based JavaScript file for its dynamic functionality.', 'Repeatable', '{\"properties0\":{\"name\":\"type\",\"example\":\"repeatable\",\"adjustable\":\"1\",\"description\":\"(mandatory) must be repeatable.\"},\"properties1\":{\"name\":\"name\",\"example\":\"repeatable_list\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Repeatable List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"aid\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) id of the hidden from field. (the modal will have this id with an added suffix of \\\"_modal\\\" and the table within the modal will have this id with a suffix of _modal_table\\\")\"},\"properties6\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) class of the table.\"},\"properties7\":{\"name\":\"select\",\"example\":\"Click here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) The text to show on the modal button.\"},\"properties8\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties9\":{\"name\":\"maximum\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties10\":{\"name\":\"fields\",\"example\":\"1,2,3\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids with commas. Do not add custom fields that are not also used in this component.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Form fields with repeatable rows of inputs.', '', 1, 7, '', '', '05bf68d4-52f9-4705-8ae7-cba137fce0ad'),
+(20, 'The spacer form field type provides a visual separator between groups of form fields. It serves purely as a visual aid to organize the layout of the form and does not store any value.', 'Spacer', '{\"properties0\":{\"name\":\"type\",\"example\":\"spacer\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be spacer.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myspacer\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"The notice\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the text to use as a spacer.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The notice description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"hr\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is whether to display a horizontal rule (\'true\' or \'false\'). If this attribute is \'true\', the label attribute will be ignored.\"},\"properties5\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"}}', 'Visual divider with no stored value.', '', 1, 2, '', '', '626d0cba-a908-4a4f-a447-96d781aeaa0b'),
+(21, 'Using this generic form field type forces you to write SQL in an XML file and is rather limited. For more flexibility, consider using a Custom FieldType.\r\n\r\nThe sql form field type provides a drop down list of entries obtained by running a query on the Joomla database. The first column returned by the query is used as the option value, and the second column (if present) is used as the label displayed in the dropdown.', 'SQL', '{\"properties0\":{\"name\":\"type\",\"example\":\"sql\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be sql.\"},\"properties1\":{\"name\":\"name\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an article\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"query\",\"example\":\"SELECT id, concat( title, \' (\', created, \')\') AS title FROM #__content\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the SQL query which will provide the data for the drop-down list. The query must return two columns; one called \'value\' (unless overridden by the key_field attribute) which will hold the values of the list items; the other called the same as the value of the name attribute (unless overridden by the value_field attribute) containing the text to be shown in the drop-down list.\"},\"properties4\":{\"name\":\"default\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the default value. This is the value of the \'value\' field, unless overridden by the key_field attribute.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties6\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties7\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties8\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties9\":{\"name\":\"key_field\",\"example\":\"id\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values for the parameter. If omitted then the column called \'value\' will be used, if it exists.\"},\"properties10\":{\"name\":\"value_field\",\"example\":\"title\",\"adjustable\":\"1\",\"description\":\"(optional) is the name of the column that will contain values to be shown to the user in the drop-down list. If omitted then the column with the same name as the name attribute will be used, if it exists.\"},\"properties11\":{\"name\":\"translate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) will translate the output of the value_field if set to true. It defaults to false.\"},\"properties12\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list populated by a database query.', '', 1, 4, '', '', 'd4c16f1e-fd6e-4714-90eb-f9d97edd9c32'),
+(22, 'The tag field type provides an input for assigning tags to an item. Tags can be selected or created using an AJAX-powered interface or chosen from a nested list of existing tags, depending on configuration. This allows for flexible and consistent tagging within Joomla.', 'Tag', '{\"properties0\":{\"name\":\"type\",\"example\":\"tag\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be tag.\"},\"properties1\":{\"name\":\"name\",\"example\":\"tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"mode\",\"example\":\"ajax\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the way the tags will be loaded, the options are ( ajax or nested )\"},\"properties3\":{\"name\":\"label\",\"example\":\"Tags\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"Assign tags to ###VIEW### items. Tag names must be unique.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is the description of the field.\"},\"properties5\":{\"name\":\"id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the id to add to the field. Note if none is set this will be the name of the field.\"},\"properties6\":{\"name\":\"class\",\"example\":\"inputbox small\",\"adjustable\":\"1\",\"description\":\"(optional) is the class to add to the field.\"},\"properties7\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines if non published tags should be allowed.\"},\"properties8\":{\"name\":\"language\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is language to filter the existing tags by.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) is the ability to add more than 1 tag to the form field.\"},\"properties10\":{\"name\":\"custom\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) if the ajax mode is chosen setting this to [deny] will prevent users from adding in new tags.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Entry point for tags (either AJAX or Nested).', '', 1, 4, '', '', '48cba89e-8fcb-481e-a7d3-2e41773e452d'),
+(23, 'The tel field type is a text input specifically intended for telephone numbers. It functions as an alias of the standard text field but can be enhanced with the tel validation rule and input filter to ensure proper formatting and sanitation of phone number inputs.', 'Tel', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Phone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter phone number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validated\",\"example\":\"tel\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to validated the input data.\"},\"properties13\":{\"name\":\"message\",\"example\":\"Error! Please add phone number here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties14\":{\"name\":\"hint\",\"example\":\"Your Phone Number\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Input field for telephone numbers.', '', 1, 7, '', '', '1c6c519c-3bc8-4914-8940-3e9591b0bce6'),
+(24, 'The text form field type provides a single-line input box for entering textual data. If a saved value exists, it is displayed when the page loads; otherwise, the default value (if specified) is used. This field is commonly used for short, free-form text entries such as names, titles, or labels.', 'Text', '{\"properties0\":{\"name\":\"type\",\"example\":\"text\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be text.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextvalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"Some text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties14\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties15\":{\"name\":\"hint\",\"example\":\"Your Name Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties16\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties17\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties18\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Single-line text input field.', '', 1, 11, '', '', '201327fe-3067-4316-a155-3fe2a52e05c0'),
+(25, 'The textarea form field type provides a multi-line input area for entering larger blocks of text. If a saved value exists, it is displayed when the page first loads; otherwise, the default value (if specified) is used. This field is ideal for content such as descriptions, comments, or notes.', 'Textarea', '{\"properties0\":{\"name\":\"type\",\"example\":\"textarea\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be textarea.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mytextarea\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"rows\",\"example\":\"10\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the height of the visible text area in lines. If omitted the width is determined by the browser. The value of rows does not limit the number of lines that may be entered.\"},\"properties4\":{\"name\":\"cols\",\"example\":\"5\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the width of the visible text area in characters. If omitted the width is determined by the browser. The value of cols does not limit the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"default text\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Text Area\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties7\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties8\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties9\":{\"name\":\"filter\",\"example\":\"raw\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties10\":{\"name\":\"hint\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the textarea.\"},\"properties11\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties14\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties15\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties16\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Multi-line text input area.', '', 1, 10, '', '', '76fe1250-6fa7-49e5-a0ee-f06d8d4c9f99'),
+(26, 'The timezone form field type provides a dropdown list of available time zones for selection. If a saved value exists, it is displayed when the page is first loaded; otherwise, the default value (if specified) is shown. This field is useful for allowing users to set or adjust time zone preferences.', 'Timezone', '{\"properties0\":{\"name\":\"type\",\"example\":\"timezone\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be timezone.\"},\"properties1\":{\"name\":\"name\",\"example\":\"timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Timezone\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default time zone. For example, use \'-10\' for \'(UTC -10:00) Hawaii\'.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of time zones.', '', 1, 5, '', '', 'ed8d8cf4-cb05-49cc-95ef-4ef275f539f9'),
+(27, 'The URL field type is a text input specifically intended for entering web addresses. It functions like a standard text field but uses the url input type to enable browser-level validation. If a fully qualified URL (one with a scheme and domain, such as http://example.com) includes internationalized domain names (IDNs) with non-ASCII characters (e.g., รช or ฮจ), it will be automatically converted to a valid ASCII-compatible format (Punycode) for proper handling and storage.', 'URL', '{\"properties0\":{\"name\":\"type\",\"example\":\"url\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be url.\"},\"properties1\":{\"name\":\"name\",\"example\":\"website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Website\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter website address\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"text_area\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"relative\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) set to true for relative URLs\"},\"properties12\":{\"name\":\"filter\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties13\":{\"name\":\"validated\",\"example\":\"url\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties14\":{\"name\":\"scheme\",\"example\":\"http,https,mailto\",\"adjustable\":\"1\",\"description\":\"(optional) Validates that the value is a URL with a valid scheme (which can be restricted by the optional comma-separated field \'scheme\'), and passes a basic syntax check.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add website here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"Your Website Here\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Text input for a valid URL.', '', 1, 11, '', '', '8df6e07e-2b16-43ed-a18d-2059fa44cdf1'),
+(28, 'The user form field type provides a modal-based selection interface for choosing a Joomla user. It allows administrators to browse and select users from the system through a searchable pop-up dialog.', 'User', '{\"properties0\":{\"name\":\"type\",\"example\":\"user\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be user.\"},\"properties1\":{\"name\":\"name\",\"example\":\"user\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"User\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties6\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal selector for Joomla users.', '', 1, 5, '', '', 'b0641980-5e78-42f6-972f-86aa607db23e'),
+(29, 'The usergrouplist form field type provides a dropdown list of all available Joomla user groups. It allows selection of a single group from the site\'s access control system for use in configuration or assignment settings.', 'Usergrouplist', '{\"properties0\":{\"name\":\"type\",\"example\":\"usergrouplist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be usergrouplist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"usergroup\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Group\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select a group\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"layout\",\"example\":\"joomla.form.field.list-fancy-select\",\"adjustable\":\"1\",\"description\":\"(optional) (translatable) is the layout, for example joomla.form.field.list-fancy-select.\"},\"properties6\":{\"name\":\"size\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties8\":{\"name\":\"checksuperusergroup\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) is boolean to omit Super User groups. Values 1 or 0.\"},\"properties9\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of Joomla user groups.', '', 1, 8, '', '', 'e2f31181-fbb3-4c3a-859d-72b6b0cff308'),
+(30, 'The Filelist form field type provides a drop down list of files from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Filelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"filelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be filelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfile\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a file\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of files selected for inclusion in the drop-down list. If omitted, all files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'File dropdown from directory.', '', 1, 7, '', 1, '0c80df15-52c6-4647-983b-4bb4888a2edf'),
+(31, 'The Folderlist form field type provides a drop down list of folders from a specified directory. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Folderlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"folderlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be folderlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfolder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a folder\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the filesystem path to the directory containing the folders to be listed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default folder name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of folders selected for inclusion in the drop-down list. If omitted, all folders in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude folders from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties9\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Folder dropdown from directory.', '', 1, 6, '', 2, 'd3ab2ae4-9370-4497-ae6d-dee2e0b74b7a'),
+(32, 'Note: When using the file input type you should always add the attribute enctype=\"multipart/form-data\" to your form tag. Otherwise, the uploaded files will not be attached correctly.\r\n\r\nNote 2: You can put a soft limit file size by adding a hidden field with name=\"MAX_FILE_SIZE\" and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.', 'File', '{\"properties0\":{\"name\":\"type\",\"example\":\"file\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be file.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myfilevalue\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose an image from your computer with maximum 100KB\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value, but doesn\'t mean much for a file.\"},\"properties5\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the file box in characters.\"},\"properties6\":{\"name\":\"accept\",\"example\":\"image\\/*\",\"adjustable\":\"1\",\"description\":\"(optional) Tells the browser what MIME types your form will allow to be uploaded.\"},\"properties7\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties8\":{\"name\":\"labelclass\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) adds a CSS class for form field\'s label; for Joomla 2.5.4+\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute\"},\"properties10\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties11\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) For Joomla form validating it to be filled in\"},\"properties12\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Whether to Joomla validate the field according to rules\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Input field for files', '', 1, 10, '', 3, '6da71c1e-119c-4e0d-a309-f3e52ecfa1d1'),
+(33, 'The Menuitem form field type provides a grouped dropdown list of available menu items from your Joomla site, organized by their respective menus for easier selection.', 'Menuitem', '{\"properties0\":{\"name\":\"type\",\"example\":\"menuitem\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menuitem.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mymenuitem\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select a menu item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu item. Note that this is the ItemID number of the menu item.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"published\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) determines whether all menu items are listed or only published menu items. If state is \'0\' then all menu items will be listed. If state is \'1\' then only published menu items will be listed.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"int\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown list of items within a selected menu.', '', 1, 7, '', 4, 'f183b0e2-017f-48bd-8dba-d332ce1b8d9e'),
+(34, 'Remember all views already have [accesslevel] added by default, only add this if you need more custom access selection! Provides a dropdown list of accesslevel options with the current option selected.', 'Accesslevel', '{\"properties0\":{\"name\":\"type\",\"example\":\"accesslevel\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be accesslevel\"},\"properties1\":{\"name\":\"name\",\"example\":\"accesstwo\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field. This must match the name of the query results column that contains the values that will be shown to the user in the drop-down list, unless a different name is specified in the value_field attribute. \"},\"properties2\":{\"name\":\"label\",\"example\":\"Access Two\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Select an access level to this concept.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"class\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field.\"},\"properties5\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the field required true if yes.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) If set to multiple then allows more than one usergroup to be selected.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'List of user accesslevels.', '', 1, 8, '', 5, '913ed2ce-836c-48e8-97af-e482441f47df'),
+(35, 'Provides a form containing repeatable rows of nested fields that you define. Users can add as many entries as needed, with each row replicating the specified field structure. This field type relies on a jQuery-based JavaScript file to handle dynamic behaviour and is ideal for managing structured, multi-value input.', 'Subform', '{\"properties0\":{\"name\":\"type\",\"example\":\"subform\",\"description\":\"(mandatory) must be subform.\"},\"properties1\":{\"name\":\"name\",\"example\":\"options\",\"adjustable\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter\"},\"properties2\":{\"name\":\"label\",\"example\":\"The Option List\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"layout\",\"example\":\"joomla.form.field.subform.repeatable-table\",\"adjustable\":\"1\",\"description\":\"(mandatory) The layout for the repeatable table.\"},\"properties4\":{\"name\":\"component\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) To change the component where it should search for layout\"},\"properties5\":{\"name\":\"client\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Function to initialise the application clientFrontend: site or 0Backend: admin or 1\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) The rows to be multiple.\"},\"properties7\":{\"name\":\"buttons\",\"example\":\"add,remove,move\",\"adjustable\":\"1\",\"description\":\"(optional) Which buttons to show if multiple mode is true.Options: add,remove,move\"},\"properties8\":{\"name\":\"fields\",\"example\":\"guid,guid,guid\",\"adjustable\":\"1\",\"description\":\"(mandatory) The fields to add to the modal. All fields must first be created in component builder as a field before you can add them here, since you must use the id of the field. Separate the field ids\\/guids with commas. Do not add custom fields that are not also used in this component.\"},\"properties9\":{\"name\":\"formsource\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) you can add a path to a xml file containing the fields.\"},\"properties10\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form\"},\"properties11\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.\"},\"properties12\":{\"name\":\"icon\",\"example\":\"list\",\"adjustable\":\"1\",\"description\":\"(optional) The icon to show on the select button (is prefixed with \\\"icon-\\\").\"},\"properties13\":{\"name\":\"max\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) The maximum number of rows of fields allowed (by default 999 to be effectively infinite)\"},\"properties14\":{\"name\":\"min\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The minimum number of rows of fields required\"},\"properties15\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Use only if you would like to save raw data, since the default is best.\"},\"properties16\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Repeating sets of nested form fields.', '', 1, 16, '', 6, '7139f2c8-a70a-46a6-bbe3-4eefe54ca515'),
+(36, 'A field type that provides an input for entering an email address. It includes basic validation to ensure the input matches the standard email format, helping to prevent invalid entries.', 'Email', '{\"properties0\":{\"name\":\"type\",\"example\":\"email\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be email.\"},\"properties1\":{\"name\":\"name\",\"example\":\"email\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Email Address\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"size\",\"example\":\"10\",\"adjustable\":\"1\",\"description\":\"(optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.\"},\"properties4\":{\"name\":\"maxlength\",\"example\":\"50\",\"adjustable\":\"1\",\"description\":\"(optional) limits the number of characters that may be entered.\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties7\":{\"name\":\"class\",\"example\":\"inputbox\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'text_area\'.\"},\"properties8\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties9\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties10\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties11\":{\"name\":\"filter\",\"example\":\"STRING\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties12\":{\"name\":\"validate\",\"example\":\"email\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties13\":{\"name\":\"unique\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) Used in validation, to check if we should test for uniqueness, to insure that this email does not already belong to another user. Check line 99 in \\/libraries\\/src\\/Form\\/Rule\\/EmailRule.php\"},\"properties14\":{\"name\":\"field\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) used in validation of \\\"equals\\\" to link the field to match.\"},\"properties15\":{\"name\":\"message\",\"example\":\"Error! Please add some text here.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The error message that will be displayed instead of the default message.\"},\"properties16\":{\"name\":\"hint\",\"example\":\"your@email.com\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties17\":{\"name\":\"autocomplete\",\"example\":\"on\",\"adjustable\":\"1\",\"description\":\"(optional) The autocomplete state for the form field. If \'off\' element will not be automatically completed by browser.\"},\"properties18\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties19\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Email form field type.', '', 1, 8, '', 7, '35948af5-9e79-4454-8dfa-682ee4fdf650'),
+(37, 'The Plugins form field type provides a dropdown list of available plugins from a specified plugin folder. It allows selection from plugins grouped under a particular type (folder), making it useful when an extension needs to reference or configure specific plugin functionality within Joomla. The list is dynamically populated based on the plugins installed in the defined folder.', 'Plugins', '{\"properties0\":{\"name\":\"type\",\"example\":\"plugins\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be editors.\"},\"properties1\":{\"name\":\"name\",\"example\":\"editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an editor\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties4\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.\"},\"properties5\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties6\":{\"name\":\"folder\",\"example\":\"editors\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) editors or captcha.\"},\"properties7\":{\"name\":\"filter\",\"example\":\"cmd\",\"adjustable\":\"1\",\"description\":\"(optional) allow the system to save certain html tags or raw data.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Dropdown of plugins from a specified folder.', '', 1, 10, '', 8, '37fa4e1d-b7ca-4a8f-aa4b-d8085c135233'),
+(38, 'The Captcha field type that integrates with a Joomla captcha plugin to present a human verification challenge, typically used to distinguish between human users and automated systems.', 'Captcha', '{\"properties0\":{\"name\":\"type\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties1\":{\"name\":\"name\",\"example\":\"captcha\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"validate\",\"example\":\"captcha\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be captcha.\"},\"properties3\":{\"name\":\"label\",\"example\":\"Captcha\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties4\":{\"name\":\"description\",\"example\":\"We do not like spam, please show us you are human\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties5\":{\"name\":\"namespace\",\"example\":\"componentbuilder\",\"description\":\"(optional) the component name seems to work\"}}', 'Captcha robot check.', '', 1, 4, '', 9, '206fdad4-14d0-45f1-9c84-3d09abf48a39'),
+(39, 'The groupedlist form field type provides a drop down list or list box of custom-defined entries, organized into labeled groups. If the field has a saved value, this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Groupedlist', '{\"properties0\":{\"name\":\"type\",\"example\":\"groupedlist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be groupedlist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"mygrouplist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an option\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"list_class\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties6\":{\"name\":\"multiple\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) is whether multiple items can be selected at the same time (true or false).\"},\"properties7\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties8\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties9\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties10\":{\"name\":\"option\",\"example\":\"Group Name@@1,1|Option 1|1,2|Option 2|1,Group Name 2@@2,3|Option 3|2\",\"adjustable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties11\":{\"name\":\"useglobal\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) if set to true, it will show the value that is set in the global configuration if found in the database.\"},\"properties12\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties13\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties14\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of grouped custom entries.', '', 1, 5, '', 10, '088d47c0-b058-4894-b92e-dcf1b9d5a722'),
+(40, 'The Modulelayout form field type provides a drop down list of all available layouts for a module, grouped by core and template. If the parameter has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.', 'Modulelayout', '{\"properties0\":{\"name\":\"type\",\"example\":\"modulelayout\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modulelayout.\"},\"properties1\":{\"name\":\"name\",\"example\":\"layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Layout\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Module layout\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"module\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a specific module name (e.g. mod_articles_category).\"},\"properties5\":{\"name\":\"client_id\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional). If 0 (site): Forces searching for layouts only in directories \\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/. If 1 (administrator): Forces searching for layouts only in directories \\/administrator\\/modules\\/[MODULENAME]\\/tmpl\\/ and all \\/administrator\\/templates\\/[TEMPLATENAME]\\/html\\/[MODULENAME]\\/.\\r\\n\"},\"properties6\":{\"name\":\"template\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a template name (e.g. protostar or isis). If set forces searching for module template overrides only in this template.\"}}', 'Dropdown of module layouts.', '', 1, 4, '', 11, '7520c8f4-543d-4c7a-8e4f-e2da71c3b1cd'),
+(41, 'The privacy field type in Joomla is a specialized custom form field introduced to assist extensions in handling privacy-related features; most notably, export and deletion requests in compliance with privacy regulations like the GDPR (General Data Protection Regulation).', 'Privacy@', '{\"properties0\":{\"name\":\"type\",\"example\":\"privacy\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"privacy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Privacy Policy\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full privacy policy.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.system.privacyconsent.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.system.privacyconsent.label\')->render($this->getLayoutData());\\r\\n\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$privacyArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($privacyArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $privacyArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'privacynote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site and agreeing to the Privacy Policy you agree to this web site storing your information.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'privacyArticle\' => $privacyArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Joomla privacy field display.', '', 1, 10, '', 12, '60c1d674-8bb7-4b31-97ed-ee1f16bc412a'),
+(42, 'The terms field type displays Joomla\'s terms and conditions agreement checkbox, typically used in user registration or other consent-based forms. It ensures that users acknowledge and accept the site\'s legal terms before proceeding, in compliance with privacy or legal requirements. The terms content is managed through Joomla\'s configuration.', 'Terms@', '{\"properties0\":{\"name\":\"type\",\"example\":\"terms\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"terms\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Terms & Conditions\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Read the full terms and conditions.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'inputbox\'.\"},\"properties5\":{\"name\":\"option\",\"example\":\"1|I agree,0|No\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties6\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties7\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties9\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties10\":{\"name\":\"extends\",\"example\":\"radio\",\"mandatory\":\"1\",\"description\":\"Must be radio\"},\"properties11\":{\"name\":\"type_phpHEADER_1\",\"example\":\"use Joomla\\\\CMS\\\\Factory;\\r\\nuse Joomla\\\\CMS\\\\Form\\\\FormHelper;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Associations;\\r\\nuse Joomla\\\\CMS\\\\Language\\\\Text;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties12\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field input markup.\\r\\n\\t *\\r\\n\\t * @return string The field input markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getInput()\\r\\n\\t{\\r\\n\\t\\t\\/\\/ Display the message before the field\\r\\n\\t\\techo $this->getRenderer(\'plugins.user.terms.message\')->render($this->getLayoutData());\\r\\n\\r\\n\\t\\treturn parent::getInput();\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getInput method.\"},\"properties13\":{\"name\":\"type_phpa_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the field label markup.\\r\\n\\t *\\r\\n\\t * @return string The field label markup.\\r\\n\\t *\\r\\n\\t * @since 3.9.0\\r\\n\\t *\\/\\r\\n\\tprotected function getLabel()\\r\\n\\t{\\r\\n\\t\\tif ($this->hidden)\\r\\n\\t\\t{\\r\\n\\t\\t\\treturn \'\';\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn $this->getRenderer(\'plugins.user.terms.label\')->render($this->getLayoutData());\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLabel method.\"},\"properties14\":{\"name\":\"type_phpb_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.9.4\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t$article = false;\\r\\n\\t\\t$termsArticle = $this->element[\'article\'] > 0 ? (int) $this->element[\'article\'] : 0;\\r\\n\\r\\n\\t\\tif ($termsArticle && Factory::getApplication()->isClient(\'site\'))\\r\\n\\t\\t{\\r\\n\\t\\t\\t$db = Factory::getDbo();\\r\\n\\t\\t\\t$query = $db->getQuery(true)\\r\\n\\t\\t\\t\\t->select($db->quoteName(array(\'id\', \'alias\', \'catid\', \'language\')))\\r\\n\\t\\t\\t\\t->from($db->quoteName(\'#__content\'))\\r\\n\\t\\t\\t\\t->where($db->quoteName(\'id\') . \' = \' . (int) $termsArticle);\\r\\n\\t\\t\\t$db->setQuery($query);\\r\\n\\t\\t\\t$article = $db->loadObject();\\r\\n\\r\\n\\t\\t\\tJLoader::register(\'ContentHelperRoute\', JPATH_BASE . \'\\/components\\/com_content\\/helpers\\/route.php\');\\r\\n\\r\\n\\t\\t\\tif (Associations::isEnabled())\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$termsAssociated = Associations::getAssociations(\'com_content\', \'#__content\', \'com_content.item\', $termsArticle);\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t$currentLang = Factory::getLanguage()->getTag();\\r\\n\\r\\n\\t\\t\\tif (isset($termsAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $termsAssociated))\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute(\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->id,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->catid,\\r\\n\\t\\t\\t\\t\\t$termsAssociated[$currentLang]->language\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\telse\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\t$slug = $article->alias ? ($article->id . \':\' . $article->alias) : $article->id;\\r\\n\\t\\t\\t\\t$article->link = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'termsnote\' => !empty($this->element[\'note\']) ? $this->element[\'note\'] : Text::_(\'By signing up to this web site you accept the Terms & Conditions.\'),\\r\\n\\t\\t\\t\'options\' => $this->getOptions(),\\r\\n\\t\\t\\t\'value\' => (string) $this->value,\\r\\n\\t\\t\\t\'translateLabel\' => $this->translateLabel,\\r\\n\\t\\t\\t\'translateDescription\' => $this->translateDescription,\\r\\n\\t\\t\\t\'translateHint\' => $this->translateHint,\\r\\n\\t\\t\\t\'termsArticle\' => $termsArticle,\\r\\n\\t\\t\\t\'article\' => $article,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Displays Joomla terms and conditions.', '', 1, 8, '', 12, '20e88943-08db-49e6-a571-dba70cdf4cca'),
+(43, 'A field type that combines a standard text input with a dropdown list of predefined options. Users can either type a custom value or choose from the available selections, offering flexibility in data entry.', 'Combo', '{\"properties0\":{\"name\":\"type\",\"example\":\"combo\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be combo.\"},\"properties1\":{\"name\":\"name\",\"example\":\"type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the parameter.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Type\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"message\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as error on validation.\"},\"properties5\":{\"name\":\"class\",\"example\":\"combobox\",\"adjustable\":\"1\",\"description\":\"(optional) specify your own classes for additonal markup, defaults to \\\"combobox\\\".\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) filter options\"},\"properties7\":{\"name\":\"required\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties8\":{\"name\":\"validate\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) The validation method for the form field. This value will determine which method is used to validate the value for a field.\"},\"properties9\":{\"name\":\"option\",\"example\":\"0|Option 1,1|Option 2,2|Option 1\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties10\":{\"name\":\"default\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"(optional) is the default list item value.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties12\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Combobox list field, allows free text.', '', 1, 4, '', 13, '2c8b128f-7da2-4f55-b1d7-3613f902f590'),
+(44, 'The imagelist form field type provides a drop down list of image files in a specified directory. Only files with .png, .gif, .jpg, .bmp, .ico extensions are listed. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected.\r\n\r\nBy default, the first item on the list is \'- Do not use -\' (which is translatable) and is given the value \'-1\' and this is followed by \'- Use default -\' (also translatable) given the value \'0\'.', 'Imagelist', '{\"properties0\":{\"name\":\"type\",\"example\":\"imagelist\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be imagelist.\"},\"properties1\":{\"name\":\"name\",\"example\":\"myimagelist\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Select an image\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"directory\",\"example\":\"images\\/stories\",\"adjustable\":\"1\",\"description\":\"(optional) is the filesystem path to the directory containing the image files to be listed. If omitted the directory given by JPATH_ROOT is assumed.\"},\"properties4\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default image file name.\"},\"properties5\":{\"name\":\"description\",\"example\":\"\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties6\":{\"name\":\"filter\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties7\":{\"name\":\"exclude\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to exclude image files from the list. The exclude argument expression is applied after the filter argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties8\":{\"name\":\"stripext\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true then file name extensions will be stripped from the image file names listed. Also note that the file name will be saved without the extension too.\"},\"properties9\":{\"name\":\"hide_none\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Do not use -\' item is omitted from the drop-down list.\"},\"properties10\":{\"name\":\"hide_default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is a Boolean argument. If true, the \'- Use default -\' item is omitted from the drop-down list.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Image file dropdown from directory.', '', 1, 4, '', 14, '72680e92-2859-49c6-ad92-c2329c52f9f8'),
+(45, ' The Modal menu form field type provides a styled drop-down list of Joomla menu items, visually matching Joomla\'s modal UI patterns. Unlike the modal select field type, it does not open a modal window for selection but instead presents menu items in a compact, dropdown format consistent with the modal design language used in Joomla\'s administrator interface.', 'Modal Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"modal_menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be modal_menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"base\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Base Item\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"option\",\"example\":\"Current\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) set the options of this radio. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties4\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) show select options\"},\"properties5\":{\"name\":\"new\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties6\":{\"name\":\"edit\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties7\":{\"name\":\"description\",\"example\":\"Select a menu item to always be used as the base for the menu display. You must set the Start Level to the same level or higher than the level of the base item. This will cause the module to be displayed on all assigned pages. If Current is selected the active item is used as the base. This causes the module to only display when the parent menu item is active.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties8\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory)\"},\"properties9\":{\"name\":\"disable\",\"example\":\"separator,alias,heading,url\",\"adjustable\":\"1\",\"description\":\"(optional)\"},\"properties10\":{\"name\":\"filter\",\"example\":\"integer\",\"adjustable\":\"1\",\"description\":\"(optional) is a regular expression string which is used to filter the list of image files selected for inclusion in the drop-down list. If omitted, all image files in the directory are included. The filter argument expression is applied before the exclude argument expression. For information on constructing regular expressions see Regular expressions in parameter arguments.\"},\"properties11\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\\r\\n\"}}', 'Styled dropdown of menu items.', '', 1, 8, '', 15, '715256a4-8cc2-4d66-9d08-31e58ca5b036'),
+(46, 'The menu form field type provides a drop down list of the available menus from your Joomla! site. If the field has a saved value this is selected when the page is first loaded. If not, the default value (if any) is selected. ', 'Menu', '{\"properties0\":{\"name\":\"type\",\"example\":\"menu\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be menu.\"},\"properties1\":{\"name\":\"name\",\"example\":\"menutype\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the filed.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Menu to Show\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"Choose which menu should be rendered with this instance of module.\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) tooltip for the form field.\"},\"properties4\":{\"name\":\"clientid\",\"example\":\"0\",\"adjustable\":\"1\",\"description\":\"\"},\"properties5\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) is the default menu. Note that this is the name of the menu shown in the Type column on the Menu Manager screen and not the menu ID number.\"},\"properties6\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties7\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"}}', 'Dropdown list of Joomla menus.', '', 1, 6, '', 16, '6349f152-8ef5-43bd-a89b-ce18f33ac5e5'),
+(47, 'Dynamic Checkboxes generates a list of checkboxes dynamically based on data retrieved at runtime, such as from a database query or external source. Useful for displaying variable options that may change depending on context or configuration.', 'DynamicCheckboxes@', '{\"properties0\":{\"name\":\"type\",\"example\":\"change_this\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) can be anything, just not the same as any other default Joomla field type. You can also not use the \\\"_\\\" (underscore) or \\\"-\\\" (hyphen) in the type name, and no spaces.\"},\"properties1\":{\"name\":\"name\",\"example\":\"dynamic_checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Dynamic Checkboxes\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"description\",\"example\":\"The checkbox linked to global subform of the same name\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties4\":{\"name\":\"option\",\"example\":\"1|Default\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) set the options of this checkboxes. Separate options with commas and use the pipe symbol to separate value from text.\"},\"properties5\":{\"name\":\"default\",\"example\":\"1\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value.\"},\"properties6\":{\"name\":\"required\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties7\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) show this field on the bases of the value in another field. https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"},\"properties8\":{\"name\":\"onchange\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) HTML equivalent attribute (javascript use)\"},\"properties9\":{\"name\":\"extends\",\"example\":\"checkboxes\",\"mandatory\":\"1\",\"description\":\"Must be checkboxes\"},\"properties10\":{\"name\":\"type_phpHEADER_1\",\"example\":\"\\\\JFormHelper::loadFieldClass(\'checkboxes\');\\r\\nuse VDM\\\\Joomla\\\\Utilities\\\\Component\\\\Helper;\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The Header USE options\"},\"properties11\":{\"name\":\"type_php_1\",\"example\":\"\\t\\/**\\r\\n\\t * Method to get the data to be passed to the layout for rendering.\\r\\n\\t *\\r\\n\\t * @return array\\r\\n\\t *\\r\\n\\t * @since 3.5\\r\\n\\t *\\/\\r\\n\\tprotected function getLayoutData()\\r\\n\\t{\\r\\n\\t\\t$data = parent::getLayoutData();\\r\\n\\r\\n\\t\\t\\/\\/ True if the field has \'value\' set. In other words, it has been stored, don\'t use the default values.\\r\\n\\t\\t$hasValue = (isset($this->value) && !empty($this->value));\\r\\n\\r\\n\\t\\t\\/\\/ If a value has been stored, use it. Otherwise, use the defaults.\\r\\n\\t\\t$checkedOptions = $hasValue ? $this->value : $this->checkedOptions;\\r\\n\\r\\n\\t\\t\\/\\/ get the form options\\r\\n\\t\\t$options = $this->getOptions();\\r\\n\\r\\n\\t\\t\\/\\/ get the component params\\r\\n\\t\\t$params = Helper::getParams();\\r\\n\\t\\t$subform = $params->get($this->fieldname);\\r\\n\\r\\n\\t\\t\\/\\/ add the paths found in global settings\\r\\n\\t\\tif (is_array($subform) && $subform !== [])\\r\\n\\t\\t{\\r\\n\\t\\t\\tforeach ($subform as $value)\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tif (isset($value->path) && strlen($value->path) > 3)\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t$tmp = new \\\\stdClass;\\r\\n\\t\\t\\t\\t\\t$tmp->value = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->text = $value->set_me;\\r\\n\\t\\t\\t\\t\\t$tmp->checked = false;\\r\\n\\r\\n\\t\\t\\t\\t\\t$options[] = $tmp;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t$extraData = array(\\r\\n\\t\\t\\t\'checkedOptions\' => is_array($checkedOptions) ? $checkedOptions : explode(\',\', (string) $checkedOptions),\\r\\n\\t\\t\\t\'hasValue\' => $hasValue,\\r\\n\\t\\t\\t\'options\' => $options\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\treturn array_merge($data, $extraData);\\r\\n\\t}\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"The php for the getLayoutData method.\"}}', 'Super Power Repository Paths', '', 1, 15, '', 12, '7ed21e79-cbc5-48e3-9ed0-ca72b0f2f1a1'),
+(48, 'The ModalSelectField offers an intuitive, user-friendly modal popup interface within Joomla\'s administrator forms. It enables users to select existing records, create new records, edit existing records, or clear selected records directly from within the form. The field retrieves and displays the selected record\'s title dynamically, based on configurable database parameters. It simplifies relational data handling, enhancing the user experience by minimizing page transitions and streamlining record management tasks in Joomla administration interfaces.', 'ModalSelect', '{\"properties0\":{\"name\":\"type\",\"example\":\"ModalSelect\",\"mandatory\":\"1\",\"description\":\"(mandatory) must be ModalSelect.\"},\"properties1\":{\"name\":\"name\",\"example\":\"targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"(mandatory) is the unique name of the field.\"},\"properties2\":{\"name\":\"label\",\"example\":\"Enter some text\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"translatable\":\"1\",\"description\":\"(mandatory) (translatable) is the descriptive title of the field.\"},\"properties3\":{\"name\":\"sql_title_table\",\"example\":\"#__###component###_targetview\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Database table (with prefix) used for retrieving title.\"},\"properties4\":{\"name\":\"sql_title_column\",\"example\":\"title\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Column used for the title display in the modal input field.\"},\"properties5\":{\"name\":\"sql_title_key\",\"example\":\"id\",\"adjustable\":\"1\",\"mandatory\":\"1\",\"description\":\"Primary key column name of the selected item (usually id).\"},\"properties6\":{\"name\":\"urlSelect\",\"example\":\"index.php?option=com_###component###&view=targetviews&layout=modal&tmpl=component&titleKey=id\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to select an existing record. Important note, the [titleKey] in the url must be equal to [sql_title_key]\"},\"properties7\":{\"name\":\"urlNew\",\"example\":\"index.php?option=com_###component###&task=targetview.add&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for opening modal to create a new record.\"},\"properties8\":{\"name\":\"urlEdit\",\"example\":\"index.php?option=com_###component###&task=targetview.edit&id={id}&layout=modal&tmpl=component\",\"adjustable\":\"1\",\"description\":\"URL for editing selected record. {id} dynamically replaced with the [sql_title_key] valiue.\"},\"properties9\":{\"name\":\"titleSelect\",\"example\":\"Select Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title for the record selection window.\"},\"properties10\":{\"name\":\"titleNew\",\"example\":\"New Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when creating a new record.\"},\"properties11\":{\"name\":\"titleEdit\",\"example\":\"Edit Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"Modal title displayed when editing existing record.\"},\"properties12\":{\"name\":\"iconSelect\",\"example\":\"icon-copy\",\"adjustable\":\"1\",\"description\":\"CSS icon class from Icomoon or FontAwesome for select button.\"},\"properties13\":{\"name\":\"select\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow users to select a record (true\\/false). Default: true.\"},\"properties14\":{\"name\":\"new\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow users to create a new record (true\\/false). Default: false.\"},\"properties15\":{\"name\":\"edit\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"Allow editing of selected record (true\\/false). Default: false.\"},\"properties16\":{\"name\":\"clear\",\"example\":\"true\",\"adjustable\":\"1\",\"description\":\"Allow clearing of the current selection (true\\/false). Default: true.\"},\"properties17\":{\"name\":\"required\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field must be filled before submitting the form.\"},\"properties18\":{\"name\":\"class\",\"example\":\"input-large\",\"adjustable\":\"1\",\"description\":\"(optional) is a CSS class name for the HTML form field. If omitted this will default to \'input-large\'.\"},\"properties19\":{\"name\":\"description\",\"example\":\"Enter some description\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.\"},\"properties20\":{\"name\":\"hint\",\"example\":\"Select a Targetview\",\"adjustable\":\"1\",\"translatable\":\"1\",\"description\":\"(optional) The placeholder to display inside the text box.\"},\"properties21\":{\"name\":\"default\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) (not translatable) is the default value of the field (item ID).\"},\"properties22\":{\"name\":\"readonly\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value\"},\"properties23\":{\"name\":\"disabled\",\"example\":\"false\",\"adjustable\":\"1\",\"description\":\"(optional) The field cannot be changed and will automatically inherit the default value - it will also not submit\"},\"properties24\":{\"name\":\"showon\",\"example\":\"\",\"adjustable\":\"1\",\"description\":\"(optional) Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+ https:\\/\\/joomla.stackexchange.com\\/a\\/17682\\/2166\"}}', 'Modal Select to manage a database record. (J5+ only)', '', 1, 33, '', 17, 'a1cdb0a5-517c-425c-998a-333e92af3e32');
--
-- Dumping data for table `#__componentbuilder_language`
@@ -2998,12 +3016,14 @@ INSERT INTO `#__componentbuilder_language` (`id`, `langtag`, `name`, `params`, `
--
INSERT INTO `#__componentbuilder_repository` (`id`, `system_name`, `organisation`, `repository`, `target`, `type`, `base`, `guid`, `read_branch`, `access`, `ordering`, `published`, `modified`, `created`, `params`, `addplaceholders`) VALUES
-(14, 'Super Powers (codeberg - mirror)', 'joomla', 'super-powers', 1, 1, 'https://codeberg.org', '8213b3a3-8618-4b29-92b3-15c9f26f019c', 'master', 1, 14, 1, '2025-04-07 14:37:01', '2024-06-10 10:59:35', '', '{}'),
-(15, 'PHP Seclib (codeberg - mirror)', 'joomla', 'phpseclib', 1, 1, 'https://codeberg.org', '64a84f86-391e-4e4b-be99-b2c7c41a6005', 'master', 1, 15, 1, '2025-04-07 14:37:01', '2024-06-10 11:02:03', '', '{}'),
-(16, 'Gitea (codeberg - mirror)', 'joomla', 'gitea', 1, 1, 'https://codeberg.org', 'cb800a2c-4bf7-41c8-9360-cfe9d54cdf2b', 'master', 1, 16, 1, '2025-04-07 14:37:01', '2024-06-10 11:03:09', '', '{}'),
-(17, 'Openai (codeberg - mirror)', 'joomla', 'openai', 1, 1, 'https://codeberg.org', 'c625381a-7795-4b9f-8b4e-997c9291e3fc', 'master', 1, 17, 1, '2025-04-07 14:37:01', '2024-06-10 11:03:19', '', '{}'),
-(18, 'Joomla Powers (codeberg - mirror)', 'joomla', 'joomla-powers', 2, 1, 'https://codeberg.org', '8ac595d4-0b1d-4877-ba3e-2b815c1c7e3c', 'master', 1, 18, 1, '2025-04-07 14:37:01', '2024-07-08 14:07:31', '', '{}'),
-(19, 'Joomla Field Types (codeberg - mirror)', 'joomla', 'joomla-fieldtypes', 3, 1, 'https://codeberg.org', 'bf4a1d77-e3a4-4aa8-a07f-2b01872bf7e9', 'master', 1, 19, 1, '2025-04-07 14:36:33', '2024-08-23 16:21:35', '', '{}');
+(14, 'Super Powers (codeberg - mirror)', 'joomla', 'super-powers', 1, 1, 'https://codeberg.org', '8213b3a3-8618-4b29-92b3-15c9f26f019c', 'master', 1, 14, 1, '2025-06-17 21:48:15', '2024-06-10 10:59:35', '', '{}'),
+(15, 'PHP Seclib (codeberg - mirror)', 'joomla', 'phpseclib', 1, 1, 'https://codeberg.org', '64a84f86-391e-4e4b-be99-b2c7c41a6005', 'master', 1, 15, 1, '2025-06-17 21:48:08', '2024-06-10 11:02:03', '', '{}'),
+(16, 'Gitea (codeberg - mirror)', 'joomla', 'gitea', 1, 1, 'https://codeberg.org', 'cb800a2c-4bf7-41c8-9360-cfe9d54cdf2b', 'master', 1, 16, 1, '2025-06-17 21:47:56', '2024-06-10 11:03:09', '', '{}'),
+(17, 'Openai (codeberg - mirror)', 'joomla', 'openai', 1, 1, 'https://codeberg.org', 'c625381a-7795-4b9f-8b4e-997c9291e3fc', 'master', 1, 17, 1, '2025-06-17 21:47:49', '2024-06-10 11:03:19', '', '{}'),
+(18, 'Joomla Powers (codeberg - mirror)', 'joomla', 'joomla-powers', 2, 1, 'https://codeberg.org', '8ac595d4-0b1d-4877-ba3e-2b815c1c7e3c', 'master', 1, 18, 1, '2025-06-17 21:47:22', '2024-07-08 14:07:31', '', '{}'),
+(19, 'Joomla Field Types (codeberg - mirror)', 'joomla', 'joomla-fieldtypes', 3, 1, 'https://codeberg.org', 'bf4a1d77-e3a4-4aa8-a07f-2b01872bf7e9', 'master', 1, 19, 1, '2025-06-17 21:48:25', '2024-08-23 16:21:35', '', '{}'),
+(20, 'Official Packages', 'joomengine', 'packages', 4, 2, 'https://api.github.com', '562624ab-48bf-4979-9a14-6b10cf3635de', 'master', 1, 20, 1, '2025-06-18 10:39:24', '2025-05-31 08:47:01', '', '{}'),
+(21, 'Official Snippets', 'joomengine', 'snippets', 5, 2, 'https://api.github.com', '70e85588-bc28-4459-9b29-858f68faae8f', 'master', 1, 21, 1, '2025-06-18 18:46:05', '2025-06-18 10:35:14', '', '{}');
--
-- Dumping data for table `#__componentbuilder_help_document`
@@ -3181,33 +3201,23 @@ INSERT INTO `#__componentbuilder_library_files_folders_urls` (`id`, `addfiles`,
(11, '{}', '{}', '{\"addurls0\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.css\",\"type\":2},\"addurls1\":{\"url\":\"https:\\/\\/cdn.jsdelivr.net\\/npm\\/nouislider\\/dist\\/nouislider.min.js\",\"type\":2}}', '2ccbb15a-65d7-4a35-b732-0cf6b72c9275', '', 1, '2023-06-26 15:02:42', '2023-07-24 18:11:41', 3, '', 10),
(12, '{}', '{}', '{\"addurls4\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/bs5\\/jszip-3.10.1\\/dt-2.0.2\\/b-3.0.1\\/b-colvis-3.0.1\\/b-html5-3.0.1\\/b-print-3.0.1\\/cr-2.0.0\\/date-1.5.2\\/fc-5.0.0\\/fh-4.0.1\\/kt-2.12.0\\/r-3.0.0\\/rg-1.5.0\\/rr-1.5.0\\/sc-2.4.1\\/sb-1.7.0\\/sp-2.3.0\\/sl-2.0.0\\/sr-1.4.0\\/datatables.min.css\",\"type\":3},\"addurls1\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.2.7\\/pdfmake.min.js\",\"type\":3},\"addurls2\":{\"url\":\"https:\\/\\/cdnjs.cloudflare.com\\/ajax\\/libs\\/pdfmake\\/0.2.7\\/vfs_fonts.js\",\"type\":3},\"addurls3\":{\"url\":\"https:\\/\\/cdn.datatables.net\\/v\\/bs5\\/jszip-3.10.1\\/dt-2.0.2\\/b-3.0.1\\/b-colvis-3.0.1\\/b-html5-3.0.1\\/b-print-3.0.1\\/cr-2.0.0\\/date-1.5.2\\/fc-5.0.0\\/fh-4.0.1\\/kt-2.12.0\\/r-3.0.0\\/rg-1.5.0\\/rr-1.5.0\\/sc-2.4.1\\/sb-1.7.0\\/sp-2.3.0\\/sl-2.0.0\\/sr-1.4.0\\/datatables.min.js\",\"type\":3}}', '876b88eb-5d34-4f90-a896-80327593a787', '', 1, '2024-03-09 16:27:28', '2024-03-09 16:29:30', 2, '', 9);
---
--- Dumping data for table `#__componentbuilder_class_extends`
---
-
-INSERT INTO `#__componentbuilder_class_extends` (`id`, `comment`, `extension_type`, `head`, `name`, `params`, `published`, `created`, `modified`, `version`, `guid`, `hits`, `ordering`) VALUES
-(1, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQp1c2UgSm9vbWxhXENNU1xQbHVnaW5cQ01TUGx1Z2luOw0K', 'CMSPlugin', '', 1, '2019-08-23 00:11:33', '2023-08-22 03:50:43', 5, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', '', 1),
-(2, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQoNCkpMb2FkZXI6OmltcG9ydCgnY29tcG9uZW50cy5jb21fZmllbGRzLmxpYnJhcmllcy5maWVsZHNsaXN0cGx1Z2luJywgSlBBVEhfQURNSU5JU1RSQVRPUik7DQo=', 'FieldsListPlugin', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:14:06', 3, '837cda37-d614-407f-ba60-9d4b8f3dfc1f', '', 1),
-(3, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQ29tcG9uZW50XENvbXBvbmVudEhlbHBlcjsNCg0KSkxvYWRlcjo6cmVnaXN0ZXIoJ0ZpbmRlckluZGV4ZXJBZGFwdGVyJywgSlBBVEhfQURNSU5JU1RSQVRPUiAuICcvY29tcG9uZW50cy9jb21fZmluZGVyL2hlbHBlcnMvaW5kZXhlci9hZGFwdGVyLnBocCcpOw0K', 'FinderIndexerAdapter', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:13:39', 2, 'e896fa8c-04b3-4edd-b681-fdd235945966', '', 1),
-(4, 'LyoqDQogKiBbW1tQbHVnaW5fbmFtZV1dXSBwbHVnaW4uDQogKg0KICogQHBhY2thZ2UgICBbW1tQbHVnaW5dXV0NCiAqIEBzaW5jZSAgICAgW1tbcGx1Z2luLnZlcnNpb25dXV0NCiAqLw==', 'plugins', 'dXNlIEpvb21sYVxDTVNcQXBwbGljYXRpb25cQ01TQXBwbGljYXRpb247DQp1c2UgSm9vbWxhXERhdGFiYXNlXERhdGFiYXNlRHJpdmVyOw0KDQpKTG9hZGVyOjpyZWdpc3RlcignUHJpdmFjeVBsdWdpbicsIEpQQVRIX0FETUlOSVNUUkFUT1IgLiAnL2NvbXBvbmVudHMvY29tX3ByaXZhY3kvaGVscGVycy9wbHVnaW4ucGhwJyk7DQpKTG9hZGVyOjpyZWdpc3RlcignUHJpdmFjeVJlbW92YWxTdGF0dXMnLCBKUEFUSF9BRE1JTklTVFJBVE9SIC4gJy9jb21wb25lbnRzL2NvbV9wcml2YWN5L2hlbHBlcnMvcmVtb3ZhbC9zdGF0dXMucGhwJyk7DQo=', 'PrivacyPlugin', '', 1, '2019-08-23 00:11:33', '2019-08-23 00:12:43', 2, '204d6d55-d4c7-4162-bd2c-39d19302b406', '', 1);
-
--
-- Dumping data for table `#__componentbuilder_joomla_plugin_group`
--
INSERT INTO `#__componentbuilder_joomla_plugin_group` (`id`, `class_extends`, `name`, `params`, `published`, `created`, `modified`, `version`, `guid`, `hits`, `ordering`) VALUES
-(1, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'authentication', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(2, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'behaviour', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(3, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'content', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '37f35ae4-fc6c-49f0-b070-8701da85455d', '', 1),
-(4, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'editors-xtd', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(5, '837cda37-d614-407f-ba60-9d4b8f3dfc1f', 'fields', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(6, 'e896fa8c-04b3-4edd-b681-fdd235945966', 'finder', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(7, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'search', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(8, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'system', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '3f139f81-0697-4392-b065-6426adaa7ac6', '', 1),
-(9, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'user', '', 1, '2019-07-15 11:06:03', '0000-00-00 00:00:00', 1, '', '', 1),
-(10, '204d6d55-d4c7-4162-bd2c-39d19302b406', 'privacy', '', 1, '2019-07-16 00:25:53', '0000-00-00 00:00:00', 1, '2d8677ea-cda3-48d3-828d-da656c52dbe1', '', 2),
-(11, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'extension', '', 1, '2019-08-14 14:59:09', '0000-00-00 00:00:00', 1, 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', '', 3),
-(12, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'installer', '', 1, '2019-08-14 14:59:09', '0000-00-00 00:00:00', 1, '93940067-92d1-4cc2-b4e2-d3fc118d99bd', '', 3);
+(1, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'authentication', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:12', 3, 'ca987443-0740-48ad-9db3-c623cdb02d51', '', 1),
+(2, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'behaviour', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:17', 3, '976cc8de-7092-41b8-9c04-f00be8fe4bde', '', 1),
+(3, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'content', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:22', 3, '37f35ae4-fc6c-49f0-b070-8701da85455d', '', 1),
+(4, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'editors-xtd', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:27', 3, '9d4e911a-866f-4363-a47e-fc63f219aa01', '', 1),
+(5, '837cda37-d614-407f-ba60-9d4b8f3dfc1f', 'fields', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:32', 3, 'cc5b64a6-dbec-45b7-97e2-87893ea6827d', '', 1),
+(6, 'e896fa8c-04b3-4edd-b681-fdd235945966', 'finder', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:38', 3, '75021594-d111-4e01-9d42-4e86e57bbec3', '', 1),
+(7, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'search', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:47', 5, '6ada52b0-ef05-455b-9cd7-de0d4f3aff73', '', 1),
+(8, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'system', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:54:58', 5, '3f139f81-0697-4392-b065-6426adaa7ac6', '', 1),
+(9, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'user', '', 1, '2019-07-15 11:06:03', '2025-05-31 18:55:02', 4, '22d28e9f-1dfd-45f1-ab44-0b84259c2e00', '', 1),
+(10, '204d6d55-d4c7-4162-bd2c-39d19302b406', 'privacy', '', 1, '2019-07-16 00:25:53', '2025-05-31 18:55:05', 5, '2d8677ea-cda3-48d3-828d-da656c52dbe1', '', 2),
+(11, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'extension', '', 1, '2019-08-14 14:59:09', '2025-05-31 18:55:08', 4, 'e0947c15-d3d0-4e21-8e60-044ee8a946d6', '', 3),
+(12, 'ae2fafb4-e84b-4534-ba9c-6c9e1700b318', 'installer', '', 1, '2019-08-14 14:59:09', '2025-05-31 18:55:11', 3, '93940067-92d1-4cc2-b4e2-d3fc118d99bd', '', 3);
CREATE TABLE IF NOT EXISTS `#__componentbuilder_external_code` (
diff --git a/admin/sql/uninstall.mysql.utf8.sql b/admin/sql/uninstall.mysql.utf8.sql
index 5daf8f0e3..470d4b052 100644
--- a/admin/sql/uninstall.mysql.utf8.sql
+++ b/admin/sql/uninstall.mysql.utf8.sql
@@ -10,6 +10,7 @@ DROP TABLE IF EXISTS `#__componentbuilder_template`;
DROP TABLE IF EXISTS `#__componentbuilder_layout`;
DROP TABLE IF EXISTS `#__componentbuilder_dynamic_get`;
DROP TABLE IF EXISTS `#__componentbuilder_custom_code`;
+DROP TABLE IF EXISTS `#__componentbuilder_class_extends`;
DROP TABLE IF EXISTS `#__componentbuilder_class_property`;
DROP TABLE IF EXISTS `#__componentbuilder_class_method`;
DROP TABLE IF EXISTS `#__componentbuilder_placeholder`;
@@ -43,7 +44,6 @@ DROP TABLE IF EXISTS `#__componentbuilder_component_modules`;
DROP TABLE IF EXISTS `#__componentbuilder_snippet_type`;
DROP TABLE IF EXISTS `#__componentbuilder_library_config`;
DROP TABLE IF EXISTS `#__componentbuilder_library_files_folders_urls`;
-DROP TABLE IF EXISTS `#__componentbuilder_class_extends`;
DROP TABLE IF EXISTS `#__componentbuilder_joomla_module_updates`;
DROP TABLE IF EXISTS `#__componentbuilder_joomla_module_files_folders_urls`;
DROP TABLE IF EXISTS `#__componentbuilder_joomla_plugin_group`;
diff --git a/admin/sql/updates/mysql/5_1_1-alpha5.sql b/admin/sql/updates/mysql/5_1_1-alpha5.sql
new file mode 100644
index 000000000..a7ee7a8bc
--- /dev/null
+++ b/admin/sql/updates/mysql/5_1_1-alpha5.sql
@@ -0,0 +1 @@
+ALTER TABLE `#__componentbuilder_repository` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
diff --git a/admin/src/Controller/Admin_viewController.php b/admin/src/Controller/Admin_viewController.php
index 08144a5ae..a307e4820 100644
--- a/admin/src/Controller/Admin_viewController.php
+++ b/admin/src/Controller/Admin_viewController.php
@@ -25,6 +25,7 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
use VDM\Joomla\Data\Factory as DataFactory;
// No direct access to this file
@@ -138,6 +139,7 @@ class Admin_viewController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -147,21 +149,92 @@ class Admin_viewController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('class_extends.init', 'com_componentbuilder'))
+ {
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=ClassExtends&target=Class Extendings', false);
+ }
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_extendings', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Resets the selected Class Extendings.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Class Extendings.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Class Extendings.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_extendings', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_extendings', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the selected Class Extendings.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Class Extendings.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Class Extendings.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_extendings', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_extendings', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
}
\ No newline at end of file
diff --git a/admin/src/Controller/Class_extendsController.php b/admin/src/Controller/Class_extendsController.php
index fb5ed1e80..3050abac5 100644
--- a/admin/src/Controller/Class_extendsController.php
+++ b/admin/src/Controller/Class_extendsController.php
@@ -24,6 +24,8 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -78,6 +80,273 @@ class Class_extendsController extends FormController
*/
protected int $refid;
+
+ /**
+ * Method to edit an existing record.
+ *
+ * @param string $key The name of the primary key of the URL variable.
+ * @param string $urlVar The name of the URL variable if different from the primary key
+ * (sometimes required to avoid router collisions).
+ *
+ * @return boolean True if access level check and checkout passes, false otherwise.
+ *
+ * @since 1.6
+ */
+ public function edit($key = null, $urlVar = null)
+ {
+ // for modal title key selection (unique key to do mapping)
+ $titleKey = $this->input->get('titleKey', 'id', 'word');
+ $guid = null;
+ $value = null;
+
+ // Determine the name of the primary key for the data.
+ if (empty($key))
+ {
+ $model = $this->getModel();
+ $table = $model->getTable();
+ $key = $table->getKeyName();
+ }
+
+ if ($titleKey === 'guid')
+ {
+ $guid = $this->input->get('guid', null, 'string');
+ }
+
+ if ($guid !== null && GuidHelper::valid($guid))
+ {
+ $value = GuidHelper::item($guid, 'class_extends', 'a.' . $key, 'componentbuilder');
+ }
+
+ if ($value !== null)
+ {
+ $this->input->set($key, $value);
+ }
+
+ return parent::edit($key, $urlVar);
+ }
+
+ /**
+ * Resets the specified Class Extends.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Class Extends.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Class Extends.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=class_extends'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Class Extends.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Class Extends.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Class Extends.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=class_extends'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
/**
* Method override to check if you can add a new record.
*
diff --git a/admin/src/Controller/Class_methodController.php b/admin/src/Controller/Class_methodController.php
index 31e60137b..05be133e3 100644
--- a/admin/src/Controller/Class_methodController.php
+++ b/admin/src/Controller/Class_methodController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -78,6 +79,229 @@ class Class_methodController extends FormController
*/
protected int $refid;
+
+ /**
+ * Resets the specified Class Method.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Class Method.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Class Method.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=class_method'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Class Method.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Class Method.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Class Method.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('class_method.init', 'com_componentbuilder'))
+ {
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=ClassMethod&target=Class Methods', false);
+ }
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_methods', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Resets the selected Class Methods.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Class Methods.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Class Methods.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_methods', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_methods', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the selected Class Methods.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Class Methods.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Class Methods.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('class_property.init', 'com_componentbuilder'))
+ {
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=ClassProperty&target=Class Properties', false);
+ }
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_properties', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Resets the selected Class Properties.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Class Properties.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Class Properties.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_properties', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_properties', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the selected Class Properties.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Class Properties.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Class Properties.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_properties', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=class_properties', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
}
\ No newline at end of file
diff --git a/admin/src/Controller/Class_propertyController.php b/admin/src/Controller/Class_propertyController.php
index 27017c8bc..3d7819942 100644
--- a/admin/src/Controller/Class_propertyController.php
+++ b/admin/src/Controller/Class_propertyController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -78,6 +79,229 @@ class Class_propertyController extends FormController
*/
protected int $refid;
+
+ /**
+ * Resets the specified Class Property.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Class Property.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Class Property.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=class_property'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Class Property.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Class Property.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Class Property.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=class_property'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
/**
* Method override to check if you can add a new record.
*
diff --git a/admin/src/Controller/Custom_admin_viewController.php b/admin/src/Controller/Custom_admin_viewController.php
index 01ec7e5f5..4360bf91d 100644
--- a/admin/src/Controller/Custom_admin_viewController.php
+++ b/admin/src/Controller/Custom_admin_viewController.php
@@ -25,6 +25,7 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -137,6 +138,7 @@ class Custom_admin_viewController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -146,21 +148,92 @@ class Custom_admin_viewController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=custom_admin_views', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=custom_admin_views', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/Custom_codeController.php b/admin/src/Controller/Custom_codeController.php
index 4e24fce2b..db06c8084 100644
--- a/admin/src/Controller/Custom_codeController.php
+++ b/admin/src/Controller/Custom_codeController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -92,6 +93,7 @@ class Custom_codeController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -101,21 +103,92 @@ class Custom_codeController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=dynamic_gets', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=dynamic_gets', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/FieldController.php b/admin/src/Controller/FieldController.php
index e0db894f7..2d25574d0 100644
--- a/admin/src/Controller/FieldController.php
+++ b/admin/src/Controller/FieldController.php
@@ -25,6 +25,7 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -137,6 +138,7 @@ class FieldController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -146,21 +148,92 @@ class FieldController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=fields', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=fields', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/FieldtypeController.php b/admin/src/Controller/FieldtypeController.php
index 12541b5fe..0f3bb4172 100644
--- a/admin/src/Controller/FieldtypeController.php
+++ b/admin/src/Controller/FieldtypeController.php
@@ -93,6 +93,7 @@ class FieldtypeController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -111,9 +112,12 @@ class FieldtypeController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
// check if there is any selections
if ($id === null || $guid === null)
@@ -168,6 +172,7 @@ class FieldtypeController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -186,9 +191,12 @@ class FieldtypeController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
$message_bus = ['warning', 'error'];
diff --git a/admin/src/Controller/FieldtypesController.php b/admin/src/Controller/FieldtypesController.php
index 394d424ec..e75293b91 100644
--- a/admin/src/Controller/FieldtypesController.php
+++ b/admin/src/Controller/FieldtypesController.php
@@ -17,7 +17,6 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
-use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Componentbuilder\Fieldtype\Factory as FieldtypeFactory;
// No direct access to this file
@@ -59,6 +58,7 @@ class FieldtypesController extends AdminController
* Redirect the request to the Initialization selection page.
*
* @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
public function initPowers()
{
@@ -109,6 +109,7 @@ class FieldtypesController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -140,7 +141,9 @@ class FieldtypesController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('fieldtype.reset', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->getGuidField();
+ $guids = FieldtypeFactory::_('Load')->values([$key_field], ['fieldtype'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Get')->reset($guids))
@@ -188,6 +191,7 @@ class FieldtypesController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -220,7 +224,9 @@ class FieldtypesController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('fieldtype.push', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('fieldtype', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->getGuidField();
+ $guids = FieldtypeFactory::_('Load')->values([$key_field], ['fieldtype'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (FieldtypeFactory::_('Joomla.Fieldtype.Remote.Set')->items($guids))
diff --git a/admin/src/Controller/Joomla_componentController.php b/admin/src/Controller/Joomla_componentController.php
index 1cdaa19f9..f24723b38 100644
--- a/admin/src/Controller/Joomla_componentController.php
+++ b/admin/src/Controller/Joomla_componentController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
use VDM\Joomla\Data\Factory as DataFactory;
use VDM\Joomla\Utilities\GuidHelper;
@@ -94,6 +95,7 @@ class Joomla_componentController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -103,21 +105,92 @@ class Joomla_componentController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
// set redirect
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=joomla_component'
. $this->getRedirectToItemAppend($id), false
);
- $this->setRedirect($redirect_url, $message, 'success');
- return true;
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
}
/**
diff --git a/admin/src/Controller/Joomla_componentsController.php b/admin/src/Controller/Joomla_componentsController.php
index e240529b5..86d84b493 100644
--- a/admin/src/Controller/Joomla_componentsController.php
+++ b/admin/src/Controller/Joomla_componentsController.php
@@ -19,6 +19,7 @@ use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -165,20 +166,41 @@ class Joomla_componentsController extends AdminController
* Redirect the request to the Initialization selection page.
*
* @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
public function initPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
- // set default in development message
- $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_components', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_components', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/Joomla_moduleController.php b/admin/src/Controller/Joomla_moduleController.php
index da3e5f0d2..e8cfc9d6a 100644
--- a/admin/src/Controller/Joomla_moduleController.php
+++ b/admin/src/Controller/Joomla_moduleController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
use VDM\Joomla\Data\Factory as DataFactory;
use VDM\Joomla\Utilities\GuidHelper;
@@ -80,6 +81,229 @@ class Joomla_moduleController extends FormController
*/
protected int $refid;
+
+ /**
+ * Resets the specified Joomla Module.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Joomla Module.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Joomla Module.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=joomla_module'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Joomla Module.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Joomla Module.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Joomla Module.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('joomla_module.init', 'com_componentbuilder'))
+ {
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=JoomlaModule&target=Joomla Modules', false);
+ }
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_modules', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Resets the selected Joomla Modules.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Joomla Modules.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Joomla Modules.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_modules', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_modules', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the selected Joomla Modules.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Joomla Modules.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Joomla Modules.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_modules', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_modules', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
}
\ No newline at end of file
diff --git a/admin/src/Controller/Joomla_pluginController.php b/admin/src/Controller/Joomla_pluginController.php
index a27f5b090..64e0e6688 100644
--- a/admin/src/Controller/Joomla_pluginController.php
+++ b/admin/src/Controller/Joomla_pluginController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
use VDM\Joomla\Data\Factory as DataFactory;
use VDM\Joomla\Utilities\GuidHelper;
@@ -80,6 +81,229 @@ class Joomla_pluginController extends FormController
*/
protected int $refid;
+
+ /**
+ * Resets the specified Joomla Plugin.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Joomla Plugin.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Joomla Plugin.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=joomla_plugin'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Joomla Plugin.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Joomla Plugin.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Joomla Plugin.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=joomla_plugin'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
/**
* Method override to check if you can add a new record.
*
diff --git a/admin/src/Controller/Joomla_plugin_groupController.php b/admin/src/Controller/Joomla_plugin_groupController.php
index 41fd90fad..594ae6b8a 100644
--- a/admin/src/Controller/Joomla_plugin_groupController.php
+++ b/admin/src/Controller/Joomla_plugin_groupController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Utilities\GuidHelper;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -78,6 +79,51 @@ class Joomla_plugin_groupController extends FormController
*/
protected int $refid;
+
+ /**
+ * Method to edit an existing record.
+ *
+ * @param string $key The name of the primary key of the URL variable.
+ * @param string $urlVar The name of the URL variable if different from the primary key
+ * (sometimes required to avoid router collisions).
+ *
+ * @return boolean True if access level check and checkout passes, false otherwise.
+ *
+ * @since 1.6
+ */
+ public function edit($key = null, $urlVar = null)
+ {
+ // for modal title key selection (unique key to do mapping)
+ $titleKey = $this->input->get('titleKey', 'id', 'word');
+ $guid = null;
+ $value = null;
+
+ // Determine the name of the primary key for the data.
+ if (empty($key))
+ {
+ $model = $this->getModel();
+ $table = $model->getTable();
+ $key = $table->getKeyName();
+ }
+
+ if ($titleKey === 'guid')
+ {
+ $guid = $this->input->get('guid', null, 'string');
+ }
+
+ if ($guid !== null && GuidHelper::valid($guid))
+ {
+ $value = GuidHelper::item($guid, 'joomla_plugin_group', 'a.' . $key, 'componentbuilder');
+ }
+
+ if ($value !== null)
+ {
+ $this->input->set($key, $value);
+ }
+
+ return parent::edit($key, $urlVar);
+ }
+
/**
* Method override to check if you can add a new record.
*
diff --git a/admin/src/Controller/Joomla_pluginsController.php b/admin/src/Controller/Joomla_pluginsController.php
index b6d597244..68d4df991 100644
--- a/admin/src/Controller/Joomla_pluginsController.php
+++ b/admin/src/Controller/Joomla_pluginsController.php
@@ -17,6 +17,7 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -54,54 +55,270 @@ class Joomla_pluginsController extends AdminController
/**
- * get Boilerplate
+ * Redirect the request to the Initialization selection page.
*
- * @return boolean
+ * @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
- public function getBoilerplate()
+ public function initPowers()
{
// Check for request forgeries
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
// check if user has the right
- $user = Factory::getUser();
- // set page redirect
- $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
- // set massage
- $message = Text::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_GET_BOILERPLATE_MODULE');
- // check if this user has the right to run expansion
- if($user->authorise('joomla_plugin.get_boilerplate', 'com_componentbuilder'))
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('joomla_plugin.init', 'com_componentbuilder'))
{
- // set massage
- $message = Text::_('COM_COMPONENTBUILDER_GETTING_JOOMLA_PLUGIN_BOILERPLATE_FAILED_IF_THE_ISSUE_CONTINUES_INFORM_YOUR_SYSTEM_ADMINISTRATOR');
- // Get the model
- $model = $this->getModel('joomla_plugins');
- // check if there is any selections
- if (!$model->getBoilerplate())
- {
- $message = '' . Text::_('COM_COMPONENTBUILDER_GETTING_JOOMLA_PLUGIN_BOILERPLATE_WAS_SUCCESSFULLY') . '';
- $this->setRedirect($redirect_url, $message, 'message');
- return true;
- }
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=JoomlaPlugin&target=Joomla Plugins', false);
}
- $this->setRedirect($redirect_url, $message, 'error');
- return false;
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
}
- public function openClassMethods()
+ /**
+ * Resets the selected Joomla Plugins.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Joomla Plugins.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Joomla Plugins.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
- // redirect to the libraries
- $this->setRedirect(Route::_('index.php?option=com_componentbuilder&view=class_methods', false));
- return;
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
}
- public function openClassProperties()
+ /**
+ * Pushes the selected Joomla Plugins.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Joomla Plugins.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Joomla Plugins.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
- // redirect to the libraries
- $this->setRedirect(Route::_('index.php?option=com_componentbuilder&view=class_properties', false));
- return;
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=joomla_plugins', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/Joomla_powerController.php b/admin/src/Controller/Joomla_powerController.php
index 7ace259ba..57adb2d8e 100644
--- a/admin/src/Controller/Joomla_powerController.php
+++ b/admin/src/Controller/Joomla_powerController.php
@@ -93,6 +93,7 @@ class Joomla_powerController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -111,9 +112,12 @@ class Joomla_powerController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = JoomlaPowerFactory::_('Joomla.Power.Remote.Get')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
// check if there is any selections
if ($id === null || $guid === null)
@@ -168,6 +172,7 @@ class Joomla_powerController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -186,9 +191,12 @@ class Joomla_powerController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = JoomlaPowerFactory::_('Joomla.Power.Remote.Set')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
$message_bus = ['warning', 'error'];
diff --git a/admin/src/Controller/Joomla_powersController.php b/admin/src/Controller/Joomla_powersController.php
index f28e73791..0d23397e6 100644
--- a/admin/src/Controller/Joomla_powersController.php
+++ b/admin/src/Controller/Joomla_powersController.php
@@ -17,7 +17,6 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
-use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Componentbuilder\JoomlaPower\Factory as JoomlaPowerFactory;
// No direct access to this file
@@ -59,6 +58,7 @@ class Joomla_powersController extends AdminController
* Redirect the request to the Initialization selection page.
*
* @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
public function initPowers()
{
@@ -109,6 +109,7 @@ class Joomla_powersController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -140,7 +141,9 @@ class Joomla_powersController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('joomla_power.reset', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('joomla_power', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = JoomlaPowerFactory::_('Joomla.Power.Remote.Get')->getGuidField();
+ $guids = JoomlaPowerFactory::_('Load')->values([$key_field], ['joomla_power'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (JoomlaPowerFactory::_('Joomla.Power.Remote.Get')->reset($guids))
@@ -188,6 +191,7 @@ class Joomla_powersController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -220,7 +224,9 @@ class Joomla_powersController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('joomla_power.push', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('joomla_power', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = JoomlaPowerFactory::_('Joomla.Power.Remote.Set')->getGuidField();
+ $guids = JoomlaPowerFactory::_('Load')->values([$key_field], ['joomla_power'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (JoomlaPowerFactory::_('Joomla.Power.Remote.Set')->items($guids))
diff --git a/admin/src/Controller/LayoutController.php b/admin/src/Controller/LayoutController.php
index 459f00e73..e21e12f97 100644
--- a/admin/src/Controller/LayoutController.php
+++ b/admin/src/Controller/LayoutController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -92,6 +93,7 @@ class LayoutController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -101,21 +103,92 @@ class LayoutController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=layouts', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=layouts', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/LibrariesController.php b/admin/src/Controller/LibrariesController.php
index fc6a07573..93a15f7ff 100644
--- a/admin/src/Controller/LibrariesController.php
+++ b/admin/src/Controller/LibrariesController.php
@@ -17,6 +17,7 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -57,20 +58,41 @@ class LibrariesController extends AdminController
* Redirect the request to the Initialization selection page.
*
* @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
public function initPowers()
{
// Check for request forgeries
Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
- // set default in development message
- $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=libraries', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=libraries', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/LibraryController.php b/admin/src/Controller/LibraryController.php
index fd2076a71..bcf7bb14f 100644
--- a/admin/src/Controller/LibraryController.php
+++ b/admin/src/Controller/LibraryController.php
@@ -25,6 +25,7 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
use VDM\Joomla\Data\Factory as DataFactory;
// No direct access to this file
@@ -138,6 +139,7 @@ class LibraryController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -147,21 +149,92 @@ class LibraryController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
// set redirect
$redirect_url = Route::_(
'index.php?option=com_componentbuilder&view=library'
. $this->getRedirectToItemAppend($id), false
);
- $this->setRedirect($redirect_url, $message, 'success');
- return true;
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
}
/**
diff --git a/admin/src/Controller/PlaceholderController.php b/admin/src/Controller/PlaceholderController.php
index 02e1fed49..da59e31ac 100644
--- a/admin/src/Controller/PlaceholderController.php
+++ b/admin/src/Controller/PlaceholderController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -78,6 +79,229 @@ class PlaceholderController extends FormController
*/
protected int $refid;
+
+ /**
+ * Resets the specified Placeholder.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to reset the Placeholder.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to reset the specified Placeholder.
+ * 6. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ }
+ }
+
+ // set redirect
+ $redirect_url = Route::_(
+ 'index.php?option=com_componentbuilder&view=placeholder'
+ . $this->getRedirectToItemAppend($id), false
+ );
+
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the specified Placeholder.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the item data posted by the user.
+ * 3. It checks whether the current user has the necessary permissions to push the Placeholder.
+ * 4. It validates the presence of the necessary item identifiers (ID and GUID).
+ * 5. If the user is authorized and the identifiers are valid, it attempts to push the specified Placeholder.
+ * 6. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 7. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get Item posted
+ $item = $this->input->post->get('jform', array(), 'array');
+
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ $status = 'error';
+ $success = false;
+
+ if($user->authorise('placeholder.init', 'com_componentbuilder'))
+ {
+ // set success message
+ $message = null;
+
+ $status = null;
+ $success = true;
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=initialization_selection&power=Placeholder&target=Placeholders', false);
+ }
+ else
+ {
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=placeholders', false);
+ }
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ /**
+ * Resets the selected Placeholders.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to reset the selected Placeholders.
+ * 6. If the user is authorized and powers are selected, it attempts to reset the selected Placeholders.
+ * 7. Depending on the result of the reset operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful reset, false on failure.
+ * @since 5.1.1
+ */
+ public function resetPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=placeholders', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=placeholders', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
+
+ /**
+ * Pushes the selected Placeholders.
+ *
+ * This function performs several checks and operations:
+ * 1. It verifies the authenticity of the request to prevent request forgery.
+ * 2. It retrieves the IDs of the selected powers from the user input.
+ * 3. It sanitizes the input by converting the IDs to integers.
+ * 4. It checks whether any powers have been selected.
+ * 5. It checks whether the current user has the necessary permissions to push the selected Placeholders.
+ * 6. If the user is authorized and powers are selected, it attempts to push the selected Placeholders.
+ * 7. Depending on the result of the push operation, it sets the appropriate success or error message.
+ * 8. It redirects the user to a specified URL with the result message and status.
+ *
+ * @return bool True on successful push, false on failure.
+ * @since 5.1.1
+ */
+ public function pushPowers()
+ {
+ // Check for request forgeries
+ Session::checkToken() or die(Text::_('JINVALID_TOKEN'));
+
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=placeholders', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=placeholders', false);
+ $this->setRedirect($redirect_url);
+
+ return $success;
+ }
}
\ No newline at end of file
diff --git a/admin/src/Controller/PowerController.php b/admin/src/Controller/PowerController.php
index e072ddb21..2d4bb7f9b 100644
--- a/admin/src/Controller/PowerController.php
+++ b/admin/src/Controller/PowerController.php
@@ -138,6 +138,7 @@ class PowerController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -156,9 +157,12 @@ class PowerController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = PowerFactory::_('Power.Remote.Get')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
// check if there is any selections
if ($id === null || $guid === null)
@@ -213,6 +217,7 @@ class PowerController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -231,9 +236,12 @@ class PowerController extends FormController
$status = 'error';
$success = false;
+ // get the guid field of this entity
+ $key_field = PowerFactory::_('Power.Remote.Set')->getGuidField();
+
// load the ID
$id = $item['id'] ?? null;
- $guid = $item['guid'] ?? null;
+ $guid = $item[$key_field] ?? null;
$message_bus = ['warning', 'error'];
diff --git a/admin/src/Controller/PowersController.php b/admin/src/Controller/PowersController.php
index 54be7db55..acf563994 100644
--- a/admin/src/Controller/PowersController.php
+++ b/admin/src/Controller/PowersController.php
@@ -17,7 +17,6 @@ use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
-use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Componentbuilder\Power\Factory as PowerFactory;
// No direct access to this file
@@ -59,6 +58,7 @@ class PowersController extends AdminController
* Redirect the request to the Initialization selection page.
*
* @return bool True on successful initialization, false on failure.
+ * @since 5.1.1
*/
public function initPowers()
{
@@ -109,6 +109,7 @@ class PowersController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -140,7 +141,9 @@ class PowersController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('power.reset', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('power', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = PowerFactory::_('Power.Remote.Get')->getGuidField();
+ $guids = PowerFactory::_('Load')->values([$key_field], ['power'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (PowerFactory::_('Power.Remote.Get')->reset($guids))
@@ -188,6 +191,7 @@ class PowersController extends AdminController
* 8. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful push, false on failure.
+ * @since 5.1.1
*/
public function pushPowers()
{
@@ -220,7 +224,9 @@ class PowersController extends AdminController
$user = $this->app->getIdentity();
if($user->authorise('power.push', 'com_componentbuilder'))
{
- $guids = GetHelper::vars('power', $pks, 'id', 'guid');
+ // get the guid field of this entity
+ $key_field = PowerFactory::_('Power.Remote.Set')->getGuidField();
+ $guids = PowerFactory::_('Load')->values([$key_field], ['power'], ['id' => ['value' => $pks, 'operator' => 'IN']]);
try {
if (PowerFactory::_('Power.Remote.Set')->items($guids))
diff --git a/admin/src/Controller/Site_viewController.php b/admin/src/Controller/Site_viewController.php
index 5e3121698..e00641621 100644
--- a/admin/src/Controller/Site_viewController.php
+++ b/admin/src/Controller/Site_viewController.php
@@ -25,6 +25,7 @@ use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
use VDM\Joomla\Utilities\GuidHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -137,6 +138,7 @@ class Site_viewController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -146,21 +148,92 @@ class Site_viewController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=site_views', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=site_views', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/SnippetController.php b/admin/src/Controller/SnippetController.php
index 941c9a9d5..50628aac4 100644
--- a/admin/src/Controller/SnippetController.php
+++ b/admin/src/Controller/SnippetController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Snippet\Factory as SnippetFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -92,6 +93,7 @@ class SnippetController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -101,21 +103,92 @@ class SnippetController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ }
+
+ // set redirect
+ $redirect_url = Route::_('index.php?option=com_componentbuilder&view=snippets', false);
+ $this->setRedirect($redirect_url, $message, $status);
+
+ return $success;
+ }
+
+ // set redirect
$redirect_url = Route::_('index.php?option=com_componentbuilder&view=snippets', false);
- $this->setRedirect($redirect_url, $message, 'success');
+ $this->setRedirect($redirect_url);
- return true;
+ return $success;
}
}
\ No newline at end of file
diff --git a/admin/src/Controller/TemplateController.php b/admin/src/Controller/TemplateController.php
index 74ca83192..5bd3da50e 100644
--- a/admin/src/Controller/TemplateController.php
+++ b/admin/src/Controller/TemplateController.php
@@ -24,6 +24,7 @@ use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper;
+use VDM\Joomla\Componentbuilder\Package\Factory as PackageFactory;
// No direct access to this file
\defined('_JEXEC') or die;
@@ -92,6 +93,7 @@ class TemplateController extends FormController
* 7. It redirects the user to a specified URL with the result message and status.
*
* @return bool True on successful reset, false on failure.
+ * @since 5.1.1
*/
public function resetPowers()
{
@@ -101,21 +103,92 @@ class TemplateController extends FormController
// get Item posted
$item = $this->input->post->get('jform', array(), 'array');
+ // check if user has the right
+ $user = $this->app->getIdentity();
+
+ // set default error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '
';
+ // get IDS of the selected powers
+ $pks = $this->input->post->get('cid', [], 'array');
+ // Sanitize the input
+ ArrayHelper::toInteger($pks);
+
+ // check if there is any selections
+ if ($pks === [])
+ {
+ // set error message
+ $message = '