Socket
Socket
Sign inDemoInstall

filestack-js

Package Overview
Dependencies
Maintainers
1
Versions
169
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

filestack-js - npm Package Compare versions

Comparing version 3.20.0 to 3.21.0

4

build/browser/manifest.json
{
"main.js": {
"src": "filestack.min.js",
"integrity": "sha256-OAe5hvOCsAFAIGzeheYY8yjZiA6Yegjzk41RZYJGTU8= sha384-+zvvSWeIiEyjBlqxxnoImyI8yU1UWnMKavnApmRfO5P8bHZRmSzQkcArPCnIXiFf sha512-+/BcnyKttZz6CJBzaXQxg6oP2fQ8SNWc1A0kgHi//FeUgY2KhN0tqUkArqj3QMeaq2I06NaDAmuo98vwHnxrqA=="
"integrity": "sha256-wif28dlK4dtStdwv8RUgBsBDygQGxwGYOlQ4O4B34GY= sha384-3mpTHQbB2letbgy/Z+iOvXXH5aCHwfsKH3aIv6BSKacG3P1SEDv/ZE+5g807S7eV sha512-5PVF7+uio1g/ZUdfvb55XbUCHN1ZQyO8rsYHcAPCuDC15R7YK8HZE5k85IrEll0G8el0EKx7xA/4Ey72WSKgZg=="
},
"main.js.map": {
"src": "filestack.min.js.map",
"integrity": "sha256-j0qzlizRyp5og/g4bgVqt5+x1PoeOcdRYk240IUX3k0= sha384-gTMg7pzwxBmxXwSdk5NZWKS9FRBEkb2yXfJ+gFsFjJ8wcmPG18UsBzuwnrTx4RmV sha512-/1Cpjed7h8WsklRGXlz4+lUpGPsK/T+4EAJQvCqSzPNpKI9j9iN80Vn9TiijEcKjOs1KbPqS1YoELJtyYTbDEw=="
"integrity": "sha256-u4u0d4sll/5xJ52h4usWw88Yj5wYCiOLcGJVt6uqpoM= sha384-ynOlnt1tCe2TtTv4sR1cK/Q270QD+YzQN493m7u8TebSQLBCtoQyLPHBMKTun8bs sha512-cgZ5E6IA4Wbt2ZZ/o04Bgw3fShKr/B6sgoE3SFFJl1zm7MqhyxWcyXe9uTnxNUMT46CKT/T2M5rZpBym5PeBGA=="
}
}

@@ -22,3 +22,3 @@ "use strict";

*/
var PICKER_VERSION = '1.19.1';
var PICKER_VERSION = '1.20.0';
exports.config = {

@@ -35,2 +35,2 @@ urls: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMTkuMSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7QUFFSDs7R0FFRztBQUNILElBQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztBQXNCbkIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLGtDQUFrQztRQUM5QyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELFlBQVksRUFBRSxpQ0FBaUM7UUFDL0MsV0FBVyxFQUFFLGdDQUFnQztRQUM3QyxNQUFNLEVBQUUsa0NBQWtDO1FBQzFDLFNBQVMsRUFBRSw0Q0FBMEMsY0FBYyxlQUFZO0tBQ2hGO0NBQ0YsQ0FBQyIsImZpbGUiOiJjb25maWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IFBJQ0tFUl9WRVJTSU9OID0gJzEuMjAuMCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=

@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security';

*/
export declare const version = "3.20.0";
export declare const version = "3.21.0";
export * from './lib/api/transform';

@@ -29,0 +29,0 @@ export * from './lib/filelink';

@@ -50,4 +50,4 @@ "use strict";

*/
exports.version = '3.20.0';
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.20.0' });
exports.version = '3.21.0';
loader_1.registerModule(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '3.21.0' });
tslib_1.__exportStar(require("./lib/api/transform"), exports);

@@ -54,0 +54,0 @@ tslib_1.__exportStar(require("./lib/filelink"), exports);

@@ -79,2 +79,17 @@ import { Session } from '../client';

/**
* SmartCrop mode options enum
*/
export declare enum ESmartCropMode {
fit = "fit",
auto = "auto"
}
export declare enum EImageWatermarkPosition {
top = "top",
middle = "middle",
bottom = "bottom",
left = "left",
center = "center",
right = "right"
}
/**
* Convert to format

@@ -136,2 +151,18 @@ */

flop?: boolean;
no_metadata?: boolean;
pjpg?: {
quality: number;
metadata: boolean;
};
smart_crop?: {
mode?: ESmartCropMode;
width: number;
height: number;
};
watermark?: {
files: string;
size?: number;
position?: EImageWatermarkPosition | EImageWatermarkPosition[];
};
imagesize?: boolean;
enchance?: boolean;

@@ -138,0 +169,0 @@ redeye?: boolean;

@@ -123,2 +123,19 @@ "use strict";

/**
* SmartCrop mode options enum
*/
var ESmartCropMode;
(function (ESmartCropMode) {
ESmartCropMode["fit"] = "fit";
ESmartCropMode["auto"] = "auto";
})(ESmartCropMode = exports.ESmartCropMode || (exports.ESmartCropMode = {}));
var EImageWatermarkPosition;
(function (EImageWatermarkPosition) {
EImageWatermarkPosition["top"] = "top";
EImageWatermarkPosition["middle"] = "middle";
EImageWatermarkPosition["bottom"] = "bottom";
EImageWatermarkPosition["left"] = "left";
EImageWatermarkPosition["center"] = "center";
EImageWatermarkPosition["right"] = "right";
})(EImageWatermarkPosition = exports.EImageWatermarkPosition || (exports.EImageWatermarkPosition = {}));
/**
* Convert to format

@@ -234,2 +251,2 @@ */

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUdILDBDQUF5QztBQUV6Qzs7R0FFRztBQUNILElBQU0sV0FBVyxHQUFHLFVBQUMsUUFBa0M7SUFDckQsSUFBSSxVQUFVLEdBQTZCLEVBQUUsQ0FBQztJQUU5QyxJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3BDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhFLElBQUksT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO0tBQ0Y7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtJQUNmLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFB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RUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQTJCO1FBQ3ZELElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7WUFDekUsT0FBTztTQUNSO1FBRUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUM3QixDQUFDLENBQUMiLCJmaWxlIjoibGliL2FwaS90cmFuc2Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVsaW5rIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgdG9TbmFrZUNhc2UgPSAob3JpZ2luYWw6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSk6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gIGxldCBzbmFrZUNhc2VkOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3JpZ2luYWwpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBuZXdLZXkgPSBrZXlzW2ldLnNwbGl0KC8oPz1bQS1aXSkvKS5qb2luKCdfJykudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxba2V5c1tpXV0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9yaWdpbmFsW2tleXNbaV1dKSkge1xuICAgICAgc25ha2VDYXNlZFtuZXdLZXldID0gdG9TbmFrZUNhc2Uob3JpZ2luYWxba2V5c1tpXV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzbmFrZUNhc2VkW25ld0tleV0gPSBvcmlnaW5hbFtrZXlzW2ldXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc25ha2VDYXNlZDtcbn07XG5cbi8qKlxuICogQWxpZ24gZW51bVxuICovXG5leHBvcnQgZW51bSBFQWxpZ25PcHRpb25zIHtcbiAgbGVmdCA9ICdsZWZ0JyxcbiAgcmlnaHQgPSAncmlnaHQnLFxuICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG4gIHRvcCA9ICd0b3AnLFxufVxuXG4vKipcbiAqIEFsaWduIGVudW0gd2l0aCBmYWNlcyBvcHRpb25cbiAqL1xuZXhwb3J0IGVudW0gRUFsaWduRmFjZXNPcHRpb25zIHtcbiAgbGVmdCA9ICdsZWZ0JyxcbiAgcmlnaHQgPSAncmlnaHQnLFxuICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG4gIHRvcCA9ICd0b3AnLFxuICBmYWNlcyA9ICdmYWNlcycsXG59XG5cbi8qKlxuICogRml0IGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUZpdE9wdGlvbnMge1xuICBjbGlwID0gJ2NsaXAnLFxuICBjcm9wID0gJ2Nyb3AnLFxuICBzY2FsZSA9ICdzY2FsZScsXG4gIG1heCA9ICdtYXgnLFxufVxuXG4vKipcbiAqIEJsdXIgZW51bVxuICovXG5leHBvcnQgZW51bSBFQmx1ck1vZGUge1xuICBsaW5lYXIgPSAnbGluZWFyJyxcbiAgZ2F1c3NpYW4gPSAnZ2F1c3NpYW4nLFxufVxuXG4vKipcbiAqIFNoYXBlcyBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVTaGFwZVR5cGUge1xuICBvdmFsID0gJ292YWwnLFxuICByZWN0ID0gJ3JlY3QnLFxufVxuXG4vKipcbiAqIE5vaXNlIHR5cGUgZW51bVxuICovXG5leHBvcnQgZW51bSBFTm9pc2VUeXBlIHtcbiAgbm9uZSA9ICdub25lJyxcbiAgbG93ID0gJ2xvdycsXG4gIG1lZGl1bSA9ICdtZWRpdW0nLFxuICBoaWdoID0gJ2hpZ2gnLFxufVxuXG4vKipcbiAqIFN0eWxlIHR5cGUgZW51bVxuICovXG5leHBvcnQgZW51bSBFU3R5bGVUeXBlIHtcbiAgYXJ0d29yayA9ICdhcnR3b3JrJyxcbiAgcGhvdG8gPSAncGhvdG8nLFxufVxuXG4vKipcbiAqIENvbG9yIHNwYWNlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUNvbG9yc3BhY2VUeXBlIHtcbiAgUkdCID0gJ1JHQicsXG4gIENNWUsgPSAnQ01ZSycsXG4gIElucHV0ID0gJ0lucHV0Jyxcbn1cblxuLyoqXG4gKiBDcm9wIGZhY2VzIG9wdGlvbnMgZW51bVxuICovXG5leHBvcnQgZW51bSBFQ3JvcGZhY2VzVHlwZSB7XG4gIHRodW1iID0gJ3RodW1iJyxcbiAgY3JvcCA9ICdjcm9wJyxcbiAgZmlsbCA9ICdmaWxsJyxcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRvIGZvcm1hdFxuICovXG5leHBvcnQgZW51bSBFVmlkZW9UeXBlcyB7XG4gICAgaDI2NCA9ICdoMjY0JyxcbiAgICBoMjY0X2hpID0gJ2gyNjQuaGknLFxuICAgIHdlYm0gPSAnd2VibScsXG4gICAgJ3dlYm0taGknID0gJ3dlYm0uaGknLFxuICAgIG9nZyA9ICdvZ2cnLFxuICAgICdvZ2ctaGknID0gJ29nZy5oaScsXG4gICAgJ2hscy12YXJpYW50JyA9ICdobHMudmFyaWFudCcsXG4gICAgbXAzID0gJ21wMycsXG4gICAgb2dhID0gJ29nYScsXG4gICAgbTRhID0gJ200YScsXG4gICAgYWFjID0gJ2FhYycsXG4gICAgaGxzID0gJ2hscy52YXJpYW50LmF1ZGlvJyxcbn1cblxuZXhwb3J0IGVudW0gRVVybHNjcmVlbnNob3RBZ2VudCB7XG4gIGRlc2t0b3AgPSAnZGVza3RvcCcsXG4gIG1vYmlsZSA9ICdtb2JpbGUnLFxufVxuXG5leHBvcnQgZW51bSBFVXJsc2NyZWVuc2hvdE1vZGUge1xuICBhbGwgPSAnYWxsJyxcbiAgd2luZG93ID0gJ3dpbmRvdycsXG59XG5cbmV4cG9ydCBlbnVtIEVVcmxzY3JlZW5zaG90T3JpZW50YXRpb24ge1xuICBwb3J0cmFpdCA9ICdwb3J0cmFpdCcsXG4gIGxhbmRzY2FwZSA9ICdsYW5kc2NhcGUnLFxufVxuXG4vKipcbiAqIFZpZGVvIHN0b3JhZ2UgbG9jYXRpb25cbiAqL1xuZXhwb3J0IGVudW0gRVZpZGVvTG9jYXRpb25zIHtcbiAgczMgPSAnczMnLFxuICBhenVyZSA9ICdhenVyZScsXG4gIGdjcyA9ICdnY3MnLFxuICByYWNrc3BhY2UgPSAncmFja3NwYWNlJyxcbiAgZHJvcGJveCA9ICdkcm9wYm94Jyxcbn1cblxuZXhwb3J0IGVudW0gRVZpZGVvQWNjZXNzIHtcbiAgcHJpdmF0ZSA9ICdwcml2YXRlJyxcbiAgcHVibGljID0gJ3B1YmxpYycsXG59XG5cbmV4cG9ydCBlbnVtIEVWaWRlb0FjY2Vzc01vZGUge1xuICBwcmVzZXJ2ZSA9ICdwcmVzZXJ2ZScsXG4gIGNvbnN0cmFpbiA9ICdjb25zdHJhaW4nLFxuICBsZXR0ZXJib3ggPSAnbGV0dGVyYm94JyxcbiAgcGFkID0gJ3BhZCcsXG4gIGNyb3AgPSAnY3JvcCcsXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvaW1hZ2UtdHJhbnNmb3JtYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3B0aW9ucyB7XG4gIGZsaXA/OiBib29sZWFuO1xuICBjb21wcmVzcz86IGJvb2xlYW47XG4gIGZsb3A/OiBib29sZWFuO1xuICBlbmNoYW5jZT86IGJvb2xlYW47XG4gIHJlZGV5ZT86IGJvb2xlYW47XG4gIG1vbm9jaHJvbWU/OiBib29sZWFuO1xuICBuZWdhdGl2ZT86IGJvb2xlYW47XG4gIHRhZ3M/OiBib29sZWFuO1xuICBzZnc/OiBib29sZWFuO1xuICBzdG9yZT86IHtcbiAgICBmaWxlbmFtZT86IHN0cmluZyxcbiAgICBsb2NhdGlvbj86IHN0cmluZyxcbiAgICBwYXRoPzogc3RyaW5nLFxuICAgIGNvbnRhaW5lcj86IHN0cmluZyxcbiAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgYWNjZXNzPzogc3RyaW5nO1xuICAgIGJhc2U2NGRlY29kZT86IGJvb2xlYW47XG4gIH07XG4gIHJlc2l6ZT86IHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgZml0PzogRUZpdE9wdGlvbnM7XG4gICAgYWxpZ24/OiBFQWxpZ25GYWNlc09wdGlvbnM7XG4gIH07XG4gIGNyb3A/OiB7XG4gICAgZGltOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICB9O1xuICByb3RhdGU/OiB7XG4gICAgZGVnOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfTtcbiAgZGV0ZWN0X2ZhY2VzPzoge1xuICAgIG1pbnNpemU/OiBudW1iZXI7XG4gICAgbWF4c2l6ZT86IG51bWJlcjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBleHBvcnQ/OiBib29sZWFuO1xuICB9IHwgdHJ1ZTtcbiAgY3JvcF9mYWNlcz86IHtcbiAgICBtb2RlPzogRUNyb3BmYWNlc1R5cGU7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGZhY2VzPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGJ1ZmZlcj86IG51bWJlcjtcbiAgfTtcbiAgcGl4ZWxhdGVfZmFjZXM/OiB7XG4gICAgZmFjZXM/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbWluc2l6ZT86IG51bWJlcjtcbiAgICBtYXhzaXplPzogbnVtYmVyO1xuICAgIGJ1ZmZlcj86IG51bWJlcjtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICB0eXBlPzogRVNoYXBlVHlwZTtcbiAgfTtcbiAgYmx1cl9mYWNlcz86IHtcbiAgICBmYWNlcz86IG51bWJlciB8IHN0cmluZztcbiAgICBtaW5zaXplPzogbnVtYmVyO1xuICAgIG1heHNpemU/OiBudW1iZXI7XG4gICAgYnVmZmVyPzogbnVtYmVyO1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIHR5cGU/OiBFU2hhcGVUeXBlO1xuICB9O1xuICByb3VuZGVkX2Nvcm5lcnM/OiB7XG4gICAgcmFkaXVzPzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHZpZ25ldHRlPzoge1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICBibHVybW9kZT86IEVCbHVyTW9kZTtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9O1xuICBwb2xhcm9pZD86IHtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICByb3RhdGU/OiBudW1iZXI7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHRvcm5fZWRnZXM/OiB7XG4gICAgc3ByZWFkPzogW251bWJlciwgbnVtYmVyXTtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgc2hhZG93Pzoge1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgb3BhY2l0eT86IG51bWJlcjtcbiAgICB2ZWN0b3I/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBjaXJjbGU/OiB7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIGJvcmRlcj86IHtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgc2hhcnBlbj86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIGJsdXI/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBibGFja3doaXRlPzoge1xuICAgIHRocmVzaG9sZDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgc2VwaWE/OiB7XG4gICAgdG9uZTogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgcGl4ZWxhdGU/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBvaWxfcGFpbnQ/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBtb2R1bGF0ZT86IHtcbiAgICBicmlnaHRuZXNzPzogbnVtYmVyO1xuICAgIGh1ZT86IG51bWJlcjtcbiAgICBzYXR1cmF0aW9uPzogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgcGFydGlhbF9waXhlbGF0ZT86IHtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICB0eXBlPzogRVNoYXBlVHlwZTtcbiAgICBvYmplY3RzPzogW1tudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXTtcbiAgfTtcbiAgcGFydGlhbF9ibHVyPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gICAgb2JqZWN0cz86IFtbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXV07XG4gIH07XG4gIGNvbGxhZ2U/OiB7XG4gICAgbWFyZ2luPzogbnVtYmVyO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBmaXQ/OiBFRml0T3B0aW9ucyxcbiAgICBmaWxlczogW3N0cmluZ107XG4gIH07XG4gIHVwc2NhbGU/OiB7XG4gICAgdXBzY2FsZT86IGJvb2xlYW47XG4gICAgbm9pc2U/OiBFTm9pc2VUeXBlO1xuICAgIHN0eWxlPzogRVN0eWxlVHlwZTtcbiAgfSB8IHRydWU7XG4gIGFzY2lpPzoge1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgZm9yZWdyb3VuZD86IHN0cmluZztcbiAgICBjb2xvcmVkPzogYm9vbGVhbjtcbiAgICBzaXplPzogbnVtYmVyO1xuICAgIHJldmVyc2U/OiBib29sZWFuO1xuICB9IHwgdHJ1ZTtcbiAgcXVhbGl0eT86IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICB9O1xuICBzZWN1cml0eT86IHtcbiAgICBwb2xpY3k6IHN0cmluZztcbiAgICBzaWduYXR1cmU/OiBzdHJpbmc7XG4gIH07XG4gIG91dHB1dD86IHtcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgICBjb2xvcnNwYWNlPzogc3RyaW5nO1xuICAgIHN0cmlwPzogYm9vbGVhbjtcbiAgICBxdWFsaXR5PzogbnVtYmVyO1xuICAgIHBhZ2U/OiBudW1iZXI7XG4gICAgY29tcHJlc3M/OiBib29sZWFuO1xuICAgIGRlbnNpdHk/OiBudW1iZXI7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgICBzZWN1cmU/OiBib29sZWFuO1xuICAgIGRvY2luZm8/OiBib29sZWFuO1xuICAgIHBhZ2Vmb3JtYXQ/OiBzdHJpbmc7XG4gICAgcGFnZW9yaWVudGF0aW9uPzogc3RyaW5nO1xuICB9O1xuICBjYWNoZT86IHtcbiAgICBjYWNoZT86IGJvb2xlYW47XG4gICAgZXhwaXJ5OiBudW1iZXI7XG4gIH07XG4gIC8vIGF1ZGlvL3ZpZGVvXG4gIHZpZGVvX2NvbnZlcnQ/OiB7XG4gICAgYXNwZWN0X21vZGU6IEVWaWRlb0FjY2Vzc01vZGU7XG4gICAgcHJlc2V0PzogRVZpZGVvVHlwZXM7XG4gICAgZm9yY2U/OiBib29sZWFuO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGV4dG5hbWU/OiBzdHJpbmc7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBFVmlkZW9Mb2NhdGlvbnM7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBhY2Nlc3M/OiBFVmlkZW9BY2Nlc3M7XG4gICAgY29udGFpbmVyPzogc3RyaW5nO1xuICAgIGF1ZGlvX2JpdHJhdGU/OiBudW1iZXI7XG4gICAgdXBzY2FsZTogYm9vbGVhbjtcbiAgICB2aWRlb19iaXRyYXRlPzogbnVtYmVyO1xuICAgIGF1ZGlvX3NhbXBsZV9yYXRlPzogbnVtYmVyO1xuICAgIGF1ZGlvX2NoYW5uZWxzPzogbnVtYmVyO1xuICAgIGNsaXBfbGVuZ3RoPzogc3RyaW5nO1xuICAgIGNsaXBfb2Zmc2V0Pzogc3RyaW5nO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICB0d29fcGFzcz86IGJvb2xlYW47XG4gICAgZnBzPzogbnVtYmVyO1xuICAgIGtleWZyYW1lX2ludGVydmFsPzogbnVtYmVyO1xuICAgIHdhdGVybWFya191cmw/OiBzdHJpbmc7XG4gICAgd2F0ZXJtYXJrX3RvcD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfYm90dG9tPzogbnVtYmVyO1xuICAgIHdhdGVybWFya19yaWdodD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfbGVmdD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfd2lkdGg/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX2hlaWdodD86IG51bWJlcjtcbiAgfTtcbiAgdXJsc2NyZWVuc2hvdD86IHtcbiAgICBhZ2VudD86IEVVcmxzY3JlZW5zaG90QWdlbnQ7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIG1vZGU/OiBFVXJsc2NyZWVuc2hvdE1vZGU7XG4gICAgZGVsYXk/OiBudW1iZXI7XG4gICAgb3JpZW50YXRpb24/OiBFVXJsc2NyZWVuc2hvdE9yaWVudGF0aW9uO1xuICAgIGRldmljZT86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHBkZmluZm8/OiB7XG4gICAgY29sb3JpbmZvPzogYm9vbGVhblxuICB9IHwgdHJ1ZTtcbiAgcGRmY29udmVydD86IHtcbiAgICBwYWdlb3JpZW50YXRpb24/OiBzdHJpbmdcbiAgICBwYWdlZm9ybWF0Pzogc3RyaW5nXG4gICAgcGFnZXM/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4gIH07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBmaWxlc3RhY2sgdHJhbnNmb3JtIHVybC5cbiAqIFRyYW5zZm9ybSBwYXJhbXMgY2FuIGJlIHByb3ZpZGVkIGluIGNhbWVsQ2FzZSBvciBzbmFrZUNhc2Ugc3R5bGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIC8vIGNhbWVsQ2FzZVxuICogY29uc29sZS5sb2codHJhbnNmb3JtKHNlc3Npb24sIHtcbiAqICAgIHBhcnRpYWxQaXhlbGF0ZToge1xuICogICAgICBvYmplY3RzOiBbWzEwLCAyMCwgMjAwLCAyNTBdLCBbMjc1LCA5MSwgNTAwLCA1NTddXSxcbiAqICAgIH0sXG4gKiAgfSwgJ3Rlc3RmaWxlJykpO1xuICogYGBgXG4gKiByZXN1bHQgPT4gaHR0cHM6Ly9jZG4uZmlsZXN0YWNrY29udGVudC5jb20vcGFydGlhbF9waXhlbGF0ZT1vYmplY3RzOltbMTAsMjAsMjAwLDI1MF0sWzI3NSw5MSw1MDAsNTU3XV0vdGVzdGZpbGVcbiAqXG4gKiBgYGBqc1xuICogLy8gc25ha2VfY2FzZVxuICogY29uc29sZS5sb2codHJhbnNmb3JtKHNlc3Npb24sIHtcbiAqICAgIHBhcnRpYWxfcGl4ZWxhdGU6IHtcbiAqICAgICAgb2JqZWN0czogW1sxMCwgMjAsIDIwMCwgMjUwXSwgWzI3NSwgOTEsIDUwMCwgNTU3XV0sXG4gKiAgICB9LFxuICogIH0sICd0ZXN0ZmlsZScpKTtcbiAqIGBgYFxuICogcmVzdWx0ID0+IGh0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tL3BhcnRpYWxfcGl4ZWxhdGU9b2JqZWN0czpbWzEwLDIwLDIwMCwyNTBdLFsyNzUsOTEsNTAwLDU1N11dL3Rlc3RmaWxlXG4gKlxuICogQ2xpZW50LnRyYW5zZm9ybSBpcyBkZXByZWNhdGVkLiBVc2UgRmlsZWxpbmsgY2xhc3MgaW5zdGVhZFxuICpcbiAqIEBwcml2YXRlXG4gKiBAdGhyb3dzIEVycm9yXG4gKiBAcGFyYW0gb3B0aW9ucyBUcmFuc2Zvcm1hdGlvbiBvcHRpb25zXG4gKiBAcGFyYW0gdXJsIHVybCwgaGFuZGxlIG9yIGFycmF5IG9mIGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm0gPSAoc2Vzc2lvbjogU2Vzc2lvbiwgdXJsOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3B0aW9uczogVHJhbnNmb3JtT3B0aW9ucyA9IHt9LCBiNjQ6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyA9PiB7XG4gIG9wdGlvbnMgPSB0b1NuYWtlQ2FzZShvcHRpb25zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBvcHRpb25zLnNlY3VyaXR5ID0ge1xuICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgIHNpZ25hdHVyZTogc2Vzc2lvbi5zaWduYXR1cmUsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVsaW5rID0gbmV3IEZpbGVsaW5rKHVybCwgc2Vzc2lvbi5hcGlrZXkpO1xuICBmaWxlbGluay5zZXRDbmFtZShzZXNzaW9uLmNuYW1lKTtcbiAgZmlsZWxpbmsuc2V0QmFzZTY0KGI2NCk7XG5cbiAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaCgoa2V5OiBrZXlvZiBUcmFuc2Zvcm1PcHRpb25zKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zW2tleV0gPT09ICdib29sZWFuJyAmJiAhb3B0aW9uc1trZXldICYmIGtleSAhPT0gJ2NhY2hlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZpbGVsaW5rLmFkZFRhc2soa2V5LCBvcHRpb25zW2tleV0pO1xuICB9KTtcblxuICByZXR1cm4gZmlsZWxpbmsudG9TdHJpbmcoKTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHOztBQUdILDBDQUF5QztBQUV6Qzs7R0FFRztBQUNILElBQU0sV0FBVyxHQUFHLFVBQUMsUUFBa0M7SUFDckQsSUFBSSxVQUFVLEdBQTZCLEVBQUUsQ0FBQztJQUU5QyxJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRW5DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3BDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhFLElBQUksT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5RSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO0tBQ0Y7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtJQUNmLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFB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R0ErQkc7QUFDVSxRQUFBLFNBQVMsR0FBRyxVQUFDLE9BQWdCLEVBQUUsR0FBc0IsRUFBRSxPQUE4QixFQUFFLEdBQW9CO0lBQXBELHdCQUFBLEVBQUEsWUFBOEI7SUFBRSxvQkFBQSxFQUFBLFdBQW9CO0lBQ3RILE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDdkMsT0FBTyxDQUFDLFFBQVEsR0FBRztZQUNqQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzdCLENBQUM7S0FDSDtJQUVELElBQU0sUUFBUSxHQUFHLElBQUksbUJBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUEyQjtRQUN2RCxJQUFJLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ3pFLE9BQU87U0FDUjtRQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvdHJhbnNmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlbGluayB9IGZyb20gJy4vLi4vZmlsZWxpbmsnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IHRvU25ha2VDYXNlID0gKG9yaWdpbmFsOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0pOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPT4ge1xuICBsZXQgc25ha2VDYXNlZDogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9yaWdpbmFsKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbmV3S2V5ID0ga2V5c1tpXS5zcGxpdCgvKD89W0EtWl0pLykuam9pbignXycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsW2tleXNbaV1dID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShvcmlnaW5hbFtrZXlzW2ldXSkpIHtcbiAgICAgIHNuYWtlQ2FzZWRbbmV3S2V5XSA9IHRvU25ha2VDYXNlKG9yaWdpbmFsW2tleXNbaV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc25ha2VDYXNlZFtuZXdLZXldID0gb3JpZ2luYWxba2V5c1tpXV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNuYWtlQ2FzZWQ7XG59O1xuXG4vKipcbiAqIEFsaWduIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUFsaWduT3B0aW9ucyB7XG4gIGxlZnQgPSAnbGVmdCcsXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgY2VudGVyID0gJ2NlbnRlcicsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICB0b3AgPSAndG9wJyxcbn1cblxuLyoqXG4gKiBBbGlnbiBlbnVtIHdpdGggZmFjZXMgb3B0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEVBbGlnbkZhY2VzT3B0aW9ucyB7XG4gIGxlZnQgPSAnbGVmdCcsXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgY2VudGVyID0gJ2NlbnRlcicsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICB0b3AgPSAndG9wJyxcbiAgZmFjZXMgPSAnZmFjZXMnLFxufVxuXG4vKipcbiAqIEZpdCBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVGaXRPcHRpb25zIHtcbiAgY2xpcCA9ICdjbGlwJyxcbiAgY3JvcCA9ICdjcm9wJyxcbiAgc2NhbGUgPSAnc2NhbGUnLFxuICBtYXggPSAnbWF4Jyxcbn1cblxuLyoqXG4gKiBCbHVyIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUJsdXJNb2RlIHtcbiAgbGluZWFyID0gJ2xpbmVhcicsXG4gIGdhdXNzaWFuID0gJ2dhdXNzaWFuJyxcbn1cblxuLyoqXG4gKiBTaGFwZXMgZW51bVxuICovXG5leHBvcnQgZW51bSBFU2hhcGVUeXBlIHtcbiAgb3ZhbCA9ICdvdmFsJyxcbiAgcmVjdCA9ICdyZWN0Jyxcbn1cblxuLyoqXG4gKiBOb2lzZSB0eXBlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRU5vaXNlVHlwZSB7XG4gIG5vbmUgPSAnbm9uZScsXG4gIGxvdyA9ICdsb3cnLFxuICBtZWRpdW0gPSAnbWVkaXVtJyxcbiAgaGlnaCA9ICdoaWdoJyxcbn1cblxuLyoqXG4gKiBTdHlsZSB0eXBlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRVN0eWxlVHlwZSB7XG4gIGFydHdvcmsgPSAnYXJ0d29yaycsXG4gIHBob3RvID0gJ3Bob3RvJyxcbn1cblxuLyoqXG4gKiBDb2xvciBzcGFjZSBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVDb2xvcnNwYWNlVHlwZSB7XG4gIFJHQiA9ICdSR0InLFxuICBDTVlLID0gJ0NNWUsnLFxuICBJbnB1dCA9ICdJbnB1dCcsXG59XG5cbi8qKlxuICogQ3JvcCBmYWNlcyBvcHRpb25zIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUNyb3BmYWNlc1R5cGUge1xuICB0aHVtYiA9ICd0aHVtYicsXG4gIGNyb3AgPSAnY3JvcCcsXG4gIGZpbGwgPSAnZmlsbCcsXG59XG5cbi8qKlxuICogU21hcnRDcm9wIG1vZGUgb3B0aW9ucyBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVTbWFydENyb3BNb2RlIHtcbiAgZml0ID0gJ2ZpdCcsXG4gIGF1dG8gPSAnYXV0bycsXG59XG5cbmV4cG9ydCBlbnVtIEVJbWFnZVdhdGVybWFya1Bvc2l0aW9uIHtcbiAgdG9wID0gJ3RvcCcsXG4gIG1pZGRsZSA9ICdtaWRkbGUnLFxuICBib3R0b20gPSAnYm90dG9tJyxcbiAgbGVmdCA9ICdsZWZ0JyxcbiAgY2VudGVyID0gJ2NlbnRlcicsXG4gIHJpZ2h0ID0gJ3JpZ2h0Jyxcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRvIGZvcm1hdFxuICovXG5leHBvcnQgZW51bSBFVmlkZW9UeXBlcyB7XG4gICAgaDI2NCA9ICdoMjY0JyxcbiAgICBoMjY0X2hpID0gJ2gyNjQuaGknLFxuICAgIHdlYm0gPSAnd2VibScsXG4gICAgJ3dlYm0taGknID0gJ3dlYm0uaGknLFxuICAgIG9nZyA9ICdvZ2cnLFxuICAgICdvZ2ctaGknID0gJ29nZy5oaScsXG4gICAgJ2hscy12YXJpYW50JyA9ICdobHMudmFyaWFudCcsXG4gICAgbXAzID0gJ21wMycsXG4gICAgb2dhID0gJ29nYScsXG4gICAgbTRhID0gJ200YScsXG4gICAgYWFjID0gJ2FhYycsXG4gICAgaGxzID0gJ2hscy52YXJpYW50LmF1ZGlvJyxcbn1cblxuZXhwb3J0IGVudW0gRVVybHNjcmVlbnNob3RBZ2VudCB7XG4gIGRlc2t0b3AgPSAnZGVza3RvcCcsXG4gIG1vYmlsZSA9ICdtb2JpbGUnLFxufVxuXG5leHBvcnQgZW51bSBFVXJsc2NyZWVuc2hvdE1vZGUge1xuICBhbGwgPSAnYWxsJyxcbiAgd2luZG93ID0gJ3dpbmRvdycsXG59XG5cbmV4cG9ydCBlbnVtIEVVcmxzY3JlZW5zaG90T3JpZW50YXRpb24ge1xuICBwb3J0cmFpdCA9ICdwb3J0cmFpdCcsXG4gIGxhbmRzY2FwZSA9ICdsYW5kc2NhcGUnLFxufVxuXG4vKipcbiAqIFZpZGVvIHN0b3JhZ2UgbG9jYXRpb25cbiAqL1xuZXhwb3J0IGVudW0gRVZpZGVvTG9jYXRpb25zIHtcbiAgczMgPSAnczMnLFxuICBhenVyZSA9ICdhenVyZScsXG4gIGdjcyA9ICdnY3MnLFxuICByYWNrc3BhY2UgPSAncmFja3NwYWNlJyxcbiAgZHJvcGJveCA9ICdkcm9wYm94Jyxcbn1cblxuZXhwb3J0IGVudW0gRVZpZGVvQWNjZXNzIHtcbiAgcHJpdmF0ZSA9ICdwcml2YXRlJyxcbiAgcHVibGljID0gJ3B1YmxpYycsXG59XG5cbmV4cG9ydCBlbnVtIEVWaWRlb0FjY2Vzc01vZGUge1xuICBwcmVzZXJ2ZSA9ICdwcmVzZXJ2ZScsXG4gIGNvbnN0cmFpbiA9ICdjb25zdHJhaW4nLFxuICBsZXR0ZXJib3ggPSAnbGV0dGVyYm94JyxcbiAgcGFkID0gJ3BhZCcsXG4gIGNyb3AgPSAnY3JvcCcsXG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL3d3dy5maWxlc3RhY2suY29tL2RvY3MvaW1hZ2UtdHJhbnNmb3JtYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3B0aW9ucyB7XG4gIGZsaXA/OiBib29sZWFuO1xuICBjb21wcmVzcz86IGJvb2xlYW47XG4gIGZsb3A/OiBib29sZWFuO1xuICBub19tZXRhZGF0YT86IGJvb2xlYW47XG4gIHBqcGc/OiB7XG4gICAgcXVhbGl0eTogbnVtYmVyO1xuICAgIG1ldGFkYXRhOiBib29sZWFuO1xuICB9O1xuICBzbWFydF9jcm9wPzoge1xuICAgIG1vZGU/OiBFU21hcnRDcm9wTW9kZVxuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gIH07XG4gIHdhdGVybWFyaz86IHtcbiAgICBmaWxlczogc3RyaW5nO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgcG9zaXRpb24/OiBFSW1hZ2VXYXRlcm1hcmtQb3NpdGlvbiB8IEVJbWFnZVdhdGVybWFya1Bvc2l0aW9uW107XG4gIH07XG4gIGltYWdlc2l6ZT86IGJvb2xlYW47XG4gIGVuY2hhbmNlPzogYm9vbGVhbjtcbiAgcmVkZXllPzogYm9vbGVhbjtcbiAgbW9ub2Nocm9tZT86IGJvb2xlYW47XG4gIG5lZ2F0aXZlPzogYm9vbGVhbjtcbiAgdGFncz86IGJvb2xlYW47XG4gIHNmdz86IGJvb2xlYW47XG4gIHN0b3JlPzoge1xuICAgIGZpbGVuYW1lPzogc3RyaW5nLFxuICAgIGxvY2F0aW9uPzogc3RyaW5nLFxuICAgIHBhdGg/OiBzdHJpbmcsXG4gICAgY29udGFpbmVyPzogc3RyaW5nLFxuICAgIHJlZ2lvbj86IHN0cmluZztcbiAgICBhY2Nlc3M/OiBzdHJpbmc7XG4gICAgYmFzZTY0ZGVjb2RlPzogYm9vbGVhbjtcbiAgfTtcbiAgcmVzaXplPzoge1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBmaXQ/OiBFRml0T3B0aW9ucztcbiAgICBhbGlnbj86IEVBbGlnbkZhY2VzT3B0aW9ucztcbiAgfTtcbiAgY3JvcD86IHtcbiAgICBkaW06IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gIH07XG4gIHJvdGF0ZT86IHtcbiAgICBkZWc6IG51bWJlciB8IHN0cmluZztcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9O1xuICBkZXRlY3RfZmFjZXM/OiB7XG4gICAgbWluc2l6ZT86IG51bWJlcjtcbiAgICBtYXhzaXplPzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGV4cG9ydD86IGJvb2xlYW47XG4gIH0gfCB0cnVlO1xuICBjcm9wX2ZhY2VzPzoge1xuICAgIG1vZGU/OiBFQ3JvcGZhY2VzVHlwZTtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgZmFjZXM/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgYnVmZmVyPzogbnVtYmVyO1xuICB9O1xuICBwaXhlbGF0ZV9mYWNlcz86IHtcbiAgICBmYWNlcz86IG51bWJlciB8IHN0cmluZztcbiAgICBtaW5zaXplPzogbnVtYmVyO1xuICAgIG1heHNpemU/OiBudW1iZXI7XG4gICAgYnVmZmVyPzogbnVtYmVyO1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIHR5cGU/OiBFU2hhcGVUeXBlO1xuICB9O1xuICBibHVyX2ZhY2VzPzoge1xuICAgIGZhY2VzPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG1pbnNpemU/OiBudW1iZXI7XG4gICAgbWF4c2l6ZT86IG51bWJlcjtcbiAgICBidWZmZXI/OiBudW1iZXI7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gIH07XG4gIHJvdW5kZWRfY29ybmVycz86IHtcbiAgICByYWRpdXM/OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgdmlnbmV0dGU/OiB7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXJtb2RlPzogRUJsdXJNb2RlO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH07XG4gIHBvbGFyb2lkPzoge1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIHJvdGF0ZT86IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgdG9ybl9lZGdlcz86IHtcbiAgICBzcHJlYWQ/OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBzaGFkb3c/OiB7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICBvcGFjaXR5PzogbnVtYmVyO1xuICAgIHZlY3Rvcj86IFtudW1iZXIsIG51bWJlcl07XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIGNpcmNsZT86IHtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgYm9yZGVyPzoge1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBzaGFycGVuPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgYmx1cj86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIGJsYWNrd2hpdGU/OiB7XG4gICAgdGhyZXNob2xkOiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBzZXBpYT86IHtcbiAgICB0b25lOiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBwaXhlbGF0ZT86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIG9pbF9wYWludD86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIG1vZHVsYXRlPzoge1xuICAgIGJyaWdodG5lc3M/OiBudW1iZXI7XG4gICAgaHVlPzogbnVtYmVyO1xuICAgIHNhdHVyYXRpb24/OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBwYXJ0aWFsX3BpeGVsYXRlPzoge1xuICAgIGFtb3VudD86IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIHR5cGU/OiBFU2hhcGVUeXBlO1xuICAgIG9iamVjdHM/OiBbW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1dO1xuICB9O1xuICBwYXJ0aWFsX2JsdXI/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICB0eXBlPzogRVNoYXBlVHlwZTtcbiAgICBvYmplY3RzPzogW1tudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXTtcbiAgfTtcbiAgY29sbGFnZT86IHtcbiAgICBtYXJnaW4/OiBudW1iZXI7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGZpdD86IEVGaXRPcHRpb25zLFxuICAgIGZpbGVzOiBbc3RyaW5nXTtcbiAgfTtcbiAgdXBzY2FsZT86IHtcbiAgICB1cHNjYWxlPzogYm9vbGVhbjtcbiAgICBub2lzZT86IEVOb2lzZVR5cGU7XG4gICAgc3R5bGU/OiBFU3R5bGVUeXBlO1xuICB9IHwgdHJ1ZTtcbiAgYXNjaWk/OiB7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgICBmb3JlZ3JvdW5kPzogc3RyaW5nO1xuICAgIGNvbG9yZWQ/OiBib29sZWFuO1xuICAgIHNpemU/OiBudW1iZXI7XG4gICAgcmV2ZXJzZT86IGJvb2xlYW47XG4gIH0gfCB0cnVlO1xuICBxdWFsaXR5Pzoge1xuICAgIHZhbHVlOiBudW1iZXI7XG4gIH07XG4gIHNlY3VyaXR5Pzoge1xuICAgIHBvbGljeTogc3RyaW5nO1xuICAgIHNpZ25hdHVyZT86IHN0cmluZztcbiAgfTtcbiAgb3V0cHV0Pzoge1xuICAgIGZvcm1hdDogc3RyaW5nO1xuICAgIGNvbG9yc3BhY2U/OiBzdHJpbmc7XG4gICAgc3RyaXA/OiBib29sZWFuO1xuICAgIHF1YWxpdHk/OiBudW1iZXI7XG4gICAgcGFnZT86IG51bWJlcjtcbiAgICBjb21wcmVzcz86IGJvb2xlYW47XG4gICAgZGVuc2l0eT86IG51bWJlcjtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIHNlY3VyZT86IGJvb2xlYW47XG4gICAgZG9jaW5mbz86IGJvb2xlYW47XG4gICAgcGFnZWZvcm1hdD86IHN0cmluZztcbiAgICBwYWdlb3JpZW50YXRpb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhY2hlPzoge1xuICAgIGNhY2hlPzogYm9vbGVhbjtcbiAgICBleHBpcnk6IG51bWJlcjtcbiAgfTtcbiAgLy8gYXVkaW8vdmlkZW9cbiAgdmlkZW9fY29udmVydD86IHtcbiAgICBhc3BlY3RfbW9kZTogRVZpZGVvQWNjZXNzTW9kZTtcbiAgICBwcmVzZXQ/OiBFVmlkZW9UeXBlcztcbiAgICBmb3JjZT86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgZXh0bmFtZT86IHN0cmluZztcbiAgICBmaWxlbmFtZT86IHN0cmluZztcbiAgICBsb2NhdGlvbj86IEVWaWRlb0xvY2F0aW9ucztcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIGFjY2Vzcz86IEVWaWRlb0FjY2VzcztcbiAgICBjb250YWluZXI/OiBzdHJpbmc7XG4gICAgYXVkaW9fYml0cmF0ZT86IG51bWJlcjtcbiAgICB1cHNjYWxlOiBib29sZWFuO1xuICAgIHZpZGVvX2JpdHJhdGU/OiBudW1iZXI7XG4gICAgYXVkaW9fc2FtcGxlX3JhdGU/OiBudW1iZXI7XG4gICAgYXVkaW9fY2hhbm5lbHM/OiBudW1iZXI7XG4gICAgY2xpcF9sZW5ndGg/OiBzdHJpbmc7XG4gICAgY2xpcF9vZmZzZXQ/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIHR3b19wYXNzPzogYm9vbGVhbjtcbiAgICBmcHM/OiBudW1iZXI7XG4gICAga2V5ZnJhbWVfaW50ZXJ2YWw/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX3VybD86IHN0cmluZztcbiAgICB3YXRlcm1hcmtfdG9wPzogbnVtYmVyO1xuICAgIHdhdGVybWFya19ib3R0b20/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX3JpZ2h0PzogbnVtYmVyO1xuICAgIHdhdGVybWFya19sZWZ0PzogbnVtYmVyO1xuICAgIHdhdGVybWFya193aWR0aD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfaGVpZ2h0PzogbnVtYmVyO1xuICB9O1xuICB1cmxzY3JlZW5zaG90Pzoge1xuICAgIGFnZW50PzogRVVybHNjcmVlbnNob3RBZ2VudDtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgbW9kZT86IEVVcmxzY3JlZW5zaG90TW9kZTtcbiAgICBkZWxheT86IG51bWJlcjtcbiAgICBvcmllbnRhdGlvbj86IEVVcmxzY3JlZW5zaG90T3JpZW50YXRpb247XG4gICAgZGV2aWNlPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgcGRmaW5mbz86IHtcbiAgICBjb2xvcmluZm8/OiBib29sZWFuXG4gIH0gfCB0cnVlO1xuICBwZGZjb252ZXJ0Pzoge1xuICAgIHBhZ2VvcmllbnRhdGlvbj86IHN0cmluZ1xuICAgIHBhZ2Vmb3JtYXQ/OiBzdHJpbmdcbiAgICBwYWdlcz86IChzdHJpbmcgfCBudW1iZXIpW11cbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGZpbGVzdGFjayB0cmFuc2Zvcm0gdXJsLlxuICogVHJhbnNmb3JtIHBhcmFtcyBjYW4gYmUgcHJvdmlkZWQgaW4gY2FtZWxDYXNlIG9yIHNuYWtlQ2FzZSBzdHlsZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogLy8gY2FtZWxDYXNlXG4gKiBjb25zb2xlLmxvZyh0cmFuc2Zvcm0oc2Vzc2lvbiwge1xuICogICAgcGFydGlhbFBpeGVsYXRlOiB7XG4gKiAgICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICogICAgfSxcbiAqICB9LCAndGVzdGZpbGUnKSk7XG4gKiBgYGBcbiAqIHJlc3VsdCA9PiBodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbS9wYXJ0aWFsX3BpeGVsYXRlPW9iamVjdHM6W1sxMCwyMCwyMDAsMjUwXSxbMjc1LDkxLDUwMCw1NTddXS90ZXN0ZmlsZVxuICpcbiAqIGBgYGpzXG4gKiAvLyBzbmFrZV9jYXNlXG4gKiBjb25zb2xlLmxvZyh0cmFuc2Zvcm0oc2Vzc2lvbiwge1xuICogICAgcGFydGlhbF9waXhlbGF0ZToge1xuICogICAgICBvYmplY3RzOiBbWzEwLCAyMCwgMjAwLCAyNTBdLCBbMjc1LCA5MSwgNTAwLCA1NTddXSxcbiAqICAgIH0sXG4gKiAgfSwgJ3Rlc3RmaWxlJykpO1xuICogYGBgXG4gKiByZXN1bHQgPT4gaHR0cHM6Ly9jZG4uZmlsZXN0YWNrY29udGVudC5jb20vcGFydGlhbF9waXhlbGF0ZT1vYmplY3RzOltbMTAsMjAsMjAwLDI1MF0sWzI3NSw5MSw1MDAsNTU3XV0vdGVzdGZpbGVcbiAqXG4gKiBDbGllbnQudHJhbnNmb3JtIGlzIGRlcHJlY2F0ZWQuIFVzZSBGaWxlbGluayBjbGFzcyBpbnN0ZWFkXG4gKlxuICogQHByaXZhdGVcbiAqIEB0aHJvd3MgRXJyb3JcbiAqIEBwYXJhbSBvcHRpb25zIFRyYW5zZm9ybWF0aW9uIG9wdGlvbnNcbiAqIEBwYXJhbSB1cmwgdXJsLCBoYW5kbGUgb3IgYXJyYXkgb2YgZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybSA9IChzZXNzaW9uOiBTZXNzaW9uLCB1cmw6IHN0cmluZyB8IHN0cmluZ1tdLCBvcHRpb25zOiBUcmFuc2Zvcm1PcHRpb25zID0ge30sIGI2NDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nID0+IHtcbiAgb3B0aW9ucyA9IHRvU25ha2VDYXNlKG9wdGlvbnMpO1xuXG4gIGlmIChzZXNzaW9uLnBvbGljeSAmJiBzZXNzaW9uLnNpZ25hdHVyZSkge1xuICAgIG9wdGlvbnMuc2VjdXJpdHkgPSB7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG4gIGZpbGVsaW5rLnNldENuYW1lKHNlc3Npb24uY25hbWUpO1xuICBmaWxlbGluay5zZXRCYXNlNjQoYjY0KTtcblxuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKChrZXk6IGtleW9mIFRyYW5zZm9ybU9wdGlvbnMpID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnNba2V5XSA9PT0gJ2Jvb2xlYW4nICYmICFvcHRpb25zW2tleV0gJiYga2V5ICE9PSAnY2FjaGUnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZmlsZWxpbmsuYWRkVGFzayhrZXksIG9wdGlvbnNba2V5XSk7XG4gIH0pO1xuXG4gIHJldHVybiBmaWxlbGluay50b1N0cmluZygpO1xufTtcbiJdfQ==

@@ -48,3 +48,3 @@ "use strict";

exports.getVersion = function () {
return 'JS-3.20.0';
return 'JS-3.21.0';
};

@@ -51,0 +51,0 @@ /**

@@ -47,3 +47,3 @@ "use strict";

exports.getVersion = function () {
return 'JS-3.20.0';
return 'JS-3.21.0';
};

@@ -50,0 +50,0 @@ /**

@@ -23,3 +23,3 @@ "use strict";

it('should return version string to replace', function () {
expect(utils.getVersion()).toEqual("JS-3.20.0");
expect(utils.getVersion()).toEqual("JS-3.21.0");
});

@@ -26,0 +26,0 @@ });

@@ -80,2 +80,19 @@ export declare const TransformSchema: {

};
smart_crop: {
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
mode: {
type: string;
default: string;
enum: string[];
};
};
animate: {

@@ -82,0 +99,0 @@ type: string;

@@ -20,3 +20,3 @@ /*

*/
var PICKER_VERSION = '1.19.1';
var PICKER_VERSION = '1.20.0';
export var config = {

@@ -33,2 +33,2 @@ urls: {

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4xOS4xJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxRQUFRLENBQUM7QUFzQmhDLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRztJQUNwQixJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsa0NBQWtDO1FBQzlDLFVBQVUsRUFBRSx1Q0FBdUM7UUFDbkQsWUFBWSxFQUFFLGlDQUFpQztRQUMvQyxXQUFXLEVBQUUsZ0NBQWdDO1FBQzdDLE1BQU0sRUFBRSxrQ0FBa0M7UUFDMUMsU0FBUyxFQUFFLDRDQUEwQyxjQUFjLGVBQVk7S0FDaEY7Q0FDRixDQUFDIiwiZmlsZSI6ImNvbmZpZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgUElDS0VSX1ZFUlNJT04gPSAnMS4yMC4wJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RzIHtcbiAgW3VybDogc3RyaW5nXTogc3RyaW5nO1xuICBmaWxlQXBpVXJsOiBzdHJpbmc7XG4gIHVwbG9hZEFwaVVybDogc3RyaW5nO1xuICBjbG91ZEFwaVVybDogc3RyaW5nO1xuICBjZG5Vcmw6IHN0cmluZztcbiAgcGlja2VyVXJsOiBzdHJpbmc7XG4gIHByb2Nlc3NVcmw6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZyB7XG4gIHVybHM6IEhvc3RzO1xufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0ge1xuICB1cmxzOiB7XG4gICAgcHJvY2Vzc1VybDogJ2h0dHBzOi8vcHJvY2Vzcy5maWxlc3RhY2thcGkuY29tJyxcbiAgICBmaWxlQXBpVXJsOiAnaHR0cHM6Ly93d3cuZmlsZXN0YWNrYXBpLmNvbS9hcGkvZmlsZScsXG4gICAgdXBsb2FkQXBpVXJsOiAnaHR0cHM6Ly91cGxvYWQuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgY2xvdWRBcGlVcmw6ICdodHRwczovL2Nsb3VkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNkblVybDogJ2h0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tJyxcbiAgICBwaWNrZXJVcmw6IGBodHRwczovL3N0YXRpYy5maWxlc3RhY2thcGkuY29tL3BpY2tlci8ke1BJQ0tFUl9WRVJTSU9OfS9waWNrZXIuanNgLFxuICB9LFxufTtcbiJdfQ==

@@ -26,3 +26,3 @@ import { SecurityOptions, getSecurity, validateWebhookSignature, WebhookValidatePayload } from './lib/api/security';

*/
export declare const version = "3.20.0";
export declare const version = "3.21.0";
export * from './lib/api/transform';

@@ -29,0 +29,0 @@ export * from './lib/filelink';

@@ -39,4 +39,4 @@ /*

*/
export var version = '3.20.0';
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.20.0' });
export var version = '3.21.0';
registerModule(FILESTACK_MODULES.FILESTACK_SDK, Filestack, { version: '3.21.0' });
export * from './lib/api/transform';

@@ -43,0 +43,0 @@ export * from './lib/filelink';

@@ -79,2 +79,17 @@ import { Session } from '../client';

/**
* SmartCrop mode options enum
*/
export declare enum ESmartCropMode {
fit = "fit",
auto = "auto"
}
export declare enum EImageWatermarkPosition {
top = "top",
middle = "middle",
bottom = "bottom",
left = "left",
center = "center",
right = "right"
}
/**
* Convert to format

@@ -136,2 +151,18 @@ */

flop?: boolean;
no_metadata?: boolean;
pjpg?: {
quality: number;
metadata: boolean;
};
smart_crop?: {
mode?: ESmartCropMode;
width: number;
height: number;
};
watermark?: {
files: string;
size?: number;
position?: EImageWatermarkPosition | EImageWatermarkPosition[];
};
imagesize?: boolean;
enchance?: boolean;

@@ -138,0 +169,0 @@ redeye?: boolean;

@@ -121,2 +121,19 @@ /*

/**
* SmartCrop mode options enum
*/
export var ESmartCropMode;
(function (ESmartCropMode) {
ESmartCropMode["fit"] = "fit";
ESmartCropMode["auto"] = "auto";
})(ESmartCropMode || (ESmartCropMode = {}));
export var EImageWatermarkPosition;
(function (EImageWatermarkPosition) {
EImageWatermarkPosition["top"] = "top";
EImageWatermarkPosition["middle"] = "middle";
EImageWatermarkPosition["bottom"] = "bottom";
EImageWatermarkPosition["left"] = "left";
EImageWatermarkPosition["center"] = "center";
EImageWatermarkPosition["right"] = "right";
})(EImageWatermarkPosition || (EImageWatermarkPosition = {}));
/**
* Convert to format

@@ -232,2 +249,2 @@ */

//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFHSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDOztHQUVHO0FBQ0gsSUFBTSxXQUFXLEdBQUcsVUFBQyxRQUFrQztJQUNyRCxJQUFJLFVBQVUsR0FBNkIsRUFBRSxDQUFDO0lBRTlDLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlFLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEM7S0FDRjtJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FB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RCxJQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUEyQjtRQUN2RCxJQUFJLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ3pFLE9BQU87U0FDUjtRQUVELFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwiZmlsZSI6ImxpYi9hcGkvdHJhbnNmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBGaWxlbGluayB9IGZyb20gJy4vLi4vZmlsZWxpbmsnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IHRvU25ha2VDYXNlID0gKG9yaWdpbmFsOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0pOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPT4ge1xuICBsZXQgc25ha2VDYXNlZDogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9yaWdpbmFsKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbmV3S2V5ID0ga2V5c1tpXS5zcGxpdCgvKD89W0EtWl0pLykuam9pbignXycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsW2tleXNbaV1dID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShvcmlnaW5hbFtrZXlzW2ldXSkpIHtcbiAgICAgIHNuYWtlQ2FzZWRbbmV3S2V5XSA9IHRvU25ha2VDYXNlKG9yaWdpbmFsW2tleXNbaV1dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc25ha2VDYXNlZFtuZXdLZXldID0gb3JpZ2luYWxba2V5c1tpXV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNuYWtlQ2FzZWQ7XG59O1xuXG4vKipcbiAqIEFsaWduIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUFsaWduT3B0aW9ucyB7XG4gIGxlZnQgPSAnbGVmdCcsXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgY2VudGVyID0gJ2NlbnRlcicsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICB0b3AgPSAndG9wJyxcbn1cblxuLyoqXG4gKiBBbGlnbiBlbnVtIHdpdGggZmFjZXMgb3B0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEVBbGlnbkZhY2VzT3B0aW9ucyB7XG4gIGxlZnQgPSAnbGVmdCcsXG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgY2VudGVyID0gJ2NlbnRlcicsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICB0b3AgPSAndG9wJyxcbiAgZmFjZXMgPSAnZmFjZXMnLFxufVxuXG4vKipcbiAqIEZpdCBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVGaXRPcHRpb25zIHtcbiAgY2xpcCA9ICdjbGlwJyxcbiAgY3JvcCA9ICdjcm9wJyxcbiAgc2NhbGUgPSAnc2NhbGUnLFxuICBtYXggPSAnbWF4Jyxcbn1cblxuLyoqXG4gKiBCbHVyIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUJsdXJNb2RlIHtcbiAgbGluZWFyID0gJ2xpbmVhcicsXG4gIGdhdXNzaWFuID0gJ2dhdXNzaWFuJyxcbn1cblxuLyoqXG4gKiBTaGFwZXMgZW51bVxuICovXG5leHBvcnQgZW51bSBFU2hhcGVUeXBlIHtcbiAgb3ZhbCA9ICdvdmFsJyxcbiAgcmVjdCA9ICdyZWN0Jyxcbn1cblxuLyoqXG4gKiBOb2lzZSB0eXBlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRU5vaXNlVHlwZSB7XG4gIG5vbmUgPSAnbm9uZScsXG4gIGxvdyA9ICdsb3cnLFxuICBtZWRpdW0gPSAnbWVkaXVtJyxcbiAgaGlnaCA9ICdoaWdoJyxcbn1cblxuLyoqXG4gKiBTdHlsZSB0eXBlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRVN0eWxlVHlwZSB7XG4gIGFydHdvcmsgPSAnYXJ0d29yaycsXG4gIHBob3RvID0gJ3Bob3RvJyxcbn1cblxuLyoqXG4gKiBDb2xvciBzcGFjZSBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVDb2xvcnNwYWNlVHlwZSB7XG4gIFJHQiA9ICdSR0InLFxuICBDTVlLID0gJ0NNWUsnLFxuICBJbnB1dCA9ICdJbnB1dCcsXG59XG5cbi8qKlxuICogQ3JvcCBmYWNlcyBvcHRpb25zIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUNyb3BmYWNlc1R5cGUge1xuICB0aHVtYiA9ICd0aHVtYicsXG4gIGNyb3AgPSAnY3JvcCcsXG4gIGZpbGwgPSAnZmlsbCcsXG59XG5cbi8qKlxuICogQ29udmVydCB0byBmb3JtYXRcbiAqL1xuZXhwb3J0IGVudW0gRVZpZGVvVHlwZXMge1xuICAgIGgyNjQgPSAnaDI2NCcsXG4gICAgaDI2NF9oaSA9ICdoMjY0LmhpJyxcbiAgICB3ZWJtID0gJ3dlYm0nLFxuICAgICd3ZWJtLWhpJyA9ICd3ZWJtLmhpJyxcbiAgICBvZ2cgPSAnb2dnJyxcbiAgICAnb2dnLWhpJyA9ICdvZ2cuaGknLFxuICAgICdobHMtdmFyaWFudCcgPSAnaGxzLnZhcmlhbnQnLFxuICAgIG1wMyA9ICdtcDMnLFxuICAgIG9nYSA9ICdvZ2EnLFxuICAgIG00YSA9ICdtNGEnLFxuICAgIGFhYyA9ICdhYWMnLFxuICAgIGhscyA9ICdobHMudmFyaWFudC5hdWRpbycsXG59XG5cbmV4cG9ydCBlbnVtIEVVcmxzY3JlZW5zaG90QWdlbnQge1xuICBkZXNrdG9wID0gJ2Rlc2t0b3AnLFxuICBtb2JpbGUgPSAnbW9iaWxlJyxcbn1cblxuZXhwb3J0IGVudW0gRVVybHNjcmVlbnNob3RNb2RlIHtcbiAgYWxsID0gJ2FsbCcsXG4gIHdpbmRvdyA9ICd3aW5kb3cnLFxufVxuXG5leHBvcnQgZW51bSBFVXJsc2NyZWVuc2hvdE9yaWVudGF0aW9uIHtcbiAgcG9ydHJhaXQgPSAncG9ydHJhaXQnLFxuICBsYW5kc2NhcGUgPSAnbGFuZHNjYXBlJyxcbn1cblxuLyoqXG4gKiBWaWRlbyBzdG9yYWdlIGxvY2F0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIEVWaWRlb0xvY2F0aW9ucyB7XG4gIHMzID0gJ3MzJyxcbiAgYXp1cmUgPSAnYXp1cmUnLFxuICBnY3MgPSAnZ2NzJyxcbiAgcmFja3NwYWNlID0gJ3JhY2tzcGFjZScsXG4gIGRyb3Bib3ggPSAnZHJvcGJveCcsXG59XG5cbmV4cG9ydCBlbnVtIEVWaWRlb0FjY2VzcyB7XG4gIHByaXZhdGUgPSAncHJpdmF0ZScsXG4gIHB1YmxpYyA9ICdwdWJsaWMnLFxufVxuXG5leHBvcnQgZW51bSBFVmlkZW9BY2Nlc3NNb2RlIHtcbiAgcHJlc2VydmUgPSAncHJlc2VydmUnLFxuICBjb25zdHJhaW4gPSAnY29uc3RyYWluJyxcbiAgbGV0dGVyYm94ID0gJ2xldHRlcmJveCcsXG4gIHBhZCA9ICdwYWQnLFxuICBjcm9wID0gJ2Nyb3AnLFxufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly93d3cuZmlsZXN0YWNrLmNvbS9kb2NzL2ltYWdlLXRyYW5zZm9ybWF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybU9wdGlvbnMge1xuICBmbGlwPzogYm9vbGVhbjtcbiAgY29tcHJlc3M/OiBib29sZWFuO1xuICBmbG9wPzogYm9vbGVhbjtcbiAgZW5jaGFuY2U/OiBib29sZWFuO1xuICByZWRleWU/OiBib29sZWFuO1xuICBtb25vY2hyb21lPzogYm9vbGVhbjtcbiAgbmVnYXRpdmU/OiBib29sZWFuO1xuICB0YWdzPzogYm9vbGVhbjtcbiAgc2Z3PzogYm9vbGVhbjtcbiAgc3RvcmU/OiB7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgbG9jYXRpb24/OiBzdHJpbmcsXG4gICAgcGF0aD86IHN0cmluZyxcbiAgICBjb250YWluZXI/OiBzdHJpbmcsXG4gICAgcmVnaW9uPzogc3RyaW5nO1xuICAgIGFjY2Vzcz86IHN0cmluZztcbiAgICBiYXNlNjRkZWNvZGU/OiBib29sZWFuO1xuICB9O1xuICByZXNpemU/OiB7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGZpdD86IEVGaXRPcHRpb25zO1xuICAgIGFsaWduPzogRUFsaWduRmFjZXNPcHRpb25zO1xuICB9O1xuICBjcm9wPzoge1xuICAgIGRpbTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cbiAgfTtcbiAgcm90YXRlPzoge1xuICAgIGRlZzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH07XG4gIGRldGVjdF9mYWNlcz86IHtcbiAgICBtaW5zaXplPzogbnVtYmVyO1xuICAgIG1heHNpemU/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgZXhwb3J0PzogYm9vbGVhbjtcbiAgfSB8IHRydWU7XG4gIGNyb3BfZmFjZXM/OiB7XG4gICAgbW9kZT86IEVDcm9wZmFjZXNUeXBlO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBmYWNlcz86IG51bWJlciB8IHN0cmluZztcbiAgICBidWZmZXI/OiBudW1iZXI7XG4gIH07XG4gIHBpeGVsYXRlX2ZhY2VzPzoge1xuICAgIGZhY2VzPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG1pbnNpemU/OiBudW1iZXI7XG4gICAgbWF4c2l6ZT86IG51bWJlcjtcbiAgICBidWZmZXI/OiBudW1iZXI7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gIH07XG4gIGJsdXJfZmFjZXM/OiB7XG4gICAgZmFjZXM/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbWluc2l6ZT86IG51bWJlcjtcbiAgICBtYXhzaXplPzogbnVtYmVyO1xuICAgIGJ1ZmZlcj86IG51bWJlcjtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICB0eXBlPzogRVNoYXBlVHlwZTtcbiAgfTtcbiAgcm91bmRlZF9jb3JuZXJzPzoge1xuICAgIHJhZGl1cz86IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICB2aWduZXR0ZT86IHtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cm1vZGU/OiBFQmx1ck1vZGU7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfTtcbiAgcG9sYXJvaWQ/OiB7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgcm90YXRlPzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICB0b3JuX2VkZ2VzPzoge1xuICAgIHNwcmVhZD86IFtudW1iZXIsIG51bWJlcl07XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHNoYWRvdz86IHtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIG9wYWNpdHk/OiBudW1iZXI7XG4gICAgdmVjdG9yPzogW251bWJlciwgbnVtYmVyXTtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgY2lyY2xlPzoge1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBib3JkZXI/OiB7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHNoYXJwZW4/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBibHVyPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgYmxhY2t3aGl0ZT86IHtcbiAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHNlcGlhPzoge1xuICAgIHRvbmU6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHBpeGVsYXRlPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgb2lsX3BhaW50Pzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgbW9kdWxhdGU/OiB7XG4gICAgYnJpZ2h0bmVzcz86IG51bWJlcjtcbiAgICBodWU/OiBudW1iZXI7XG4gICAgc2F0dXJhdGlvbj86IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHBhcnRpYWxfcGl4ZWxhdGU/OiB7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gICAgb2JqZWN0cz86IFtbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXV07XG4gIH07XG4gIHBhcnRpYWxfYmx1cj86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIHR5cGU/OiBFU2hhcGVUeXBlO1xuICAgIG9iamVjdHM/OiBbW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1dO1xuICB9O1xuICBjb2xsYWdlPzoge1xuICAgIG1hcmdpbj86IG51bWJlcjtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgZml0PzogRUZpdE9wdGlvbnMsXG4gICAgZmlsZXM6IFtzdHJpbmddO1xuICB9O1xuICB1cHNjYWxlPzoge1xuICAgIHVwc2NhbGU/OiBib29sZWFuO1xuICAgIG5vaXNlPzogRU5vaXNlVHlwZTtcbiAgICBzdHlsZT86IEVTdHlsZVR5cGU7XG4gIH0gfCB0cnVlO1xuICBhc2NpaT86IHtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIGZvcmVncm91bmQ/OiBzdHJpbmc7XG4gICAgY29sb3JlZD86IGJvb2xlYW47XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICByZXZlcnNlPzogYm9vbGVhbjtcbiAgfSB8IHRydWU7XG4gIHF1YWxpdHk/OiB7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgfTtcbiAgc2VjdXJpdHk/OiB7XG4gICAgcG9saWN5OiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICB9O1xuICBvdXRwdXQ/OiB7XG4gICAgZm9ybWF0OiBzdHJpbmc7XG4gICAgY29sb3JzcGFjZT86IHN0cmluZztcbiAgICBzdHJpcD86IGJvb2xlYW47XG4gICAgcXVhbGl0eT86IG51bWJlcjtcbiAgICBwYWdlPzogbnVtYmVyO1xuICAgIGNvbXByZXNzPzogYm9vbGVhbjtcbiAgICBkZW5zaXR5PzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgc2VjdXJlPzogYm9vbGVhbjtcbiAgICBkb2NpbmZvPzogYm9vbGVhbjtcbiAgICBwYWdlZm9ybWF0Pzogc3RyaW5nO1xuICAgIHBhZ2VvcmllbnRhdGlvbj86IHN0cmluZztcbiAgfTtcbiAgY2FjaGU/OiB7XG4gICAgY2FjaGU/OiBib29sZWFuO1xuICAgIGV4cGlyeTogbnVtYmVyO1xuICB9O1xuICAvLyBhdWRpby92aWRlb1xuICB2aWRlb19jb252ZXJ0Pzoge1xuICAgIGFzcGVjdF9tb2RlOiBFVmlkZW9BY2Nlc3NNb2RlO1xuICAgIHByZXNldD86IEVWaWRlb1R5cGVzO1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBleHRuYW1lPzogc3RyaW5nO1xuICAgIGZpbGVuYW1lPzogc3RyaW5nO1xuICAgIGxvY2F0aW9uPzogRVZpZGVvTG9jYXRpb25zO1xuICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgYWNjZXNzPzogRVZpZGVvQWNjZXNzO1xuICAgIGNvbnRhaW5lcj86IHN0cmluZztcbiAgICBhdWRpb19iaXRyYXRlPzogbnVtYmVyO1xuICAgIHVwc2NhbGU6IGJvb2xlYW47XG4gICAgdmlkZW9fYml0cmF0ZT86IG51bWJlcjtcbiAgICBhdWRpb19zYW1wbGVfcmF0ZT86IG51bWJlcjtcbiAgICBhdWRpb19jaGFubmVscz86IG51bWJlcjtcbiAgICBjbGlwX2xlbmd0aD86IHN0cmluZztcbiAgICBjbGlwX29mZnNldD86IHN0cmluZztcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgdHdvX3Bhc3M/OiBib29sZWFuO1xuICAgIGZwcz86IG51bWJlcjtcbiAgICBrZXlmcmFtZV9pbnRlcnZhbD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfdXJsPzogc3RyaW5nO1xuICAgIHdhdGVybWFya190b3A/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX2JvdHRvbT86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfcmlnaHQ/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX2xlZnQ/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX3dpZHRoPzogbnVtYmVyO1xuICAgIHdhdGVybWFya19oZWlnaHQ/OiBudW1iZXI7XG4gIH07XG4gIHVybHNjcmVlbnNob3Q/OiB7XG4gICAgYWdlbnQ/OiBFVXJsc2NyZWVuc2hvdEFnZW50O1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBtb2RlPzogRVVybHNjcmVlbnNob3RNb2RlO1xuICAgIGRlbGF5PzogbnVtYmVyO1xuICAgIG9yaWVudGF0aW9uPzogRVVybHNjcmVlbnNob3RPcmllbnRhdGlvbjtcbiAgICBkZXZpY2U/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBwZGZpbmZvPzoge1xuICAgIGNvbG9yaW5mbz86IGJvb2xlYW5cbiAgfSB8IHRydWU7XG4gIHBkZmNvbnZlcnQ/OiB7XG4gICAgcGFnZW9yaWVudGF0aW9uPzogc3RyaW5nXG4gICAgcGFnZWZvcm1hdD86IHN0cmluZ1xuICAgIHBhZ2VzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgZmlsZXN0YWNrIHRyYW5zZm9ybSB1cmwuXG4gKiBUcmFuc2Zvcm0gcGFyYW1zIGNhbiBiZSBwcm92aWRlZCBpbiBjYW1lbENhc2Ugb3Igc25ha2VDYXNlIHN0eWxlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiAvLyBjYW1lbENhc2VcbiAqIGNvbnNvbGUubG9nKHRyYW5zZm9ybShzZXNzaW9uLCB7XG4gKiAgICBwYXJ0aWFsUGl4ZWxhdGU6IHtcbiAqICAgICAgb2JqZWN0czogW1sxMCwgMjAsIDIwMCwgMjUwXSwgWzI3NSwgOTEsIDUwMCwgNTU3XV0sXG4gKiAgICB9LFxuICogIH0sICd0ZXN0ZmlsZScpKTtcbiAqIGBgYFxuICogcmVzdWx0ID0+IGh0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tL3BhcnRpYWxfcGl4ZWxhdGU9b2JqZWN0czpbWzEwLDIwLDIwMCwyNTBdLFsyNzUsOTEsNTAwLDU1N11dL3Rlc3RmaWxlXG4gKlxuICogYGBganNcbiAqIC8vIHNuYWtlX2Nhc2VcbiAqIGNvbnNvbGUubG9nKHRyYW5zZm9ybShzZXNzaW9uLCB7XG4gKiAgICBwYXJ0aWFsX3BpeGVsYXRlOiB7XG4gKiAgICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICogICAgfSxcbiAqICB9LCAndGVzdGZpbGUnKSk7XG4gKiBgYGBcbiAqIHJlc3VsdCA9PiBodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbS9wYXJ0aWFsX3BpeGVsYXRlPW9iamVjdHM6W1sxMCwyMCwyMDAsMjUwXSxbMjc1LDkxLDUwMCw1NTddXS90ZXN0ZmlsZVxuICpcbiAqIENsaWVudC50cmFuc2Zvcm0gaXMgZGVwcmVjYXRlZC4gVXNlIEZpbGVsaW5rIGNsYXNzIGluc3RlYWRcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHRocm93cyBFcnJvclxuICogQHBhcmFtIG9wdGlvbnMgVHJhbnNmb3JtYXRpb24gb3B0aW9uc1xuICogQHBhcmFtIHVybCB1cmwsIGhhbmRsZSBvciBhcnJheSBvZiBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gKHNlc3Npb246IFNlc3Npb24sIHVybDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IFRyYW5zZm9ybU9wdGlvbnMgPSB7fSwgYjY0OiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcgPT4ge1xuICBvcHRpb25zID0gdG9TbmFrZUNhc2Uob3B0aW9ucyk7XG5cbiAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgb3B0aW9ucy5zZWN1cml0eSA9IHtcbiAgICAgIHBvbGljeTogc2Vzc2lvbi5wb2xpY3ksXG4gICAgICBzaWduYXR1cmU6IHNlc3Npb24uc2lnbmF0dXJlLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBmaWxlbGluayA9IG5ldyBGaWxlbGluayh1cmwsIHNlc3Npb24uYXBpa2V5KTtcbiAgZmlsZWxpbmsuc2V0Q25hbWUoc2Vzc2lvbi5jbmFtZSk7XG4gIGZpbGVsaW5rLnNldEJhc2U2NChiNjQpO1xuXG4gIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goKGtleToga2V5b2YgVHJhbnNmb3JtT3B0aW9ucykgPT4ge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uc1trZXldID09PSAnYm9vbGVhbicgJiYgIW9wdGlvbnNba2V5XSAmJiBrZXkgIT09ICdjYWNoZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmaWxlbGluay5hZGRUYXNrKGtleSwgb3B0aW9uc1trZXldKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpbGVsaW5rLnRvU3RyaW5nKCk7XG59O1xuIl19
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3RyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFHSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDOztHQUVHO0FBQ0gsSUFBTSxXQUFXLEdBQUcsVUFBQyxRQUFrQztJQUNyRCxJQUFJLFVBQVUsR0FBNkIsRUFBRSxDQUFDO0lBRTlDLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlFLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEM7S0FDRjtJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FB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Q0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLE9BQWdCLEVBQUUsR0FBc0IsRUFBRSxPQUE4QixFQUFFLEdBQW9CO0lBQXBELHdCQUFBLEVBQUEsWUFBOEI7SUFBRSxvQkFBQSxFQUFBLFdBQW9CO0lBQ3RILE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFL0IsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDdkMsT0FBTyxDQUFDLFFBQVEsR0FBRztZQUNqQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1NBQzdCLENBQUM7S0FDSDtJQUVELElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQTJCO1FBQ3ZELElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7WUFDekUsT0FBTztTQUNSO1FBRUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUM3QixDQUFDLENBQUMiLCJmaWxlIjoibGliL2FwaS90cmFuc2Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEZpbGVsaW5rIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgdG9TbmFrZUNhc2UgPSAob3JpZ2luYWw6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSk6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gIGxldCBzbmFrZUNhc2VkOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3JpZ2luYWwpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBuZXdLZXkgPSBrZXlzW2ldLnNwbGl0KC8oPz1bQS1aXSkvKS5qb2luKCdfJykudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxba2V5c1tpXV0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KG9yaWdpbmFsW2tleXNbaV1dKSkge1xuICAgICAgc25ha2VDYXNlZFtuZXdLZXldID0gdG9TbmFrZUNhc2Uob3JpZ2luYWxba2V5c1tpXV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzbmFrZUNhc2VkW25ld0tleV0gPSBvcmlnaW5hbFtrZXlzW2ldXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc25ha2VDYXNlZDtcbn07XG5cbi8qKlxuICogQWxpZ24gZW51bVxuICovXG5leHBvcnQgZW51bSBFQWxpZ25PcHRpb25zIHtcbiAgbGVmdCA9ICdsZWZ0JyxcbiAgcmlnaHQgPSAncmlnaHQnLFxuICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG4gIHRvcCA9ICd0b3AnLFxufVxuXG4vKipcbiAqIEFsaWduIGVudW0gd2l0aCBmYWNlcyBvcHRpb25cbiAqL1xuZXhwb3J0IGVudW0gRUFsaWduRmFjZXNPcHRpb25zIHtcbiAgbGVmdCA9ICdsZWZ0JyxcbiAgcmlnaHQgPSAncmlnaHQnLFxuICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgYm90dG9tID0gJ2JvdHRvbScsXG4gIHRvcCA9ICd0b3AnLFxuICBmYWNlcyA9ICdmYWNlcycsXG59XG5cbi8qKlxuICogRml0IGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUZpdE9wdGlvbnMge1xuICBjbGlwID0gJ2NsaXAnLFxuICBjcm9wID0gJ2Nyb3AnLFxuICBzY2FsZSA9ICdzY2FsZScsXG4gIG1heCA9ICdtYXgnLFxufVxuXG4vKipcbiAqIEJsdXIgZW51bVxuICovXG5leHBvcnQgZW51bSBFQmx1ck1vZGUge1xuICBsaW5lYXIgPSAnbGluZWFyJyxcbiAgZ2F1c3NpYW4gPSAnZ2F1c3NpYW4nLFxufVxuXG4vKipcbiAqIFNoYXBlcyBlbnVtXG4gKi9cbmV4cG9ydCBlbnVtIEVTaGFwZVR5cGUge1xuICBvdmFsID0gJ292YWwnLFxuICByZWN0ID0gJ3JlY3QnLFxufVxuXG4vKipcbiAqIE5vaXNlIHR5cGUgZW51bVxuICovXG5leHBvcnQgZW51bSBFTm9pc2VUeXBlIHtcbiAgbm9uZSA9ICdub25lJyxcbiAgbG93ID0gJ2xvdycsXG4gIG1lZGl1bSA9ICdtZWRpdW0nLFxuICBoaWdoID0gJ2hpZ2gnLFxufVxuXG4vKipcbiAqIFN0eWxlIHR5cGUgZW51bVxuICovXG5leHBvcnQgZW51bSBFU3R5bGVUeXBlIHtcbiAgYXJ0d29yayA9ICdhcnR3b3JrJyxcbiAgcGhvdG8gPSAncGhvdG8nLFxufVxuXG4vKipcbiAqIENvbG9yIHNwYWNlIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRUNvbG9yc3BhY2VUeXBlIHtcbiAgUkdCID0gJ1JHQicsXG4gIENNWUsgPSAnQ01ZSycsXG4gIElucHV0ID0gJ0lucHV0Jyxcbn1cblxuLyoqXG4gKiBDcm9wIGZhY2VzIG9wdGlvbnMgZW51bVxuICovXG5leHBvcnQgZW51bSBFQ3JvcGZhY2VzVHlwZSB7XG4gIHRodW1iID0gJ3RodW1iJyxcbiAgY3JvcCA9ICdjcm9wJyxcbiAgZmlsbCA9ICdmaWxsJyxcbn1cblxuLyoqXG4gKiBTbWFydENyb3AgbW9kZSBvcHRpb25zIGVudW1cbiAqL1xuZXhwb3J0IGVudW0gRVNtYXJ0Q3JvcE1vZGUge1xuICBmaXQgPSAnZml0JyxcbiAgYXV0byA9ICdhdXRvJyxcbn1cblxuZXhwb3J0IGVudW0gRUltYWdlV2F0ZXJtYXJrUG9zaXRpb24ge1xuICB0b3AgPSAndG9wJyxcbiAgbWlkZGxlID0gJ21pZGRsZScsXG4gIGJvdHRvbSA9ICdib3R0b20nLFxuICBsZWZ0ID0gJ2xlZnQnLFxuICBjZW50ZXIgPSAnY2VudGVyJyxcbiAgcmlnaHQgPSAncmlnaHQnLFxufVxuXG4vKipcbiAqIENvbnZlcnQgdG8gZm9ybWF0XG4gKi9cbmV4cG9ydCBlbnVtIEVWaWRlb1R5cGVzIHtcbiAgICBoMjY0ID0gJ2gyNjQnLFxuICAgIGgyNjRfaGkgPSAnaDI2NC5oaScsXG4gICAgd2VibSA9ICd3ZWJtJyxcbiAgICAnd2VibS1oaScgPSAnd2VibS5oaScsXG4gICAgb2dnID0gJ29nZycsXG4gICAgJ29nZy1oaScgPSAnb2dnLmhpJyxcbiAgICAnaGxzLXZhcmlhbnQnID0gJ2hscy52YXJpYW50JyxcbiAgICBtcDMgPSAnbXAzJyxcbiAgICBvZ2EgPSAnb2dhJyxcbiAgICBtNGEgPSAnbTRhJyxcbiAgICBhYWMgPSAnYWFjJyxcbiAgICBobHMgPSAnaGxzLnZhcmlhbnQuYXVkaW8nLFxufVxuXG5leHBvcnQgZW51bSBFVXJsc2NyZWVuc2hvdEFnZW50IHtcbiAgZGVza3RvcCA9ICdkZXNrdG9wJyxcbiAgbW9iaWxlID0gJ21vYmlsZScsXG59XG5cbmV4cG9ydCBlbnVtIEVVcmxzY3JlZW5zaG90TW9kZSB7XG4gIGFsbCA9ICdhbGwnLFxuICB3aW5kb3cgPSAnd2luZG93Jyxcbn1cblxuZXhwb3J0IGVudW0gRVVybHNjcmVlbnNob3RPcmllbnRhdGlvbiB7XG4gIHBvcnRyYWl0ID0gJ3BvcnRyYWl0JyxcbiAgbGFuZHNjYXBlID0gJ2xhbmRzY2FwZScsXG59XG5cbi8qKlxuICogVmlkZW8gc3RvcmFnZSBsb2NhdGlvblxuICovXG5leHBvcnQgZW51bSBFVmlkZW9Mb2NhdGlvbnMge1xuICBzMyA9ICdzMycsXG4gIGF6dXJlID0gJ2F6dXJlJyxcbiAgZ2NzID0gJ2djcycsXG4gIHJhY2tzcGFjZSA9ICdyYWNrc3BhY2UnLFxuICBkcm9wYm94ID0gJ2Ryb3Bib3gnLFxufVxuXG5leHBvcnQgZW51bSBFVmlkZW9BY2Nlc3Mge1xuICBwcml2YXRlID0gJ3ByaXZhdGUnLFxuICBwdWJsaWMgPSAncHVibGljJyxcbn1cblxuZXhwb3J0IGVudW0gRVZpZGVvQWNjZXNzTW9kZSB7XG4gIHByZXNlcnZlID0gJ3ByZXNlcnZlJyxcbiAgY29uc3RyYWluID0gJ2NvbnN0cmFpbicsXG4gIGxldHRlcmJveCA9ICdsZXR0ZXJib3gnLFxuICBwYWQgPSAncGFkJyxcbiAgY3JvcCA9ICdjcm9wJyxcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vd3d3LmZpbGVzdGFjay5jb20vZG9jcy9pbWFnZS10cmFuc2Zvcm1hdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcHRpb25zIHtcbiAgZmxpcD86IGJvb2xlYW47XG4gIGNvbXByZXNzPzogYm9vbGVhbjtcbiAgZmxvcD86IGJvb2xlYW47XG4gIG5vX21ldGFkYXRhPzogYm9vbGVhbjtcbiAgcGpwZz86IHtcbiAgICBxdWFsaXR5OiBudW1iZXI7XG4gICAgbWV0YWRhdGE6IGJvb2xlYW47XG4gIH07XG4gIHNtYXJ0X2Nyb3A/OiB7XG4gICAgbW9kZT86IEVTbWFydENyb3BNb2RlXG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgfTtcbiAgd2F0ZXJtYXJrPzoge1xuICAgIGZpbGVzOiBzdHJpbmc7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBwb3NpdGlvbj86IEVJbWFnZVdhdGVybWFya1Bvc2l0aW9uIHwgRUltYWdlV2F0ZXJtYXJrUG9zaXRpb25bXTtcbiAgfTtcbiAgaW1hZ2VzaXplPzogYm9vbGVhbjtcbiAgZW5jaGFuY2U/OiBib29sZWFuO1xuICByZWRleWU/OiBib29sZWFuO1xuICBtb25vY2hyb21lPzogYm9vbGVhbjtcbiAgbmVnYXRpdmU/OiBib29sZWFuO1xuICB0YWdzPzogYm9vbGVhbjtcbiAgc2Z3PzogYm9vbGVhbjtcbiAgc3RvcmU/OiB7XG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgbG9jYXRpb24/OiBzdHJpbmcsXG4gICAgcGF0aD86IHN0cmluZyxcbiAgICBjb250YWluZXI/OiBzdHJpbmcsXG4gICAgcmVnaW9uPzogc3RyaW5nO1xuICAgIGFjY2Vzcz86IHN0cmluZztcbiAgICBiYXNlNjRkZWNvZGU/OiBib29sZWFuO1xuICB9O1xuICByZXNpemU/OiB7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIGZpdD86IEVGaXRPcHRpb25zO1xuICAgIGFsaWduPzogRUFsaWduRmFjZXNPcHRpb25zO1xuICB9O1xuICBjcm9wPzoge1xuICAgIGRpbTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cbiAgfTtcbiAgcm90YXRlPzoge1xuICAgIGRlZzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH07XG4gIGRldGVjdF9mYWNlcz86IHtcbiAgICBtaW5zaXplPzogbnVtYmVyO1xuICAgIG1heHNpemU/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgZXhwb3J0PzogYm9vbGVhbjtcbiAgfSB8IHRydWU7XG4gIGNyb3BfZmFjZXM/OiB7XG4gICAgbW9kZT86IEVDcm9wZmFjZXNUeXBlO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBmYWNlcz86IG51bWJlciB8IHN0cmluZztcbiAgICBidWZmZXI/OiBudW1iZXI7XG4gIH07XG4gIHBpeGVsYXRlX2ZhY2VzPzoge1xuICAgIGZhY2VzPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIG1pbnNpemU/OiBudW1iZXI7XG4gICAgbWF4c2l6ZT86IG51bWJlcjtcbiAgICBidWZmZXI/OiBudW1iZXI7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gIH07XG4gIGJsdXJfZmFjZXM/OiB7XG4gICAgZmFjZXM/OiBudW1iZXIgfCBzdHJpbmc7XG4gICAgbWluc2l6ZT86IG51bWJlcjtcbiAgICBtYXhzaXplPzogbnVtYmVyO1xuICAgIGJ1ZmZlcj86IG51bWJlcjtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cj86IG51bWJlcjtcbiAgICB0eXBlPzogRVNoYXBlVHlwZTtcbiAgfTtcbiAgcm91bmRlZF9jb3JuZXJzPzoge1xuICAgIHJhZGl1cz86IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICB2aWduZXR0ZT86IHtcbiAgICBhbW91bnQ/OiBudW1iZXI7XG4gICAgYmx1cm1vZGU/OiBFQmx1ck1vZGU7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfTtcbiAgcG9sYXJvaWQ/OiB7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgcm90YXRlPzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICB0b3JuX2VkZ2VzPzoge1xuICAgIHNwcmVhZD86IFtudW1iZXIsIG51bWJlcl07XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHNoYWRvdz86IHtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIG9wYWNpdHk/OiBudW1iZXI7XG4gICAgdmVjdG9yPzogW251bWJlciwgbnVtYmVyXTtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICB9IHwgdHJ1ZTtcbiAgY2lyY2xlPzoge1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBib3JkZXI/OiB7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZD86IHN0cmluZztcbiAgfSB8IHRydWU7XG4gIHNoYXJwZW4/OiB7XG4gICAgYW1vdW50OiBudW1iZXI7XG4gIH0gfCB0cnVlO1xuICBibHVyPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgYmxhY2t3aGl0ZT86IHtcbiAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHNlcGlhPzoge1xuICAgIHRvbmU6IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHBpeGVsYXRlPzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgb2lsX3BhaW50Pzoge1xuICAgIGFtb3VudDogbnVtYmVyO1xuICB9IHwgdHJ1ZTtcbiAgbW9kdWxhdGU/OiB7XG4gICAgYnJpZ2h0bmVzcz86IG51bWJlcjtcbiAgICBodWU/OiBudW1iZXI7XG4gICAgc2F0dXJhdGlvbj86IG51bWJlcjtcbiAgfSB8IHRydWU7XG4gIHBhcnRpYWxfcGl4ZWxhdGU/OiB7XG4gICAgYW1vdW50PzogbnVtYmVyO1xuICAgIGJsdXI/OiBudW1iZXI7XG4gICAgdHlwZT86IEVTaGFwZVR5cGU7XG4gICAgb2JqZWN0cz86IFtbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXV07XG4gIH07XG4gIHBhcnRpYWxfYmx1cj86IHtcbiAgICBhbW91bnQ6IG51bWJlcjtcbiAgICBibHVyPzogbnVtYmVyO1xuICAgIHR5cGU/OiBFU2hhcGVUeXBlO1xuICAgIG9iamVjdHM/OiBbW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1dO1xuICB9O1xuICBjb2xsYWdlPzoge1xuICAgIG1hcmdpbj86IG51bWJlcjtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgZml0PzogRUZpdE9wdGlvbnMsXG4gICAgZmlsZXM6IFtzdHJpbmddO1xuICB9O1xuICB1cHNjYWxlPzoge1xuICAgIHVwc2NhbGU/OiBib29sZWFuO1xuICAgIG5vaXNlPzogRU5vaXNlVHlwZTtcbiAgICBzdHlsZT86IEVTdHlsZVR5cGU7XG4gIH0gfCB0cnVlO1xuICBhc2NpaT86IHtcbiAgICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAgIGZvcmVncm91bmQ/OiBzdHJpbmc7XG4gICAgY29sb3JlZD86IGJvb2xlYW47XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICByZXZlcnNlPzogYm9vbGVhbjtcbiAgfSB8IHRydWU7XG4gIHF1YWxpdHk/OiB7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgfTtcbiAgc2VjdXJpdHk/OiB7XG4gICAgcG9saWN5OiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlPzogc3RyaW5nO1xuICB9O1xuICBvdXRwdXQ/OiB7XG4gICAgZm9ybWF0OiBzdHJpbmc7XG4gICAgY29sb3JzcGFjZT86IHN0cmluZztcbiAgICBzdHJpcD86IGJvb2xlYW47XG4gICAgcXVhbGl0eT86IG51bWJlcjtcbiAgICBwYWdlPzogbnVtYmVyO1xuICAgIGNvbXByZXNzPzogYm9vbGVhbjtcbiAgICBkZW5zaXR5PzogbnVtYmVyO1xuICAgIGJhY2tncm91bmQ/OiBzdHJpbmc7XG4gICAgc2VjdXJlPzogYm9vbGVhbjtcbiAgICBkb2NpbmZvPzogYm9vbGVhbjtcbiAgICBwYWdlZm9ybWF0Pzogc3RyaW5nO1xuICAgIHBhZ2VvcmllbnRhdGlvbj86IHN0cmluZztcbiAgfTtcbiAgY2FjaGU/OiB7XG4gICAgY2FjaGU/OiBib29sZWFuO1xuICAgIGV4cGlyeTogbnVtYmVyO1xuICB9O1xuICAvLyBhdWRpby92aWRlb1xuICB2aWRlb19jb252ZXJ0Pzoge1xuICAgIGFzcGVjdF9tb2RlOiBFVmlkZW9BY2Nlc3NNb2RlO1xuICAgIHByZXNldD86IEVWaWRlb1R5cGVzO1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBleHRuYW1lPzogc3RyaW5nO1xuICAgIGZpbGVuYW1lPzogc3RyaW5nO1xuICAgIGxvY2F0aW9uPzogRVZpZGVvTG9jYXRpb25zO1xuICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgYWNjZXNzPzogRVZpZGVvQWNjZXNzO1xuICAgIGNvbnRhaW5lcj86IHN0cmluZztcbiAgICBhdWRpb19iaXRyYXRlPzogbnVtYmVyO1xuICAgIHVwc2NhbGU6IGJvb2xlYW47XG4gICAgdmlkZW9fYml0cmF0ZT86IG51bWJlcjtcbiAgICBhdWRpb19zYW1wbGVfcmF0ZT86IG51bWJlcjtcbiAgICBhdWRpb19jaGFubmVscz86IG51bWJlcjtcbiAgICBjbGlwX2xlbmd0aD86IHN0cmluZztcbiAgICBjbGlwX29mZnNldD86IHN0cmluZztcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgdHdvX3Bhc3M/OiBib29sZWFuO1xuICAgIGZwcz86IG51bWJlcjtcbiAgICBrZXlmcmFtZV9pbnRlcnZhbD86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfdXJsPzogc3RyaW5nO1xuICAgIHdhdGVybWFya190b3A/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX2JvdHRvbT86IG51bWJlcjtcbiAgICB3YXRlcm1hcmtfcmlnaHQ/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX2xlZnQ/OiBudW1iZXI7XG4gICAgd2F0ZXJtYXJrX3dpZHRoPzogbnVtYmVyO1xuICAgIHdhdGVybWFya19oZWlnaHQ/OiBudW1iZXI7XG4gIH07XG4gIHVybHNjcmVlbnNob3Q/OiB7XG4gICAgYWdlbnQ/OiBFVXJsc2NyZWVuc2hvdEFnZW50O1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICBtb2RlPzogRVVybHNjcmVlbnNob3RNb2RlO1xuICAgIGRlbGF5PzogbnVtYmVyO1xuICAgIG9yaWVudGF0aW9uPzogRVVybHNjcmVlbnNob3RPcmllbnRhdGlvbjtcbiAgICBkZXZpY2U/OiBzdHJpbmc7XG4gIH0gfCB0cnVlO1xuICBwZGZpbmZvPzoge1xuICAgIGNvbG9yaW5mbz86IGJvb2xlYW5cbiAgfSB8IHRydWU7XG4gIHBkZmNvbnZlcnQ/OiB7XG4gICAgcGFnZW9yaWVudGF0aW9uPzogc3RyaW5nXG4gICAgcGFnZWZvcm1hdD86IHN0cmluZ1xuICAgIHBhZ2VzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgZmlsZXN0YWNrIHRyYW5zZm9ybSB1cmwuXG4gKiBUcmFuc2Zvcm0gcGFyYW1zIGNhbiBiZSBwcm92aWRlZCBpbiBjYW1lbENhc2Ugb3Igc25ha2VDYXNlIHN0eWxlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiAvLyBjYW1lbENhc2VcbiAqIGNvbnNvbGUubG9nKHRyYW5zZm9ybShzZXNzaW9uLCB7XG4gKiAgICBwYXJ0aWFsUGl4ZWxhdGU6IHtcbiAqICAgICAgb2JqZWN0czogW1sxMCwgMjAsIDIwMCwgMjUwXSwgWzI3NSwgOTEsIDUwMCwgNTU3XV0sXG4gKiAgICB9LFxuICogIH0sICd0ZXN0ZmlsZScpKTtcbiAqIGBgYFxuICogcmVzdWx0ID0+IGh0dHBzOi8vY2RuLmZpbGVzdGFja2NvbnRlbnQuY29tL3BhcnRpYWxfcGl4ZWxhdGU9b2JqZWN0czpbWzEwLDIwLDIwMCwyNTBdLFsyNzUsOTEsNTAwLDU1N11dL3Rlc3RmaWxlXG4gKlxuICogYGBganNcbiAqIC8vIHNuYWtlX2Nhc2VcbiAqIGNvbnNvbGUubG9nKHRyYW5zZm9ybShzZXNzaW9uLCB7XG4gKiAgICBwYXJ0aWFsX3BpeGVsYXRlOiB7XG4gKiAgICAgIG9iamVjdHM6IFtbMTAsIDIwLCAyMDAsIDI1MF0sIFsyNzUsIDkxLCA1MDAsIDU1N11dLFxuICogICAgfSxcbiAqICB9LCAndGVzdGZpbGUnKSk7XG4gKiBgYGBcbiAqIHJlc3VsdCA9PiBodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbS9wYXJ0aWFsX3BpeGVsYXRlPW9iamVjdHM6W1sxMCwyMCwyMDAsMjUwXSxbMjc1LDkxLDUwMCw1NTddXS90ZXN0ZmlsZVxuICpcbiAqIENsaWVudC50cmFuc2Zvcm0gaXMgZGVwcmVjYXRlZC4gVXNlIEZpbGVsaW5rIGNsYXNzIGluc3RlYWRcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHRocm93cyBFcnJvclxuICogQHBhcmFtIG9wdGlvbnMgVHJhbnNmb3JtYXRpb24gb3B0aW9uc1xuICogQHBhcmFtIHVybCB1cmwsIGhhbmRsZSBvciBhcnJheSBvZiBlbGVtZW50c1xuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtID0gKHNlc3Npb246IFNlc3Npb24sIHVybDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IFRyYW5zZm9ybU9wdGlvbnMgPSB7fSwgYjY0OiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcgPT4ge1xuICBvcHRpb25zID0gdG9TbmFrZUNhc2Uob3B0aW9ucyk7XG5cbiAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgb3B0aW9ucy5zZWN1cml0eSA9IHtcbiAgICAgIHBvbGljeTogc2Vzc2lvbi5wb2xpY3ksXG4gICAgICBzaWduYXR1cmU6IHNlc3Npb24uc2lnbmF0dXJlLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBmaWxlbGluayA9IG5ldyBGaWxlbGluayh1cmwsIHNlc3Npb24uYXBpa2V5KTtcbiAgZmlsZWxpbmsuc2V0Q25hbWUoc2Vzc2lvbi5jbmFtZSk7XG4gIGZpbGVsaW5rLnNldEJhc2U2NChiNjQpO1xuXG4gIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goKGtleToga2V5b2YgVHJhbnNmb3JtT3B0aW9ucykgPT4ge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uc1trZXldID09PSAnYm9vbGVhbicgJiYgIW9wdGlvbnNba2V5XSAmJiBrZXkgIT09ICdjYWNoZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmaWxlbGluay5hZGRUYXNrKGtleSwgb3B0aW9uc1trZXldKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpbGVsaW5rLnRvU3RyaW5nKCk7XG59O1xuIl19

@@ -46,3 +46,3 @@ /*

export var getVersion = function () {
return 'JS-3.20.0';
return 'JS-3.21.0';
};

@@ -49,0 +49,0 @@ /**

@@ -45,3 +45,3 @@ /*

export var getVersion = function () {
return 'JS-3.20.0';
return 'JS-3.21.0';
};

@@ -48,0 +48,0 @@ /**

@@ -21,3 +21,3 @@ /*

it('should return version string to replace', function () {
expect(utils.getVersion()).toEqual("JS-3.20.0");
expect(utils.getVersion()).toEqual("JS-3.21.0");
});

@@ -24,0 +24,0 @@ });

@@ -80,2 +80,19 @@ export declare const TransformSchema: {

};
smart_crop: {
width: {
type: string;
minimum: number;
maximum: number;
};
height: {
type: string;
minimum: number;
maximum: number;
};
mode: {
type: string;
default: string;
enum: string[];
};
};
animate: {

@@ -82,0 +99,0 @@ type: string;

@@ -5,2 +5,9 @@ # Changelog

## [3.21.0](https://github.com/filestack/filestack-js/compare/v3.20.0...v3.21.0) (2021-01-13)
### Features
* **picker:** bump picker to 1.20.0 ([7b0d9ed](https://github.com/filestack/filestack-js/commit/7b0d9ed079812ad627dbfc03f04d37bd93d3f012))
## [3.20.0](https://github.com/filestack/filestack-js/compare/v3.19.0...v3.20.0) (2020-11-18)

@@ -7,0 +14,0 @@

{
"name": "filestack-js",
"version": "3.20.0",
"version": "3.21.0",
"description": "Official JavaScript library for Filestack",

@@ -5,0 +5,0 @@ "main": "build/main/index.js",

@@ -21,3 +21,3 @@ /*

*/
const PICKER_VERSION = '1.19.1';
const PICKER_VERSION = '1.20.0';

@@ -24,0 +24,0 @@ /**

@@ -128,2 +128,19 @@ /*

/**
* SmartCrop mode options enum
*/
export enum ESmartCropMode {
fit = 'fit',
auto = 'auto',
}
export enum EImageWatermarkPosition {
top = 'top',
middle = 'middle',
bottom = 'bottom',
left = 'left',
center = 'center',
right = 'right',
}
/**
* Convert to format

@@ -192,2 +209,18 @@ */

flop?: boolean;
no_metadata?: boolean;
pjpg?: {
quality: number;
metadata: boolean;
};
smart_crop?: {
mode?: ESmartCropMode
width: number;
height: number;
};
watermark?: {
files: string;
size?: number;
position?: EImageWatermarkPosition | EImageWatermarkPosition[];
};
imagesize?: boolean;
enchance?: boolean;

@@ -194,0 +227,0 @@ redeye?: boolean;

@@ -18,3 +18,3 @@ /*

import { Filelink, ShapeType, VideoAccessMode, AnimationParams, FitOptions, Align } from './filelink';
import { Filelink, ShapeType, VideoAccessMode, AnimationParams, FitOptions, Align, WatermarkParams, ImageWatermarkPosition, SmartCropParams, SmartCropMode, ProgressiveJpgParams } from './filelink';
import { TransformSchema } from './../schema/transforms.schema';

@@ -256,2 +256,46 @@ import * as validator from '../schema';

it('should be able to add imagesize', () => {
filelink.imagesize();
expect(filelink.toString()).toBe('https://cdn.filestackcontent.com/DEFAULT_API_KEY/imagesize/5aYkEQJSQCmYShsoCnZN');
});
it('should be able to add no_metadata', () => {
filelink.noMetadata();
expect(filelink.toString()).toBe('https://cdn.filestackcontent.com/DEFAULT_API_KEY/no_metadata/5aYkEQJSQCmYShsoCnZN');
});
it('should be able to add pjpg', () => {
const params: ProgressiveJpgParams = {
quality: 50,
metadata: false,
};
filelink.pjpg(params);
expect(filelink.toString()).toBe('https://cdn.filestackcontent.com/DEFAULT_API_KEY/pjpg=quality:50,metadata:false/5aYkEQJSQCmYShsoCnZN');
});
it('should be able to add smart_crop', () => {
const params: SmartCropParams = {
mode: SmartCropMode.auto,
width: 1000,
height: 1000,
};
filelink.smartCrop(params);
expect(filelink.toString()).toBe('https://cdn.filestackcontent.com/DEFAULT_API_KEY/smart_crop=mode:auto,width:1000,height:1000/5aYkEQJSQCmYShsoCnZN');
});
it('should be able to add watermark', () => {
const params: WatermarkParams = {
file: 'http://welcome-swiss.com/wp-content/uploads/2015/12/Swiss-landscape.jpg',
size: 20,
position: ImageWatermarkPosition.top,
};
filelink.watermark(params);
expect(filelink.toString()).toBe(
'https://cdn.filestackcontent.com/DEFAULT_API_KEY/watermark=file:\"http://welcome-swiss.com/wp-content/uploads/2015/12/Swiss-landscape.jpg\",size:20,position:top/5aYkEQJSQCmYShsoCnZN'
);
});
it('should be able to enhance', () => {

@@ -258,0 +302,0 @@ filelink.enhance();

@@ -105,2 +105,22 @@ /*

/**
* Watermark postion options enum
*/
export enum ImageWatermarkPosition {
top = 'top',
middle = 'middle',
bottom = 'bottom',
left = 'left',
center = 'center',
right = 'right',
}
/**
* SmartCrop options enum
*/
export enum SmartCropMode {
face = 'face',
auto = 'auto',
}
/**
* Convert to format

@@ -289,2 +309,19 @@ */

export interface WatermarkParams {
file: string;
size?: number;
position?: ImageWatermarkPosition | ImageWatermarkPosition[];
}
export interface ProgressiveJpgParams {
quality: number;
metadata: boolean;
}
export interface SmartCropParams {
mode: SmartCropMode;
width: number;
height: number;
}
export interface SharpenParams {

@@ -633,3 +670,3 @@ amount: number;

if (!isExternal && typeof this.source === 'string' && (!handleRegexp.test(this.source) && this.source.indexOf('filestackcontent') === -1)) {
if (!isExternal && typeof this.source === 'string' && !handleRegexp.test(this.source) && this.source.indexOf('filestackcontent') === -1) {
throw new FilestackError('Invalid filestack source provided');

@@ -793,2 +830,57 @@ }

/**
* Adds imagesize transformation
*
* @see https://www.filestack.com/docs/api/processing/#image-size
* @returns this
* @memberof Filelink
*/
imagesize() {
return this.addTask('imagesize', true);
}
/**
* Adds noMetadata transformation
*
* @see https://www.filestack.com/docs/api/processing/#strip-metadata
* @returns this
* @memberof Filelink
*/
noMetadata() {
return this.addTask('no_metadata', true);
}
/**
* Adds Progressive JPEG transformation
*
* @see https://www.filestack.com/docs/api/processing/#progressive-jpeg
* @returns this
* @memberof Filelink
*/
pjpg(params: ProgressiveJpgParams) {
return this.addTask('pjpg', params);
}
/**
* Adds imagesize transformation
*
* @see https://www.filestack.com/docs/api/processing/#smart-crop
* @returns this
* @memberof Filelink
*/
smartCrop(params: SmartCropParams) {
return this.addTask('smart_crop', params);
}
/**
* Adds watermart transformation
*
* @see https://www.filestack.com/docs/api/processing/#watermark
* @returns this
* @memberof Filelink
*/
watermark(params: WatermarkParams) {
return this.addTask('watermark', params);
}
/**
* Adds enhance transformation

@@ -1420,3 +1512,3 @@ *

this.transforms.forEach((el) => {
this.transforms.forEach(el => {
transforms.push(this.optionToString(el.name, el.params));

@@ -1451,3 +1543,3 @@ });

Object.keys(values).forEach((i) => {
Object.keys(values).forEach(i => {
if (Array.isArray(values[i])) {

@@ -1492,3 +1584,3 @@ optionsString.push(`${i}:${this.arrayToString(values[i])}`);

private arrayToString(arr: any[]): string {
const toReturn = arr.map((el) => {
const toReturn = arr.map(el => {
if (Array.isArray(el)) {

@@ -1495,0 +1587,0 @@ return this.arrayToString(el);

@@ -93,2 +93,19 @@ /*

},
smart_crop: {
width: {
type: 'integer',
minimum: 0,
maximum: 10000,
},
height: {
type: 'integer',
minimum: 0,
maximum: 10000,
},
mode: {
type: 'string',
default: 'auto',
enum: ['face', 'auto'],
},
},
animate: {

@@ -101,3 +118,3 @@ type: 'object',

maximum: 10000,
default: 100,
default: 1000,
},

@@ -104,0 +121,0 @@ loop: {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc