@getmagical/cli 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/index.js +271 -36
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/ts-essentials/dist/primitive/index.js","../../../node_modules/ts-essentials/dist/built-in/index.js","../../../node_modules/ts-essentials/dist/key-of-base/index.js","../../../node_modules/ts-essentials/dist/strict-exclude/index.js","../../../node_modules/ts-essentials/dist/strict-extract/index.js","../../../node_modules/ts-essentials/dist/strict-omit/index.js","../../../node_modules/ts-essentials/dist/writable/index.js","../../../node_modules/ts-essentials/dist/async-or-sync/index.js","../../../node_modules/ts-essentials/dist/async-or-sync-type/index.js","../../../node_modules/ts-essentials/dist/dictionary/index.js","../../../node_modules/ts-essentials/dist/dictionary-values/index.js","../../../node_modules/ts-essentials/dist/merge/index.js","../../../node_modules/ts-essentials/dist/merge-n/index.js","../../../node_modules/ts-essentials/dist/newable/index.js","../../../node_modules/ts-essentials/dist/non-never/index.js","../../../node_modules/ts-essentials/dist/omit-properties/index.js","../../../node_modules/ts-essentials/dist/opaque/index.js","../../../node_modules/ts-essentials/dist/path-value/index.js","../../../node_modules/ts-essentials/dist/paths/index.js","../../../node_modules/ts-essentials/dist/pick-properties/index.js","../../../node_modules/ts-essentials/dist/prettify/index.js","../../../node_modules/ts-essentials/dist/safe-dictionary/index.js","../../../node_modules/ts-essentials/dist/union-to-intersection/index.js","../../../node_modules/ts-essentials/dist/value-of/index.js","../../../node_modules/ts-essentials/dist/xor/index.js","../../../node_modules/ts-essentials/dist/mark-optional/index.js","../../../node_modules/ts-essentials/dist/mark-readonly/index.js","../../../node_modules/ts-essentials/dist/mark-required/index.js","../../../node_modules/ts-essentials/dist/mark-writable/index.js","../../../node_modules/ts-essentials/dist/buildable/index.js","../../../node_modules/ts-essentials/dist/deep-mark-optional/index.js","../../../node_modules/ts-essentials/dist/deep-mark-required/index.js","../../../node_modules/ts-essentials/dist/deep-non-nullable/index.js","../../../node_modules/ts-essentials/dist/deep-nullable/index.js","../../../node_modules/ts-essentials/dist/deep-omit/index.js","../../../node_modules/ts-essentials/dist/deep-partial/index.js","../../../node_modules/ts-essentials/dist/deep-pick/index.js","../../../node_modules/ts-essentials/dist/deep-readonly/index.js","../../../node_modules/ts-essentials/dist/deep-required/index.js","../../../node_modules/ts-essentials/dist/deep-undefinable/index.js","../../../node_modules/ts-essentials/dist/deep-writable/index.js","../../../node_modules/ts-essentials/dist/strict-deep-omit/index.js","../../../node_modules/ts-essentials/dist/strict-deep-pick/index.js","../../../node_modules/ts-essentials/dist/optional-keys/index.js","../../../node_modules/ts-essentials/dist/pick-keys/index.js","../../../node_modules/ts-essentials/dist/readonly-keys/index.js","../../../node_modules/ts-essentials/dist/required-keys/index.js","../../../node_modules/ts-essentials/dist/writable-keys/index.js","../../../node_modules/ts-essentials/dist/exact/index.js","../../../node_modules/ts-essentials/dist/is-any/index.js","../../../node_modules/ts-essentials/dist/is-never/index.js","../../../node_modules/ts-essentials/dist/is-unknown/index.js","../../../node_modules/ts-essentials/dist/is-tuple/index.js","../../../node_modules/ts-essentials/dist/non-empty-object/index.js","../../../node_modules/ts-essentials/dist/any-array/index.js","../../../node_modules/ts-essentials/dist/array-or-single/index.js","../../../node_modules/ts-essentials/dist/element-of/index.js","../../../node_modules/ts-essentials/dist/head/index.js","../../../node_modules/ts-essentials/dist/non-empty-array/index.js","../../../node_modules/ts-essentials/dist/readonly-array-or-single/index.js","../../../node_modules/ts-essentials/dist/tail/index.js","../../../node_modules/ts-essentials/dist/tuple/index.js","../../../node_modules/ts-essentials/dist/camel-case/index.js","../../../node_modules/ts-essentials/dist/deep-camel-case-properties/index.js","../../../node_modules/ts-essentials/dist/any-function/index.js","../../../node_modules/ts-essentials/dist/predicate-function/index.js","../../../node_modules/ts-essentials/dist/predicate-type/index.js","../../../node_modules/ts-essentials/lib/functions/unreachable-case-error/index.ts","../../../node_modules/ts-essentials/lib/functions/assert/index.ts","../../../node_modules/ts-essentials/lib/functions/create-factory-with-constraint/index.ts","../../../node_modules/ts-essentials/lib/functions/is-exact/index.ts","../../../node_modules/ts-essentials/lib/functions/noop/index.ts","../../../node_modules/ts-essentials/dist/awaited/index.js","../../../node_modules/ts-essentials/lib/index.ts","../src/cli-formatting.ts","../src/errors.ts","../../mcp-registry/src/operation-specs.ts","../../mcp-registry/src/operation-spec.ts","../src/program.ts","../src/api.ts","../src/config.ts","../src/settings.ts","../../common/src/stdlib/json.util.ts","../../common/src/stdlib/result.util.ts","../../common/src/stdlib/error-user-facing.ts","../../common/src/stdlib/error.ts","../src/auth-login.ts","../src/command-presentation.ts","../src/keychain.ts","../src/open-url.ts","../src/self-update.ts","../../common/src/stdlib/url.utils.ts","../src/settings-command.ts","../src/state.ts","../src/workos-auth.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJpbWl0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYmlnaW50IHwgc3ltYm9sIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYnVpbHQtaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCIuLi9wcmltaXRpdmVcIjtcblxuZXhwb3J0IHR5cGUgQnVpbHRpbiA9IFByaW1pdGl2ZSB8IEZ1bmN0aW9uIHwgRGF0ZSB8IEVycm9yIHwgUmVnRXhwO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIva2V5LW9mLWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEtleW9mQmFzZSA9IGtleW9mIGFueTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWV4Y2x1ZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0cmljdEV4Y2x1ZGU8VW5pb25UeXBlLCBFeGNsdWRlZE1lbWJlcnMgZXh0ZW5kcyBVbmlvblR5cGU+ID0gRXhjbHVkZTxVbmlvblR5cGUsIEV4Y2x1ZGVkTWVtYmVycz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWV4dHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0cmljdEV4dHJhY3Q8VHlwZSwgVW5pb24gZXh0ZW5kcyBQYXJ0aWFsPFR5cGU+PiA9IEV4dHJhY3Q8VHlwZSwgVW5pb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LW9taXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueUFycmF5IH0gZnJvbSBcIi4uL2FueS1hcnJheVwiO1xuaW1wb3J0IHsgQW55UmVjb3JkIH0gZnJvbSBcIi4uL2FueS1yZWNvcmRcIjtcblxuZXhwb3J0IHR5cGUgU3RyaWN0T21pdDxUeXBlIGV4dGVuZHMgQW55UmVjb3JkLCBLZXlzIGV4dGVuZHMga2V5b2YgVHlwZT4gPSBUeXBlIGV4dGVuZHMgQW55QXJyYXlcbiAgPyBuZXZlclxuICA6IE9taXQ8VHlwZSwgS2V5cz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvd3JpdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdyaXRhYmxlPFR5cGU+ID0geyAtcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogVHlwZVtLZXldIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXN5bmMtb3Itc3luYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQXN5bmNPclN5bmM8VHlwZT4gPSBQcm9taXNlTGlrZTxUeXBlPiB8IFR5cGU7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXN5bmMtb3Itc3luYy10eXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY09yU3luYyB9IGZyb20gXCIuLi9hc3luYy1vci1zeW5jXCI7XG5cbmV4cG9ydCB0eXBlIEFzeW5jT3JTeW5jVHlwZTxBc3luY09yU3luY1R5cGU+ID0gQXN5bmNPclN5bmNUeXBlIGV4dGVuZHMgQXN5bmNPclN5bmM8aW5mZXIgVHlwZT4gPyBUeXBlIDogbmV2ZXI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGljdGlvbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5b2ZCYXNlIH0gZnJvbSBcIi4uL2tleS1vZi1iYXNlXCI7XG5cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnk8VHlwZSwgS2V5cyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS2V5c106IFR5cGUgfTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGljdGlvbmFyeS12YWx1ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBgVmFsdWVPZmAgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5VmFsdWVzPFR5cGU+ID0gVHlwZVtrZXlvZiBUeXBlXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWVyZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXR0aWZ5IH0gZnJvbSBcIi4uL3ByZXR0aWZ5XCI7XG5cbmV4cG9ydCB0eXBlIE1lcmdlPE9iamVjdDEsIE9iamVjdDI+ID0gUHJldHRpZnk8T21pdDxPYmplY3QxLCBrZXlvZiBPYmplY3QyPiAmIE9iamVjdDI+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWVyZ2Utbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVyZ2UgfSBmcm9tIFwiLi4vbWVyZ2VcIjtcblxudHlwZSBfTWVyZ2VOPFR1cGxlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIFJlc3VsdD4gPSBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBIZWFkLCAuLi5pbmZlciBUYWlsXVxuICA/IF9NZXJnZU48VGFpbCwgTWVyZ2U8UmVzdWx0LCBIZWFkPj5cbiAgOiBSZXN1bHQ7XG5cbmV4cG9ydCB0eXBlIE1lcmdlTjxUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdPiA9IF9NZXJnZU48VHVwbGUsIHt9PjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV3YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdhYmxlPFJldHVyblR5cGU+IHtcbiAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFJldHVyblR5cGU7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLW5ldmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOb25OZXZlcjxUeXBlIGV4dGVuZHMge30+ID0gUGljazxcbiAgVHlwZSxcbiAgeyBbS2V5IGluIGtleW9mIFR5cGVdOiBUeXBlW0tleV0gZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogS2V5IH1ba2V5b2YgVHlwZV1cbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb21pdC1wcm9wZXJ0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBPbWl0UHJvcGVydGllczxUeXBlLCBWYWx1ZT4gPSB7IFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlW0tleV0gZXh0ZW5kcyBWYWx1ZSA/IG5ldmVyIDogS2V5XTogVHlwZVtLZXldIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb3BhcXVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN0cmluZ0xpdGVyYWw8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gKHN0cmluZyBleHRlbmRzIFR5cGUgPyBuZXZlciA6IFR5cGUpIDogbmV2ZXI7XG5cbmRlY2xhcmUgY29uc3QgX19PUEFRVUVfVFlQRV9fOiB1bmlxdWUgc3ltYm9sO1xuXG5leHBvcnQgdHlwZSBXaXRoT3BhcXVlPFRva2VuIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgcmVhZG9ubHkgW19fT1BBUVVFX1RZUEVfX106IFRva2VuO1xufTtcblxuZXhwb3J0IHR5cGUgT3BhcXVlPFR5cGUsIFRva2VuIGV4dGVuZHMgc3RyaW5nPiA9IFRva2VuIGV4dGVuZHMgU3RyaW5nTGl0ZXJhbDxUb2tlbj4gPyBUeXBlICYgV2l0aE9wYXF1ZTxUb2tlbj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGF0aC12YWx1ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuLy8gVE9ETzogbWVyZ2UgdG8gRXh0cmFjdEZyb21BcnJheVxudHlwZSBFeHRyYWN0RnJvbU9iamVjdDxPYmogZXh0ZW5kcyBSZWNvcmQ8UHJvcGVydHlLZXksIHVua25vd24+LCBLZXk+ID0gS2V5IGV4dGVuZHMga2V5b2YgT2JqXG4gID8gT2JqW0tleV1cbiAgOiBLZXkgZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxPYmo+XG4gID8gTm9uTnVsbGFibGU8T2JqPltLZXldIHwgdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuXG4vLyBUT0RPOiBtZXJnZSB0byBFeHRyYWN0RnJvbU9iamVjdFxudHlwZSBFeHRyYWN0RnJvbUFycmF5PEFyciBleHRlbmRzIHJlYWRvbmx5IGFueVtdLCBLZXk+ID0gYW55W10gZXh0ZW5kcyBBcnJcbiAgPyBBcnIgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVClbXVxuICAgID8gVCB8IHVuZGVmaW5lZFxuICAgIDogdW5kZWZpbmVkXG4gIDogS2V5IGV4dGVuZHMga2V5b2YgQXJyXG4gID8gQXJyW0tleV1cbiAgOiB1bmRlZmluZWQ7XG5cbnR5cGUgR2V0V2l0aEFycmF5PFR5cGUsIFBhdGgsIFByZXR0aWZpZWRUeXBlID0gUHJldHRpZnk8VHlwZT4+ID0gUGF0aCBleHRlbmRzIFtdXG4gID8gVHlwZVxuICA6IFBhdGggZXh0ZW5kcyBbaW5mZXIgS2V5LCAuLi5pbmZlciBSZXN0XVxuICA/IFByZXR0aWZpZWRUeXBlIGV4dGVuZHMgUmVjb3JkPFByb3BlcnR5S2V5LCB1bmtub3duPlxuICAgID8gR2V0V2l0aEFycmF5PEV4dHJhY3RGcm9tT2JqZWN0PFByZXR0aWZpZWRUeXBlLCBLZXk+LCBSZXN0PlxuICAgIDogVHlwZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdXG4gICAgPyBHZXRXaXRoQXJyYXk8RXh0cmFjdEZyb21BcnJheTxUeXBlLCBLZXk+LCBSZXN0PlxuICAgIDogdW5kZWZpbmVkXG4gIDogbmV2ZXI7XG5cbnR5cGUgUGF0aDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBLZXl9LiR7aW5mZXIgUmVzdH1gXG4gID8gW0tleSwgLi4uUGF0aDxSZXN0Pl1cbiAgOiBUeXBlIGV4dGVuZHMgYCR7aW5mZXIgS2V5fWBcbiAgPyBbS2V5XVxuICA6IFtdO1xuXG5leHBvcnQgdHlwZSBQYXRoVmFsdWU8VHlwZSwgU3RyaW5nUGF0aD4gPSBHZXRXaXRoQXJyYXk8VHlwZSwgUGF0aDxTdHJpbmdQYXRoPj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGF0aHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzTmV2ZXIgfSBmcm9tIFwiLi4vaXMtbmV2ZXJcIjtcbmltcG9ydCB7IENyZWF0ZVR5cGVPcHRpb25zIH0gZnJvbSBcIi4uL2NyZWF0ZS10eXBlLW9wdGlvbnNcIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwiLi4vdmFsdWUtb2ZcIjtcbmltcG9ydCB7IEhhc1BhcnNhYmxlUGF0aCB9IGZyb20gXCIuLi9oYXMtcGFyc2FibGUtcGF0aFwiO1xuXG50eXBlIFBhdGhhYmxlID0gc3RyaW5nIHwgbnVtYmVyO1xuXG50eXBlIERlZmF1bHRSZWN1cnNpdmVQYXRoc09wdGlvbnMgPSB7XG4gIGRlcHRoOiBbXTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGRlcHRoIFRoaXMgb3B0aW9uIGNvdW50cyB0aGUgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBjYWxscyBpblxuICogYFJlY3Vyc2l2ZVBhdGhzT3B0aW9uc1snZGVwdGgnXVsnbGVuZ3RoJ11gLiBVc2VkIGluIGNvbWJpbmF0aW9uIHdpdGhcbiAqIGBQYXRoc09wdGlvbnNbJ2RlcHRoJ11gXG4gKi9cbnR5cGUgUmVjdXJzaXZlUGF0aHNPcHRpb25zID0ge1xuICBkZXB0aDogYW55W107XG59O1xuXG4vKipcbiAqIEBwYXJhbSBkZXB0aCBCeSBkZWZhdWx0LCB0aGUgZGVwdGggb3B0aW9uIGlzIHNldCB0byA3LiBJdCBzaG91bGQgY292ZXIgdGhlXG4gKiBtYWpvcml0eSBvZiB1c2UgY2FzZXMuIElmIGJ5IGFueSBjaGFuY2UgaXQgZG9lc24ndCBmaXQgeW91LCBmZWVsIGZyZWUgdG9cbiAqIGluY3JlYXNlIHRoZSB2YWx1ZS4gSG93ZXZlciwgdGhpcyBtYXkgaW5jcmVhc2UgdGhlIGNoYW5jZSBvZiBnZXR0aW5nXG4gKiBgVHlwZSBpbnN0YW50aWF0aW9uIGlzIGV4Y2Vzc2l2ZWx5IGRlZXAgYW5kIHBvc3NpYmx5IGluZmluaXRlYCBlcnJvci5cbiAqXG4gKiBAcGFyYW0gYW55QXJyYXlJbmRleEFjY2Vzc29yIEJ5IGRlZmF1bHQgdGhlcmUgaXMgbm8gd2lsZGNhcmQgYWNjZXNzIHRvXG4gKiBhcnJheSBpbmRpY2VzIC0gdXNhZ2UgbXVzdCBiZSBpbnRlbnRpb25hbGx5IGNvbmZpZ3VyZWQuXG4gKi9cbnR5cGUgRGVmYXVsdFBhdGhzT3B0aW9ucyA9IHtcbiAgZGVwdGg6IDc7XG4gIGFueUFycmF5SW5kZXhBY2Nlc3NvcjogYCR7bnVtYmVyfWA7XG59O1xuXG4vKipcbiAqIEBwYXJhbSBkZXB0aCBUaGlzIG9wdGlvbiByZXN0cmljdHMgdGhlIGRlcHRoIG9mIHRoZSBwYXRocyBsb29rdXAgYW5kIHJlbW92ZXMgYFR5cGVcbiAqIGluc3RhbnRpYXRpb24gaXMgZXhjZXNzaXZlbHkgZGVlcCBhbmQgcG9zc2libHkgaW5maW5pdGVgIGVycm9ycyBmb3JcbiAqIHBvdGVudGlhbGx5IGluZmluaXRlIHR5cGVzLlxuICpcbiAqIEBwYXJhbSBhbnlBcnJheUluZGV4QWNjZXNzb3IgVGhpcyB3aWxkY2FyZCB3aWxsIHNhdGlzZnkgYW55IGFycmF5IGluZGV4IGlmIGRlZmluZWQuXG4gKi9cbnR5cGUgUGF0aHNPcHRpb25zID0ge1xuICBkZXB0aDogbnVtYmVyO1xuICBhbnlBcnJheUluZGV4QWNjZXNzb3I6IHN0cmluZztcbn07XG5cbnR5cGUgQXBwZW5kPFR1cGxlIGV4dGVuZHMgYW55W10+ID0gWy4uLlR1cGxlLCAwXTtcblxudHlwZSBSZWN1cnNpdmVQYXRoczxcbiAgVHlwZSxcbiAgVXNlck9wdGlvbnMgZXh0ZW5kcyBSZXF1aXJlZDxQYXRoc09wdGlvbnM+LFxuICBDYWxsT3B0aW9ucyBleHRlbmRzIFJlY3Vyc2l2ZVBhdGhzT3B0aW9ucyxcbj4gPSBJc05ldmVyPGtleW9mIFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IG5ldmVyXG4gIDogLy8gYE5vbk51bGxhYmxlYCByZW1vdmVzIGB1bmRlZmluZWRgIHdoZW4gcGFydGlhbCBwcm9wZXJ0aWVzIGV4aXN0IGluIG9iamVjdFxuICAgIE5vbk51bGxhYmxlPFxuICAgICAgVmFsdWVPZjx7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFBhdGhhYmxlXG4gICAgICAgICAgP1xuICAgICAgICAgICAgICB8IGAke0FueUFycmF5SW5kZXhBY2Nlc3Nvck9yS2V5PEtleSwgVXNlck9wdGlvbnM+fWBcbiAgICAgICAgICAgICAgfCAoQ2FsbE9wdGlvbnNbXCJkZXB0aFwiXVtcImxlbmd0aFwiXSBleHRlbmRzIFVzZXJPcHRpb25zW1wiZGVwdGhcIl1cbiAgICAgICAgICAgICAgICAgID8gLy8gU3RvcCBhdCB0aGUgY29uZmlndXJlZCBkZXB0aFxuICAgICAgICAgICAgICAgICAgICBuZXZlclxuICAgICAgICAgICAgICAgICAgOiBUeXBlW0tleV0gZXh0ZW5kcyBpbmZlciBWYWx1ZVxuICAgICAgICAgICAgICAgICAgPyBWYWx1ZSBleHRlbmRzIFZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gLy8gQXZvaWQgY2FsbGluZyBgVW5zYWZlUGF0aHNgIHRvIGtlZXAgYENhbGxPcHRpb25zYCBsb2NhbGx5XG4gICAgICAgICAgICAgICAgICAgICAgSGFzUGFyc2FibGVQYXRoPFZhbHVlPiBleHRlbmRzIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICA/IFJlY3Vyc2l2ZVBhdGhzPFxuICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogQXBwZW5kPENhbGxPcHRpb25zW1wiZGVwdGhcIl0+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+IGV4dGVuZHMgaW5mZXIgUmVzdFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBJc05ldmVyPFJlc3Q+IGV4dGVuZHMgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogUmVzdCBleHRlbmRzIFBhdGhhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7QW55QXJyYXlJbmRleEFjY2Vzc29yT3JLZXk8S2V5LCBVc2VyT3B0aW9ucz59LiR7UmVzdH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgIDogbmV2ZXIpXG4gICAgICAgICAgOiBuZXZlcjtcbiAgICAgIH0+XG4gICAgPjtcblxudHlwZSBVbnNhZmVQYXRoczxUeXBlLCBPcHRpb25zIGV4dGVuZHMgUmVxdWlyZWQ8UGF0aHNPcHRpb25zPj4gPSBUeXBlIGV4dGVuZHMgVHlwZVxuICA/IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIHRydWVcbiAgICA/IFJlY3Vyc2l2ZVBhdGhzPFR5cGUsIE9wdGlvbnMsIERlZmF1bHRSZWN1cnNpdmVQYXRoc09wdGlvbnM+XG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG50eXBlIEFueUFycmF5SW5kZXhBY2Nlc3Nvck9yS2V5PEtleSBleHRlbmRzIFBhdGhhYmxlLCBVc2VyT3B0aW9ucyBleHRlbmRzIFJlcXVpcmVkPFBhdGhzT3B0aW9ucz4+ID0gS2V5IGV4dGVuZHMgbnVtYmVyXG4gID8gS2V5IHwgVXNlck9wdGlvbnNbXCJhbnlBcnJheUluZGV4QWNjZXNzb3JcIl1cbiAgOiBLZXk7XG5cbmV4cG9ydCB0eXBlIFBhdGhzPFR5cGUsIE92ZXJyaWRlUGF0aE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFBhdGhzT3B0aW9ucz4gPSB7fT4gPSBVbnNhZmVQYXRoczxcbiAgVHlwZSxcbiAgQ3JlYXRlVHlwZU9wdGlvbnM8UGF0aHNPcHRpb25zLCBPdmVycmlkZVBhdGhPcHRpb25zLCBEZWZhdWx0UGF0aHNPcHRpb25zPlxuPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGljay1wcm9wZXJ0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQaWNrUHJvcGVydGllczxUeXBlLCBWYWx1ZT4gPSB7XG4gIFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlW0tleV0gZXh0ZW5kcyBWYWx1ZSA/IEtleSA6IG5ldmVyXTogVHlwZVtLZXldO1xufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJldHRpZnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFByZXR0aWZ5PFR5cGU+ID0gVHlwZSBleHRlbmRzIEZ1bmN0aW9uXG4gID8gVHlwZVxuICA6IEV4dHJhY3Q8XG4gICAgICB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IFR5cGVbS2V5XTtcbiAgICAgIH0sXG4gICAgICBUeXBlXG4gICAgPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc2FmZS1kaWN0aW9uYXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlvZkJhc2UgfSBmcm9tIFwiLi4va2V5LW9mLWJhc2VcIjtcblxuZXhwb3J0IHR5cGUgU2FmZURpY3Rpb25hcnk8VHlwZSwgS2V5cyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS2V5c10/OiBUeXBlIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdW5pb24tdG8taW50ZXJzZWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFVuaW9uPiA9IChVbmlvbiBleHRlbmRzIGFueSA/IChhcmc6IFVuaW9uKSA9PiB2b2lkIDogbmV2ZXIpIGV4dGVuZHMgKFxuICBhcmc6IGluZmVyIEludGVyc2VjdGlvbixcbikgPT4gdm9pZFxuICA/IEludGVyc2VjdGlvblxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdmFsdWUtb2YvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueUFycmF5IH0gZnJvbSBcIi4uL2FueS1hcnJheVwiO1xuaW1wb3J0IHsgQW55RnVuY3Rpb24gfSBmcm9tIFwiLi4vYW55LWZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiLi4vcHJpbWl0aXZlXCI7XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VHlwZT4gPSBUeXBlIGV4dGVuZHMgUHJpbWl0aXZlXG4gID8gVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBBbnlBcnJheVxuICA/IFR5cGVbbnVtYmVyXVxuICA6IFR5cGUgZXh0ZW5kcyBBbnlGdW5jdGlvblxuICA/IFJldHVyblR5cGU8VHlwZT5cbiAgOiBUeXBlW2tleW9mIFR5cGVdO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIveG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuLy8gV2hlbiBUeXBlMiBpcyB1bmtub3duLCBpdCBjcmVhdGVzIHR5cGUgd2l0aCBhbGwgcHJvcGVydGllcyBleGNsdWRlZCBmcm9tIGl0XG4vLyBlLmcuIFdpdGhvdXQ8eyBmb286IG51bWJlcjsgYmFyOiBudW1iZXIgfSwgdW5rbm93bj4gaXMgeyBmb28/OiBuZXZlcjsgYmFyPzogbmV2ZXIgfVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RzLWVzc2VudGlhbHMvdHMtZXNzZW50aWFscy9pc3N1ZXMvNDAwXG5cbnR5cGUgV2l0aG91dDxUeXBlMSwgVHlwZTI+ID0gSXNVbmtub3duPFR5cGUyPiBleHRlbmRzIHRydWVcbiAgPyBuZXZlclxuICA6IHsgW1AgaW4gRXhjbHVkZTxrZXlvZiBUeXBlMSwga2V5b2YgVHlwZTI+XT86IG5ldmVyIH07XG5cbi8vIFRoaXMgdXRpbGl0eSB0eXBlIGJvZHkgaXMgYXV0b2dlbmVyYXRlZCBpbiBKUyBieSBydW5uaW5nOlxuLy8gY29uc3QgdHlwZXMgPSBBcnJheSg1MCkuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiBgVHlwZSR7aW5kZXggKyAxfWApXG4vLyB0eXBlcy5tYXAodHlwZSA9PiBgV2l0aG91dDwke3R5cGVzLmZpbHRlcih0ID0+IHQgIT09IHR5cGUpLmpvaW4oJyYnKX0sICR7dHlwZX0+ICYgJHt0eXBlfWApLmpvaW4oJ3wnKVxuZXhwb3J0IHR5cGUgWE9SPFxuICBUeXBlMSxcbiAgVHlwZTIsXG4gIFR5cGUzID0gdW5rbm93bixcbiAgVHlwZTQgPSB1bmtub3duLFxuICBUeXBlNSA9IHVua25vd24sXG4gIFR5cGU2ID0gdW5rbm93bixcbiAgVHlwZTcgPSB1bmtub3duLFxuICBUeXBlOCA9IHVua25vd24sXG4gIFR5cGU5ID0gdW5rbm93bixcbiAgVHlwZTEwID0gdW5rbm93bixcbiAgVHlwZTExID0gdW5rbm93bixcbiAgVHlwZTEyID0gdW5rbm93bixcbiAgVHlwZTEzID0gdW5rbm93bixcbiAgVHlwZTE0ID0gdW5rbm93bixcbiAgVHlwZTE1ID0gdW5rbm93bixcbiAgVHlwZTE2ID0gdW5rbm93bixcbiAgVHlwZTE3ID0gdW5rbm93bixcbiAgVHlwZTE4ID0gdW5rbm93bixcbiAgVHlwZTE5ID0gdW5rbm93bixcbiAgVHlwZTIwID0gdW5rbm93bixcbiAgVHlwZTIxID0gdW5rbm93bixcbiAgVHlwZTIyID0gdW5rbm93bixcbiAgVHlwZTIzID0gdW5rbm93bixcbiAgVHlwZTI0ID0gdW5rbm93bixcbiAgVHlwZTI1ID0gdW5rbm93bixcbiAgVHlwZTI2ID0gdW5rbm93bixcbiAgVHlwZTI3ID0gdW5rbm93bixcbiAgVHlwZTI4ID0gdW5rbm93bixcbiAgVHlwZTI5ID0gdW5rbm93bixcbiAgVHlwZTMwID0gdW5rbm93bixcbiAgVHlwZTMxID0gdW5rbm93bixcbiAgVHlwZTMyID0gdW5rbm93bixcbiAgVHlwZTMzID0gdW5rbm93bixcbiAgVHlwZTM0ID0gdW5rbm93bixcbiAgVHlwZTM1ID0gdW5rbm93bixcbiAgVHlwZTM2ID0gdW5rbm93bixcbiAgVHlwZTM3ID0gdW5rbm93bixcbiAgVHlwZTM4ID0gdW5rbm93bixcbiAgVHlwZTM5ID0gdW5rbm93bixcbiAgVHlwZTQwID0gdW5rbm93bixcbiAgVHlwZTQxID0gdW5rbm93bixcbiAgVHlwZTQyID0gdW5rbm93bixcbiAgVHlwZTQzID0gdW5rbm93bixcbiAgVHlwZTQ0ID0gdW5rbm93bixcbiAgVHlwZTQ1ID0gdW5rbm93bixcbiAgVHlwZTQ2ID0gdW5rbm93bixcbiAgVHlwZTQ3ID0gdW5rbm93bixcbiAgVHlwZTQ4ID0gdW5rbm93bixcbiAgVHlwZTQ5ID0gdW5rbm93bixcbiAgVHlwZTUwID0gdW5rbm93bixcbj4gPSBQcmV0dGlmeTxcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMVxuICAgID4gJlxuICAgICAgVHlwZTEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTJcbiAgICA+ICZcbiAgICAgIFR5cGUyKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzXG4gICAgPiAmXG4gICAgICBUeXBlMylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNFxuICAgID4gJlxuICAgICAgVHlwZTQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTVcbiAgICA+ICZcbiAgICAgIFR5cGU1KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU2XG4gICAgPiAmXG4gICAgICBUeXBlNilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlN1xuICAgID4gJlxuICAgICAgVHlwZTcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZThcbiAgICA+ICZcbiAgICAgIFR5cGU4KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU5XG4gICAgPiAmXG4gICAgICBUeXBlOSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxMFxuICAgID4gJlxuICAgICAgVHlwZTEwKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTExXG4gICAgPiAmXG4gICAgICBUeXBlMTEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMTJcbiAgICA+ICZcbiAgICAgIFR5cGUxMilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxM1xuICAgID4gJlxuICAgICAgVHlwZTEzKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTE0XG4gICAgPiAmXG4gICAgICBUeXBlMTQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMTVcbiAgICA+ICZcbiAgICAgIFR5cGUxNSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxNlxuICAgID4gJlxuICAgICAgVHlwZTE2KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTE3XG4gICAgPiAmXG4gICAgICBUeXBlMTcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMThcbiAgICA+ICZcbiAgICAgIFR5cGUxOClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxOVxuICAgID4gJlxuICAgICAgVHlwZTE5KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTIwXG4gICAgPiAmXG4gICAgICBUeXBlMjApXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjFcbiAgICA+ICZcbiAgICAgIFR5cGUyMSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyMlxuICAgID4gJlxuICAgICAgVHlwZTIyKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTIzXG4gICAgPiAmXG4gICAgICBUeXBlMjMpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjRcbiAgICA+ICZcbiAgICAgIFR5cGUyNClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyNVxuICAgID4gJlxuICAgICAgVHlwZTI1KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTI2XG4gICAgPiAmXG4gICAgICBUeXBlMjYpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjdcbiAgICA+ICZcbiAgICAgIFR5cGUyNylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyOFxuICAgID4gJlxuICAgICAgVHlwZTI4KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTI5XG4gICAgPiAmXG4gICAgICBUeXBlMjkpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzBcbiAgICA+ICZcbiAgICAgIFR5cGUzMClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzMVxuICAgID4gJlxuICAgICAgVHlwZTMxKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTMyXG4gICAgPiAmXG4gICAgICBUeXBlMzIpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzNcbiAgICA+ICZcbiAgICAgIFR5cGUzMylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzNFxuICAgID4gJlxuICAgICAgVHlwZTM0KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTM1XG4gICAgPiAmXG4gICAgICBUeXBlMzUpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzZcbiAgICA+ICZcbiAgICAgIFR5cGUzNilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzN1xuICAgID4gJlxuICAgICAgVHlwZTM3KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTM4XG4gICAgPiAmXG4gICAgICBUeXBlMzgpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzlcbiAgICA+ICZcbiAgICAgIFR5cGUzOSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0MFxuICAgID4gJlxuICAgICAgVHlwZTQwKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQxXG4gICAgPiAmXG4gICAgICBUeXBlNDEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDJcbiAgICA+ICZcbiAgICAgIFR5cGU0MilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0M1xuICAgID4gJlxuICAgICAgVHlwZTQzKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQ0XG4gICAgPiAmXG4gICAgICBUeXBlNDQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDVcbiAgICA+ICZcbiAgICAgIFR5cGU0NSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0NlxuICAgID4gJlxuICAgICAgVHlwZTQ2KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQ3XG4gICAgPiAmXG4gICAgICBUeXBlNDcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDhcbiAgICA+ICZcbiAgICAgIFR5cGU0OClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0OVxuICAgID4gJlxuICAgICAgVHlwZTQ5KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5LFxuICAgICAgVHlwZTUwXG4gICAgPiAmXG4gICAgICBUeXBlNTApXG4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1vcHRpb25hbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWxLZXlzIH0gZnJvbSBcIi4uL29wdGlvbmFsLWtleXNcIjtcbmltcG9ydCB7IFByZXR0aWZ5IH0gZnJvbSBcIi4uL3ByZXR0aWZ5XCI7XG5cbmV4cG9ydCB0eXBlIE1hcmtPcHRpb25hbDxUeXBlLCBLZXlzIGV4dGVuZHMga2V5b2YgVHlwZT4gPSBUeXBlIGV4dGVuZHMgVHlwZVxuICA/IFByZXR0aWZ5PFBhcnRpYWw8VHlwZT4gJiBSZXF1aXJlZDxPbWl0PFR5cGUsIEtleXMgfCBPcHRpb25hbEtleXM8VHlwZT4+Pj5cbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1yZWFkb25seS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZG9ubHlLZXlzIH0gZnJvbSBcIi4uL3JlYWRvbmx5LWtleXNcIjtcbmltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSBcIi4uL3dyaXRhYmxlXCI7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gXCIuLi9wcmV0dGlmeVwiO1xuXG5leHBvcnQgdHlwZSBNYXJrUmVhZG9ubHk8VHlwZSwgS2V5cyBleHRlbmRzIGtleW9mIFR5cGU+ID0gVHlwZSBleHRlbmRzIFR5cGVcbiAgPyBQcmV0dGlmeTxSZWFkb25seTxUeXBlPiAmIFdyaXRhYmxlPE9taXQ8VHlwZSwgS2V5cyB8IFJlYWRvbmx5S2V5czxUeXBlICYgb2JqZWN0Pj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1yZXF1aXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuZXhwb3J0IHR5cGUgTWFya1JlcXVpcmVkPFR5cGUsIEtleXMgZXh0ZW5kcyBrZXlvZiBUeXBlPiA9IFR5cGUgZXh0ZW5kcyBUeXBlXG4gID8gUHJldHRpZnk8VHlwZSAmIFJlcXVpcmVkPE9taXQ8VHlwZSwgRXhjbHVkZTxrZXlvZiBUeXBlLCBLZXlzPj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay13cml0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tIFwiLi4vd3JpdGFibGVcIjtcbmltcG9ydCB7IFdyaXRhYmxlS2V5cyB9IGZyb20gXCIuLi93cml0YWJsZS1rZXlzXCI7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gXCIuLi9wcmV0dGlmeVwiO1xuXG5leHBvcnQgdHlwZSBNYXJrV3JpdGFibGU8VHlwZSwgS2V5cyBleHRlbmRzIGtleW9mIFR5cGU+ID0gVHlwZSBleHRlbmRzIFR5cGVcbiAgPyBQcmV0dGlmeTxSZWFkb25seTxUeXBlPiAmIFdyaXRhYmxlPE9taXQ8VHlwZSwgRXhjbHVkZTxrZXlvZiBUeXBlLCBXcml0YWJsZUtleXM8VHlwZSAmIG9iamVjdD4gfCBLZXlzPj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYnVpbGRhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gXCIuLi9kZWVwLXBhcnRpYWxcIjtcbmltcG9ydCB7IERlZXBXcml0YWJsZSB9IGZyb20gXCIuLi9kZWVwLXdyaXRhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkYWJsZTxUeXBlPiA9IERlZXBQYXJ0aWFsPERlZXBXcml0YWJsZTxUeXBlPj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1tYXJrLW9wdGlvbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNQYXJzYWJsZVBhdGggfSBmcm9tIFwiLi4vaGFzLXBhcnNhYmxlLXBhdGhcIjtcbmltcG9ydCB7IE1hcmtPcHRpb25hbCB9IGZyb20gXCIuLi9tYXJrLW9wdGlvbmFsXCI7XG5pbXBvcnQgeyBQYXRocyB9IGZyb20gXCIuLi9wYXRoc1wiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcbmltcG9ydCB7IFVuaW9uVG9UdXBsZSB9IGZyb20gXCIuLi91bmlvbi10by10dXBsZVwiO1xuXG50eXBlIFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWxTaW5nbGVQYXRoPFR5cGUsIEtleVBhdGg+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IEtleVBhdGggZXh0ZW5kcyBgJHtpbmZlciBQcm9wZXJ0eUtleX0uJHtpbmZlciBSZXN0S2V5UGF0aH1gXG4gICAgPyB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFByb3BlcnR5S2V5XG4gICAgICAgICAgPyBQcmV0dGlmeTxSZWN1cnNpdmVEZWVwTWFya09wdGlvbmFsU2luZ2xlUGF0aDxUeXBlW0tleV0sIFJlc3RLZXlQYXRoPj5cbiAgICAgICAgICA6IFR5cGVbS2V5XTtcbiAgICAgIH1cbiAgICA6IFByZXR0aWZ5PE1hcmtPcHRpb25hbDxUeXBlLCBLZXlQYXRoICYga2V5b2YgVHlwZT4+XG4gIDogVHlwZTtcblxudHlwZSBSZWN1cnNpdmVEZWVwTWFya09wdGlvbmFsPEFjY3VtdWxhdG9yLCBLZXlQYXRocyBleHRlbmRzIHN0cmluZ1tdPiA9IEtleVBhdGhzIGV4dGVuZHMgW1xuICBpbmZlciBLZXlQYXRoLFxuICAuLi5pbmZlciBSZXN0S2V5UGF0aHMsXG5dXG4gID8gUmVzdEtleVBhdGhzIGV4dGVuZHMgc3RyaW5nW11cbiAgICA/IC8vIEtlZXAgYWxsIHRoZSBjaGFuZ2VzIGluIGBBY2N1bXVsYXRvcmBcbiAgICAgIFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWw8UmVjdXJzaXZlRGVlcE1hcmtPcHRpb25hbFNpbmdsZVBhdGg8QWNjdW11bGF0b3IsIEtleVBhdGg+LCBSZXN0S2V5UGF0aHM+XG4gICAgOiBuZXZlclxuICA6IEFjY3VtdWxhdG9yO1xuXG5leHBvcnQgdHlwZSBEZWVwTWFya09wdGlvbmFsPFR5cGUsIEtleVBhdGhVbmlvbiBleHRlbmRzIFBhdGhzPFR5cGU+PiA9IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIGZhbHNlXG4gID8gVHlwZVxuICA6IFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWw8VHlwZSwgVW5pb25Ub1R1cGxlPEtleVBhdGhVbmlvbj4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1tYXJrLXJlcXVpcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNQYXJzYWJsZVBhdGggfSBmcm9tIFwiLi4vaGFzLXBhcnNhYmxlLXBhdGhcIjtcbmltcG9ydCB7IE1hcmtSZXF1aXJlZCB9IGZyb20gXCIuLi9tYXJrLXJlcXVpcmVkXCI7XG5pbXBvcnQgeyBQYXRocyB9IGZyb20gXCIuLi9wYXRoc1wiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcbmltcG9ydCB7IFVuaW9uVG9UdXBsZSB9IGZyb20gXCIuLi91bmlvbi10by10dXBsZVwiO1xuXG50eXBlIFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWRTaW5nbGVQYXRoPFR5cGUsIEtleVBhdGg+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IEtleVBhdGggZXh0ZW5kcyBgJHtpbmZlciBQcm9wZXJ0eUtleX0uJHtpbmZlciBSZXN0S2V5UGF0aH1gXG4gICAgPyB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFByb3BlcnR5S2V5XG4gICAgICAgICAgPyBQcmV0dGlmeTxSZWN1cnNpdmVEZWVwTWFya1JlcXVpcmVkU2luZ2xlUGF0aDxUeXBlW0tleV0sIFJlc3RLZXlQYXRoPj5cbiAgICAgICAgICA6IFR5cGVbS2V5XTtcbiAgICAgIH1cbiAgICA6IFByZXR0aWZ5PE1hcmtSZXF1aXJlZDxUeXBlLCBLZXlQYXRoICYga2V5b2YgVHlwZT4+XG4gIDogVHlwZTtcblxudHlwZSBSZWN1cnNpdmVEZWVwTWFya1JlcXVpcmVkPEFjY3VtdWxhdG9yLCBLZXlQYXRocyBleHRlbmRzIHN0cmluZ1tdPiA9IEtleVBhdGhzIGV4dGVuZHMgW1xuICBpbmZlciBLZXlQYXRoLFxuICAuLi5pbmZlciBSZXN0S2V5UGF0aHMsXG5dXG4gID8gUmVzdEtleVBhdGhzIGV4dGVuZHMgc3RyaW5nW11cbiAgICA/IC8vIEtlZXAgYWxsIHRoZSBjaGFuZ2VzIGluIGBBY2N1bXVsYXRvcmBcbiAgICAgIFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWQ8UmVjdXJzaXZlRGVlcE1hcmtSZXF1aXJlZFNpbmdsZVBhdGg8QWNjdW11bGF0b3IsIEtleVBhdGg+LCBSZXN0S2V5UGF0aHM+XG4gICAgOiBuZXZlclxuICA6IEFjY3VtdWxhdG9yO1xuXG5leHBvcnQgdHlwZSBEZWVwTWFya1JlcXVpcmVkPFR5cGUsIEtleVBhdGhVbmlvbiBleHRlbmRzIFBhdGhzPFR5cGU+PiA9IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIGZhbHNlXG4gID8gVHlwZVxuICA6IFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWQ8VHlwZSwgVW5pb25Ub1R1cGxlPEtleVBhdGhVbmlvbj4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1ub24tbnVsbGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWx0aW4gfSBmcm9tIFwiLi4vYnVpbHQtaW5cIjtcblxuZXhwb3J0IHR5cGUgRGVlcE5vbk51bGxhYmxlPFR5cGU+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBOb25OdWxsYWJsZTxUeXBlPlxuICA6IFR5cGUgZXh0ZW5kcyBNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IE1hcDxEZWVwTm9uTnVsbGFibGU8S2V5cz4sIERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlNYXA8RGVlcE5vbk51bGxhYmxlPEtleXM+LCBEZWVwTm9uTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gV2Vha01hcDxEZWVwTm9uTnVsbGFibGU8S2V5cz4sIERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFNldDxEZWVwTm9uTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrU2V0PERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFZhbHVlcz5cbiAgPyBQcm9taXNlPERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcE5vbk51bGxhYmxlPFR5cGVbS2V5XT4gfVxuICA6IE5vbk51bGxhYmxlPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1udWxsYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNUdXBsZSB9IGZyb20gXCIuLi9pcy10dXBsZVwiO1xuXG5leHBvcnQgdHlwZSBEZWVwTnVsbGFibGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQnVpbHRpblxuICA/IFR5cGUgfCBudWxsXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gTWFwPERlZXBOdWxsYWJsZTxLZXlzPiwgRGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwTnVsbGFibGU8S2V5cz4sIERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyAvLyBUT0RPOiByZXBsYWNlIGl0IHdpdGggV2Vha0tleSAoaW50cm9kdWNlZCBhdCBUeXBlU2NyaXB0QDUuMilcbiAgICAvLyBXZWFrTWFwIGtleSBoYXMgdG8gc2F0aXNmeSBXZWFrS2V5IHdoaWNoIGlzIG9iamVjdCBhdCB0aGUgbW9tZW50XG4gICAgRGVlcE51bGxhYmxlPEtleXM+IGV4dGVuZHMgb2JqZWN0XG4gICAgPyBXZWFrTWFwPERlZXBOdWxsYWJsZTxLZXlzPiwgRGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gICAgOiBuZXZlclxuICA6IFR5cGUgZXh0ZW5kcyBTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFNldDxEZWVwTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyAvLyBUT0RPOiByZXBsYWNlIGl0IHdpdGggV2Vha0tleSAoaW50cm9kdWNlZCBhdCBUeXBlU2NyaXB0QDUuMilcbiAgICAvLyBXZWFrU2V0IGtleSBoYXMgdG8gc2F0aXNmeSBXZWFrS2V5IHdoaWNoIGlzIG9iamVjdCBhdCB0aGUgbW9tZW50XG4gICAgRGVlcE51bGxhYmxlPFZhbHVlcz4gZXh0ZW5kcyBvYmplY3RcbiAgICA/IFdlYWtTZXQ8RGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gICAgOiBuZXZlclxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBUeXBlIGV4dGVuZHMgSXNUdXBsZTxUeXBlPlxuICAgID8geyBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwTnVsbGFibGU8VHlwZVtLZXldPiB8IG51bGwgfVxuICAgIDogVHlwZSBleHRlbmRzIEFycmF5PFZhbHVlcz5cbiAgICA/IEFycmF5PERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICAgIDogUmVhZG9ubHlBcnJheTxEZWVwTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBWYWx1ZT5cbiAgPyBQcm9taXNlPERlZXBOdWxsYWJsZTxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIHt9XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwTnVsbGFibGU8VHlwZVtLZXldPiB9XG4gIDogVHlwZSB8IG51bGw7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1vbWl0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlSZWNvcmQgfSBmcm9tIFwiLi4vYW55LXJlY29yZFwiO1xuaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuXG5leHBvcnQgdHlwZSBEZWVwT21pdDxUeXBlLCBGaWx0ZXI+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgTWFwPEtleXMsIGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IE1hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seU1hcDxLZXlzLCBpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seU1hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtNYXA8S2V5cywgaW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha01hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgU2V0PGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IFNldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seVNldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha1NldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIEFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBBcnJheTxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBGaWx0ZXJWYWx1ZT5cbiAgICA/IFByb21pc2U8RGVlcE9taXQ8VmFsdWUsIEZpbHRlclZhbHVlPj5cbiAgICA6IFR5cGVcbiAgOiBGaWx0ZXIgZXh0ZW5kcyBBbnlSZWNvcmRcbiAgPyB7XG4gICAgICBbS2V5IGluIGtleW9mIFR5cGUgYXMgS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyXG4gICAgICAgID8gRmlsdGVyW0tleV0gZXh0ZW5kcyB0cnVlXG4gICAgICAgICAgPyBuZXZlclxuICAgICAgICAgIDogS2V5XG4gICAgICAgIDogS2V5XTogS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyID8gRGVlcE9taXQ8VHlwZVtLZXldLCBGaWx0ZXJbS2V5XT4gOiBUeXBlW0tleV07XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1wYXJ0aWFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsdGluIH0gZnJvbSBcIi4uL2J1aWx0LWluXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5pbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBFeGNsdWRlPEJ1aWx0aW4sIEVycm9yPlxuICA/IFR5cGVcbiAgOiBUeXBlIGV4dGVuZHMgTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBNYXA8RGVlcFBhcnRpYWw8S2V5cz4sIERlZXBQYXJ0aWFsPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwUGFydGlhbDxLZXlzPiwgRGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gV2Vha01hcDxEZWVwUGFydGlhbDxLZXlzPiwgRGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBQYXJ0aWFsPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWYWx1ZXM+XG4gID8gVHlwZSBleHRlbmRzIElzVHVwbGU8VHlwZT5cbiAgICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXT86IERlZXBQYXJ0aWFsPFR5cGVbS2V5XT4gfVxuICAgIDogVHlwZSBleHRlbmRzIEFycmF5PFZhbHVlcz5cbiAgICA/IEFycmF5PERlZXBQYXJ0aWFsPFZhbHVlcz4gfCB1bmRlZmluZWQ+XG4gICAgOiBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFZhbHVlcz4gfCB1bmRlZmluZWQ+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwUGFydGlhbDxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIHt9XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGVdPzogRGVlcFBhcnRpYWw8VHlwZVtLZXldPiB9XG4gIDogSXNVbmtub3duPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IHVua25vd25cbiAgOiBQYXJ0aWFsPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1waWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlSZWNvcmQgfSBmcm9tIFwiLi4vYW55LXJlY29yZFwiO1xuaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUGljazxUeXBlLCBGaWx0ZXI+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgTWFwPEtleXMsIGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IE1hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seU1hcDxLZXlzLCBpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seU1hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtNYXA8S2V5cywgaW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha01hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgU2V0PGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IFNldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seVNldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha1NldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIEFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBBcnJheTxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBGaWx0ZXJWYWx1ZT5cbiAgICA/IFByb21pc2U8RGVlcFBpY2s8VmFsdWUsIEZpbHRlclZhbHVlPj5cbiAgICA6IFR5cGVcbiAgOiBGaWx0ZXIgZXh0ZW5kcyBBbnlSZWNvcmRcbiAgPyB7XG4gICAgICAvLyBpdGVyYXRlIG92ZXIga2V5cyBvZiBUeXBlLCB3aGljaCBrZWVwcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQga2V5czogb3B0aW9uYWwsIHJlcXVpcmVkIG9yIHJlYWRvbmx5XG4gICAgICBbS2V5IGluIGtleW9mIFR5cGUgYXMgS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyID8gS2V5IDogbmV2ZXJdOiBGaWx0ZXJbS2V5ICYga2V5b2YgRmlsdGVyXSBleHRlbmRzIHRydWVcbiAgICAgICAgPyBUeXBlW0tleV1cbiAgICAgICAgOiBLZXkgZXh0ZW5kcyBrZXlvZiBGaWx0ZXJcbiAgICAgICAgPyBEZWVwUGljazxUeXBlW0tleV0sIEZpbHRlcltLZXldPlxuICAgICAgICA6IG5ldmVyO1xuICAgIH1cbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1yZWFkb25seS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5pbXBvcnQgeyBCdWlsdGluIH0gZnJvbSBcIi4uL2J1aWx0LWluXCI7XG5pbXBvcnQgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5pbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUmVhZG9ubHk8VHlwZT4gPSBUeXBlIGV4dGVuZHMgRXhjbHVkZTxCdWlsdGluLCBFcnJvcj5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlNYXA8RGVlcFJlYWRvbmx5PEtleXM+LCBEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLZXlzPiwgRGVlcFJlYWRvbmx5PFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFdlYWtNYXA8RGVlcFJlYWRvbmx5PEtleXM+LCBEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seVNldDxEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrU2V0PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFZhbHVlPlxuICA/IFByb21pc2U8RGVlcFJlYWRvbmx5PFZhbHVlPj5cbiAgOiBUeXBlIGV4dGVuZHMgQW55QXJyYXk8aW5mZXIgVmFsdWVzPlxuICA/IElzTmV2ZXI8SXNUdXBsZTxUeXBlPj4gZXh0ZW5kcyBmYWxzZVxuICAgID8geyByZWFkb25seSBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwUmVhZG9ubHk8VHlwZVtLZXldPiB9XG4gICAgOiBSZWFkb25seUFycmF5PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcFJlYWRvbmx5PFR5cGVbS2V5XT4gfVxuICA6IElzVW5rbm93bjxUeXBlPiBleHRlbmRzIHRydWVcbiAgPyB1bmtub3duXG4gIDogUmVhZG9ubHk8VHlwZT47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1yZXF1aXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHR5cGUgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5cbmV4cG9ydCB0eXBlIERlZXBSZXF1aXJlZDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBFcnJvclxuICA/IFJlcXVpcmVkPFR5cGU+XG4gIDogVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gTWFwPERlZXBSZXF1aXJlZDxLZXlzPiwgRGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwUmVxdWlyZWQ8S2V5cz4sIERlZXBSZXF1aXJlZDxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrTWFwPERlZXBSZXF1aXJlZDxLZXlzPiwgRGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gU2V0PERlZXBSZXF1aXJlZDxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwUmVxdWlyZWQ8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBJc05ldmVyPElzVHVwbGU8VHlwZT4+IGV4dGVuZHMgZmFsc2VcbiAgICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXS0/OiBEZWVwUmVxdWlyZWQ8VHlwZVtLZXldPiB9XG4gICAgOiBUeXBlIGV4dGVuZHMgQXJyYXk8VmFsdWVzPlxuICAgID8gQXJyYXk8RXhjbHVkZTxEZWVwUmVxdWlyZWQ8VmFsdWVzPiwgdW5kZWZpbmVkPj5cbiAgICA6IFJlYWRvbmx5QXJyYXk8RXhjbHVkZTxEZWVwUmVxdWlyZWQ8VmFsdWVzPiwgdW5kZWZpbmVkPj5cbiAgOiBUeXBlIGV4dGVuZHMge31cbiAgPyB7IFtLZXkgaW4ga2V5b2YgVHlwZV0tPzogRGVlcFJlcXVpcmVkPFR5cGVbS2V5XT4gfVxuICA6IFJlcXVpcmVkPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC11bmRlZmluYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNUdXBsZSB9IGZyb20gXCIuLi9pcy10dXBsZVwiO1xuXG5leHBvcnQgdHlwZSBEZWVwVW5kZWZpbmFibGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQnVpbHRpblxuICA/IFR5cGUgfCB1bmRlZmluZWRcbiAgOiBUeXBlIGV4dGVuZHMgTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBNYXA8RGVlcFVuZGVmaW5hYmxlPEtleXM+LCBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5TWFwPERlZXBVbmRlZmluYWJsZTxLZXlzPiwgRGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IC8vIFRPRE86IHJlcGxhY2UgaXQgd2l0aCBXZWFrS2V5IChpbnRyb2R1Y2VkIGF0IFR5cGVTY3JpcHRANS4yKVxuICAgIC8vIFdlYWtNYXAga2V5IGhhcyB0byBzYXRpc2Z5IFdlYWtLZXkgd2hpY2ggaXMgb2JqZWN0IGF0IHRoZSBtb21lbnRcbiAgICBEZWVwVW5kZWZpbmFibGU8S2V5cz4gZXh0ZW5kcyBvYmplY3RcbiAgICA/IFdlYWtNYXA8RGVlcFVuZGVmaW5hYmxlPEtleXM+LCBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gU2V0PERlZXBVbmRlZmluYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IC8vIFRPRE86IHJlcGxhY2UgaXQgd2l0aCBXZWFrS2V5IChpbnRyb2R1Y2VkIGF0IFR5cGVTY3JpcHRANS4yKVxuICAgIC8vIFdlYWtTZXQga2V5IGhhcyB0byBzYXRpc2Z5IFdlYWtLZXkgd2hpY2ggaXMgb2JqZWN0IGF0IHRoZSBtb21lbnRcbiAgICBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPiBleHRlbmRzIG9iamVjdFxuICAgID8gV2Vha1NldDxEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVmFsdWVzPlxuICA/IFR5cGUgZXh0ZW5kcyBJc1R1cGxlPFR5cGU+XG4gICAgPyB7IFtLZXkgaW4ga2V5b2YgVHlwZV06IERlZXBVbmRlZmluYWJsZTxUeXBlW0tleV0+IHwgdW5kZWZpbmVkIH1cbiAgICA6IFR5cGUgZXh0ZW5kcyBBcnJheTxWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IFJlYWRvbmx5QXJyYXk8RGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwVW5kZWZpbmFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcFVuZGVmaW5hYmxlPFR5cGVbS2V5XT4gfVxuICA6IFR5cGUgfCB1bmRlZmluZWQ7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC13cml0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNVbmtub3duIH0gZnJvbSBcIi4uL2lzLXVua25vd25cIjtcblxuZXhwb3J0IHR5cGUgRGVlcFdyaXRhYmxlPFR5cGU+ID0gVHlwZSBleHRlbmRzIEV4Y2x1ZGU8QnVpbHRpbiwgRXJyb3I+XG4gID8gVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBNYXA8aW5mZXIgS2V5LCBpbmZlciBWYWx1ZT5cbiAgPyBNYXA8RGVlcFdyaXRhYmxlPEtleT4sIERlZXBXcml0YWJsZTxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleSwgaW5mZXIgVmFsdWU+XG4gID8gTWFwPERlZXBXcml0YWJsZTxLZXk+LCBEZWVwV3JpdGFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleSwgaW5mZXIgVmFsdWU+XG4gID8gV2Vha01hcDxEZWVwV3JpdGFibGU8S2V5PiwgRGVlcFdyaXRhYmxlPFZhbHVlPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwV3JpdGFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgLXJlYWRvbmx5IFtLZXkgaW4ga2V5b2YgVHlwZV06IERlZXBXcml0YWJsZTxUeXBlW0tleV0+IH1cbiAgOiBJc1Vua25vd248VHlwZT4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFR5cGU7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWRlZXAtb21pdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcE1vZGlmeSB9IGZyb20gXCIuLi9kZWVwLW1vZGlmeVwiO1xuaW1wb3J0IHsgRGVlcE9taXQgfSBmcm9tIFwiLi4vZGVlcC1vbWl0XCI7XG5cbmV4cG9ydCB0eXBlIFN0cmljdERlZXBPbWl0PFR5cGUsIEZpbHRlciBleHRlbmRzIERlZXBNb2RpZnk8VHlwZT4+ID0gRGVlcE9taXQ8VHlwZSwgRmlsdGVyPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWRlZXAtcGljay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcE1vZGlmeSB9IGZyb20gXCIuLi9kZWVwLW1vZGlmeVwiO1xuaW1wb3J0IHsgRGVlcFBpY2sgfSBmcm9tIFwiLi4vZGVlcC1waWNrXCI7XG5cbmV4cG9ydCB0eXBlIFN0cmljdERlZXBQaWNrPFR5cGUsIEZpbHRlciBleHRlbmRzIERlZXBNb2RpZnk8VHlwZT4+ID0gRGVlcFBpY2s8VHlwZSwgRmlsdGVyPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb3B0aW9uYWwta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3B0aW9uYWxLZXlzPFR5cGU+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IGtleW9mIHtcbiAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlIGV4dGVuZHMgUmVxdWlyZWQ8UGljazxUeXBlLCBLZXk+PiA/IG5ldmVyIDogS2V5XTogbmV2ZXI7XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGljay1rZXlzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaWNrUHJvcGVydGllcyB9IGZyb20gXCIuLi9waWNrLXByb3BlcnRpZXNcIjtcblxuZXhwb3J0IHR5cGUgUGlja0tleXM8VHlwZSwgVmFsdWU+ID0ga2V5b2YgUGlja1Byb3BlcnRpZXM8VHlwZSwgVmFsdWU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVhZG9ubHkta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXNGdWxseVdyaXRhYmxlIH0gZnJvbSBcIi4uL2lzLWZ1bGx5LXdyaXRhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIFJlYWRvbmx5S2V5czxUeXBlIGV4dGVuZHMgb2JqZWN0PiA9IFR5cGUgZXh0ZW5kcyB1bmtub3duXG4gID8ga2V5b2Yge1xuICAgICAgW0tleSBpbiBrZXlvZiBUeXBlIGFzIElzRnVsbHlXcml0YWJsZTxQaWNrPFR5cGUsIEtleT4+IGV4dGVuZHMgdHJ1ZSA/IG5ldmVyIDogS2V5XTogbmV2ZXI7XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVxdWlyZWQta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWxLZXlzIH0gZnJvbSBcIi4uL29wdGlvbmFsLWtleXNcIjtcblxuZXhwb3J0IHR5cGUgUmVxdWlyZWRLZXlzPFR5cGU+ID0gVHlwZSBleHRlbmRzIHVua25vd24gPyBFeGNsdWRlPGtleW9mIFR5cGUsIE9wdGlvbmFsS2V5czxUeXBlPj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvd3JpdGFibGUta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZG9ubHlLZXlzIH0gZnJvbSBcIi4uL3JlYWRvbmx5LWtleXNcIjtcblxuZXhwb3J0IHR5cGUgV3JpdGFibGVLZXlzPFR5cGUgZXh0ZW5kcyBvYmplY3Q+ID0gVHlwZSBleHRlbmRzIHVua25vd24gPyBFeGNsdWRlPGtleW9mIFR5cGUsIFJlYWRvbmx5S2V5czxUeXBlPj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXhhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueVJlY29yZCB9IGZyb20gXCIuLi9hbnktcmVjb3JkXCI7XG5pbXBvcnQgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5cbnR5cGUgSXNVbmlvbjxUVW5pb24+ID0gVW5pb25Ub1R1cGxlPFRVbmlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAxID8gZmFsc2UgOiB0cnVlO1xuXG50eXBlIFVuaW9uVG9GdW5jdGlvbkluc2VydGlvbjxUVW5pb24+ID0gKFRVbmlvbiBleHRlbmRzIGFueSA/IChhcmc6ICgpID0+IFRVbmlvbikgPT4gYW55IDogbmV2ZXIpIGV4dGVuZHMgKFxuICBhcmc6IGluZmVyIFRQYXJhbSxcbikgPT4gYW55XG4gID8gVFBhcmFtXG4gIDogbmV2ZXI7XG5cbi8vIE5PVEU6IFdoZW4gcmVwbGFjaW5nIHRoZSB1dGlsaXR5IHR5cGUgd2l0aCBgVW5pb25Ub1R1cGxlYCBmcm9tIGAuLi91bmlvbi10by10dXBsZWAsXG4vLyBgaXNCQyhiY09yQmMzKWAgZmFpbHMgYmVjYXVzZSBgaXNCQ2AgYWxsb3dzIGBCQyB8IHtyZWFkb25seSBiOiAyO3JlYWRvbmx5IGM6IDM7fWAgYXMgcGFyYW1ldGVyPz8/XG50eXBlIFVuaW9uVG9UdXBsZTxUVW5pb24+ID0gVW5pb25Ub0Z1bmN0aW9uSW5zZXJ0aW9uPFRVbmlvbj4gZXh0ZW5kcyAoKSA9PiBpbmZlciBUUmV0dXJuVHlwZVxuICA/IFsuLi5VbmlvblRvVHVwbGU8RXhjbHVkZTxUVW5pb24sIFRSZXR1cm5UeXBlPj4sIFRSZXR1cm5UeXBlXVxuICA6IFtdO1xuXG50eXBlIEV4YWN0VW5pb25MZW5ndGg8VFZhbHVlLCBUU2hhcGU+ID0gVW5pb25Ub1R1cGxlPFRWYWx1ZT5bXCJsZW5ndGhcIl0gZXh0ZW5kcyBVbmlvblRvVHVwbGU8VFNoYXBlPltcImxlbmd0aFwiXVxuICA/IHRydWVcbiAgOiBmYWxzZTtcblxuLy8gTk9URTogYFhPUmAgY2Fubm90IGJlIHVzZWQgYXMgaXQncyBvbmx5IGhhbmR5IHdpdGggb2JqZWN0cywgbm90IGJvb2xlYW5zXG50eXBlIEJvb2xlYW5Yb3I8VCwgVT4gPSBUIGV4dGVuZHMgdHJ1ZSA/IChVIGV4dGVuZHMgdHJ1ZSA/IHRydWUgOiBmYWxzZSkgOiBVIGV4dGVuZHMgZmFsc2UgPyB0cnVlIDogZmFsc2U7XG5cbnR5cGUgQm9vbGVhbkFuZDxUVHVwbGU+ID0gVFR1cGxlIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFJlc3RdXG4gID8gSGVhZCBleHRlbmRzIHRydWVcbiAgICA/IEJvb2xlYW5BbmQ8UmVzdD5cbiAgICA6IGZhbHNlXG4gIDogVFR1cGxlIGV4dGVuZHMgW11cbiAgPyB0cnVlXG4gIDogZmFsc2U7XG5cbnR5cGUgT2JqZWN0S2V5RXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gQm9vbGVhbkFuZDxcbiAgW0lzTmV2ZXI8RXhjbHVkZTxrZXlvZiBUVmFsdWUsIGtleW9mIFRTaGFwZT4+LCBJc05ldmVyPEV4Y2x1ZGU8a2V5b2YgVFNoYXBlLCBrZXlvZiBUVmFsdWU+Pl1cbj47XG5cbnR5cGUgT2JqZWN0VmFsdWVEaWZmPFRWYWx1ZSwgVFNoYXBlPiA9IHtcbiAgW1RLZXkgaW4ga2V5b2YgVFZhbHVlXTogRXhjbHVkZTxUVmFsdWVbVEtleV0sIFRTaGFwZVtUS2V5ICYga2V5b2YgVFNoYXBlXT47XG59W2tleW9mIFRWYWx1ZV07XG5cbnR5cGUgT2JqZWN0VmFsdWVFeGFjdDxUVmFsdWUsIFRTaGFwZT4gPSBCb29sZWFuQW5kPFxuICBbSXNOZXZlcjxPYmplY3RWYWx1ZURpZmY8VFZhbHVlLCBUU2hhcGU+PiwgSXNOZXZlcjxPYmplY3RWYWx1ZURpZmY8VFNoYXBlLCBUVmFsdWU+Pl1cbj47XG5cbnR5cGUgT2JqZWN0RXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gW1RWYWx1ZV0gZXh0ZW5kcyBbVFNoYXBlXVxuICA/IEJvb2xlYW5BbmQ8XG4gICAgICBbXG4gICAgICAgIEJvb2xlYW5Yb3I8SXNVbmlvbjxUVmFsdWU+LCBJc1VuaW9uPFRTaGFwZT4+LFxuICAgICAgICBFeGFjdFVuaW9uTGVuZ3RoPFRWYWx1ZSwgVFNoYXBlPixcbiAgICAgICAgT2JqZWN0S2V5RXhhY3Q8VFZhbHVlLCBUU2hhcGU+LFxuICAgICAgICBPYmplY3RWYWx1ZUV4YWN0PFRWYWx1ZSwgVFNoYXBlPixcbiAgICAgIF1cbiAgICA+IGV4dGVuZHMgdHJ1ZVxuICAgID8gVFZhbHVlXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG50eXBlIElzQXJyYXk8VFZhbHVlPiA9IFtUVmFsdWVdIGV4dGVuZHMgW3JlYWRvbmx5IGFueVtdXSA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJc1JlYWRvbmx5PFRBcnJheT4gPSBSZWFkb25seTxUQXJyYXk+IGV4dGVuZHMgVEFycmF5ID8gdHJ1ZSA6IGZhbHNlO1xuXG50eXBlIFNhbWVMZW5ndGg8VFZhbHVlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIFRTaGFwZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdPiA9IElzTmV2ZXI8XG4gIFByaW1pdGl2ZUV4YWN0PFRWYWx1ZVtcImxlbmd0aFwiXSwgVFNoYXBlW1wibGVuZ3RoXCJdPlxuPiBleHRlbmRzIHRydWVcbiAgPyBmYWxzZVxuICA6IHRydWU7XG5cbnR5cGUgQXJyYXlFeGFjdDxUVmFsdWUgZXh0ZW5kcyByZWFkb25seSBhbnlbXSwgVFNoYXBlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10+ID0gQm9vbGVhbkFuZDxcbiAgW1xuICAgIC8vIGJvdGggYXJyYXlzXG4gICAgSXNBcnJheTxUVmFsdWU+LFxuICAgIElzQXJyYXk8VFNoYXBlPixcbiAgICAvLyBzYW1lIGxlbmd0aFxuICAgIFNhbWVMZW5ndGg8VFZhbHVlLCBUU2hhcGU+LFxuICAgIC8vIGJvdGggcmVhZG9ubHkgb3Igbm90XG4gICAgQm9vbGVhblhvcjxJc1JlYWRvbmx5PFRWYWx1ZT4sIElzUmVhZG9ubHk8VFNoYXBlPj4sXG4gIF1cbj4gZXh0ZW5kcyB0cnVlXG4gID8gW1RWYWx1ZSwgVFNoYXBlXSBleHRlbmRzIFtyZWFkb25seSAoaW5mZXIgVFZhbHVlRWxlbWVudClbXSwgcmVhZG9ubHkgKGluZmVyIFRTaGFwZUVsZW1lbnQpW11dXG4gICAgPyBFeGFjdDxUVmFsdWVFbGVtZW50LCBUU2hhcGVFbGVtZW50PiBleHRlbmRzIFRWYWx1ZUVsZW1lbnRcbiAgICAgID8gVFZhbHVlXG4gICAgICA6IG5ldmVyXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vLyBOT1RFOiBXaGVuIHJlcGxhY2luZyB0aGUgYm9keSB3aXRoIGBBcmVOb25EaXN0cmlidXRpdmVFcXVhbDxUVmFsdWUsIFRTaGFwZT4gZXh0ZW5kcyB0cnVlID8gVFZhbHVlIDogbmV2ZXJgLFxuLy8gYGlzQkNvckJDMyhiY09yQmMzKWAgZmFpbHMgYmVjYXVzZSBgYmNPckJjM2AgaXMgaW5mZXJyZWQgYXMgYEJDYD8/P1xudHlwZSBQcmltaXRpdmVFeGFjdDxUVmFsdWUsIFRTaGFwZT4gPSBbVFZhbHVlXSBleHRlbmRzIFtUU2hhcGVdID8gKFtUU2hhcGVdIGV4dGVuZHMgW1RWYWx1ZV0gPyBUVmFsdWUgOiBuZXZlcikgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgRXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gW1RWYWx1ZV0gZXh0ZW5kcyBbcmVhZG9ubHkgYW55W11dXG4gID8gW1RTaGFwZV0gZXh0ZW5kcyBbcmVhZG9ubHkgYW55W11dXG4gICAgPyBBcnJheUV4YWN0PFRWYWx1ZSwgVFNoYXBlPlxuICAgIDogbmV2ZXJcbiAgOiBbVFZhbHVlXSBleHRlbmRzIFtBbnlSZWNvcmRdXG4gID8gT2JqZWN0RXhhY3Q8VFZhbHVlLCBUU2hhcGU+XG4gIDogUHJpbWl0aXZlRXhhY3Q8VFZhbHVlLCBUU2hhcGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtYW55L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTkyNzUyMy9kaXNhbGxvdy1jYWxsLXdpdGgtYW55LzQ5OTI4MzYwIzQ5OTI4MzYwXG5leHBvcnQgdHlwZSBJc0FueTxUeXBlPiA9IDAgZXh0ZW5kcyAxICYgVHlwZSA/IHRydWUgOiBmYWxzZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtbmV2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElzTmV2ZXI8VHlwZT4gPSBbVHlwZV0gZXh0ZW5kcyBbbmV2ZXJdID8gdHJ1ZSA6IGZhbHNlO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtdW5rbm93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXNBbnkgfSBmcm9tIFwiLi4vaXMtYW55XCI7XG5cbmV4cG9ydCB0eXBlIElzVW5rbm93bjxUeXBlPiA9IElzQW55PFR5cGU+IGV4dGVuZHMgdHJ1ZSA/IGZhbHNlIDogdW5rbm93biBleHRlbmRzIFR5cGUgPyB0cnVlIDogZmFsc2U7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtdHVwbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElzVHVwbGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPyAoYW55W10gZXh0ZW5kcyBUeXBlID8gbmV2ZXIgOiBUeXBlKSA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLWVtcHR5LW9iamVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55UmVjb3JkIH0gZnJvbSBcIi4uL2FueS1yZWNvcmRcIjtcblxuZXhwb3J0IHR5cGUgTm9uRW1wdHlPYmplY3Q8T2JqZWN0IGV4dGVuZHMgQW55UmVjb3JkPiA9IGtleW9mIE9iamVjdCBleHRlbmRzIG5ldmVyID8gbmV2ZXIgOiBPYmplY3Q7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYW55LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBbnlBcnJheTxUeXBlID0gYW55PiA9IEFycmF5PFR5cGU+IHwgUmVhZG9ubHlBcnJheTxUeXBlPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXJyYXktb3Itc2luZ2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBcnJheU9yU2luZ2xlPFR5cGU+ID0gVHlwZSB8IFR5cGVbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZWxlbWVudC1vZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRWxlbWVudE9mPFR5cGUgZXh0ZW5kcyByZWFkb25seSBhbnlbXT4gPSBUeXBlIGV4dGVuZHMgcmVhZG9ubHkgKGluZmVyIFZhbHVlcylbXSA/IFZhbHVlcyA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaGVhZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5cbmV4cG9ydCB0eXBlIEhlYWQ8VHlwZSBleHRlbmRzIEFueUFycmF5PiA9IFR5cGUgZXh0ZW5kcyB1bmtub3duID8gKFR5cGVbXCJsZW5ndGhcIl0gZXh0ZW5kcyAwID8gbmV2ZXIgOiBUeXBlWzBdKSA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLWVtcHR5LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOb25FbXB0eUFycmF5PFR5cGU+ID0gW1R5cGUsIC4uLlR5cGVbXV07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVhZG9ubHktYXJyYXktb3Itc2luZ2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWFkb25seUFycmF5T3JTaW5nbGU8VHlwZT4gPSBUeXBlIHwgcmVhZG9ubHkgVHlwZVtdO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdGFpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5cbmV4cG9ydCB0eXBlIFRhaWw8VHlwZSBleHRlbmRzIEFueUFycmF5PiA9IFR5cGUgZXh0ZW5kcyByZWFkb25seSBbXVxuICA/IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIHJlYWRvbmx5IFthbnk/LCAuLi5pbmZlciBSZXN0XVxuICA/IFJlc3RcbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHVwbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR1cGxlPFR5cGUgPSBhbnk+ID0gW1R5cGU/LCAuLi5UeXBlW11dO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvY2FtZWwtY2FzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBJc1N0cmluZ0xpdGVyYWw8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gKHN0cmluZyBleHRlbmRzIFR5cGUgPyBmYWxzZSA6IHRydWUpIDogZmFsc2U7XG5cbnR5cGUgV29yZEluQ2FtZWxDYXNlPFR5cGUsIFdvcmQgZXh0ZW5kcyBzdHJpbmcgPSBcIlwiPiA9IFR5cGUgZXh0ZW5kcyBgJHtXb3JkfSR7aW5mZXIgTmV4dENoYXJhY3Rlcn0ke2luZmVyIF99YFxuICA/IE5leHRDaGFyYWN0ZXIgZXh0ZW5kcyBDYXBpdGFsaXplPE5leHRDaGFyYWN0ZXI+XG4gICAgPyBXb3JkXG4gICAgOiBXb3JkSW5DYW1lbENhc2U8VHlwZSwgYCR7V29yZH0ke05leHRDaGFyYWN0ZXJ9YD5cbiAgOiBXb3JkO1xuXG50eXBlIFNlcGFyYXRvciA9IFwiX1wiIHwgXCItXCI7XG5cbnR5cGUgSW5jbHVkZXNTZXBhcmF0b3I8VHlwZT4gPSBUeXBlIGV4dGVuZHMgYCR7c3RyaW5nfSR7U2VwYXJhdG9yfSR7c3RyaW5nfWAgPyB0cnVlIDogZmFsc2U7XG5cbnR5cGUgSXNPbmVXb3JkPFR5cGU+ID0gVHlwZSBleHRlbmRzIExvd2VyY2FzZTxUeXBlICYgc3RyaW5nPlxuICA/IHRydWVcbiAgOiBUeXBlIGV4dGVuZHMgVXBwZXJjYXNlPFR5cGUgJiBzdHJpbmc+XG4gID8gdHJ1ZVxuICA6IGZhbHNlO1xuXG50eXBlIElzQ2FtZWxDYXNlPFR5cGU+ID0gVHlwZSBleHRlbmRzIFVuY2FwaXRhbGl6ZTxUeXBlICYgc3RyaW5nPiA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJc1Bhc2NhbENhc2U8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQ2FwaXRhbGl6ZTxUeXBlICYgc3RyaW5nPiA/IHRydWUgOiBmYWxzZTtcblxuLyoqIHNuYWtlX2Nhc2UsIENPTlNUQU5UX0NBU0UsIGtlYmFiLWNhc2Ugb3IgQ09CT0wtQ0FTRSAqL1xudHlwZSBTZXBhcmF0b3JDYXNlUGFyc2VyPFxuICBUeXBlLFxuICBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW10sXG4+ID0gVHlwZSBleHRlbmRzIGAke2luZmVyIFdvcmR9JHtTZXBhcmF0b3J9JHtpbmZlciBUYWlsfWBcbiAgPyBTZXBhcmF0b3JDYXNlUGFyc2VyPFRhaWwsIFsuLi5UdXBsZSwgTG93ZXJjYXNlPFdvcmQ+XT5cbiAgOiBUeXBlIGV4dGVuZHMgYCR7aW5mZXIgV29yZH1gXG4gID8gWy4uLlR1cGxlLCBMb3dlcmNhc2U8V29yZD5dXG4gIDogVHVwbGU7XG5cbnR5cGUgQ2FtZWxDYXNlUGFyc2VyPFR5cGUsIFR1cGxlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSBbXT4gPSBUeXBlIGV4dGVuZHMgXCJcIlxuICA/IFR1cGxlXG4gIDogVHlwZSBleHRlbmRzIGAke1dvcmRJbkNhbWVsQ2FzZTxUeXBlPn0ke2luZmVyIFRhaWx9YFxuICA/IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBXb3JkfSR7VGFpbH1gXG4gICAgPyBDYW1lbENhc2VQYXJzZXI8VW5jYXBpdGFsaXplPFRhaWw+LCBbLi4uVHVwbGUsIExvd2VyY2FzZTxXb3JkPl0+XG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vLyBDb252ZXJ0IGZpcnN0IGNoYXJhY3RlciBvZiBzdHJpbmcgbGl0ZXJhbCB0eXBlIHRvIGxvd2VyY2FzZSBhbmQgcmV1c2UgQ2FtZWxDYXNlUGFyc2VyXG50eXBlIFBhc2NhbENhc2VQYXJzZXI8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gQ2FtZWxDYXNlUGFyc2VyPFVuY2FwaXRhbGl6ZTxUeXBlPj4gOiBuZXZlcjtcblxudHlwZSBTcGxpdEFueUNhc2U8VHlwZT4gPSBJbmNsdWRlc1NlcGFyYXRvcjxUeXBlPiBleHRlbmRzIHRydWVcbiAgPyBTZXBhcmF0b3JDYXNlUGFyc2VyPFR5cGU+XG4gIDogSXNPbmVXb3JkPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IFtMb3dlcmNhc2U8VHlwZSAmIHN0cmluZz5dXG4gIDogSXNDYW1lbENhc2U8VHlwZT4gZXh0ZW5kcyB0cnVlXG4gID8gQ2FtZWxDYXNlUGFyc2VyPFR5cGU+XG4gIDogSXNQYXNjYWxDYXNlPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IFBhc2NhbENhc2VQYXJzZXI8VHlwZT5cbiAgOiBbXTtcblxudHlwZSBQYXNjYWxDYXBpdGFsaXplcjxUeXBlLCBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW10+ID0gVHlwZSBleHRlbmRzIFtpbmZlciBIZWFkLCAuLi5pbmZlciBUYWlsXVxuICA/IEhlYWQgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFBhc2NhbENhcGl0YWxpemVyPFRhaWwsIFsuLi5UdXBsZSwgQ2FwaXRhbGl6ZTxIZWFkPl0+XG4gICAgOiBQYXNjYWxDYXBpdGFsaXplcjxUYWlsLCBUdXBsZT5cbiAgOiBUdXBsZTtcblxudHlwZSBDYW1lbENhcGl0YWxpemVyPFR5cGU+ID0gVHlwZSBleHRlbmRzIFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgVGFpbF0gPyBQYXNjYWxDYXBpdGFsaXplcjxUYWlsLCBbRmlyc3RdPiA6IFtdO1xuXG50eXBlIEpvaW48VHlwZSwgSm9pbmVkU3RyaW5nIGV4dGVuZHMgc3RyaW5nID0gXCJcIj4gPSBUeXBlIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFRhaWxdXG4gID8gSGVhZCBleHRlbmRzIHN0cmluZ1xuICAgID8gSm9pbjxUYWlsLCBgJHtKb2luZWRTdHJpbmd9JHtIZWFkfWA+XG4gICAgOiBKb2luPFRhaWw+XG4gIDogSm9pbmVkU3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDYW1lbENhc2U8VHlwZT4gPSBJc1N0cmluZ0xpdGVyYWw8VHlwZT4gZXh0ZW5kcyB0cnVlID8gSm9pbjxDYW1lbENhcGl0YWxpemVyPFNwbGl0QW55Q2FzZTxUeXBlPj4+IDogVHlwZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1jYW1lbC1jYXNlLXByb3BlcnRpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbWVsQ2FzZSB9IGZyb20gXCIuLi9jYW1lbC1jYXNlXCI7XG5cbmV4cG9ydCB0eXBlIERlZXBDYW1lbENhc2VQcm9wZXJ0aWVzPFR5cGU+ID0gVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGUgYXMgQ2FtZWxDYXNlPEtleT5dOiBEZWVwQ2FtZWxDYXNlUHJvcGVydGllczxUeXBlW0tleV0+IH1cbiAgOiBUeXBlO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYW55LWZ1bmN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBbnlGdW5jdGlvbjxBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgUmV0dXJuVHlwZSA9IGFueT4gPSAoLi4uYXJnczogQXJncykgPT4gUmV0dXJuVHlwZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJlZGljYXRlLWZ1bmN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcmVkaWNhdGVGdW5jdGlvbiA9ICh4OiBhbnksIC4uLl96OiBhbnlbXSkgPT4geCBpcyBhbnk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJlZGljYXRlLXR5cGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWRpY2F0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4uL3ByZWRpY2F0ZS1mdW5jdGlvblwiO1xuXG5leHBvcnQgdHlwZSBQcmVkaWNhdGVUeXBlPFR5cGUgZXh0ZW5kcyBQcmVkaWNhdGVGdW5jdGlvbj4gPSBUeXBlIGV4dGVuZHMgKFxuICB0YXJnZXQ6IGFueSxcbiAgLi4ucmVzdDogYW55W11cbikgPT4gdGFyZ2V0IGlzIGluZmVyIE5hcnJvd2VkVHlwZVxuICA/IE5hcnJvd2VkVHlwZVxuICA6IG5ldmVyO1xuIl19","export class UnreachableCaseError extends Error {\n constructor(value: never) {\n super(`Unreachable case: ${value}`);\n }\n}\n","export function assert(condition: any, message: string = \"no additional info provided\"): asserts condition {\n if (!condition) {\n throw new Error(\"Assertion Error: \" + message);\n }\n}\n","export const createFactoryWithConstraint =\n <Constraint>() =>\n <Value extends Constraint>(value: Value): Value =>\n value;\n","import { Exact } from \"../../exact\";\n\nexport const isExact =\n <ExpectedShape>() =>\n <ActualShape>(x: Exact<ActualShape, ExpectedShape>) =>\n x as ExpectedShape;\n","export function noop(..._args: unknown[]): void {}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXdhaXRlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgYnVpbHRpbiBgQXdhaXRlZGAgKi9cbmV4cG9ydCB0eXBlIEF3YWl0ZWQ8VHlwZT4gPSBUeXBlIGV4dGVuZHMgUHJvbWlzZUxpa2U8aW5mZXIgVmFsdWU+ID8gVmFsdWUgOiBuZXZlcjtcbiJdfQ==","// Basic\n\nexport * from \"./primitive\";\nexport * from \"./built-in\";\nexport * from \"./key-of-base\";\nexport * from \"./strict-exclude\";\nexport * from \"./strict-extract\";\nexport * from \"./strict-omit\";\nexport * from \"./writable\";\n\n// Utility types\n\nexport * from \"./async-or-sync\";\nexport * from \"./async-or-sync-type\";\nexport * from \"./dictionary\";\nexport * from \"./dictionary-values\";\nexport * from \"./merge\";\nexport * from \"./merge-n\";\nexport * from \"./newable\";\nexport * from \"./non-never\";\nexport * from \"./omit-properties\";\nexport * from \"./opaque\";\nexport * from \"./path-value\";\nexport * from \"./paths\";\nexport * from \"./pick-properties\";\nexport * from \"./prettify\";\nexport * from \"./safe-dictionary\";\nexport * from \"./union-to-intersection\";\nexport * from \"./value-of\";\nexport * from \"./xor\";\n\n// Mark wrapper types\n\nexport * from \"./mark-optional\";\nexport * from \"./mark-readonly\";\nexport * from \"./mark-required\";\nexport * from \"./mark-writable\";\n\n// Deep wrapper types\n\nexport * from \"./buildable\";\nexport * from \"./deep-mark-optional\";\nexport * from \"./deep-mark-required\";\nexport * from \"./deep-non-nullable\";\nexport * from \"./deep-nullable\";\nexport * from \"./deep-omit\";\nexport * from \"./deep-partial\";\nexport * from \"./deep-pick\";\nexport * from \"./deep-readonly\";\nexport * from \"./deep-required\";\nexport * from \"./deep-undefinable\";\nexport * from \"./deep-writable\";\nexport * from \"./strict-deep-omit\";\nexport * from \"./strict-deep-pick\";\n\n// Key types\n\nexport * from \"./optional-keys\";\nexport * from \"./pick-keys\";\nexport * from \"./readonly-keys\";\nexport * from \"./required-keys\";\nexport * from \"./writable-keys\";\n\n// Type checkers\n\nexport * from \"./exact\";\nexport * from \"./is-any\";\nexport * from \"./is-never\";\nexport * from \"./is-unknown\";\nexport * from \"./is-tuple\";\nexport * from \"./non-empty-object\";\n\n// Arrays and Tuples\n\nexport * from \"./any-array\";\nexport * from \"./array-or-single\";\nexport * from \"./element-of\";\nexport * from \"./head\";\nexport * from \"./non-empty-array\";\nexport * from \"./readonly-array-or-single\";\nexport * from \"./tail\";\nexport * from \"./tuple\";\n\n// Change case\n\nexport * from \"./camel-case\";\nexport * from \"./deep-camel-case-properties\";\n\n// Function types\n\nexport * from \"./any-function\";\nexport * from \"./predicate-function\";\nexport * from \"./predicate-type\";\n\n// Utility functions\n\nexport * from \"./functions/unreachable-case-error\";\nexport * from \"./functions/assert\";\nexport * from \"./functions/create-factory-with-constraint\";\nexport * from \"./functions/is-exact\";\nexport * from \"./functions/noop\";\n\n// Build-in types\n\nexport * from \"./awaited\";\n","import { inspect, stripVTControlCharacters, styleText } from 'node:util';\nimport { Help } from 'commander';\nimport type { CliAccount, CliOrganization } from './state';\n\nconst EMPTY_VALUE = '-';\nconst TABLE_GAP = ' ';\ntype TerminalStyle = Parameters<typeof styleText>[0];\n\nfunction applyStyle(\n value: string,\n style: TerminalStyle,\n enabled = true,\n): string {\n if (!enabled) {\n return value;\n }\n\n return styleText(style, value);\n}\n\nfunction indent(text: string, level = 2): string {\n const padding = ' '.repeat(level);\n return text\n .split('\\n')\n .map((line) => `${padding}${line}`)\n .join('\\n');\n}\n\nfunction stripAnsi(value: string): string {\n return stripVTControlCharacters(value);\n}\n\nfunction displayWidth(value: string): number {\n return stripAnsi(value).length;\n}\n\nfunction padCell(value: string, width: number): string {\n return value.padEnd(width + value.length - displayWidth(value));\n}\n\nfunction formatHeading(title: string): string {\n return applyStyle(title, ['bold', 'cyan']);\n}\n\nfunction formatLabel(label: string): string {\n return applyStyle(label, 'dim');\n}\n\nfunction formatCommandSnippet(command: string): string {\n return applyStyle(command, ['bold', 'cyan']);\n}\n\nfunction formatFlag(flag: string): string {\n return applyStyle(flag, ['bold', 'yellow']);\n}\n\nfunction formatErrorLabel(label: string): string {\n return applyStyle(label, ['bold', 'red'], process.stderr.isTTY);\n}\n\nfunction splitWords(value: string): string[] {\n const tokens: string[] = [];\n\n for (const word of value\n .replaceAll('_', ' ')\n .replaceAll('-', ' ')\n .split(' ')) {\n if (word.length === 0) {\n continue;\n }\n\n let currentToken = word[0] ?? '';\n for (const character of word.slice(1)) {\n const previousCharacter = currentToken.at(-1) ?? '';\n const shouldBreak =\n character >= 'A' &&\n character <= 'Z' &&\n ((previousCharacter >= 'a' && previousCharacter <= 'z') ||\n (previousCharacter >= '0' && previousCharacter <= '9'));\n\n if (shouldBreak) {\n tokens.push(currentToken);\n currentToken = character;\n continue;\n }\n\n currentToken += character;\n }\n\n tokens.push(currentToken);\n }\n\n return tokens;\n}\n\nfunction startCase(value: string): string {\n return splitWords(value)\n .map((segment) => {\n const lowerSegment = segment.toLowerCase();\n if (lowerSegment === 'id') {\n return 'ID';\n }\n\n if (lowerSegment === 'url') {\n return 'URL';\n }\n\n if (lowerSegment === 'api') {\n return 'API';\n }\n\n return segment.charAt(0).toUpperCase() + segment.slice(1);\n })\n .join(' ');\n}\n\nfunction formatScalar(value: unknown): string {\n if (value === null || value === undefined) {\n return EMPTY_VALUE;\n }\n\n if (typeof value === 'string') {\n return value.length === 0 ? EMPTY_VALUE : value;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n return inspect(value, {\n breakLength: Infinity,\n colors: false,\n compact: true,\n depth: 2,\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isPrimitiveLike(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n );\n}\n\nfunction formatTable(options: {\n columns: readonly string[];\n rows: readonly (readonly string[])[];\n}): string {\n const widths = options.columns.map((column, columnIndex) =>\n Math.max(\n displayWidth(column),\n ...options.rows.map((row) => displayWidth(row[columnIndex] ?? '')),\n ),\n );\n\n const renderRow = (cells: readonly string[]): string =>\n cells\n .map((cell, columnIndex) => padCell(cell, widths[columnIndex] ?? 0))\n .join(TABLE_GAP)\n .trimEnd();\n\n const divider = widths.map((width) => '-'.repeat(width)).join(TABLE_GAP);\n\n return [\n renderRow(options.columns.map((column) => applyStyle(column, 'bold'))),\n divider,\n ...options.rows.map(renderRow),\n ].join('\\n');\n}\n\nfunction canRenderRecordArrayAsTable(\n items: readonly unknown[],\n): items is readonly Record<string, unknown>[] {\n if (items.length === 0 || !items.every(isRecord)) {\n return false;\n }\n\n const keys = [...new Set(items.flatMap((item) => Object.keys(item)))];\n\n if (keys.length === 0 || keys.length > 8) {\n return false;\n }\n\n return items.every((item) => keys.every((key) => isPrimitiveLike(item[key])));\n}\n\nfunction formatRecord(record: Record<string, unknown>): string {\n const entries = Object.entries(record);\n if (entries.length === 0) {\n return EMPTY_VALUE;\n }\n\n const labelWidth = Math.max(\n ...entries.map(([key]) => displayWidth(startCase(key))),\n );\n\n return entries\n .map(([key, value]) => {\n const label = `${startCase(key)}:`;\n if (isPrimitiveLike(value)) {\n return `${padCell(formatLabel(label), labelWidth + 1)} ${formatScalar(value)}`;\n }\n\n return `${formatLabel(label)}\\n${indent(formatHumanReadableOutput(value))}`;\n })\n .join('\\n');\n}\n\nfunction formatArray(items: readonly unknown[]): string {\n if (items.length === 0) {\n return 'No results.';\n }\n\n if (items.every(isPrimitiveLike)) {\n return items.map((item) => `- ${formatScalar(item)}`).join('\\n');\n }\n\n if (canRenderRecordArrayAsTable(items)) {\n const keys = [...new Set(items.flatMap((item) => Object.keys(item)))];\n\n return formatTable({\n columns: keys.map((key) => startCase(key)),\n rows: items.map((item) => keys.map((key) => formatScalar(item[key]))),\n });\n }\n\n return items\n .map((item, index) => {\n const title = formatHeading(`Item ${index + 1}`);\n return `${title}\\n${indent(formatHumanReadableOutput(item))}`;\n })\n .join('\\n\\n');\n}\n\nfunction renderKeyValueBlock(entries: readonly [string, string][]): string {\n const labelWidth = Math.max(...entries.map(([label]) => displayWidth(label)));\n return entries\n .map(\n ([label, value]) =>\n `${padCell(formatLabel(`${label}:`), labelWidth + 1)} ${value}`,\n )\n .join('\\n');\n}\n\nfunction renderSection(title: string, bodyLines: readonly string[]): string {\n return [formatHeading(title), '', ...bodyLines].join('\\n');\n}\n\nexport class MagicalHelp extends Help {\n private outputHasColors = process.stdout.isTTY;\n\n public constructor() {\n super();\n this.helpWidth = 96;\n this.showGlobalOptions = true;\n this.sortSubcommands = true;\n }\n\n public override prepareContext(contextOptions: {\n error?: boolean;\n helpWidth?: number;\n outputHasColors?: boolean;\n }): void {\n super.prepareContext(contextOptions);\n this.outputHasColors =\n contextOptions.outputHasColors ?? process.stdout.isTTY;\n }\n\n public override styleTitle(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleCommandText(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleSubcommandText(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleOptionText(str: string): string {\n return applyStyle(str, ['bold', 'yellow'], this.outputHasColors);\n }\n\n public override styleArgumentText(str: string): string {\n return applyStyle(str, ['bold', 'green'], this.outputHasColors);\n }\n\n public override styleDescriptionText(str: string): string {\n return applyStyle(str, 'dim', this.outputHasColors);\n }\n}\n\nexport function formatAuthLoginPrompt(options: {\n userCode: string;\n verificationUrl: string;\n}): string {\n return renderSection('Sign In With Your Browser', [\n renderKeyValueBlock([\n ['Open', options.verificationUrl],\n ['Code', options.userCode],\n ]),\n ]);\n}\n\nexport function formatAuthLoginSuccess(options: {\n account: CliAccount;\n defaultOrganization: CliOrganization | null;\n organizationCount: number;\n}): string {\n return renderSection('Signed In', [\n renderKeyValueBlock([\n ['Account', options.account.email ?? options.account.userId],\n ['Organizations', String(options.organizationCount)],\n [\n 'Default org',\n options.defaultOrganization\n ? `${options.defaultOrganization.name} (${options.defaultOrganization.id})`\n : 'None selected',\n ],\n ]),\n ]);\n}\n\nexport function formatBrowserOpenFallback(): string {\n return 'Browser auto-open failed. Paste the URL above into any browser.';\n}\n\nexport function formatLogoutSuccess(): string {\n return renderSection('Signed Out', ['Saved CLI auth state was cleared.']);\n}\n\nexport function formatOrganizationList(options: {\n defaultOrgId: string | null;\n lastUsedOrgId: string | null;\n organizations: readonly CliOrganization[];\n}): string {\n if (options.organizations.length === 0) {\n return renderSection('Organizations', ['No organizations are available.']);\n }\n\n const rows = options.organizations.map((organization) => {\n const status = [\n options.defaultOrgId === organization.id ? 'default' : null,\n options.lastUsedOrgId === organization.id ? 'last used' : null,\n ]\n .filter((value) => value !== null)\n .join(', ');\n\n return [\n status || EMPTY_VALUE,\n organization.name,\n organization.id,\n organization.primaryDomain ?? EMPTY_VALUE,\n ];\n });\n\n return renderSection('Organizations', [\n formatTable({\n columns: ['Status', 'Name', 'ID', 'Primary domain'],\n rows,\n }),\n ]);\n}\n\nexport function formatDefaultOrganizationSelection(\n organization: CliOrganization,\n): string {\n return renderSection('Default Organization Updated', [\n `${organization.name} (${organization.id})`,\n ]);\n}\n\nexport function formatHumanReadableOutput(value: unknown): string {\n if (isPrimitiveLike(value)) {\n return formatScalar(value);\n }\n\n if (Array.isArray(value)) {\n return formatArray(value);\n }\n\n if (isRecord(value)) {\n return formatRecord(value);\n }\n\n return inspect(value, {\n colors: false,\n depth: null,\n });\n}\n\nexport function formatCliError(message: string): string {\n return `${formatErrorLabel('Error:')} ${message}`;\n}\n\nexport function formatExamples(\n title: string,\n examples: readonly string[],\n): string {\n return [\n formatHeading(title),\n '',\n ...examples.map((example) => ` ${formatCommandSnippet(example)}`),\n ].join('\\n');\n}\n\nexport function formatOutputModesNote(): string {\n return renderSection('Output', [\n `Human-readable by default.`,\n `Add ${formatFlag('--json')} before or after a command for stable machine-readable output.`,\n ]);\n}\n","export class CliError extends Error {\n public constructor(\n message: string,\n options?: {\n cause?: unknown;\n },\n ) {\n super(message, options);\n this.name = 'CliError';\n }\n}\n\nexport function getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n return 'Unknown CLI error';\n}\n","import { z } from 'zod';\nimport { createOperationSpec } from './operation-spec';\nimport type { CliOptionSpec, OperationSpec } from './operation-types';\n\nfunction stringOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueType: 'string',\n };\n}\n\nfunction numberOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueType: 'number',\n };\n}\n\nfunction booleanOption({\n description,\n flagName,\n inputKey,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n valueType: 'boolean',\n };\n}\n\nfunction stringArrayOption({\n description,\n flagName,\n inputKey,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n valueHint: 'comma-separated',\n valueType: 'string-array',\n };\n}\n\nfunction jsonOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueHint: 'JSON',\n valueType: 'json',\n };\n}\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\n\nexport const operationSpecs = [\n createOperationSpec({\n operationName: 'GetAgent',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-agent',\n path: ['agents', 'get'],\n description: 'Fetch a single agent with config and schema fields.',\n resultKey: 'agent',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Agent ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'agent.graphql' },\n document: `# Query to fetch a single agent with all fields\n# Config selection is limited to scalar/JSON fields to keep responses flat\nquery GetAgent($id: ID!) {\n agent(id: $id) {\n id\n name\n description\n instructions\n organizationId\n createdAt\n updatedAt\n sourceAgentId\n inputSchema\n outputSchema\n config {\n type\n language\n model\n tools\n maxSessionMessages\n commonParametersSchema\n taskQueue\n waitUponQueueing\n queueableAgentIds\n additionalSystemPrompt\n ignoreUnstableSessionState\n }\n childAgentIds\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAgentRun',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-agent-run',\n path: ['agent-runs', 'get'],\n description: 'Fetch a single agent run.',\n resultKey: 'agentRun',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Agent run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'agentRun.graphql' },\n document: `# Query a single agent run\nquery GetAgentRun($id: ID!) {\n agentRun(id: $id) {\n id\n agentVersionId\n agentName\n status\n statusDetail\n isChildAgent\n input\n startedAt\n finishedAt\n parentAgentRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationAgents',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-agents',\n path: ['automations', 'agents'],\n description: 'Fetch the agents attached to an automation.',\n resultKey: 'automation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationAgents.graphql' },\n document: `# Query to fetch automation agents with flat fields only\n# Excludes nested agent config and schemas for MCP tool simplicity\nquery GetAutomationAgents($id: ID!) {\n automation(id: $id) {\n id\n name\n agents {\n automationId\n agentId\n isTrigger\n agent {\n id\n name\n description\n instructions\n organizationId\n createdAt\n updatedAt\n sourceAgentId\n childAgentIds\n }\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRun',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-run',\n path: ['automation-runs', 'get'],\n description: 'Fetch a single automation run.',\n resultKey: 'automationRun',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationRun.graphql' },\n document: `# Query a full automation run details payload\nquery GetAutomationRun($id: ID!) {\n automationRun(id: $id) {\n id\n automationId\n status\n statusDetail\n summary\n invocationType\n input\n additionalPrompt\n debugUrl\n createdAt\n startedAt\n pausedAt\n finishedAt\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRunAgentRuns',\n kind: 'query',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-run-agent-runs',\n path: ['automation-runs', 'agent-runs'],\n description: 'Fetch ordered agent runs for an automation run.',\n resultKey: 'automationRunAgentRuns',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationRunAgentRuns.graphql' },\n document: `# Query ordered agent runs for an automation run\nquery GetAutomationRunAgentRuns($automationRunId: ID!) {\n automationRunAgentRuns(automationRunId: $automationRunId) {\n id\n agentVersionId\n agentName\n status\n statusDetail\n isChildAgent\n input\n startedAt\n finishedAt\n parentAgentRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRunIterations',\n kind: 'query',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n agentRunId: z.string().min(1).optional(),\n limit: z.number().int().positive().optional(),\n reverse: z.boolean().optional(),\n }),\n cli: {\n name: 'get-automation-run-iterations',\n path: ['automation-runs', 'iterations'],\n description: 'Fetch ordered iterations for an automation run.',\n resultKey: 'automationRunIterations',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'agentRunId',\n flagName: 'agent-run-id',\n description: 'Optional agent run ID to filter by.',\n }),\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of iterations to return.',\n }),\n booleanOption({\n inputKey: 'reverse',\n flagName: 'reverse',\n description: 'Return newest iterations first.',\n }),\n ],\n },\n mcp: { fileName: 'automationRunIterations.graphql' },\n document: `# Query iterations for an automation run with optional filtering by agent run\nquery GetAutomationRunIterations(\n $automationRunId: ID!\n $agentRunId: ID\n $limit: Int\n $reverse: Boolean\n) {\n automationRunIterations(\n automationRunId: $automationRunId\n agentRunId: $agentRunId\n limit: $limit\n reverse: $reverse\n ) {\n id\n sequence\n agentRunId\n metadata\n startedAt\n finishedAt\n totalDurationMs\n llmResponseDurationMs\n withMarksScreenshotUrl\n withMarksMimeType\n memories {\n id\n type\n value\n sequence\n screenshotUrl\n screenshotMimeType\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRuns',\n kind: 'query',\n inputSchema: z.object({\n automationId: z.string().min(1),\n status: z.array(z.string().min(1)).optional(),\n invocationType: z.array(z.string().min(1)).optional(),\n limit: z.number().int().positive().optional(),\n page: z.number().int().positive().optional(),\n }),\n cli: {\n name: 'get-automation-runs',\n path: ['automation-runs', 'list'],\n description: 'Fetch automation run history.',\n resultKey: 'automationRuns',\n options: [\n stringOption({\n inputKey: 'automationId',\n flagName: 'automation-id',\n description: 'Automation ID.',\n required: true,\n }),\n stringArrayOption({\n inputKey: 'status',\n flagName: 'status',\n description: 'Optional run statuses.',\n }),\n stringArrayOption({\n inputKey: 'invocationType',\n flagName: 'invocation-type',\n description: 'Optional invocation types.',\n }),\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of runs to return.',\n }),\n numberOption({\n inputKey: 'page',\n flagName: 'page',\n description: 'Page number.',\n }),\n ],\n },\n mcp: { fileName: 'automationRuns.graphql' },\n document: `# Query automation run history for a specific automation with optional filters\nquery GetAutomationRuns(\n $automationId: ID!\n $status: [RunStatus!]\n $invocationType: [InvocationType!]\n $limit: Int\n $page: Int\n) {\n automationRuns(\n automationId: $automationId\n status: $status\n invocationType: $invocationType\n limit: $limit\n page: $page\n ) {\n id\n automationId\n status\n statusDetail\n invocationType\n summary\n createdAt\n startedAt\n pausedAt\n finishedAt\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomations',\n kind: 'query',\n inputSchema: z.object({\n limit: z.number().positive().optional(),\n order: jsonObjectSchema.optional(),\n where: jsonObjectSchema.optional(),\n }),\n cli: {\n name: 'get-automations',\n path: ['automations', 'list'],\n description: 'Fetch automations with optional list filters.',\n resultKey: 'automations',\n options: [\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of automations to return.',\n }),\n jsonOption({\n inputKey: 'order',\n flagName: 'order-json',\n description: 'GraphQL order object.',\n }),\n jsonOption({\n inputKey: 'where',\n flagName: 'where-json',\n description: 'GraphQL filter object.',\n }),\n ],\n },\n mcp: { fileName: 'automations.graphql' },\n document: `# Query to fetch automations with flat fields only (no nested objects)\n# Excludes config and agents for MCP tool simplicity\nquery GetAutomations(\n $limit: Float\n $order: AutomationsOrder\n $where: AutomationsWhereInput\n) {\n automations(limit: $limit, order: $order, where: $where) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationWithConfigs',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-with-configs',\n path: ['automations', 'get'],\n description: 'Fetch a single automation with config fields.',\n resultKey: 'automation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationWithConfigs.graphql' },\n document: `# Query to fetch a single automation with config but excluding agents\n# Config selection is limited to scalar/JSON fields to keep responses flat\nquery GetAutomationWithConfigs($id: ID!) {\n automation(id: $id) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n config {\n cronExpression\n calendars\n interval\n enableVisualChangeChecks\n isCDPforSOM\n humanInterventionTimeoutSeconds\n availableSlots\n additionalSystemPrompt\n ignoreUnstableSessionState\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableCommands',\n kind: 'query',\n inputSchema: z.object({\n env: z.string().min(1),\n }),\n cli: {\n name: 'get-available-commands',\n path: ['catalog', 'commands'],\n description: 'Fetch available command definitions by environment.',\n resultKey: 'availableCommands',\n options: [\n stringOption({\n inputKey: 'env',\n flagName: 'env',\n description: 'Environment name.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'availableCommands.graphql' },\n document: `# Query to fetch available command definitions by environment\nquery GetAvailableCommands($env: AvailableCommandsEnv!) {\n availableCommands(env: $env) {\n id\n description\n inputSchema\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableModels',\n kind: 'query',\n inputSchema: z.object({\n agentId: z.string().min(1),\n }),\n cli: {\n name: 'get-available-models',\n path: ['catalog', 'models'],\n description: 'Fetch available model definitions for an agent.',\n resultKey: 'availableModels',\n options: [\n stringOption({\n inputKey: 'agentId',\n flagName: 'agent-id',\n description: 'Agent ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'availableModels.graphql' },\n document: `# Query to fetch available model definitions and pools for a specific agent\nquery GetAvailableModels($agentId: String!) {\n availableModels(agentId: $agentId) {\n availableModelPools {\n name\n poolId\n models {\n id\n name\n description\n status\n provider\n }\n }\n allAvailableModels {\n id\n name\n description\n status\n provider\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableTools',\n kind: 'query',\n inputSchema: z.object({\n env: z.string().min(1),\n automationId: z.string().min(1).optional(),\n }),\n cli: {\n name: 'get-available-tools',\n path: ['catalog', 'tools'],\n description: 'Fetch available tool definitions by environment.',\n resultKey: 'availableTools',\n options: [\n stringOption({\n inputKey: 'env',\n flagName: 'env',\n description: 'Environment name.',\n required: true,\n }),\n stringOption({\n inputKey: 'automationId',\n flagName: 'automation-id',\n description: 'Optional automation ID.',\n }),\n ],\n },\n mcp: { fileName: 'availableTools.graphql' },\n document: `# Query to fetch available tool definitions by environment\nquery GetAvailableTools($env: AvailableCommandsEnv!, $automationId: String) {\n availableTools(env: $env, automationId: $automationId) {\n id\n description\n inputSchema\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'CreateAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n input: jsonObjectSchema,\n }),\n cli: {\n name: 'create-automation',\n path: ['automations', 'create'],\n description: 'Create a draft automation.',\n resultKey: 'createAutomation',\n options: [\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'CreateAutomationInput payload.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'createAutomation.graphql' },\n document: `# Mutation to create a draft automation with optional initial values\n# Returns flat fields only for MCP tool simplicity\nmutation CreateAutomation($input: CreateAutomationInput!) {\n createAutomation(input: $input) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetGraphqlSchema',\n kind: 'query',\n inputSchema: z.object({}),\n cli: {\n name: 'get-graphql-schema',\n path: ['graphql', 'schema'],\n description: 'Fetch GraphQL schema metadata.',\n resultKey: 'graphqlSchema',\n options: [],\n },\n mcp: { fileName: 'graphqlSchema.graphql' },\n document: `# Query to fetch full GraphQL schema metadata.\n# Uses the first-class graphqlSchema query field to avoid __schema validation\n# issues in MCP tool-load paths while still returning introspection JSON.\n# Response can be large: call sparingly (typically once per task/session) and\n# reuse cached results.\nquery GetGraphqlSchema {\n graphqlSchema\n}`,\n }),\n createOperationSpec({\n operationName: 'PauseAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'pause-automation-run',\n path: ['automation-runs', 'pause'],\n description: 'Pause an automation run.',\n resultKey: 'pauseAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'pauseAutomationRun.graphql' },\n document: `# Mutation to pause an automation run\nmutation PauseAutomationRun($automationRunId: ID!) {\n pauseAutomationRun(automationRunId: $automationRunId)\n}`,\n }),\n createOperationSpec({\n operationName: 'RerunAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n additionalPrompt: z.string().min(1).optional(),\n idempotencyKey: z.string().min(1),\n }),\n cli: {\n name: 'rerun-automation',\n path: ['automation-runs', 'rerun'],\n description: 'Rerun an existing automation run.',\n resultKey: 'rerunAutomation',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'additionalPrompt',\n flagName: 'additional-prompt',\n description: 'Optional prompt appended to the rerun.',\n }),\n stringOption({\n inputKey: 'idempotencyKey',\n flagName: 'idempotency-key',\n description: 'Idempotency key for the rerun request.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'rerunAutomation.graphql' },\n document: `# Mutation to rerun an existing automation run\nmutation RerunAutomation(\n $automationRunId: ID!\n $additionalPrompt: String\n $idempotencyKey: String!\n) {\n rerunAutomation(\n automationRunId: $automationRunId\n additionalPrompt: $additionalPrompt\n idempotencyKey: $idempotencyKey\n ) {\n automationRunId\n workflowId\n workflowRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'ResumeAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n message: z.string().min(1).optional(),\n }),\n cli: {\n name: 'resume-automation-run',\n path: ['automation-runs', 'resume'],\n description: 'Resume a paused automation run.',\n resultKey: 'resumeAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'message',\n flagName: 'message',\n description: 'Optional resume message.',\n }),\n ],\n },\n mcp: { fileName: 'resumeAutomationRun.graphql' },\n document: `# Mutation to resume an automation run\nmutation ResumeAutomationRun($automationRunId: ID!, $message: String) {\n resumeAutomationRun(automationRunId: $automationRunId, message: $message)\n}`,\n }),\n createOperationSpec({\n operationName: 'RunDraftAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n draftAutomationId: z.string().min(1),\n agentId: z.string().min(1),\n idempotencyKey: z.string().min(1),\n input: z.unknown().optional(),\n additionalPrompt: z.string().min(1).optional(),\n }),\n cli: {\n name: 'run-draft-automation',\n path: ['automations', 'run-draft'],\n description: 'Run a draft automation with an explicit trigger agent.',\n resultKey: 'runDraftAutomation',\n options: [\n stringOption({\n inputKey: 'draftAutomationId',\n flagName: 'draft-automation-id',\n description: 'Draft automation ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'agentId',\n flagName: 'agent-id',\n description: 'Trigger agent ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'idempotencyKey',\n flagName: 'idempotency-key',\n description: 'Idempotency key for the run request.',\n required: true,\n }),\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'Optional JSON input payload.',\n }),\n stringOption({\n inputKey: 'additionalPrompt',\n flagName: 'additional-prompt',\n description: 'Optional prompt appended to the run.',\n }),\n ],\n },\n mcp: { fileName: 'runDraftAutomation.graphql' },\n document: `# Mutation to run a draft automation with an explicit agent.\n# \\`draftAutomationId\\` is the draft automation entity ID (\\`Automation.id\\`), not \\`draftVersionId\\`.\nmutation RunDraftAutomation(\n $draftAutomationId: ID!\n $agentId: ID!\n $idempotencyKey: String!\n $input: JSON\n $additionalPrompt: String\n) {\n runDraftAutomation(\n draftAutomationId: $draftAutomationId\n agentId: $agentId\n idempotencyKey: $idempotencyKey\n input: $input\n additionalPrompt: $additionalPrompt\n ) {\n automationRunId\n workflowId\n workflowRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'StopAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'stop-automation-run',\n path: ['automation-runs', 'stop'],\n description: 'Stop an automation run.',\n resultKey: 'stopAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'stopAutomationRun.graphql' },\n document: `# Mutation to stop an automation run\nmutation StopAutomationRun($automationRunId: ID!) {\n stopAutomationRun(automationRunId: $automationRunId)\n}`,\n }),\n createOperationSpec({\n operationName: 'UpdateAutomationById',\n kind: 'mutation',\n inputSchema: z.object({\n id: z.string().min(1),\n input: jsonObjectSchema,\n }),\n cli: {\n name: 'update-automation-by-id',\n path: ['automations', 'update'],\n description: 'Update an automation.',\n resultKey: 'updateAutomation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'UpdateAutomationInput payload.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'updateAutomation.graphql' },\n document: `# Mutation to update an automation\n# Returns only id and lastSavedAt for MCP tool simplicity\nmutation UpdateAutomationById($id: ID!, $input: UpdateAutomationInput!) {\n updateAutomation(id: $id, input: $input) {\n id\n lastSavedAt\n }\n}`,\n }),\n] as const satisfies readonly OperationSpec[];\n","import type { z } from 'zod';\nimport type { OperationSpec } from './operation-types';\n\nfunction stripLeadingGraphqlComments(document: string): string {\n return document.replace(/^(?:\\s*#.*\\n)+/u, '').trimStart();\n}\n\nfunction assertDocumentMatchesOperation({\n document,\n kind,\n operationName,\n}: {\n document: string;\n kind: OperationSpec['kind'];\n operationName: string;\n}): void {\n const normalizedDocument = stripLeadingGraphqlComments(document);\n const match =\n /^(?<actualKind>query|mutation)\\s+(?<actualOperationName>[_A-Za-z][_0-9A-Za-z]*)/u.exec(\n normalizedDocument,\n );\n\n const actualKind = match?.groups?.['actualKind'];\n const actualOperationName = match?.groups?.['actualOperationName'];\n if (!actualKind || !actualOperationName) {\n throw new Error(\n `Operation \"${operationName}\" is missing a top-level GraphQL ${kind} definition.`,\n );\n }\n\n if (actualKind !== kind || actualOperationName !== operationName) {\n throw new Error(\n `Operation \"${operationName}\" does not match its GraphQL document (${actualKind} ${actualOperationName}).`,\n );\n }\n}\n\nexport function createOperationSpec<TInputSchema extends z.ZodTypeAny>(\n spec: OperationSpec<TInputSchema>,\n): OperationSpec<TInputSchema> {\n assertDocumentMatchesOperation(spec);\n return spec;\n}\n","import { operationSpecs } from '@magical/mcp-registry';\nimport type { CliOptionSpec, OperationSpec } from '@magical/mcp-registry';\nimport { Command, InvalidArgumentError, Option } from 'commander';\nimport { createMagicalApiClient } from './api';\nimport type { ApiClient } from './api';\nimport { handleAuthLogin } from './auth-login';\nimport {\n formatDefaultOrganizationSelection,\n formatExamples,\n formatHumanReadableOutput,\n formatLogoutSuccess,\n formatOrganizationList,\n formatOutputModesNote,\n} from './cli-formatting';\nimport {\n configureCommandPresentation,\n createOperationHelpExamples,\n rootOperationalGroupDescriptions,\n} from './command-presentation';\nimport { getRuntimeConfig } from './config';\nimport type { RuntimeConfig } from './config';\nimport { CliError } from './errors';\nimport { createKeytarRefreshTokenStore } from './keychain';\nimport { openExternalUrl } from './open-url';\nimport { selfUpdateInstalledCli } from './self-update';\nimport {\n createFileSettingsStore,\n resolveConfiguredApiBaseUrl,\n} from './settings';\nimport type { SettingsStore } from './settings';\nimport { createSettingsCommand } from './settings-command';\nimport { createFileStateStore } from './state';\nimport type {\n CliOrganization,\n CliState,\n RefreshTokenStore,\n StateStore,\n} from './state';\nimport { createWorkosAuthClient } from './workos-auth';\nimport type { AuthClient } from './workos-auth';\n\nexport interface CliIo {\n error: (message: string) => void;\n info: (message: string) => void;\n}\n\nexport interface CliDependencies {\n apiClient: ApiClient;\n authClient: AuthClient;\n io: CliIo;\n openExternalUrl: (url: string) => Promise<void>;\n refreshTokenStore: RefreshTokenStore;\n runtimeConfig: RuntimeConfig;\n settingsStore?: SettingsStore;\n selfUpdateCli?: () => Promise<{\n installPrefix: string;\n packageSpecifier: string;\n registryUrl: string;\n }>;\n stateStore: StateStore;\n}\n\ntype JsonCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\ninterface OperationalCommandOptions {\n json?: boolean;\n org?: string;\n}\n\nfunction buildCommandOptionProperty(flagName: string): string {\n const [firstSegment, ...remainingSegments] = flagName.split('-');\n return [\n firstSegment ?? '',\n ...remainingSegments.map(\n (segment) => `${segment[0]?.toUpperCase() ?? ''}${segment.slice(1)}`,\n ),\n ].join('');\n}\n\nfunction parseCommandOptionValue(\n rawValue: string,\n optionSpec: CliOptionSpec,\n): unknown {\n switch (optionSpec.valueType) {\n case 'number': {\n const parsedNumber = Number(rawValue);\n if (Number.isNaN(parsedNumber)) {\n throw new InvalidArgumentError(\n `Expected a number for --${optionSpec.flagName}.`,\n );\n }\n\n return parsedNumber;\n }\n\n case 'string-array': {\n return rawValue\n .split(',')\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n }\n\n case 'json': {\n try {\n return JSON.parse(rawValue) as unknown;\n } catch {\n throw new InvalidArgumentError(\n `Expected valid JSON for --${optionSpec.flagName}.`,\n );\n }\n }\n\n case 'boolean': {\n return rawValue;\n }\n\n case 'string': {\n return rawValue;\n }\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction resolveOrganizationBySelector({\n organizations,\n selector,\n}: {\n organizations: CliOrganization[];\n selector: string;\n}): CliOrganization {\n const matchedOrganization = organizations.find(\n (organization) =>\n organization.id === selector || organization.name === selector,\n );\n\n if (!matchedOrganization) {\n throw new CliError(`Unknown organization \"${selector}\".`);\n }\n\n return matchedOrganization;\n}\n\nfunction resolveSelectedOrganization({\n organizationSelector,\n state,\n}: {\n organizationSelector?: string;\n state: CliState;\n}): CliOrganization {\n if (organizationSelector) {\n return resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: organizationSelector,\n });\n }\n\n if (!state.defaultOrgId) {\n throw new CliError(\n 'No default organization is configured. Use \"mgcl org use <org>\" or pass --org.',\n );\n }\n\n return resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: state.defaultOrgId,\n });\n}\n\nfunction requireLoggedInState(state: CliState | null): CliState {\n if (!state) {\n throw new CliError('You are not logged in. Run \"mgcl auth login\" first.');\n }\n\n return state;\n}\n\nfunction writeJsonOutput(io: CliIo, value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nfunction collectOperationVariables(\n operationSpec: OperationSpec,\n options: Record<string, unknown>,\n): Record<string, unknown> {\n const variables = Object.fromEntries(\n operationSpec.cli.options.flatMap((optionSpec: CliOptionSpec) => {\n const optionValue =\n options[buildCommandOptionProperty(optionSpec.flagName)];\n if (optionValue === undefined) {\n return [];\n }\n\n return [[optionSpec.inputKey, optionValue]];\n }),\n );\n\n const parsedVariables = operationSpec.inputSchema.safeParse(variables);\n if (!parsedVariables.success) {\n throw new CliError(\n parsedVariables.error.issues[0]?.message ?? 'Invalid command input.',\n );\n }\n\n if (!isRecord(parsedVariables.data)) {\n throw new CliError('Invalid command input.');\n }\n\n return parsedVariables.data;\n}\n\nasync function withOrgScopedAccessToken({\n dependencies,\n organizationId,\n state,\n}: {\n dependencies: CliDependencies;\n organizationId: string;\n state: CliState;\n}): Promise<{ accessToken: string }> {\n const refreshToken = await dependencies.refreshTokenStore.load(state.account);\n if (!refreshToken) {\n throw new CliError(\n 'No refresh token was found. Run \"mgcl auth login\" again.',\n );\n }\n\n const tokenResponse = await dependencies.authClient\n .refreshTokens({\n clientId: state.account.clientId,\n organizationId,\n refreshToken,\n })\n .catch((error: unknown) => {\n if (\n error instanceof CliError &&\n error.message === 'Refresh token already exchanged.'\n ) {\n throw new CliError(\n 'Refresh token already exchanged. Run \"mgcl auth login\" again.',\n { cause: error },\n );\n }\n\n throw error;\n });\n\n await dependencies.refreshTokenStore.save(\n state.account,\n tokenResponse.refresh_token,\n );\n\n return {\n accessToken: tokenResponse.access_token,\n };\n}\n\nasync function handleAuthLogout(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = await dependencies.stateStore.load();\n if (state) {\n await dependencies.refreshTokenStore.clear(state.account);\n }\n\n await dependencies.stateStore.clear();\n\n if (options.json) {\n writeJsonOutput(dependencies.io, { loggedOut: true });\n return;\n }\n\n dependencies.io.info(formatLogoutSuccess());\n}\n\nasync function handleOrgList(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n if (options.json) {\n writeJsonOutput(dependencies.io, state.organizations);\n return;\n }\n\n dependencies.io.info(\n formatOrganizationList({\n defaultOrgId: state.defaultOrgId,\n lastUsedOrgId: state.lastUsedOrgId,\n organizations: state.organizations,\n }),\n );\n}\n\nasync function handleOrgUse(\n dependencies: CliDependencies,\n organizationSelector: string,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n const organization = resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: organizationSelector,\n });\n\n const nextState: CliState = {\n ...state,\n defaultOrgId: organization.id,\n lastUsedOrgId: organization.id,\n };\n await dependencies.stateStore.save(nextState);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n defaultOrgId: organization.id,\n organization,\n });\n return;\n }\n\n dependencies.io.info(formatDefaultOrganizationSelection(organization));\n}\n\nasync function handleSelfUpdate(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const { selfUpdateCli } = dependencies;\n if (!selfUpdateCli) {\n throw new CliError('Self-update is not configured for this CLI instance.');\n }\n\n const updateResult = await selfUpdateCli();\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n installPrefix: updateResult.installPrefix,\n packageSpecifier: updateResult.packageSpecifier,\n registryUrl: updateResult.registryUrl,\n updated: true,\n });\n return;\n }\n\n dependencies.io.info(\n `Updated mgcl via npm (${updateResult.packageSpecifier}) in ${updateResult.installPrefix}.`,\n );\n}\n\nasync function handleOperationCommand(\n dependencies: CliDependencies,\n operationSpec: OperationSpec,\n commandOptions: Record<string, unknown> & OperationalCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n const organization = resolveSelectedOrganization({\n state,\n ...(commandOptions.org ? { organizationSelector: commandOptions.org } : {}),\n });\n const variables = collectOperationVariables(operationSpec, commandOptions);\n const { accessToken } = await withOrgScopedAccessToken({\n dependencies,\n organizationId: organization.id,\n state,\n });\n\n const result = await dependencies.apiClient.executeGraphQl({\n accessToken,\n query: operationSpec.document,\n resultKey: operationSpec.cli.resultKey,\n variables,\n });\n\n await dependencies.stateStore.save({\n ...state,\n lastUsedOrgId: organization.id,\n });\n\n if (commandOptions.json) {\n writeJsonOutput(dependencies.io, result);\n return;\n }\n\n dependencies.io.info(formatHumanReadableOutput(result));\n}\n\nfunction addRegistryOperationCommand({\n program,\n commandGroups,\n dependencies,\n operationSpec,\n}: {\n program: Command;\n commandGroups: Map<string, Command>;\n dependencies: CliDependencies;\n operationSpec: OperationSpec;\n}): void {\n const commandPath = [...operationSpec.cli.path];\n const leafCommandName = commandPath.pop();\n if (!leafCommandName) {\n throw new CliError(\n `CLI path is missing a leaf command for ${operationSpec.operationName}.`,\n );\n }\n\n let parentCommand = program;\n const currentGroupPath: string[] = [];\n\n for (const groupSegment of commandPath) {\n currentGroupPath.push(groupSegment);\n const groupPathKey = currentGroupPath.join(' ');\n const existingGroup = commandGroups.get(groupPathKey);\n if (existingGroup) {\n parentCommand = existingGroup;\n continue;\n }\n\n const nextGroup = parentCommand.command(groupSegment);\n if (currentGroupPath.length === 1) {\n nextGroup.helpGroup('Operation groups:');\n }\n const rootGroupDescription =\n currentGroupPath.length === 1\n ? rootOperationalGroupDescriptions.get(groupSegment)\n : undefined;\n if (rootGroupDescription) {\n nextGroup.description(rootGroupDescription);\n }\n\n commandGroups.set(groupPathKey, nextGroup);\n parentCommand = nextGroup;\n }\n\n const command = parentCommand.command(leafCommandName);\n configureOperationalCommand(command, dependencies, operationSpec);\n const legacyAliasCommand = program.command(operationSpec.cli.name, {\n hidden: true,\n });\n configureOperationalCommand(legacyAliasCommand, dependencies, operationSpec);\n}\nfunction configureOperationalCommand(\n command: Command,\n dependencies: CliDependencies,\n operationSpec: OperationSpec,\n): void {\n command\n .description(operationSpec.cli.description)\n .addOption(\n new Option(\n '--org <org>',\n 'Organization ID or exact organization name to use.',\n ).helpGroup('Shared options:'),\n )\n .addHelpText(\n 'after',\n `\\n${formatExamples(\n 'Examples',\n createOperationHelpExamples(operationSpec),\n )}`,\n );\n\n for (const optionSpec of operationSpec.cli.options) {\n const optionFlags =\n optionSpec.valueType === 'boolean'\n ? `--${optionSpec.flagName}`\n : `--${optionSpec.flagName} <value>`;\n const optionDescription = optionSpec.valueHint\n ? `${optionSpec.description} (${optionSpec.valueHint})`\n : optionSpec.description;\n const nextOption = new Option(optionFlags, optionDescription).helpGroup(\n operationSpec.kind === 'query' ? 'Query options:' : 'Mutation options:',\n );\n\n if (optionSpec.valueType === 'boolean') {\n command.addOption(nextOption);\n continue;\n }\n\n const parser = (rawValue: string): unknown =>\n parseCommandOptionValue(rawValue, optionSpec);\n nextOption.argParser(parser);\n\n if (optionSpec.required) {\n nextOption.makeOptionMandatory(true);\n command.addOption(nextOption);\n continue;\n }\n\n command.addOption(nextOption);\n }\n\n command.action(async function (this: Command) {\n await handleOperationCommand(\n dependencies,\n operationSpec,\n this.optsWithGlobals(),\n );\n });\n}\n\nexport function createConsoleIo(): CliIo {\n return {\n error(message) {\n process.stderr.write(`${message}\\n`);\n },\n info(message) {\n process.stdout.write(`${message}\\n`);\n },\n };\n}\n\nexport function createDefaultDependencies(): CliDependencies {\n const runtimeConfig = getRuntimeConfig();\n const settingsStore = createFileSettingsStore(runtimeConfig.stateFilePath);\n const selfUpdateOptions = {\n ...(runtimeConfig.cliDistTag ? { distTag: runtimeConfig.cliDistTag } : {}),\n ...(runtimeConfig.npmRegistryUrl\n ? { registryUrl: runtimeConfig.npmRegistryUrl }\n : {}),\n };\n\n return {\n apiClient: createMagicalApiClient({\n apiBaseUrl: async () =>\n resolveConfiguredApiBaseUrl({\n defaultApiBaseUrl: runtimeConfig.magicalApiUrl,\n settings: await settingsStore.load(),\n }),\n }),\n authClient: createWorkosAuthClient({\n workosApiUrl: runtimeConfig.workosApiUrl,\n }),\n io: createConsoleIo(),\n openExternalUrl,\n refreshTokenStore: createKeytarRefreshTokenStore(\n runtimeConfig.keychainServiceName,\n ),\n runtimeConfig,\n settingsStore,\n selfUpdateCli: async () => selfUpdateInstalledCli(selfUpdateOptions),\n stateStore: createFileStateStore(runtimeConfig.stateFilePath),\n };\n}\n\nexport function buildProgram(dependencies: CliDependencies): Command {\n const program = configureCommandPresentation(\n new Command()\n .name('mgcl')\n .description('Run Magical operations from the command line.'),\n )\n .addOption(new Option('--json', 'Render JSON output.'))\n .addOption(\n new Option(\n '--update',\n 'Update mgcl to the latest published npm release.',\n ),\n )\n .showHelpAfterError()\n .showSuggestionAfterError()\n .addHelpText(\n 'after',\n `\\n${formatExamples('Quick start', [\n 'mgcl auth login',\n 'mgcl org list',\n 'mgcl automations list --limit 10',\n 'mgcl automation-runs get --id <run-id>',\n 'mgcl update',\n ])}\\n\\n${formatOutputModesNote()}`,\n );\n program.action(async function (this: Command) {\n const options = this.optsWithGlobals<\n JsonCommandOptions & {\n update?: boolean;\n }\n >();\n\n if (options.update) {\n await handleSelfUpdate(dependencies, options);\n return;\n }\n\n this.outputHelp();\n });\n\n const authCommand = configureCommandPresentation(\n new Command('auth').description('Manage CLI authentication.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', ['mgcl auth login', 'mgcl auth logout'])}`,\n );\n authCommand\n .command('login')\n .description('Authenticate with Magical and load organization memberships.')\n .action(async function (this: Command) {\n await handleAuthLogin(dependencies, this.optsWithGlobals());\n });\n authCommand\n .command('logout')\n .description('Remove local CLI auth state.')\n .action(async function (this: Command) {\n await handleAuthLogout(dependencies, this.optsWithGlobals());\n });\n program.addCommand(authCommand);\n\n program.addCommand(createSettingsCommand(dependencies));\n\n const orgCommand = configureCommandPresentation(\n new Command('org').description('Manage organization selection.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', [\n 'mgcl org list',\n 'mgcl org use <org>',\n ])}`,\n );\n orgCommand\n .command('list')\n .description('List organizations available to the saved identity.')\n .action(async function (this: Command) {\n await handleOrgList(dependencies, this.optsWithGlobals());\n });\n orgCommand\n .command('use <org>')\n .description('Set the default organization by ID or exact name.')\n .action(async function (this: Command, organizationSelector: string) {\n await handleOrgUse(\n dependencies,\n organizationSelector,\n this.optsWithGlobals(),\n );\n });\n program.addCommand(orgCommand);\n\n const updateCommand = configureCommandPresentation(\n new Command('update').description(\n 'Update mgcl to the latest published npm release.',\n ),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', ['mgcl update', 'mgcl --update'])}`,\n );\n updateCommand.action(async function (this: Command) {\n await handleSelfUpdate(dependencies, this.optsWithGlobals());\n });\n program.addCommand(updateCommand);\n\n const operationalCommandGroups = new Map<string, Command>();\n for (const operationSpec of operationSpecs) {\n addRegistryOperationCommand({\n program,\n commandGroups: operationalCommandGroups,\n dependencies,\n operationSpec,\n });\n }\n\n return program;\n}\n","import { z } from 'zod';\nimport { CliError } from './errors';\nimport type { CliOrganization } from './state';\n\nconst workosOrganizationsResponseSchema = z.object({\n organizations: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n primaryDomain: z.string().nullable().optional(),\n }),\n ),\n success: z.boolean(),\n});\n\nconst workosUserSchema = z.object({\n email: z.string().nullable(),\n id: z.string().min(1),\n});\n\nconst graphQlResponseSchema = z.object({\n data: z.record(z.string(), z.unknown()).optional(),\n errors: z\n .array(\n z.object({\n message: z.string().min(1),\n }),\n )\n .optional(),\n});\nconst apiErrorResponseSchema = z.object({\n errors: z\n .array(\n z.object({\n message: z.string().min(1),\n }),\n )\n .optional(),\n message: z.string().min(1).optional(),\n});\n\nfunction getApiErrorDetail(responseBody: unknown): string | null {\n const parsedResponse = apiErrorResponseSchema.safeParse(responseBody);\n if (!parsedResponse.success) {\n return null;\n }\n\n if (parsedResponse.data.message) {\n return parsedResponse.data.message;\n }\n\n if (!parsedResponse.data.errors || parsedResponse.data.errors.length === 0) {\n return null;\n }\n\n return parsedResponse.data.errors.map((error) => error.message).join('\\n');\n}\n\nexport interface ApiClient {\n executeGraphQl: (input: {\n accessToken: string;\n query: string;\n resultKey: string;\n variables: Record<string, unknown>;\n }) => Promise<unknown>;\n fetchOrganizations: (input: {\n accessToken: string;\n }) => Promise<CliOrganization[]>;\n fetchUser: (input: {\n accessToken: string;\n userId: string;\n }) => Promise<z.infer<typeof workosUserSchema>>;\n}\n\ntype ApiBaseUrlResolver = () => Promise<string> | string;\n\nfunction trimTrailingSlash(value: string): string {\n return value.replace(/\\/+$/u, '');\n}\n\nexport function createMagicalApiClient({\n apiBaseUrl,\n fetchFn = fetch,\n}: {\n apiBaseUrl: string | ApiBaseUrlResolver;\n fetchFn?: typeof fetch;\n}): ApiClient {\n const resolveApiBaseUrl: ApiBaseUrlResolver =\n typeof apiBaseUrl === 'string' ? () => apiBaseUrl : apiBaseUrl;\n\n async function fetchJson({\n accessToken,\n path,\n init,\n }: {\n accessToken: string;\n init?: RequestInit;\n path: string;\n }): Promise<unknown> {\n const url = `${trimTrailingSlash(await resolveApiBaseUrl())}${path}`;\n const headers = new Headers(init?.headers);\n headers.set('authorization', `Bearer ${accessToken}`);\n\n const response = await fetchFn(url, {\n ...init,\n headers,\n }).catch((error: unknown) => {\n throw new CliError(\n `Failed to reach Magical API at ${url}. Check your configured base URL and make sure service-main is running.`,\n { cause: error },\n );\n });\n\n const responseBody = await response.json().catch((error: unknown) => {\n if (!response.ok) {\n throw new CliError(\n `Magical API request to ${url} failed with status ${response.status}.`,\n {\n cause: error,\n },\n );\n }\n\n throw new CliError(\n `Magical API returned a non-JSON response for ${url}.`,\n {\n cause: error,\n },\n );\n });\n if (!response.ok) {\n const errorDetail = getApiErrorDetail(responseBody);\n\n throw new CliError(\n `Magical API request to ${url} failed with status ${response.status}${errorDetail ? `: ${errorDetail}` : '.'}`,\n );\n }\n\n return responseBody;\n }\n\n return {\n async executeGraphQl({\n accessToken,\n query,\n resultKey,\n variables,\n }): Promise<unknown> {\n const headers = new Headers();\n headers.set('content-type', 'application/json');\n\n const parsedResponse = graphQlResponseSchema.safeParse(\n await fetchJson({\n accessToken,\n path: '/graphql',\n init: {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query,\n variables,\n }),\n },\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('GraphQL response payload was invalid.');\n }\n\n if (parsedResponse.data.errors && parsedResponse.data.errors.length > 0) {\n throw new CliError(\n parsedResponse.data.errors.map((error) => error.message).join('\\n'),\n );\n }\n\n return parsedResponse.data.data?.[resultKey] ?? null;\n },\n\n async fetchOrganizations({ accessToken }): Promise<CliOrganization[]> {\n const parsedResponse = workosOrganizationsResponseSchema.safeParse(\n await fetchJson({\n accessToken,\n path: '/workos/organizations',\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('Organization list payload was invalid.');\n }\n\n return parsedResponse.data.organizations.map((organization) => ({\n id: organization.id,\n name: organization.name,\n primaryDomain: organization.primaryDomain ?? null,\n }));\n },\n\n async fetchUser({\n accessToken,\n userId,\n }): Promise<z.infer<typeof workosUserSchema>> {\n const parsedResponse = workosUserSchema.safeParse(\n await fetchJson({\n accessToken,\n path: `/workos/user/${userId}`,\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('User payload was invalid.');\n }\n\n return parsedResponse.data;\n },\n };\n}\n","import os from 'node:os';\nimport path from 'node:path';\n\nexport const DEFAULT_MAGICAL_API_URL = 'https://api-agt.getmagical.io';\nexport const DEFAULT_WORKOS_API_URL = 'https://api.workos.com';\nexport const DEFAULT_WORKOS_CLIENT_ID = 'client_01JJZ6XJ1RF248P20WF63M4VAM';\nexport const DEFAULT_STAGING_WORKOS_CLIENT_ID =\n 'client_01JJZ6X26BGFBT8AC303XPQ9EQ';\nexport const DEFAULT_KEYCHAIN_SERVICE_NAME = '@getmagical/mcp-cli';\nexport const DEFAULT_CLI_DIST_TAG = 'latest';\nexport const DEFAULT_CLI_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';\nexport const CLI_CONFIG_DIRECTORY_NAME = 'magical-mcp-cli';\nexport const CLI_STATE_FILE_NAME = 'state.json';\nexport const CLI_SETTINGS_FILE_NAME = 'settings.json';\n\nexport interface RuntimeConfig {\n cliDistTag?: string;\n keychainServiceName: string;\n magicalApiUrl: string;\n npmRegistryUrl?: string;\n stateFilePath: string;\n workosApiUrl: string;\n workosClientId: string;\n}\n\nfunction resolvePlatformConfigDirectory(): string {\n const customConfigDirectory = process.env['MAGICAL_CLI_CONFIG_DIR'];\n if (customConfigDirectory) {\n return customConfigDirectory;\n }\n\n if (process.platform === 'darwin') {\n return path.join(os.homedir(), 'Library', 'Application Support');\n }\n\n if (process.platform === 'win32') {\n const appDataDirectory = process.env['APPDATA'];\n return appDataDirectory ?? path.join(os.homedir(), 'AppData', 'Roaming');\n }\n\n return process.env['XDG_CONFIG_HOME'] ?? path.join(os.homedir(), '.config');\n}\n\nexport function getRuntimeConfig(): RuntimeConfig {\n const configDirectory = path.join(\n resolvePlatformConfigDirectory(),\n CLI_CONFIG_DIRECTORY_NAME,\n );\n\n return {\n cliDistTag: process.env['MAGICAL_CLI_DIST_TAG'] ?? DEFAULT_CLI_DIST_TAG,\n magicalApiUrl: DEFAULT_MAGICAL_API_URL,\n npmRegistryUrl:\n process.env['MAGICAL_CLI_NPM_REGISTRY_URL'] ??\n DEFAULT_CLI_NPM_REGISTRY_URL,\n stateFilePath: path.join(configDirectory, CLI_STATE_FILE_NAME),\n workosApiUrl: DEFAULT_WORKOS_API_URL,\n workosClientId: DEFAULT_WORKOS_CLIENT_ID,\n keychainServiceName: DEFAULT_KEYCHAIN_SERVICE_NAME,\n };\n}\n\nexport function requireWorkosClientId(config: RuntimeConfig): string {\n return config.workosClientId;\n}\n","import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { safeJsonParse } from '@magical/common/stdlib/json.util';\nimport { isErr } from '@magical/common/stdlib/result.util';\nimport { z } from 'zod';\nimport { CLI_SETTINGS_FILE_NAME } from './config';\nimport { CliError } from './errors';\n\nexport const cliSettingsSchema = z.object({\n env: z\n .object({\n baseUrl: z.url().optional(),\n })\n .default({}),\n});\n\nexport type CliSettings = z.infer<typeof cliSettingsSchema>;\n\nexport interface SettingsStore {\n load: () => Promise<CliSettings>;\n save: (settings: CliSettings) => Promise<void>;\n}\n\nexport function createEmptyCliSettings(): CliSettings {\n return {\n env: {},\n };\n}\n\nexport function hasCliSettingsOverrides(settings: CliSettings): boolean {\n return settings.env.baseUrl !== undefined;\n}\n\nexport function resolveSettingsFilePath(stateFilePath: string): string {\n return path.join(path.dirname(stateFilePath), CLI_SETTINGS_FILE_NAME);\n}\n\nexport function resolveConfiguredApiBaseUrl({\n defaultApiBaseUrl,\n settings,\n}: {\n defaultApiBaseUrl: string;\n settings: CliSettings;\n}): string {\n return settings.env.baseUrl ?? defaultApiBaseUrl;\n}\n\nexport function shouldUseStagingWorkosClientId(settings: CliSettings): boolean {\n return settings.env.baseUrl !== undefined;\n}\n\nexport function createFileSettingsStore(stateFilePath: string): SettingsStore {\n const settingsFilePath = resolveSettingsFilePath(stateFilePath);\n\n return {\n async load() {\n const fileContents = await readFile(settingsFilePath, 'utf8').catch(\n (error: unknown) => {\n if (\n error instanceof Error &&\n 'code' in error &&\n error.code === 'ENOENT'\n ) {\n return null;\n }\n\n throw new CliError('Failed to load CLI settings.', { cause: error });\n },\n );\n if (fileContents === null) {\n return createEmptyCliSettings();\n }\n\n const parsedJson = safeJsonParse<unknown>(fileContents);\n if (isErr(parsedJson)) {\n throw new CliError('Stored CLI settings are invalid.', {\n cause: parsedJson.error.cause,\n });\n }\n\n const parsed = cliSettingsSchema.safeParse(parsedJson.value);\n if (!parsed.success) {\n throw new CliError('Stored CLI settings are invalid.', {\n cause: parsed.error,\n });\n }\n\n return parsed.data;\n },\n async save(settings) {\n if (!hasCliSettingsOverrides(settings)) {\n await rm(settingsFilePath, { force: true });\n return;\n }\n\n await mkdir(path.dirname(settingsFilePath), { recursive: true });\n await writeFile(\n settingsFilePath,\n `${JSON.stringify(settings, null, 2)}\\n`,\n );\n },\n };\n}\n\nexport function createMemorySettingsStore(\n initialSettings: CliSettings = createEmptyCliSettings(),\n): SettingsStore {\n let currentSettings = initialSettings;\n\n return {\n async load() {\n return currentSettings;\n },\n async save(settings) {\n currentSettings = settings;\n },\n };\n}\n","/* eslint-disable no-restricted-syntax -- Only place where JSON.parse is allowed */\nimport { UnreachableCaseError } from 'ts-essentials';\nimport type { z } from 'zod';\nimport { Err, isErr, Ok } from './result.util';\nimport type { Result } from './result.util';\nimport type { FlatJSONObject, JSONObject } from './types.util';\n\nexport function safeJsonParse<T>(\n json: string,\n): Result<T, JSONErrors.InvalidJSON> {\n try {\n return Ok(JSON.parse(json));\n } catch (error) {\n // Avoid a circular dependency between stdlib and logger initialization.\n // eslint-disable-next-line no-console\n console.warn('Failed to parse JSON', { error, json });\n return Err({ type: 'invalid-json', cause: error, json });\n }\n}\n\nexport function parseJson<T extends z.ZodTypeAny>(\n schema: T,\n jsonString: string,\n): Result<z.infer<T>, JSONErrors> {\n const jsonData = safeJsonParse(jsonString);\n\n if (isErr(jsonData)) {\n return jsonData;\n }\n\n const data = schema.safeParse(jsonData.value);\n\n if (!data.success) {\n return Err({\n type: 'failed-to-validate',\n cause: data.error,\n });\n }\n\n return Ok(data.data);\n}\n\nexport type JSONErrors = JSONErrors.InvalidJSON | JSONErrors.FailedToValidate;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace JSONErrors {\n export interface InvalidJSON {\n type: 'invalid-json';\n cause: unknown;\n json: string;\n }\n\n export interface FailedToValidate {\n type: 'failed-to-validate';\n cause: unknown;\n }\n}\n\n/**\n * Converts a camelCase string to snake_case.\n * @param str - The string to convert\n * @returns The snake_case version of the string\n */\nfunction toSnakeCase(str: string): string {\n return str.replaceAll(\n /(?<lower>[a-z])(?<upper>[A-Z])/gu,\n (_, lower: string, upper: string) => `${lower}_${upper.toLowerCase()}`,\n );\n}\n\nexport interface ToFlatJsonObjectOptions {\n /**\n * The maximum depth to convert (default: 10)\n */\n maxDepth?: number;\n /**\n * Whether to convert keys to snake_case (default: false)\n */\n snakeCase?: boolean;\n}\n\n/**\n * Converts an object to a flat JSON object.\n * All nested objects are flattened, nested keys are separated by a dot.\n * Optionally converts keys from camelCase to snake_case.\n * This function is useful for converting an object to a format that can be used as tags for logging or other purposes.\n *\n * @param context - The object to convert to a flat JSON object.\n * @param options - Conversion options\n * @returns A flat JSON object.\n */\nexport function toFlatJsonObject(\n context: Record<string, unknown> | unknown[],\n options: ToFlatJsonObjectOptions = {},\n): FlatJSONObject {\n const { maxDepth = 10, snakeCase = false } = options;\n\n if (maxDepth <= 0) {\n return {};\n }\n\n /* v8 ignore start -- all cases tested, branch tracking issues from TypeScript narrowing */\n return Object.entries(context).reduce<FlatJSONObject>((acc, [key, value]) => {\n const processedKey = snakeCase ? toSnakeCase(key) : key;\n const valueType = typeof value;\n switch (valueType) {\n case 'undefined':\n case 'function': {\n return acc;\n }\n case 'object': {\n if (value === null) {\n acc[processedKey] = null;\n return acc;\n } else if (value instanceof Date) {\n acc[processedKey] = value.toISOString();\n } else if (typeof value === 'object') {\n const flattened = toFlatJsonObject(\n { ...value },\n {\n maxDepth: maxDepth - 1,\n snakeCase,\n },\n );\n return {\n ...acc,\n ...Object.entries(flattened).reduce<FlatJSONObject>(\n (innerAcc, [innerKey, innerValue]) => {\n innerAcc[`${processedKey}.${innerKey}`] = innerValue;\n return innerAcc;\n },\n {},\n ),\n };\n }\n break;\n }\n case 'bigint': {\n if (typeof value === 'bigint') {\n acc[processedKey] = value.toString();\n }\n break;\n }\n case 'boolean': {\n if (typeof value === 'boolean') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'number': {\n if (typeof value === 'number') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'string': {\n if (typeof value === 'string') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'symbol': {\n if (typeof value === 'symbol') {\n acc[processedKey] = value.toString();\n }\n break;\n }\n default: {\n throw new UnreachableCaseError(valueType);\n }\n }\n\n return acc;\n }, {});\n /* v8 ignore stop */\n}\n\n/**\n * Converts an object to a JSON object.\n * This function recursively processes nested objects, keeping only JSON values.\n *\n * @param context - The object to convert to a JSON object.\n * @param maxDepth - The maximum depth to convert.\n * @returns A JSON object.\n */\nexport function toJsonObject(\n context: Record<string, unknown>,\n maxDepth = 10,\n): JSONObject {\n if (maxDepth <= 0) {\n return {};\n }\n\n /* v8 ignore start -- all cases tested, branch tracking issues from TypeScript narrowing */\n return Object.entries(context).reduce<JSONObject>((acc, [key, value]) => {\n const t = typeof value;\n switch (t) {\n case 'undefined':\n case 'function': {\n return acc;\n }\n case 'object': {\n if (value === null) {\n acc[key] = null;\n return acc;\n } else if (typeof value === 'object') {\n acc[key] =\n value instanceof Date\n ? value.toISOString()\n : toJsonObject({ ...value }, maxDepth - 1);\n }\n break;\n }\n case 'bigint': {\n if (typeof value === 'bigint') {\n acc[key] = value.toString();\n }\n break;\n }\n case 'boolean': {\n if (typeof value === 'boolean') {\n acc[key] = value;\n }\n break;\n }\n case 'number': {\n if (typeof value === 'number') {\n acc[key] = value;\n }\n break;\n }\n case 'string': {\n if (typeof value === 'string') {\n acc[key] = value;\n }\n break;\n }\n case 'symbol': {\n if (typeof value === 'symbol') {\n acc[key] = value.toString();\n }\n break;\n }\n default: {\n throw new UnreachableCaseError(t);\n }\n }\n\n return acc;\n }, {});\n /* v8 ignore stop */\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-type-assertion */\n/* eslint-disable @typescript-eslint/no-invalid-void-type */\n/* eslint-disable @typescript-eslint/no-redeclare */\nimport type { AsyncOrSync } from 'ts-essentials';\nimport { z } from 'zod';\nimport type { AppErrorBaseFields, AppErrorType } from './error';\nimport { AppError } from './error';\n\nexport type Result<O, E extends AppErrorType> = Result.Ok<O> | Result.Err<E>;\n\nexport namespace Result {\n export interface Ok<O = undefined> {\n _tag: 'Ok';\n value: O extends undefined ? void : O;\n }\n\n export interface Err<E extends AppErrorType> {\n _tag: 'Err';\n error: AppError<E>;\n }\n\n export function partition<O, E extends AppErrorType>(\n responses: Result<O, E>[],\n ): [O[], AppError<E>[]] {\n const oks = responses\n .filter((resp) => resp._tag === 'Ok')\n .map((resp) => resp.value);\n const errs = responses\n .filter((resp) => resp._tag === 'Err')\n .map((resp) => resp.error);\n\n return [oks as O[], errs];\n }\n\n export async function promiseAllAndPartition<O, E extends AppErrorType>(\n promises: Promise<Result<O, E>>[],\n ): Promise<[O[], AppError<E>[]]> {\n const results = await Promise.all(promises);\n return partition(results);\n }\n\n export function unwrapOrThrow<O, E extends AppErrorType>(\n result: Result<O, E>,\n ): O extends undefined ? void : O {\n if (isErr(result)) {\n throw result.error;\n }\n\n return result.value;\n }\n\n export async function all<O, E extends AppErrorType>(\n promises: (Promise<Result<O, E>> | Result<O, E>)[],\n ): Promise<Result<O[], E>> {\n const results = await fromThrowable(\n async () =>\n Promise.all(\n promises.map(async (promise) => {\n const result = await promise;\n if (isErr(result)) {\n throw result.error;\n }\n return result;\n }),\n ),\n 'unknown-error',\n );\n\n if (isErr(results)) {\n // eslint-disable-next-line new-cap -- no global disable, just here\n return ErrFromThrowable(results.error.cause);\n }\n\n return Ok(results.value.map((r) => r.value as O));\n }\n\n // #region andThen - lots of typescript magic to get this to work\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/max-params */\n export function andThenSync<O1, E1 extends AppErrorType>(\n fn1: () => Result<O1, E1>,\n ): Result<O1, E1>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n ): Result<O2, E1 | E2>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n ): Result<O3, E1 | E2 | E3>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n ): Result<O4, E1 | E2 | E3 | E4>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n ): Result<O5, E1 | E2 | E3 | E4 | E5>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O6, E6>,\n ): Result<O6, E1 | E2 | E3 | E4 | E5 | E6>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O7, E7>,\n ): Result<O7, E1 | E2 | E3 | E4 | E5 | E6 | E7>;\n\n export function andThenSync(\n fnFirst: () => Result<any, any>,\n ...fns: ((...value: any[]) => Result<any, any>)[]\n ): Result<any, any> {\n let result = fnFirst();\n const values = [];\n\n for (const fn of fns) {\n if (isErr(result)) {\n return result;\n }\n\n values.unshift(result.value);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- Safe via types\n result = fn(...values);\n }\n\n return result;\n }\n\n // andThen async overloads\n export function andThen<O1, E1 extends AppErrorType>(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n ): Promise<Result<O1, E1>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n ): Promise<Result<O2, E1 | E2>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n ): Promise<Result<O3, E1 | E2 | E3>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n ): Promise<Result<O4, E1 | E2 | E3 | E4>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n ): Promise<Result<O5, E1 | E2 | E3 | E4 | E5>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n ): Promise<Result<O6, E1 | E2 | E3 | E4 | E5 | E6>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O7, E7>> | Result<O7, E7>,\n ): Promise<Result<O7, E1 | E2 | E3 | E4 | E5 | E6 | E7>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n O8,\n E8 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O7, E7>> | Result<O7, E7>,\n fn8: (\n value7: O7,\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O8, E8>> | Result<O8, E8>,\n ): Promise<Result<O8, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8>>;\n\n export async function andThen(\n fnFirst: () => Promise<Result<any, any>> | Result<any, any>,\n ...fns: ((\n ...value: any[]\n ) => Promise<Result<any, any>> | Result<any, any>)[]\n ): Promise<Result<any, any>> {\n let result = await fnFirst();\n const values = [];\n\n for (const fn of fns) {\n if (isErr(result)) {\n return result;\n }\n\n values.unshift(result.value);\n\n // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unsafe-argument -- Safe via types\n result = await fn(...values);\n }\n\n return result;\n }\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/max-params */\n // #endregion\n}\n\nexport function Ok(): Result.Ok;\nexport function Ok<O>(value: O): Result.Ok<O>;\nexport function Ok<O>(value?: O): Result.Ok<O> {\n if (arguments.length === 0) {\n return {\n _tag: 'Ok',\n value: undefined,\n } as Result.Ok<O>;\n }\n\n return {\n _tag: 'Ok',\n value,\n } as Result.Ok<O>;\n}\n\nexport function Err<E extends AppErrorType>(error: E): Result.Err<E> {\n return {\n _tag: 'Err',\n error: new AppError(error),\n };\n}\n\nexport function ErrFromThrowable<E extends AppErrorType>(\n error: unknown,\n): Result.Err<E> {\n return {\n _tag: 'Err',\n error: error as AppError<E>,\n } as Result.Err<E>;\n}\n\nexport function isOk<O, E extends AppErrorType>(\n result: Result<O, E>,\n): result is Result.Ok<O> {\n return result._tag === 'Ok';\n}\n\nexport function isErr<O, E extends AppErrorType>(\n result: Result<O, E>,\n): result is Result.Err<E> {\n return result._tag === 'Err';\n}\n\nexport function match<O, E extends AppErrorType, R>(\n result: Result<O, E>,\n {\n onErr,\n onOk,\n }: {\n onErr: (error: AppError<E>) => R;\n onOk: (value: O | void) => R;\n },\n): R {\n if (isErr(result)) {\n return onErr(result.error);\n }\n\n return onOk(result.value);\n}\n\n/**\n * Best used for functions that are deeply generic or are not a good candidate for re-use.\n */\n\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => Promise<O>,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n): Promise<Result<O, AppErrorType<T, R> & { cause: unknown }>>;\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => O,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n): Result<O, AppErrorType<T, R> & { cause: unknown }>;\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => O | Promise<O>,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n):\n | Result<O, AppErrorType<T, R> & { cause: unknown }>\n | Promise<Result<O, AppErrorType<T, R> & { cause: unknown }>> {\n // eslint-disable-next-line no-restricted-syntax -- Automated Disable - Please fix\n try {\n const result = fn();\n if (result && typeof (result as Promise<O>).then === 'function') {\n return (\n (result as Promise<O>)\n // eslint-disable-next-line promise/prefer-await-to-then\n .then((value) => Ok(value))\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch((err: unknown) =>\n Err({\n ...errorInfo,\n type: errorType,\n cause: err,\n } as AppErrorType<T, R> & { cause: unknown }),\n )\n );\n }\n return Ok(result as O);\n } catch (err) {\n return Err({\n ...errorInfo,\n type: errorType,\n cause: err,\n } as AppErrorType<T, R> & { cause: unknown });\n }\n}\n\n/**\n * Best used for functions that are not deeply generic.\n */\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => Promise<O>,\n): (\n ...args: A\n) => Promise<Result<O, { type: 'unknown-error'; cause: unknown }>>;\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => O,\n): (...args: A) => Result<O, { type: 'unknown-error'; cause: unknown }>;\n\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => O | Promise<O>,\n): (\n ...args: A\n) =>\n | Result<O, { type: 'unknown-error'; cause: unknown }>\n | Promise<Result<O, { type: 'unknown-error'; cause: unknown }>> {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n return (...args: A) => {\n // eslint-disable-next-line no-restricted-syntax -- Automated Disable - Please fix\n try {\n const result = fn(...args);\n if (result && typeof (result as Promise<O>).then === 'function') {\n return (\n (result as Promise<O>)\n // eslint-disable-next-line promise/prefer-await-to-then\n .then((value) => Ok(value))\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch((error: unknown) =>\n Err({\n type: 'unknown-error',\n cause: error,\n }),\n )\n );\n }\n return Ok(result as O);\n } catch (error: unknown) {\n return Err({\n type: 'unknown-error',\n cause: error,\n });\n }\n };\n}\n\ntype ZOk<T extends z.ZodType> = z.ZodObject<{\n _tag: z.ZodLiteral<'Ok'>;\n value: T;\n}>;\n\ntype ZErr<T extends z.ZodType> = z.ZodObject<{\n _tag: z.ZodLiteral<'Err'>;\n error: T;\n}>;\n\nexport function zOk<T extends z.ZodType>(okSchema: T): ZOk<T> {\n return z.object({\n _tag: z.literal('Ok'),\n value: okSchema,\n });\n}\n\nexport function zErr<T extends z.ZodType>(errSchema: T): ZErr<T> {\n return z.object({\n _tag: z.literal('Err'),\n error: errSchema,\n });\n}\n\nexport function zResult<\n OkSchema extends z.ZodType,\n ErrSchema extends z.ZodType,\n>(\n okSchema: OkSchema,\n errSchema: ErrSchema,\n): z.ZodUnion<[ZOk<OkSchema>, ZErr<ErrSchema>]> {\n return z.union([zOk(okSchema), zErr(errSchema)]);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type OkOf<T> = T extends (\n ...args: any[]\n) => AsyncOrSync<Result<infer O, any>>\n ? O\n : never;\n\n/**\n * Extracts the error type from a function that returns Result<_, E> or Promise<Result<_, E>>\n *\n * @example\n * function funcA(): Result<Buffer, ATimeoutError | AAuthError> {...}\n *\n * type FuncAError = ErrOf<typeof funcA>; // type FuncAError = ATimeoutError | AAuthError\n *\n * async function funcThatCallsFuncs(): Promise<Result<SuccessResult, FuncAError | FuncBError> {\n * const resA = funcA();\n * if (isErr(resA)) {\n * return resA;\n * }\n *\n * const resB = await funcB();\n * if (isErr(resB)) {\n * return resB;\n * }\n * }\n */\n/* #region ErrOf */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type ErrOf<T> = T extends (\n ...args: any[]\n) => Promise<Result<any, infer E>>\n ? E\n : T extends (...args: any[]) => Result<any, infer E>\n ? E\n : never;\n/* eslint-enable @typescript-eslint/no-explicit-any */\n/* #endregion ErrOf */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype OkOfResult<R> = [R] extends [Result<infer O, any>] ? O : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ErrOfResult<R> = [R] extends [Result<any, infer E>] ? E : never;\n\ntype FlattenResult<R> = [R] extends [Result<infer O, infer E>]\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [O] extends [Result<any, any>]\n ? FlattenResult<Result<OkOfResult<O>, E | ErrOfResult<O>>>\n : Result<O, E>\n : R;\n\nexport function isResult(v: unknown): v is Result<unknown, AppErrorType> {\n return (\n !!v &&\n typeof v === 'object' &&\n '_tag' in v &&\n (v._tag === 'Ok' || v._tag === 'Err')\n );\n}\n\n/**\n * Recursively flattens a nested Result, returning a value without a nested result or a Result.Err.\n *\n * @example\n * interface UnauthorizedError { type: 'unauthorized'; message: string }\n * interface GetAutomationIdError { type: 'get-automation-id'; message: string }\n *\n * type Inner = Result<{ id: BrandedString<'automationTestId'> }, UnauthorizedError>;\n * type Outer = Result<Inner, GetAutomationIdError>;\n *\n * const nested: Outer = Ok(Ok({ id: brandString<'automationTestId'>('123') }));\n * const flat = flattenResult(nested);\n * // flat is Ok({ id: '123' })\n * // with type Result<{ id: BrandedString<'automationTestId'> }, UnauthorizedError | GetAutomationIdError>\n */\nexport function flattenResult<E extends AppErrorType>(\n res: Result.Err<E>,\n): Result.Err<E>;\nexport function flattenResult<O, E extends AppErrorType>(\n res: Result.Ok<O>,\n): O extends Result<unknown, AppErrorType>\n ? FlattenResult<Result<O, E>>\n : Result.Ok<O>;\nexport function flattenResult<R extends Result<unknown, AppErrorType>>(\n res: R,\n): FlattenResult<R>;\n\nexport function flattenResult(\n res: Result<unknown, AppErrorType>,\n): FlattenResult<Result<unknown, AppErrorType>> {\n if (isErr(res)) {\n return res;\n }\n\n const { value } = res;\n\n if (isResult(value)) {\n return flattenResult(value);\n }\n\n return res;\n}\n","import type { AppError, AppErrorType } from './error';\nimport type { JSONObject, JSONValue } from './types.util';\n\nexport type UserFacingApiStatusCode = number;\n\nconst USER_FACING_STATUS_MESSAGES = new Map<number, string>([\n [400, 'Bad Request'],\n [401, 'Unauthorized'],\n [403, 'Forbidden'],\n [404, 'Not Found'],\n [500, 'Internal Server Error'],\n]);\n\nconst USER_FACING_DEFAULT_ACTIONS = new Map<number, string>([\n [400, 'Review the request payload and retry.'],\n [401, 'Authenticate and retry the request.'],\n [403, 'Verify your permissions and retry the request.'],\n [404, 'Verify the requested resource exists and retry.'],\n [\n 500,\n 'Retry the request. If this keeps happening, contact support and share the correlation ID.',\n ],\n]);\n\nconst USER_FACING_FALLBACK_CODES = new Map<number, string>([\n [400, 'BAD_REQUEST'],\n [401, 'UNAUTHORIZED'],\n [403, 'FORBIDDEN'],\n [404, 'NOT_FOUND'],\n [500, 'INTERNAL_SERVER_ERROR'],\n]);\n\nexport interface UserFacingApiError {\n code: string;\n message: string;\n correlationId: string;\n suggestedAction?: string | undefined;\n details?: JSONObject | undefined;\n}\n\nexport type UserFacingGraphQLErrorCode =\n | 'BAD_USER_INPUT'\n | 'FORBIDDEN'\n | 'INTERNAL_SERVER_ERROR'\n | 'NOT_FOUND'\n | 'UNAUTHORIZED';\n\nexport interface UserFacingGraphQLError {\n code: UserFacingGraphQLErrorCode;\n errorCode: string;\n message: string;\n correlationId: string;\n}\n\ninterface ZodIssueLike {\n path?: unknown;\n message?: unknown;\n code?: unknown;\n}\n\nfunction isCustomerUsageError(appError: AppError<AppErrorType>): boolean {\n return appError.categories.includes('customer_usage');\n}\n\nfunction getStatusCodeFromAppErrorCode(\n code: AppErrorType['statusCode'],\n): UserFacingApiStatusCode | undefined {\n if (typeof code !== 'number' || !Number.isInteger(code)) {\n return undefined;\n }\n\n if (code >= 400 && code <= 599) {\n return code;\n }\n\n return undefined;\n}\n\nfunction getStatusFamilyFallbackCode(statusCode: number): 400 | 500 {\n if (statusCode >= 400 && statusCode <= 499) {\n return 400;\n }\n\n return 500;\n}\n\nfunction getStatusMessage(statusCode: number): string {\n const directMessage = USER_FACING_STATUS_MESSAGES.get(statusCode);\n if (directMessage !== undefined) {\n return directMessage;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'Bad Request'\n : 'Internal Server Error';\n}\n\nfunction getDefaultSuggestedAction(statusCode: number): string {\n const directAction = USER_FACING_DEFAULT_ACTIONS.get(statusCode);\n if (directAction !== undefined) {\n return directAction;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'Review the request payload and retry.'\n : 'Retry the request. If this keeps happening, contact support and share the correlation ID.';\n}\n\nfunction getFallbackErrorCode(statusCode: number): string {\n const directCode = USER_FACING_FALLBACK_CODES.get(statusCode);\n if (directCode !== undefined) {\n return directCode;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'BAD_REQUEST'\n : 'INTERNAL_SERVER_ERROR';\n}\n\nfunction shouldExposeMessage({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): boolean {\n if (statusCode >= 500) {\n return false;\n }\n\n return isCustomerUsageError(appError);\n}\n\nfunction resolveApiMessage({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return getStatusMessage(statusCode);\n }\n\n const trimmedMessage = appError.message.trim();\n if (trimmedMessage.length > 0) {\n return trimmedMessage;\n }\n\n return getStatusMessage(statusCode);\n}\n\nfunction resolveApiErrorCode({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return getFallbackErrorCode(statusCode);\n }\n\n return normalizeUserFacingErrorCode({\n type: appError.type,\n fallbackCode: getFallbackErrorCode(statusCode),\n });\n}\n\nfunction resolveSuggestedAction({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n const trimmedSuggestedAction = appError.suggestedAction?.trim();\n if (shouldExposeMessage({ appError, statusCode }) && trimmedSuggestedAction) {\n return trimmedSuggestedAction;\n }\n\n return getDefaultSuggestedAction(statusCode);\n}\n\nfunction getZodIssuesFromCause(\n cause: unknown,\n maxDepth = 10,\n): ZodIssueLike[] | undefined {\n if (maxDepth < 0 || typeof cause !== 'object' || cause === null) {\n return undefined;\n }\n\n if ('issues' in cause && Array.isArray(cause.issues)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n return cause.issues as ZodIssueLike[];\n }\n\n if ('cause' in cause) {\n return getZodIssuesFromCause(cause.cause, maxDepth - 1);\n }\n\n return undefined;\n}\n\nfunction toUserFacingDetailsValue(\n value: unknown,\n depth: number,\n): JSONValue | undefined {\n if (depth < 0) {\n return undefined;\n }\n\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const serializedValues = value\n .map((item) => toUserFacingDetailsValue(item, depth - 1))\n .filter((item): item is JSONValue => item !== undefined);\n\n return serializedValues;\n }\n\n if (value && typeof value === 'object') {\n const serializedObject: JSONObject = {};\n for (const [key, itemValue] of Object.entries(value)) {\n const serializedItemValue = toUserFacingDetailsValue(\n itemValue,\n depth - 1,\n );\n if (serializedItemValue !== undefined) {\n serializedObject[key] = serializedItemValue;\n }\n }\n\n if (Object.keys(serializedObject).length === 0) {\n return undefined;\n }\n\n return serializedObject;\n }\n\n return undefined;\n}\n\nfunction resolveApiDetails({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): JSONObject | undefined {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return undefined;\n }\n\n const zodIssues = getZodIssuesFromCause(appError.cause);\n if (zodIssues && zodIssues.length > 0) {\n return {\n validationErrors: zodIssues.map((issue) => ({\n path: Array.isArray(issue.path) ? issue.path.map(String).join('.') : '',\n message:\n typeof issue.message === 'string' ? issue.message : 'Invalid value',\n ...(typeof issue.code === 'string' ? { code: issue.code } : {}),\n })),\n };\n }\n\n const rawDetails = toUserFacingDetailsValue(appError.details, 4);\n if (\n rawDetails &&\n typeof rawDetails === 'object' &&\n !Array.isArray(rawDetails) &&\n Object.keys(rawDetails).length > 0\n ) {\n return rawDetails;\n }\n\n return undefined;\n}\n\nfunction getGraphQLErrorCodeFromAppErrorCode(\n code: AppErrorType['statusCode'],\n): UserFacingGraphQLErrorCode | undefined {\n if (code === 400) {\n return 'BAD_USER_INPUT';\n }\n\n if (code === 401) {\n return 'UNAUTHORIZED';\n }\n\n if (code === 403) {\n return 'FORBIDDEN';\n }\n\n if (code === 404) {\n return 'NOT_FOUND';\n }\n\n if (code === 500) {\n return 'INTERNAL_SERVER_ERROR';\n }\n\n return undefined;\n}\n\nfunction resolveGraphQLErrorCode(\n appError: AppError<AppErrorType>,\n): UserFacingGraphQLErrorCode {\n const codeFromAppErrorCode = getGraphQLErrorCodeFromAppErrorCode(\n appError.statusCode,\n );\n if (codeFromAppErrorCode !== undefined) {\n return codeFromAppErrorCode;\n }\n\n const normalizedErrorType = appError.type.toLowerCase();\n\n if (normalizedErrorType.includes('unauthorized')) {\n return 'UNAUTHORIZED';\n }\n\n if (normalizedErrorType.includes('forbidden')) {\n return 'FORBIDDEN';\n }\n\n if (normalizedErrorType.includes('not-found')) {\n return 'NOT_FOUND';\n }\n\n if (isCustomerUsageError(appError)) {\n return 'BAD_USER_INPUT';\n }\n\n return 'INTERNAL_SERVER_ERROR';\n}\n\nfunction getStatusCodeFromGraphQLErrorCode(\n code: UserFacingGraphQLErrorCode,\n): UserFacingApiStatusCode {\n switch (code) {\n case 'BAD_USER_INPUT': {\n return 400;\n }\n case 'UNAUTHORIZED': {\n return 401;\n }\n case 'FORBIDDEN': {\n return 403;\n }\n case 'NOT_FOUND': {\n return 404;\n }\n case 'INTERNAL_SERVER_ERROR': {\n return 500;\n }\n }\n}\n\nfunction getGraphQLErrorMessage({\n code,\n apiMessage,\n}: {\n code: UserFacingGraphQLErrorCode;\n apiMessage: string;\n}): string {\n switch (code) {\n case 'BAD_USER_INPUT':\n case 'NOT_FOUND':\n case 'INTERNAL_SERVER_ERROR': {\n return apiMessage;\n }\n case 'UNAUTHORIZED': {\n return 'Unauthorized';\n }\n case 'FORBIDDEN': {\n return 'Forbidden';\n }\n }\n}\n\nfunction getGraphQLAppErrorCode({\n code,\n apiCode,\n}: {\n code: UserFacingGraphQLErrorCode;\n apiCode: string;\n}): string {\n if (\n code === 'INTERNAL_SERVER_ERROR' ||\n code === 'UNAUTHORIZED' ||\n code === 'FORBIDDEN'\n ) {\n return code;\n }\n\n return apiCode;\n}\n\nfunction normalizeErrorCodeSegment(value: string): string {\n return value\n .trim()\n .toUpperCase()\n .replaceAll(/[^\\dA-Z]+/gu, '_')\n .replaceAll(/^_+/gu, '')\n .replaceAll(/_+$/gu, '');\n}\n\nexport function getStatusCodeForAppErrorFromAppError(\n appError: AppError<AppErrorType>,\n): UserFacingApiStatusCode {\n const statusCodeFromCode = getStatusCodeFromAppErrorCode(appError.statusCode);\n if (statusCodeFromCode !== undefined) {\n return statusCodeFromCode;\n }\n\n if (isCustomerUsageError(appError)) {\n return 400;\n }\n\n return 500;\n}\n\nexport function normalizeUserFacingErrorCode({\n type,\n fallbackCode,\n prefix,\n}: {\n type: string | undefined;\n fallbackCode: string;\n prefix?: string | undefined;\n}): string {\n if (!type) {\n return fallbackCode;\n }\n\n const normalized = normalizeErrorCodeSegment(type);\n\n if (normalized.length === 0) {\n return fallbackCode;\n }\n\n const normalizedPrefix = prefix\n ? normalizeErrorCodeSegment(prefix)\n : undefined;\n\n if (!normalizedPrefix) {\n return normalized;\n }\n\n if (normalized.startsWith(`${normalizedPrefix}_`)) {\n return normalized;\n }\n\n return `${normalizedPrefix}_${normalized}`;\n}\n\nexport function toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n correlationId: string;\n statusCode?: UserFacingApiStatusCode | undefined;\n}): UserFacingApiError {\n const resolvedStatusCode =\n statusCode ?? getStatusCodeForAppErrorFromAppError(appError);\n const message = resolveApiMessage({\n appError,\n statusCode: resolvedStatusCode,\n });\n const suggestedAction = resolveSuggestedAction({\n appError,\n statusCode: resolvedStatusCode,\n });\n const details = resolveApiDetails({\n appError,\n statusCode: resolvedStatusCode,\n });\n\n return {\n code: resolveApiErrorCode({\n appError,\n statusCode: resolvedStatusCode,\n }),\n message,\n correlationId,\n suggestedAction,\n ...(details ? { details } : {}),\n };\n}\n\nexport function toUserFacingGraphQLErrorFromAppError({\n appError,\n correlationId,\n}: {\n appError: AppError<AppErrorType>;\n correlationId: string;\n}): UserFacingGraphQLError {\n const code = resolveGraphQLErrorCode(appError);\n const statusCode = getStatusCodeFromGraphQLErrorCode(code);\n const apiError = toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n });\n\n return {\n code,\n errorCode: getGraphQLAppErrorCode({ code, apiCode: apiError.code }),\n message: getGraphQLErrorMessage({ code, apiMessage: apiError.message }),\n correlationId,\n };\n}\n\nexport function renderUserFacingApiError(error: UserFacingApiError): string {\n return [\n `code: ${error.code}`,\n `message: ${error.message}`,\n ...(error.suggestedAction\n ? [`suggestedAction: ${error.suggestedAction}`]\n : []),\n ...(error.details ? [`details: ${JSON.stringify(error.details)}`] : []),\n `correlationId: ${error.correlationId}`,\n ].join('\\n');\n}\n","import { isErrorLike } from './error-serialization';\nimport {\n getStatusCodeForAppErrorFromAppError,\n toUserFacingApiErrorFromAppError,\n toUserFacingGraphQLErrorFromAppError,\n} from './error-user-facing';\nimport type {\n UserFacingApiError,\n UserFacingApiStatusCode,\n UserFacingGraphQLError,\n} from './error-user-facing';\nimport { fromThrowable, isErr } from './result.util';\nimport type { JSONObject } from './types.util';\n\nconst ERROR_FIELDS = new Set(['name', 'message', 'stack', 'cause']);\n\n// Build a stack for the wrapper error that preserves the original throw site frames\n// but removes internal frames from this utility file, and uses the wrapper header.\nconst INTERNAL_STACK_PATHS = [\n '/src/stdlib/result.util.ts',\n '/src/stdlib/error.ts',\n];\n\nfunction stripInternalFrames(\n stack: string,\n internalFrames: string[],\n): string[] {\n const lines = stack.split('\\n');\n return lines.filter(\n (line) =>\n !internalFrames.some((internalFrame) => line.includes(internalFrame)),\n );\n}\n\nexport const ORDERED_APP_ERROR_CATEGORIES = [\n 'internal_platform',\n 'customer_usage',\n 'third_party',\n] as const;\nexport type AppErrorCategory = (typeof ORDERED_APP_ERROR_CATEGORIES)[number];\n\nexport function isAppErrorCategory(\n category: unknown,\n): category is AppErrorCategory {\n return (\n typeof category === 'string' &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n ORDERED_APP_ERROR_CATEGORIES.includes(category as AppErrorCategory)\n );\n}\n\nfunction isNonEmptyAppErrorCategoryArray(\n categories: unknown,\n): categories is [AppErrorCategory, ...AppErrorCategory[]] {\n return (\n Array.isArray(categories) &&\n categories.length > 0 &&\n categories.every(isAppErrorCategory)\n );\n}\n\nexport const APP_ERROR_SEVERITIES = ['warn', 'error', 'fatal'] as const;\nexport type AppErrorSeverity = (typeof APP_ERROR_SEVERITIES)[number];\n\nexport type AppErrorCode = number;\n\nexport function isAppErrorCode(code: unknown): code is AppErrorCode {\n return (\n typeof code === 'number' &&\n Number.isInteger(code) &&\n code >= 400 &&\n code <= 599\n );\n}\n\nexport function isAppErrorSeverity(\n severity: unknown,\n): severity is AppErrorSeverity {\n return (\n typeof severity === 'string' &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n APP_ERROR_SEVERITIES.includes(severity as AppErrorSeverity)\n );\n}\n\nexport function getMainAppErrorCategory(\n categories: [AppErrorCategory, ...AppErrorCategory[]],\n): AppErrorCategory;\nexport function getMainAppErrorCategory(categories: []): undefined;\nexport function getMainAppErrorCategory(\n categories: AppErrorCategory[],\n): AppErrorCategory | undefined;\nexport function getMainAppErrorCategory(\n categories: AppErrorCategory[],\n): AppErrorCategory | undefined {\n return ORDERED_APP_ERROR_CATEGORIES.find((category) =>\n categories.includes(category),\n );\n}\n\nexport interface AppErrorBaseFields {\n categories?: AppErrorCategory[] | undefined;\n severity?: AppErrorSeverity | undefined;\n statusCode?: AppErrorCode | undefined;\n /** @deprecated Use statusCode instead. */\n code?: AppErrorCode | undefined;\n message?: string | undefined;\n suggestedAction?: string | undefined;\n nonRetryable?: boolean | undefined;\n stack?: string | undefined;\n internalFrames?: string[] | undefined;\n}\n\ntype AppErrorWithoutCauseType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = R &\n AppErrorBaseFields & {\n type: T extends 'unknown-error' ? never : T;\n message: string;\n cause?: unknown;\n };\n\nexport type AppErrorWithCauseType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = R &\n AppErrorBaseFields & {\n type: T;\n cause: unknown;\n };\n\nexport type AppErrorType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = AppErrorWithoutCauseType<T, R> | AppErrorWithCauseType<T, R>;\n\nexport class AppError<E extends AppErrorType> extends Error {\n declare cause: E extends { cause: infer C } ? C : unknown;\n type: E['type'];\n categories: NonNullable<E['categories']>;\n severity: NonNullable<E['severity']>;\n statusCode: E['statusCode'];\n suggestedAction: E['suggestedAction'];\n nonRetryable: E['nonRetryable'];\n details: Omit<\n E,\n | 'type'\n | 'message'\n | 'cause'\n | 'nonRetryable'\n | 'stack'\n | 'internalFrames'\n | 'categories'\n | 'severity'\n | 'statusCode'\n | 'code'\n | 'suggestedAction'\n >;\n\n constructor({\n type,\n categories,\n severity,\n statusCode,\n code,\n message,\n suggestedAction,\n cause,\n nonRetryable,\n stack,\n internalFrames,\n ...details\n }: E) {\n super(AppError.resolveMessage(message, cause, type), { cause });\n\n this.type = type;\n this.name = type;\n this.details = details;\n this.categories = categories ?? AppError.extractCategoriesFromCause(cause);\n this.severity = severity ?? AppError.extractSeverityFromCause(cause);\n this.statusCode =\n statusCode ?? code ?? AppError.extractStatusCodeFromCause(cause);\n this.suggestedAction =\n suggestedAction ?? AppError.extractSuggestedActionFromCause(cause);\n this.nonRetryable = nonRetryable ?? false;\n\n AppError.applyStack(this, stack, internalFrames);\n }\n\n private static resolveMessage(\n message: string | undefined,\n cause: unknown,\n type: string,\n ): string {\n if (message) {\n return message;\n }\n if (cause instanceof Error) {\n return cause.message;\n }\n return type;\n }\n\n private static getInheritedCauseField<T>(\n cause: unknown,\n extractor: (causeRecord: Record<string, unknown>) => T | undefined,\n seen: ReadonlySet<unknown> = new Set(),\n ): T | undefined {\n if (!cause || typeof cause !== 'object' || seen.has(cause)) {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n const causeRecord = cause as Record<string, unknown>;\n const extractedValue = extractor(causeRecord);\n if (extractedValue !== undefined) {\n return extractedValue;\n }\n\n return AppError.getInheritedCauseField(\n causeRecord['cause'],\n extractor,\n new Set(seen).add(cause),\n );\n }\n\n private static extractCategoriesFromCause(\n cause: unknown,\n ): [AppErrorCategory, ...AppErrorCategory[]] {\n return (\n AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { categories } = causeRecord;\n if (isNonEmptyAppErrorCategoryArray(categories)) {\n return categories;\n }\n\n return undefined;\n }) ?? ['internal_platform']\n );\n }\n\n private static extractSeverityFromCause(cause: unknown): AppErrorSeverity {\n return (\n AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { severity } = causeRecord;\n return isAppErrorSeverity(severity) ? severity : undefined;\n }) ?? 'error'\n );\n }\n\n private static extractStatusCodeFromCause(\n cause: unknown,\n ): AppErrorCode | undefined {\n return AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { statusCode } = causeRecord;\n if (isAppErrorCode(statusCode)) {\n return statusCode;\n }\n\n const { code: legacyCode } = causeRecord;\n return isAppErrorCode(legacyCode) ? legacyCode : undefined;\n });\n }\n\n /** @deprecated Use statusCode instead. */\n get code(): E['statusCode'] {\n return this.statusCode;\n }\n\n private static extractSuggestedActionFromCause(\n cause: unknown,\n ): string | undefined {\n return AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { suggestedAction } = causeRecord;\n if (typeof suggestedAction !== 'string') {\n return undefined;\n }\n\n const trimmedSuggestedAction = suggestedAction.trim();\n return trimmedSuggestedAction.length > 0\n ? trimmedSuggestedAction\n : undefined;\n });\n }\n\n private static applyStack(\n error: AppError<AppErrorType>,\n stack: string | undefined,\n internalFrames: string[] | undefined,\n ): void {\n if (stack) {\n error.stack = stack;\n }\n\n error.stack &&= stripInternalFrames(error.stack, [\n ...INTERNAL_STACK_PATHS,\n ...(internalFrames ?? []),\n ]).join('\\n');\n }\n\n toApiError({ correlationId }: { correlationId: string }): UserFacingApiError {\n return toUserFacingApiError({\n error: this,\n correlationId,\n statusCode: getStatusCodeForAppError(this),\n });\n }\n\n toGqlError({\n correlationId,\n }: {\n correlationId: string;\n }): UserFacingGraphQLError {\n return toUserFacingGraphQLError({\n error: this,\n correlationId,\n });\n }\n}\n\nfunction toAppError(\n error: AppErrorType | AppError<AppErrorType>,\n): AppError<AppErrorType> {\n return error instanceof AppError ? error : new AppError(error);\n}\n\nexport function getStatusCodeForAppError(\n error: AppErrorType | AppError<AppErrorType>,\n): UserFacingApiStatusCode {\n const appError = toAppError(error);\n return getStatusCodeForAppErrorFromAppError(appError);\n}\n\nexport function toUserFacingApiError({\n error,\n correlationId,\n statusCode,\n}: {\n error: AppErrorType | AppError<AppErrorType>;\n correlationId: string;\n statusCode?: UserFacingApiStatusCode | undefined;\n}): UserFacingApiError {\n const appError = toAppError(error);\n return toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n });\n}\n\nexport function toUserFacingGraphQLError({\n error,\n correlationId,\n}: {\n error: AppErrorType | AppError<AppErrorType>;\n correlationId: string;\n}): UserFacingGraphQLError {\n const appError = toAppError(error);\n return toUserFacingGraphQLErrorFromAppError({\n appError,\n correlationId,\n });\n}\n\nexport {\n normalizeUserFacingErrorCode,\n renderUserFacingApiError,\n} from './error-user-facing';\nexport type {\n UserFacingApiError,\n UserFacingApiStatusCode,\n UserFacingGraphQLError,\n UserFacingGraphQLErrorCode,\n} from './error-user-facing';\n\nexport {\n addSpaceToEachLine,\n getErrorMessage,\n isErrorLike,\n jsonToError,\n} from './error-serialization';\n\nexport {\n isTemporalApplicationFailure,\n isTemporalActivityFailure,\n isTemporalChildWorkflowFailure,\n isTemporalFailure,\n} from './error-temporal';\n\nexport function errorToJSON(\n error: unknown,\n options?: { excludeCause?: boolean },\n): Record<string, unknown> {\n const { excludeCause = false } = options ?? {};\n\n if (!(error instanceof Error) && typeof error !== 'object') {\n return { errorValue: JSON.stringify(error) };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, no-restricted-syntax\n return JSON.parse(\n JSON.stringify(error, (key, value) =>\n replacerWithInherited(key, value, {\n excludeCause: excludeCause && key === '',\n }),\n ),\n );\n}\n\nfunction replacerWithInherited(\n key: unknown,\n value: unknown,\n options: { excludeCause?: boolean },\n): unknown {\n const { excludeCause = false } = options;\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Checked above\n let current = value as Record<string, unknown>;\n const allProps: Record<string, unknown> = {};\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Won't be true at some point\n while (current) {\n // Get all own property names (enumerable and non-enumerable)\n for (const propKey of Object.getOwnPropertyNames(current)) {\n // Only skip 'cause' property at the root level when excludeCause is true\n if (excludeCause && propKey === 'cause') {\n continue;\n }\n\n // Avoid overwriting if a property exists higher up the chain.\n if (propKey in allProps) {\n continue;\n }\n // eslint-disable-next-line no-restricted-syntax -- Don't need the result nor the overhead of a function call.\n try {\n allProps[propKey] = current[propKey];\n /* v8 ignore start */\n } catch {\n // Ignore errors e.g. from Zod when we access getter that need the correct `this` as we\n // walk the prototype chain.\n }\n /* v8 ignore stop */\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- No alternative\n current = Object.getPrototypeOf(current);\n }\n return allProps;\n }\n return value;\n}\n\nexport function getErrorDetails(error: unknown): Record<string, unknown> {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const details: Record<string, unknown> = Object.fromEntries(\n Object.entries(error).filter(\n ([key]) => !ERROR_FIELDS.has(key) && key !== 'details',\n ),\n );\n if ('details' in error && typeof error.details === 'object') {\n return { ...details, ...error.details };\n }\n\n return details;\n}\n\nexport function getRecursiveErrorDetails(\n error: unknown,\n): Record<string, unknown> {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const details = getErrorDetails(error);\n\n // Recursively process Error causes; preserve non-Error causes as-is; use {}\n // if no cause\n const cause = 'cause' in error ? error.cause : undefined;\n details['cause'] = isErrorLike(cause)\n ? getRecursiveErrorDetails(cause)\n : (cause ?? {});\n\n return details;\n}\n\nexport function getErrorTags(\n error: unknown,\n options?: { includeAllFields?: boolean },\n): JSONObject {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const tags = {\n ...getErrorBasicTags(error),\n ...getErrorCategoryTags(error),\n };\n\n if (!options?.includeAllFields) {\n return tags;\n }\n\n return {\n ...tags,\n cause: getErrorTags(error.cause, { includeAllFields: true }),\n ...(error.stack ? { stack: error.stack } : {}),\n ...('details' in error && typeof error.details === 'object'\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n { details: error.details as JSONObject }\n : {}),\n };\n}\n\nfunction getErrorCategoryTags(error: Error): {\n categories?: AppErrorCategory[];\n category?: AppErrorCategory;\n} {\n if (\n !('categories' in error) ||\n !Array.isArray(error.categories) ||\n !error.categories.every(isAppErrorCategory)\n ) {\n return {};\n }\n\n const mainCategory = getMainAppErrorCategory(error.categories);\n return {\n categories: error.categories,\n ...(mainCategory ? { category: mainCategory } : {}),\n };\n}\n\nfunction getErrorBasicTags(error: Error): {\n message: string;\n name: string;\n type: string;\n nonRetryable: boolean;\n severity: AppErrorSeverity;\n handling?: 'handled';\n} {\n const severity =\n 'severity' in error && isAppErrorSeverity(error.severity)\n ? error.severity\n : 'error';\n return {\n message: error.message,\n name: error.name,\n type:\n 'type' in error && typeof error.type === 'string'\n ? error.type\n : error.constructor.name,\n nonRetryable:\n 'nonRetryable' in error && typeof error.nonRetryable === 'boolean'\n ? error.nonRetryable\n : false,\n severity,\n ...(severity === 'warn' ? { handling: 'handled' } : {}),\n };\n}\n\nexport function getErrorWithoutExtraFields(error: unknown): unknown {\n if (!isErrorLike(error)) {\n return error;\n }\n\n const newError = new Error(error.message, {\n cause: getErrorWithoutExtraFields(error.cause),\n });\n newError.name = error.name;\n Object.assign(newError, { stack: error.stack });\n\n return newError;\n}\n\nexport interface TrimErrorOptions {\n /** Maximum depth of nested causes to process (default: 10) */\n maxDepth?: number;\n /** Maximum overall size in bytes for the entire error chain (default: 30KB) */\n maxErrorSize?: number;\n}\n\n/**\n * Trims an error to prevent it from exceeding size limits when serialized.\n * This is particularly useful for Temporal workflows where large errors can cause failures.\n *\n * The function recursively processes error causes up to maxDepth levels:\n * - Tracks cumulative size across all error levels\n * - If adding an error level would exceed maxErrorSize, uses minimal fields for that level and all remaining levels\n * - Minimal fields include: name, message, type, and stack\n * - After maxDepth levels, causes are dropped\n *\n * @param error - The error to trim\n * @param options - Configuration options\n * @returns Trimmed error object safe for serialization\n */\nexport function trimError(\n error: unknown,\n options: TrimErrorOptions = {},\n): unknown {\n // Default 30KB overall\n const { maxDepth = 10, maxErrorSize = 30 * 1024 } = options;\n\n if (!isErrorLike(error)) {\n return error;\n }\n\n return trimErrorRecursive({\n error,\n currentDepth: 0,\n maxDepth,\n maxErrorSize,\n accumulatedSize: 0,\n });\n}\n\n/**\n * Serializes an error and checks if it exceeds the remaining size budget.\n * If too large or serialization fails, returns minimal error fields.\n * The cause field is removed before size checking as it's processed separately.\n */\nfunction serializeErrorWithSizeCheck({\n error,\n remainingSize,\n}: {\n error: Error;\n remainingSize: number;\n}): { serialized: Record<string, unknown>; size: number } {\n const result = fromThrowable(() => {\n // Serialize the full error first\n const serialized = errorToJSON(error, { excludeCause: true });\n\n // Remove cause from serialized version to check size of this error level only\n delete serialized['cause'];\n\n // Check if this error level (without cause) fits in remaining budget\n const size = JSON.stringify(serialized).length;\n if (size > remainingSize) {\n const minimal = getMinimalErrorFields(error);\n return { serialized: minimal, size: JSON.stringify(minimal).length };\n }\n\n return { serialized, size };\n }, 'unknown');\n\n if (isErr(result)) {\n const minimal = getMinimalErrorFields(error);\n return { serialized: minimal, size: JSON.stringify(minimal).length };\n }\n\n return result.value;\n}\n\n/**\n * Serializes a non-error cause value.\n * If the serialized value fits in the remaining size budget, returns it as-is.\n * Otherwise, truncates it to fit within the remaining size.\n */\nfunction serializeNonErrorCause({\n cause,\n remainingSize,\n}: {\n cause: unknown;\n remainingSize: number;\n}): { serialized: unknown; size: number } {\n const result = fromThrowable(() => {\n const causeStr = JSON.stringify(cause);\n // eslint-disable-next-line no-restricted-syntax\n const causeJson: unknown = JSON.parse(causeStr);\n if (causeStr.length <= remainingSize) {\n return { serialized: causeJson, size: causeStr.length };\n }\n\n // Truncate the JSON string itself, not String(cause) which becomes [object Object]\n const truncated = causeStr.slice(\n 0,\n Math.max(0, Math.min(remainingSize, 1000)),\n );\n return { serialized: truncated, size: truncated.length };\n }, 'unknown');\n\n if (isErr(result)) {\n const truncated = String(cause).slice(\n 0,\n Math.max(0, Math.min(remainingSize, 1000)),\n );\n return { serialized: truncated, size: truncated.length };\n }\n\n return result.value;\n}\n\nfunction trimErrorRecursive({\n error,\n currentDepth,\n maxDepth,\n maxErrorSize,\n accumulatedSize,\n}: {\n error: Error;\n currentDepth: number;\n maxDepth: number;\n maxErrorSize: number;\n accumulatedSize: number;\n}): Record<string, unknown> {\n // Check if we've reached max depth or exceeded size budget\n if (currentDepth >= maxDepth || accumulatedSize >= maxErrorSize) {\n return getMinimalErrorFields(error);\n }\n\n // Extract cause for separate processing\n const cause = 'cause' in error ? error.cause : undefined;\n\n const remainingSize = maxErrorSize - accumulatedSize;\n const { serialized, size } = serializeErrorWithSizeCheck({\n error,\n remainingSize,\n });\n\n const newAccumulatedSize = accumulatedSize + size;\n\n // Process the cause recursively\n if (cause !== undefined) {\n if (isErrorLike(cause)) {\n serialized['cause'] = trimErrorRecursive({\n error: cause,\n currentDepth: currentDepth + 1,\n maxDepth,\n maxErrorSize,\n accumulatedSize: newAccumulatedSize,\n });\n } else {\n // Non-error causes are serialized with size checking\n const { serialized: causeSerialized } = serializeNonErrorCause({\n cause,\n remainingSize: maxErrorSize - newAccumulatedSize,\n });\n serialized['cause'] = causeSerialized;\n }\n }\n\n return serialized;\n}\n\nfunction getMinimalErrorFields(error: Error): Record<string, unknown> {\n const minimal: Record<string, unknown> = {\n name: error.name,\n message: error.message,\n };\n\n if (error.stack) {\n minimal['stack'] = error.stack;\n }\n\n // Preserve 'type' if it exists (for ApplicationFailures and AppErrors)\n if ('type' in error && typeof error.type === 'string') {\n minimal['type'] = error.type;\n }\n\n if ('categories' in error && Array.isArray(error.categories)) {\n minimal['categories'] = error.categories;\n }\n\n if ('severity' in error && isAppErrorSeverity(error.severity)) {\n minimal['severity'] = error.severity;\n }\n\n if ('statusCode' in error && isAppErrorCode(error.statusCode)) {\n minimal['statusCode'] = error.statusCode;\n } else if ('code' in error && isAppErrorCode(error.code)) {\n minimal['statusCode'] = error.code;\n }\n\n return minimal;\n}\n","import {\n formatAuthLoginPrompt,\n formatAuthLoginSuccess,\n formatBrowserOpenFallback,\n} from './cli-formatting';\nimport {\n DEFAULT_STAGING_WORKOS_CLIENT_ID,\n requireWorkosClientId,\n} from './config';\nimport type { CliDependencies } from './program';\nimport {\n createEmptyCliSettings,\n shouldUseStagingWorkosClientId,\n} from './settings';\nimport type { CliState } from './state';\n\nexport type AuthLoginCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\nfunction writeJsonOutput(io: CliDependencies['io'], value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nexport async function handleAuthLogin(\n dependencies: CliDependencies,\n options: AuthLoginCommandOptions,\n): Promise<void> {\n const settings =\n (await dependencies.settingsStore?.load()) ?? createEmptyCliSettings();\n const clientId = shouldUseStagingWorkosClientId(settings)\n ? DEFAULT_STAGING_WORKOS_CLIENT_ID\n : requireWorkosClientId(dependencies.runtimeConfig);\n const deviceAuthorization =\n await dependencies.authClient.startDeviceAuthorization({ clientId });\n const verificationUrl =\n deviceAuthorization.verification_uri_complete ??\n deviceAuthorization.verification_uri;\n const promptWriter = options.json\n ? dependencies.io.error\n : dependencies.io.info;\n\n promptWriter(\n formatAuthLoginPrompt({\n userCode: deviceAuthorization.user_code,\n verificationUrl,\n }),\n );\n\n await dependencies.openExternalUrl(verificationUrl).catch(() => {\n promptWriter(formatBrowserOpenFallback());\n });\n\n const tokenResponse = await dependencies.authClient.pollForDeviceTokens({\n clientId,\n deviceCode: deviceAuthorization.device_code,\n ...(deviceAuthorization.expires_in\n ? { expiresInSeconds: deviceAuthorization.expires_in }\n : {}),\n ...(deviceAuthorization.interval\n ? { intervalSeconds: deviceAuthorization.interval }\n : {}),\n });\n const accessTokenClaims = dependencies.authClient.decodeAccessTokenClaims(\n tokenResponse.access_token,\n );\n const [user, organizations] = await Promise.all([\n dependencies.apiClient.fetchUser({\n accessToken: tokenResponse.access_token,\n userId: accessTokenClaims.sub,\n }),\n dependencies.apiClient.fetchOrganizations({\n accessToken: tokenResponse.access_token,\n }),\n ]);\n\n const defaultOrgId = accessTokenClaims.org_id ?? organizations[0]?.id ?? null;\n const nextState: CliState = {\n account: {\n clientId,\n email: user.email,\n userId: user.id,\n },\n defaultOrgId,\n lastUsedOrgId: defaultOrgId,\n organizations,\n };\n\n await Promise.all([\n dependencies.refreshTokenStore.save(\n nextState.account,\n tokenResponse.refresh_token,\n ),\n dependencies.stateStore.save(nextState),\n ]);\n\n const defaultOrganization =\n organizations.find((organization) => organization.id === defaultOrgId) ??\n null;\n\n if (options.json) {\n writeJsonOutput(dependencies.io, nextState);\n return;\n }\n\n dependencies.io.info(\n formatAuthLoginSuccess({\n account: nextState.account,\n defaultOrganization,\n organizationCount: organizations.length,\n }),\n );\n}\n","import type { OperationSpec } from '@magical/mcp-registry';\nimport type { Command } from 'commander';\nimport { MagicalHelp } from './cli-formatting';\n\nexport const rootOperationalGroupDescriptions = new Map<string, string>([\n ['agents', 'Query agents.'],\n ['agent-runs', 'Query agent runs.'],\n ['automations', 'Manage automations.'],\n ['automation-runs', 'Inspect and control automation runs.'],\n ['catalog', 'Inspect available commands, models, and tools.'],\n ['graphql', 'Inspect GraphQL metadata.'],\n]);\n\nexport function configureCommandPresentation(command: Command): Command {\n const originalCreateCommand = command.createCommand.bind(command);\n command.createCommand = (name: string) =>\n configureCommandPresentation(originalCreateCommand(name));\n command.createHelp = () => new MagicalHelp();\n\n return command;\n}\n\nexport function createOperationHelpExamples(\n operationSpec: OperationSpec,\n): string[] {\n const baseCommand = `mgcl ${operationSpec.cli.path.join(' ')}`;\n const requiredOptions = operationSpec.cli.options\n .filter((optionSpec) => optionSpec.required)\n .map((optionSpec) => {\n if (optionSpec.valueType === 'boolean') {\n return `--${optionSpec.flagName}`;\n }\n\n if (optionSpec.valueType === 'number') {\n return `--${optionSpec.flagName} 10`;\n }\n\n if (optionSpec.valueType === 'json') {\n return `--${optionSpec.flagName} '{...}'`;\n }\n\n if (optionSpec.valueType === 'string-array') {\n return `--${optionSpec.flagName} value-a,value-b`;\n }\n\n return `--${optionSpec.flagName} <${optionSpec.flagName}>`;\n });\n const baseInvocation = [baseCommand, ...requiredOptions].join(' ');\n\n return [\n baseInvocation,\n `${baseInvocation} --org <org>`,\n `${baseInvocation} --json`,\n ];\n}\n","import keytar from 'keytar';\nimport type { CliAccount, RefreshTokenStore } from './state';\n\nfunction buildKeychainAccountName(account: CliAccount): string {\n return `${account.clientId}:${account.userId}`;\n}\n\nexport function createKeytarRefreshTokenStore(\n serviceName: string,\n): RefreshTokenStore {\n return {\n async clear(account) {\n await keytar.deletePassword(\n serviceName,\n buildKeychainAccountName(account),\n );\n },\n async load(account) {\n return keytar.getPassword(serviceName, buildKeychainAccountName(account));\n },\n async save(account, refreshToken) {\n await keytar.setPassword(\n serviceName,\n buildKeychainAccountName(account),\n refreshToken,\n );\n },\n };\n}\n","import { spawn } from 'node:child_process';\n\nexport async function openExternalUrl(url: string): Promise<void> {\n const command = resolveOpenCommand(url);\n\n const childProcess = spawn(command.executable, command.args, {\n detached: true,\n stdio: 'ignore',\n });\n\n await new Promise<void>((resolve, reject) => {\n childProcess.on('error', reject);\n childProcess.on('spawn', () => {\n childProcess.unref();\n resolve();\n });\n });\n}\n\nfunction resolveOpenCommand(url: string): {\n args: string[];\n executable: string;\n} {\n if (process.platform === 'darwin') {\n return { executable: 'open', args: [url] };\n }\n\n if (process.platform === 'win32') {\n return { executable: 'cmd', args: ['/c', 'start', '', url] };\n }\n\n return { executable: 'xdg-open', args: [url] };\n}\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { CliError } from './errors';\n\nexport const CLI_PACKAGE_NAME = '@getmagical/cli';\nexport const DEFAULT_CLI_DIST_TAG = 'latest';\nexport const DEFAULT_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';\nexport const MANAGED_NODE_SUBPATH = 'runtime/node';\n\nexport interface SelfUpdateResult {\n installPrefix: string;\n packageSpecifier: string;\n registryUrl: string;\n}\n\ninterface NpmCommand {\n argsPrefix: string[];\n executable: string;\n}\n\nexport function resolveInstalledPackageRoot({\n entryFilePath,\n packageName,\n}: {\n entryFilePath: string;\n packageName: string;\n}): string | null {\n const packagePathSegments = packageName.split('/');\n let currentPath = path.dirname(entryFilePath);\n\n for (;;) {\n const currentPathSegments = currentPath.split(path.sep).filter(Boolean);\n const currentPackageSegments = currentPathSegments.slice(\n -packagePathSegments.length,\n );\n\n if (\n currentPackageSegments.length === packagePathSegments.length &&\n currentPackageSegments.every(\n (segment, index) => segment === packagePathSegments[index],\n )\n ) {\n return currentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n}\n\nexport function resolveInstallPrefixFromPackageRoot(\n packageRootPath: string,\n): string | null {\n let currentPath = packageRootPath;\n\n for (;;) {\n if (path.basename(currentPath) === 'node_modules') {\n const nodeModulesParentPath = path.dirname(currentPath);\n if (path.basename(nodeModulesParentPath) === 'lib') {\n return path.dirname(nodeModulesParentPath);\n }\n\n return nodeModulesParentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n}\n\nfunction resolveNpmCommandFromPath(): NpmCommand {\n return {\n argsPrefix: [],\n executable: process.platform === 'win32' ? 'npm.cmd' : 'npm',\n };\n}\n\nfunction resolveManagedNpmCommand(installPrefix: string): NpmCommand | null {\n if (process.platform === 'win32') {\n return null;\n }\n\n const managedNodeExecutable = path.join(\n installPrefix,\n MANAGED_NODE_SUBPATH,\n 'bin',\n 'node',\n );\n const managedNpmCli = path.join(\n installPrefix,\n MANAGED_NODE_SUBPATH,\n 'lib',\n 'node_modules',\n 'npm',\n 'bin',\n 'npm-cli.js',\n );\n\n if (!fs.existsSync(managedNodeExecutable) || !fs.existsSync(managedNpmCli)) {\n return null;\n }\n\n return {\n argsPrefix: [managedNpmCli],\n executable: managedNodeExecutable,\n };\n}\n\nexport async function installPublishedCli({\n distTag,\n installPrefix,\n packageName,\n registryUrl,\n}: {\n distTag: string;\n installPrefix: string;\n packageName: string;\n registryUrl: string;\n}): Promise<SelfUpdateResult> {\n const npmCommand =\n resolveManagedNpmCommand(installPrefix) ?? resolveNpmCommandFromPath();\n const packageSpecifier = `${packageName}@${distTag}`;\n const npmArguments = [\n ...npmCommand.argsPrefix,\n 'install',\n '--global',\n packageSpecifier,\n '--prefix',\n installPrefix,\n '--registry',\n registryUrl,\n ];\n\n await new Promise<void>((resolve, reject) => {\n const childProcess = spawn(npmCommand.executable, npmArguments, {\n stdio: 'inherit',\n });\n\n childProcess.on('error', (error: Error & { code?: string }) => {\n if (error.code === 'ENOENT') {\n reject(\n new CliError(\n 'npm is required to update mgcl. Install npm and rerun the command.',\n { cause: error },\n ),\n );\n return;\n }\n\n reject(error);\n });\n\n childProcess.on('exit', (exitCode) => {\n if (exitCode === 0) {\n resolve();\n return;\n }\n\n reject(\n new CliError(\n `npm install exited with status ${String(exitCode ?? 'unknown')}.`,\n ),\n );\n });\n });\n\n return {\n installPrefix,\n packageSpecifier,\n registryUrl,\n };\n}\n\nexport async function selfUpdateInstalledCli({\n distTag = DEFAULT_CLI_DIST_TAG,\n entryFilePath = fileURLToPath(import.meta.url),\n packageName = CLI_PACKAGE_NAME,\n registryUrl = DEFAULT_NPM_REGISTRY_URL,\n}: {\n distTag?: string;\n entryFilePath?: string;\n packageName?: string;\n registryUrl?: string;\n} = {}): Promise<SelfUpdateResult> {\n const packageRootPath = resolveInstalledPackageRoot({\n entryFilePath,\n packageName,\n });\n if (!packageRootPath) {\n throw new CliError(\n 'Self-update is only available for installed CLIs. Use the install script or \"npm install -g @getmagical/cli\".',\n );\n }\n\n const installPrefix = resolveInstallPrefixFromPackageRoot(packageRootPath);\n if (!installPrefix) {\n throw new CliError(\n 'Could not determine the installed npm prefix for this CLI. Reinstall with the install script and try again.',\n );\n }\n\n return installPublishedCli({\n distTag,\n installPrefix,\n packageName,\n registryUrl,\n });\n}\n","/* eslint-disable no-restricted-syntax */\nimport { Err, Ok, isErr } from './result.util';\nimport type { Result } from './result.util';\n\nexport interface InvalidUrlError {\n type: 'invalid-url';\n message: string;\n url: string;\n}\n\nexport function safeUrlConstructor(url: string): Result<URL, InvalidUrlError> {\n try {\n return Ok(new URL(url));\n } catch {\n return Err({\n type: 'invalid-url',\n message: `Invalid URL`,\n url,\n });\n }\n}\n\nexport function isValidUrl(url: string): boolean {\n try {\n // eslint-disable-next-line no-new -- This is the best way to test for valid URLs\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\n// Adds query parameters to the provided URL and returns the updated URL as a string\nexport function addQueryParamsToUrl(args: {\n url: string;\n params: Record<string, string | number | boolean>;\n}): Result<string, InvalidUrlError> {\n const { url } = args;\n const parsed = safeUrlConstructor(url);\n if (isErr(parsed)) {\n return parsed;\n }\n\n const updatedUrl = parsed.value;\n\n for (const [key, val] of Object.entries(args.params)) {\n updatedUrl.searchParams.set(key, String(val));\n }\n\n return Ok(updatedUrl.toString());\n}\n","import { isErr } from '@magical/common/stdlib/result.util';\nimport { safeUrlConstructor } from '@magical/common/stdlib/url.utils';\nimport { Command, InvalidArgumentError, Option } from 'commander';\nimport { formatExamples } from './cli-formatting';\nimport { configureCommandPresentation } from './command-presentation';\nimport { CliError } from './errors';\nimport type { CliDependencies, CliIo } from './program';\nimport type { CliSettings, SettingsStore } from './settings';\n\ntype JsonCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\ntype SettingsBaseUrlCommandOptions = JsonCommandOptions & {\n reset?: boolean;\n};\n\nfunction writeJsonOutput(io: CliIo, value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nfunction requireSettingsStore(\n settingsStore: SettingsStore | undefined,\n): SettingsStore {\n if (!settingsStore) {\n throw new CliError('CLI settings are not configured for this instance.');\n }\n\n return settingsStore;\n}\n\nfunction parseBaseUrl(value: string): string {\n const parsedUrl = safeUrlConstructor(value);\n if (isErr(parsedUrl)) {\n throw new InvalidArgumentError('Expected a valid URL for base-url.');\n }\n\n return parsedUrl.value.toString().replace(/\\/$/u, '');\n}\n\nasync function clearSavedAuth(dependencies: CliDependencies): Promise<boolean> {\n const state = await dependencies.stateStore.load();\n if (!state) {\n return false;\n }\n\n await dependencies.refreshTokenStore.clear(state.account);\n await dependencies.stateStore.clear();\n\n return true;\n}\n\nasync function handleSettingsEnvBaseUrl(\n dependencies: CliDependencies,\n rawBaseUrl: string | undefined,\n options: SettingsBaseUrlCommandOptions,\n): Promise<void> {\n if (options.reset && rawBaseUrl) {\n throw new CliError('Pass either a base URL or --reset, not both.');\n }\n\n if (!options.reset && !rawBaseUrl) {\n throw new CliError('Provide a base URL or pass --reset.');\n }\n\n const settingsStore = requireSettingsStore(dependencies.settingsStore);\n const currentSettings = await settingsStore.load();\n const { baseUrl: _baseUrl, ...remainingEnvSettings } = currentSettings.env;\n if (options.reset) {\n const nextSettings: CliSettings = {\n ...currentSettings,\n env: remainingEnvSettings,\n };\n await settingsStore.save(nextSettings);\n const authCleared = await clearSavedAuth(dependencies);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n authCleared,\n settings: nextSettings,\n });\n return;\n }\n\n dependencies.io.info(\n authCleared\n ? 'Cleared the persisted base-url override and removed saved auth. Run \"mgcl auth login\" again.'\n : 'Cleared the persisted base-url override.',\n );\n return;\n }\n\n const nextBaseUrl = parseBaseUrl(rawBaseUrl ?? '');\n const nextSettings: CliSettings = {\n ...currentSettings,\n env: {\n ...currentSettings.env,\n baseUrl: nextBaseUrl,\n },\n };\n await settingsStore.save(nextSettings);\n const authCleared = await clearSavedAuth(dependencies);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n authCleared,\n settings: nextSettings,\n });\n return;\n }\n\n dependencies.io.info(\n authCleared\n ? `Saved base-url override ${nextBaseUrl} and removed saved auth. Run \"mgcl auth login\" again.`\n : `Saved base-url override ${nextBaseUrl}.`,\n );\n}\n\nexport function createSettingsCommand(dependencies: CliDependencies): Command {\n const settingsCommand = configureCommandPresentation(\n new Command('settings').description('Manage persisted CLI settings.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', [\n 'mgcl settings env base-url http://main.localhost:1355',\n 'mgcl settings env base-url --reset',\n ])}`,\n );\n const settingsEnvCommand = settingsCommand\n .command('env')\n .description('Manage persisted environment overrides.');\n settingsEnvCommand\n .command('base-url [url]')\n .description('Set or clear the persisted Magical API base URL override.')\n .addOption(new Option('--reset', 'Clear the persisted base URL override.'))\n .action(async function (this: Command, baseUrl: string | undefined) {\n await handleSettingsEnvBaseUrl(\n dependencies,\n baseUrl,\n this.optsWithGlobals(),\n );\n });\n\n return settingsCommand;\n}\n","import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { z } from 'zod';\nimport { CliError } from './errors';\n\nexport const cliAccountSchema = z.object({\n clientId: z.string().min(1),\n email: z.string().nullable(),\n userId: z.string().min(1),\n});\n\nexport const cliOrganizationSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n primaryDomain: z.string().nullable().default(null),\n});\n\nexport const cliStateSchema = z.object({\n account: cliAccountSchema,\n defaultOrgId: z.string().nullable(),\n lastUsedOrgId: z.string().nullable(),\n organizations: z.array(cliOrganizationSchema),\n});\n\nexport type CliAccount = z.infer<typeof cliAccountSchema>;\nexport type CliOrganization = z.infer<typeof cliOrganizationSchema>;\nexport type CliState = z.infer<typeof cliStateSchema>;\n\nexport interface StateStore {\n clear: () => Promise<void>;\n load: () => Promise<CliState | null>;\n save: (state: CliState) => Promise<void>;\n}\n\nexport interface RefreshTokenStore {\n clear: (account: CliAccount) => Promise<void>;\n load: (account: CliAccount) => Promise<string | null>;\n save: (account: CliAccount, refreshToken: string) => Promise<void>;\n}\n\nexport function createFileStateStore(stateFilePath: string): StateStore {\n return {\n async clear() {\n await rm(stateFilePath, { force: true });\n },\n async load() {\n try {\n const fileContents = await readFile(stateFilePath, 'utf8');\n const parsed = cliStateSchema.safeParse(JSON.parse(fileContents));\n if (!parsed.success) {\n throw new CliError('Stored CLI state is invalid.');\n }\n\n return parsed.data;\n } catch (error: unknown) {\n if (\n error instanceof Error &&\n 'code' in error &&\n error.code === 'ENOENT'\n ) {\n return null;\n }\n\n if (error instanceof CliError) {\n throw error;\n }\n\n throw new CliError('Failed to load CLI state.', { cause: error });\n }\n },\n async save(state) {\n await mkdir(path.dirname(stateFilePath), { recursive: true });\n await writeFile(stateFilePath, `${JSON.stringify(state, null, 2)}\\n`);\n },\n };\n}\n\nexport function createMemoryRefreshTokenStore(): RefreshTokenStore {\n const values = new Map<string, string>();\n\n return {\n async clear(account) {\n values.delete(buildRefreshTokenKey(account));\n },\n async load(account) {\n return values.get(buildRefreshTokenKey(account)) ?? null;\n },\n async save(account, refreshToken) {\n values.set(buildRefreshTokenKey(account), refreshToken);\n },\n };\n}\n\nfunction buildRefreshTokenKey(account: CliAccount): string {\n return `${account.clientId}:${account.userId}`;\n}\n","import { z } from 'zod';\nimport { CliError } from './errors';\n\nconst DEFAULT_DEVICE_POLL_INTERVAL_SECONDS = 5;\n\nfunction buildFormHeaders(): Headers {\n const headers = new Headers();\n headers.set('content-type', 'application/x-www-form-urlencoded');\n return headers;\n}\n\nconst deviceAuthorizationSchema = z.object({\n device_code: z.string().min(1),\n expires_in: z.number().int().positive().optional(),\n interval: z.number().int().positive().optional(),\n user_code: z.string().min(1),\n verification_uri: z.url(),\n verification_uri_complete: z.url().optional(),\n});\n\nconst tokenResponseSchema = z.object({\n access_token: z.string().min(1),\n expires_in: z.number().int().positive().optional(),\n refresh_token: z.string().min(1),\n token_type: z.string().optional(),\n});\n\nconst tokenErrorSchema = z.object({\n error: z.string().min(1),\n error_description: z.string().optional(),\n});\n\nconst accessTokenClaimsSchema = z.object({\n org_id: z.string().min(1).optional(),\n sid: z.string().min(1).optional(),\n sub: z.string().min(1),\n});\n\nexport type DeviceAuthorization = z.infer<typeof deviceAuthorizationSchema>;\nexport type TokenResponse = z.infer<typeof tokenResponseSchema>;\nexport type AccessTokenClaims = z.infer<typeof accessTokenClaimsSchema>;\n\nexport interface AuthClient {\n decodeAccessTokenClaims: (accessToken: string) => AccessTokenClaims;\n pollForDeviceTokens: (input: {\n clientId: string;\n deviceCode: string;\n expiresInSeconds?: number;\n intervalSeconds?: number;\n }) => Promise<TokenResponse>;\n refreshTokens: (input: {\n clientId: string;\n organizationId?: string;\n refreshToken: string;\n }) => Promise<TokenResponse>;\n startDeviceAuthorization: (input: {\n clientId: string;\n }) => Promise<DeviceAuthorization>;\n}\n\nexport function createWorkosAuthClient({\n fetchFn = fetch,\n sleep = async (milliseconds): Promise<void> => {\n await new Promise((resolve) => {\n setTimeout(resolve, milliseconds);\n });\n },\n workosApiUrl,\n}: {\n fetchFn?: typeof fetch;\n sleep?: (milliseconds: number) => Promise<void>;\n workosApiUrl: string;\n}): AuthClient {\n async function postForm<TSchema extends z.ZodTypeAny>({\n endpointPath,\n formData,\n responseSchema,\n }: {\n endpointPath: string;\n formData: URLSearchParams;\n responseSchema: TSchema;\n }): Promise<z.infer<TSchema>> {\n const response = await fetchFn(`${workosApiUrl}${endpointPath}`, {\n method: 'POST',\n headers: buildFormHeaders(),\n body: formData,\n });\n\n const responseBody = await response.json();\n if (!response.ok) {\n const parsedError = tokenErrorSchema.safeParse(responseBody);\n if (parsedError.success) {\n throw new CliError(\n parsedError.data.error_description ?? parsedError.data.error,\n );\n }\n\n throw new CliError(\n `WorkOS request failed with status ${response.status}.`,\n );\n }\n\n const parsedResponse = responseSchema.safeParse(responseBody);\n if (!parsedResponse.success) {\n throw new CliError('WorkOS returned an unexpected response payload.');\n }\n\n return parsedResponse.data;\n }\n\n return {\n decodeAccessTokenClaims(accessToken) {\n const [, payloadSegment] = accessToken.split('.');\n if (!payloadSegment) {\n throw new CliError('WorkOS access token is malformed.');\n }\n\n const payload: unknown = JSON.parse(\n Buffer.from(payloadSegment, 'base64url').toString('utf8'),\n );\n const parsedClaims = accessTokenClaimsSchema.safeParse(payload);\n if (!parsedClaims.success) {\n throw new CliError('WorkOS access token is missing required claims.');\n }\n\n return parsedClaims.data;\n },\n\n async pollForDeviceTokens({\n clientId,\n deviceCode,\n expiresInSeconds,\n intervalSeconds,\n }): Promise<TokenResponse> {\n const timeoutAt = Date.now() + (expiresInSeconds ?? 15 * 60) * 1000;\n const initialIntervalMilliseconds =\n (intervalSeconds ?? DEFAULT_DEVICE_POLL_INTERVAL_SECONDS) * 1000;\n\n async function poll(\n nextIntervalMilliseconds: number,\n ): Promise<TokenResponse> {\n if (Date.now() >= timeoutAt) {\n throw new CliError(\n 'WorkOS device authorization expired before completion.',\n );\n }\n\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n formData.set('device_code', deviceCode);\n formData.set(\n 'grant_type',\n 'urn:ietf:params:oauth:grant-type:device_code',\n );\n\n const response = await fetchFn(\n `${workosApiUrl}/user_management/authenticate`,\n {\n method: 'POST',\n headers: buildFormHeaders(),\n body: formData,\n },\n );\n\n const responseBody = await response.json();\n if (response.ok) {\n const parsedTokens = tokenResponseSchema.safeParse(responseBody);\n if (!parsedTokens.success) {\n throw new CliError('WorkOS returned an unexpected token response.');\n }\n\n return parsedTokens.data;\n }\n\n const parsedError = tokenErrorSchema.safeParse(responseBody);\n if (!parsedError.success) {\n throw new CliError(\n `WorkOS device authorization failed with status ${response.status}.`,\n );\n }\n\n if (parsedError.data.error === 'authorization_pending') {\n await sleep(nextIntervalMilliseconds);\n return poll(nextIntervalMilliseconds);\n }\n\n if (parsedError.data.error === 'slow_down') {\n const slowedIntervalMilliseconds = nextIntervalMilliseconds + 5000;\n await sleep(slowedIntervalMilliseconds);\n return poll(slowedIntervalMilliseconds);\n }\n\n throw new CliError(\n parsedError.data.error_description ?? parsedError.data.error,\n );\n }\n\n return poll(initialIntervalMilliseconds);\n },\n\n async refreshTokens({\n clientId,\n organizationId,\n refreshToken,\n }): Promise<TokenResponse> {\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n formData.set('grant_type', 'refresh_token');\n formData.set('refresh_token', refreshToken);\n\n if (organizationId) {\n formData.set('organization_id', organizationId);\n }\n\n return postForm({\n endpointPath: '/user_management/authenticate',\n formData,\n responseSchema: tokenResponseSchema,\n });\n },\n\n async startDeviceAuthorization({ clientId }): Promise<DeviceAuthorization> {\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n\n return postForm({\n endpointPath: '/user_management/authorize/device',\n formData,\n responseSchema: deviceAuthorizationSchema,\n });\n },\n };\n}\n","#!/usr/bin/env node\n\nimport { formatCliError } from './cli-formatting';\nimport { getErrorMessage } from './errors';\nimport { buildProgram, createDefaultDependencies } from './program';\n\nconst program = buildProgram(createDefaultDependencies());\n\nprogram.parseAsync(process.argv).catch((error: unknown) => {\n process.stderr.write(`${formatCliError(getErrorMessage(error))}\\n`);\n process.exitCode = 1;\n});\n"],"mappings":"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","names":["UnreachableCaseError","Command","InvalidArgumentError","Option","z","z","path","path","z","Result","z","z","path","spawn","path","DEFAULT_CLI_DIST_TAG","path","spawn","writeJsonOutput","nextSettings","authCleared","mkdir","readFile","rm","writeFile","path","z","z","rm","readFile","mkdir","path","writeFile","z","z","InvalidArgumentError","isRecord","writeJsonOutput","program","Option","Command"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/ts-essentials/dist/primitive/index.js","../../../node_modules/ts-essentials/dist/built-in/index.js","../../../node_modules/ts-essentials/dist/key-of-base/index.js","../../../node_modules/ts-essentials/dist/strict-exclude/index.js","../../../node_modules/ts-essentials/dist/strict-extract/index.js","../../../node_modules/ts-essentials/dist/strict-omit/index.js","../../../node_modules/ts-essentials/dist/writable/index.js","../../../node_modules/ts-essentials/dist/async-or-sync/index.js","../../../node_modules/ts-essentials/dist/async-or-sync-type/index.js","../../../node_modules/ts-essentials/dist/dictionary/index.js","../../../node_modules/ts-essentials/dist/dictionary-values/index.js","../../../node_modules/ts-essentials/dist/merge/index.js","../../../node_modules/ts-essentials/dist/merge-n/index.js","../../../node_modules/ts-essentials/dist/newable/index.js","../../../node_modules/ts-essentials/dist/non-never/index.js","../../../node_modules/ts-essentials/dist/omit-properties/index.js","../../../node_modules/ts-essentials/dist/opaque/index.js","../../../node_modules/ts-essentials/dist/path-value/index.js","../../../node_modules/ts-essentials/dist/paths/index.js","../../../node_modules/ts-essentials/dist/pick-properties/index.js","../../../node_modules/ts-essentials/dist/prettify/index.js","../../../node_modules/ts-essentials/dist/safe-dictionary/index.js","../../../node_modules/ts-essentials/dist/union-to-intersection/index.js","../../../node_modules/ts-essentials/dist/value-of/index.js","../../../node_modules/ts-essentials/dist/xor/index.js","../../../node_modules/ts-essentials/dist/mark-optional/index.js","../../../node_modules/ts-essentials/dist/mark-readonly/index.js","../../../node_modules/ts-essentials/dist/mark-required/index.js","../../../node_modules/ts-essentials/dist/mark-writable/index.js","../../../node_modules/ts-essentials/dist/buildable/index.js","../../../node_modules/ts-essentials/dist/deep-mark-optional/index.js","../../../node_modules/ts-essentials/dist/deep-mark-required/index.js","../../../node_modules/ts-essentials/dist/deep-non-nullable/index.js","../../../node_modules/ts-essentials/dist/deep-nullable/index.js","../../../node_modules/ts-essentials/dist/deep-omit/index.js","../../../node_modules/ts-essentials/dist/deep-partial/index.js","../../../node_modules/ts-essentials/dist/deep-pick/index.js","../../../node_modules/ts-essentials/dist/deep-readonly/index.js","../../../node_modules/ts-essentials/dist/deep-required/index.js","../../../node_modules/ts-essentials/dist/deep-undefinable/index.js","../../../node_modules/ts-essentials/dist/deep-writable/index.js","../../../node_modules/ts-essentials/dist/strict-deep-omit/index.js","../../../node_modules/ts-essentials/dist/strict-deep-pick/index.js","../../../node_modules/ts-essentials/dist/optional-keys/index.js","../../../node_modules/ts-essentials/dist/pick-keys/index.js","../../../node_modules/ts-essentials/dist/readonly-keys/index.js","../../../node_modules/ts-essentials/dist/required-keys/index.js","../../../node_modules/ts-essentials/dist/writable-keys/index.js","../../../node_modules/ts-essentials/dist/exact/index.js","../../../node_modules/ts-essentials/dist/is-any/index.js","../../../node_modules/ts-essentials/dist/is-never/index.js","../../../node_modules/ts-essentials/dist/is-unknown/index.js","../../../node_modules/ts-essentials/dist/is-tuple/index.js","../../../node_modules/ts-essentials/dist/non-empty-object/index.js","../../../node_modules/ts-essentials/dist/any-array/index.js","../../../node_modules/ts-essentials/dist/array-or-single/index.js","../../../node_modules/ts-essentials/dist/element-of/index.js","../../../node_modules/ts-essentials/dist/head/index.js","../../../node_modules/ts-essentials/dist/non-empty-array/index.js","../../../node_modules/ts-essentials/dist/readonly-array-or-single/index.js","../../../node_modules/ts-essentials/dist/tail/index.js","../../../node_modules/ts-essentials/dist/tuple/index.js","../../../node_modules/ts-essentials/dist/camel-case/index.js","../../../node_modules/ts-essentials/dist/deep-camel-case-properties/index.js","../../../node_modules/ts-essentials/dist/any-function/index.js","../../../node_modules/ts-essentials/dist/predicate-function/index.js","../../../node_modules/ts-essentials/dist/predicate-type/index.js","../../../node_modules/ts-essentials/lib/functions/unreachable-case-error/index.ts","../../../node_modules/ts-essentials/lib/functions/assert/index.ts","../../../node_modules/ts-essentials/lib/functions/create-factory-with-constraint/index.ts","../../../node_modules/ts-essentials/lib/functions/is-exact/index.ts","../../../node_modules/ts-essentials/lib/functions/noop/index.ts","../../../node_modules/ts-essentials/dist/awaited/index.js","../../../node_modules/ts-essentials/lib/index.ts","../src/cli-formatting.ts","../src/errors.ts","../../mcp-registry/src/operation-specs.ts","../../mcp-registry/src/operation-spec.ts","../src/program.ts","../src/api.ts","../src/config.ts","../src/settings.ts","../../common/src/stdlib/json.util.ts","../../common/src/stdlib/result.util.ts","../../common/src/stdlib/error-user-facing.ts","../../common/src/stdlib/error.ts","../src/auth-login.ts","../src/command-presentation.ts","../src/keychain.ts","../src/open-url.ts","../src/self-update.ts","../../common/src/stdlib/url.utils.ts","../src/settings-command.ts","../src/state.ts","../src/workos-auth.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJpbWl0aXZlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgYmlnaW50IHwgc3ltYm9sIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYnVpbHQtaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCIuLi9wcmltaXRpdmVcIjtcblxuZXhwb3J0IHR5cGUgQnVpbHRpbiA9IFByaW1pdGl2ZSB8IEZ1bmN0aW9uIHwgRGF0ZSB8IEVycm9yIHwgUmVnRXhwO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIva2V5LW9mLWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEtleW9mQmFzZSA9IGtleW9mIGFueTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWV4Y2x1ZGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0cmljdEV4Y2x1ZGU8VW5pb25UeXBlLCBFeGNsdWRlZE1lbWJlcnMgZXh0ZW5kcyBVbmlvblR5cGU+ID0gRXhjbHVkZTxVbmlvblR5cGUsIEV4Y2x1ZGVkTWVtYmVycz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWV4dHJhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0cmljdEV4dHJhY3Q8VHlwZSwgVW5pb24gZXh0ZW5kcyBQYXJ0aWFsPFR5cGU+PiA9IEV4dHJhY3Q8VHlwZSwgVW5pb24+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LW9taXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueUFycmF5IH0gZnJvbSBcIi4uL2FueS1hcnJheVwiO1xuaW1wb3J0IHsgQW55UmVjb3JkIH0gZnJvbSBcIi4uL2FueS1yZWNvcmRcIjtcblxuZXhwb3J0IHR5cGUgU3RyaWN0T21pdDxUeXBlIGV4dGVuZHMgQW55UmVjb3JkLCBLZXlzIGV4dGVuZHMga2V5b2YgVHlwZT4gPSBUeXBlIGV4dGVuZHMgQW55QXJyYXlcbiAgPyBuZXZlclxuICA6IE9taXQ8VHlwZSwgS2V5cz47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvd3JpdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdyaXRhYmxlPFR5cGU+ID0geyAtcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogVHlwZVtLZXldIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXN5bmMtb3Itc3luYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQXN5bmNPclN5bmM8VHlwZT4gPSBQcm9taXNlTGlrZTxUeXBlPiB8IFR5cGU7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXN5bmMtb3Itc3luYy10eXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY09yU3luYyB9IGZyb20gXCIuLi9hc3luYy1vci1zeW5jXCI7XG5cbmV4cG9ydCB0eXBlIEFzeW5jT3JTeW5jVHlwZTxBc3luY09yU3luY1R5cGU+ID0gQXN5bmNPclN5bmNUeXBlIGV4dGVuZHMgQXN5bmNPclN5bmM8aW5mZXIgVHlwZT4gPyBUeXBlIDogbmV2ZXI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGljdGlvbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5b2ZCYXNlIH0gZnJvbSBcIi4uL2tleS1vZi1iYXNlXCI7XG5cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnk8VHlwZSwgS2V5cyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS2V5c106IFR5cGUgfTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGljdGlvbmFyeS12YWx1ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgcGxlYXNlIHVzZSBgVmFsdWVPZmAgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5VmFsdWVzPFR5cGU+ID0gVHlwZVtrZXlvZiBUeXBlXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWVyZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXR0aWZ5IH0gZnJvbSBcIi4uL3ByZXR0aWZ5XCI7XG5cbmV4cG9ydCB0eXBlIE1lcmdlPE9iamVjdDEsIE9iamVjdDI+ID0gUHJldHRpZnk8T21pdDxPYmplY3QxLCBrZXlvZiBPYmplY3QyPiAmIE9iamVjdDI+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWVyZ2Utbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVyZ2UgfSBmcm9tIFwiLi4vbWVyZ2VcIjtcblxudHlwZSBfTWVyZ2VOPFR1cGxlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIFJlc3VsdD4gPSBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBIZWFkLCAuLi5pbmZlciBUYWlsXVxuICA/IF9NZXJnZU48VGFpbCwgTWVyZ2U8UmVzdWx0LCBIZWFkPj5cbiAgOiBSZXN1bHQ7XG5cbmV4cG9ydCB0eXBlIE1lcmdlTjxUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdPiA9IF9NZXJnZU48VHVwbGUsIHt9PjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbmV3YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdhYmxlPFJldHVyblR5cGU+IHtcbiAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFJldHVyblR5cGU7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLW5ldmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOb25OZXZlcjxUeXBlIGV4dGVuZHMge30+ID0gUGljazxcbiAgVHlwZSxcbiAgeyBbS2V5IGluIGtleW9mIFR5cGVdOiBUeXBlW0tleV0gZXh0ZW5kcyBuZXZlciA/IG5ldmVyIDogS2V5IH1ba2V5b2YgVHlwZV1cbj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb21pdC1wcm9wZXJ0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBPbWl0UHJvcGVydGllczxUeXBlLCBWYWx1ZT4gPSB7IFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlW0tleV0gZXh0ZW5kcyBWYWx1ZSA/IG5ldmVyIDogS2V5XTogVHlwZVtLZXldIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb3BhcXVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN0cmluZ0xpdGVyYWw8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gKHN0cmluZyBleHRlbmRzIFR5cGUgPyBuZXZlciA6IFR5cGUpIDogbmV2ZXI7XG5cbmRlY2xhcmUgY29uc3QgX19PUEFRVUVfVFlQRV9fOiB1bmlxdWUgc3ltYm9sO1xuXG5leHBvcnQgdHlwZSBXaXRoT3BhcXVlPFRva2VuIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgcmVhZG9ubHkgW19fT1BBUVVFX1RZUEVfX106IFRva2VuO1xufTtcblxuZXhwb3J0IHR5cGUgT3BhcXVlPFR5cGUsIFRva2VuIGV4dGVuZHMgc3RyaW5nPiA9IFRva2VuIGV4dGVuZHMgU3RyaW5nTGl0ZXJhbDxUb2tlbj4gPyBUeXBlICYgV2l0aE9wYXF1ZTxUb2tlbj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGF0aC12YWx1ZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuLy8gVE9ETzogbWVyZ2UgdG8gRXh0cmFjdEZyb21BcnJheVxudHlwZSBFeHRyYWN0RnJvbU9iamVjdDxPYmogZXh0ZW5kcyBSZWNvcmQ8UHJvcGVydHlLZXksIHVua25vd24+LCBLZXk+ID0gS2V5IGV4dGVuZHMga2V5b2YgT2JqXG4gID8gT2JqW0tleV1cbiAgOiBLZXkgZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxPYmo+XG4gID8gTm9uTnVsbGFibGU8T2JqPltLZXldIHwgdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuXG4vLyBUT0RPOiBtZXJnZSB0byBFeHRyYWN0RnJvbU9iamVjdFxudHlwZSBFeHRyYWN0RnJvbUFycmF5PEFyciBleHRlbmRzIHJlYWRvbmx5IGFueVtdLCBLZXk+ID0gYW55W10gZXh0ZW5kcyBBcnJcbiAgPyBBcnIgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVClbXVxuICAgID8gVCB8IHVuZGVmaW5lZFxuICAgIDogdW5kZWZpbmVkXG4gIDogS2V5IGV4dGVuZHMga2V5b2YgQXJyXG4gID8gQXJyW0tleV1cbiAgOiB1bmRlZmluZWQ7XG5cbnR5cGUgR2V0V2l0aEFycmF5PFR5cGUsIFBhdGgsIFByZXR0aWZpZWRUeXBlID0gUHJldHRpZnk8VHlwZT4+ID0gUGF0aCBleHRlbmRzIFtdXG4gID8gVHlwZVxuICA6IFBhdGggZXh0ZW5kcyBbaW5mZXIgS2V5LCAuLi5pbmZlciBSZXN0XVxuICA/IFByZXR0aWZpZWRUeXBlIGV4dGVuZHMgUmVjb3JkPFByb3BlcnR5S2V5LCB1bmtub3duPlxuICAgID8gR2V0V2l0aEFycmF5PEV4dHJhY3RGcm9tT2JqZWN0PFByZXR0aWZpZWRUeXBlLCBLZXk+LCBSZXN0PlxuICAgIDogVHlwZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdXG4gICAgPyBHZXRXaXRoQXJyYXk8RXh0cmFjdEZyb21BcnJheTxUeXBlLCBLZXk+LCBSZXN0PlxuICAgIDogdW5kZWZpbmVkXG4gIDogbmV2ZXI7XG5cbnR5cGUgUGF0aDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBLZXl9LiR7aW5mZXIgUmVzdH1gXG4gID8gW0tleSwgLi4uUGF0aDxSZXN0Pl1cbiAgOiBUeXBlIGV4dGVuZHMgYCR7aW5mZXIgS2V5fWBcbiAgPyBbS2V5XVxuICA6IFtdO1xuXG5leHBvcnQgdHlwZSBQYXRoVmFsdWU8VHlwZSwgU3RyaW5nUGF0aD4gPSBHZXRXaXRoQXJyYXk8VHlwZSwgUGF0aDxTdHJpbmdQYXRoPj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGF0aHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElzTmV2ZXIgfSBmcm9tIFwiLi4vaXMtbmV2ZXJcIjtcbmltcG9ydCB7IENyZWF0ZVR5cGVPcHRpb25zIH0gZnJvbSBcIi4uL2NyZWF0ZS10eXBlLW9wdGlvbnNcIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwiLi4vdmFsdWUtb2ZcIjtcbmltcG9ydCB7IEhhc1BhcnNhYmxlUGF0aCB9IGZyb20gXCIuLi9oYXMtcGFyc2FibGUtcGF0aFwiO1xuXG50eXBlIFBhdGhhYmxlID0gc3RyaW5nIHwgbnVtYmVyO1xuXG50eXBlIERlZmF1bHRSZWN1cnNpdmVQYXRoc09wdGlvbnMgPSB7XG4gIGRlcHRoOiBbXTtcbn07XG5cbi8qKlxuICogQHBhcmFtIGRlcHRoIFRoaXMgb3B0aW9uIGNvdW50cyB0aGUgbnVtYmVyIG9mIHJlY3Vyc2l2ZSBjYWxscyBpblxuICogYFJlY3Vyc2l2ZVBhdGhzT3B0aW9uc1snZGVwdGgnXVsnbGVuZ3RoJ11gLiBVc2VkIGluIGNvbWJpbmF0aW9uIHdpdGhcbiAqIGBQYXRoc09wdGlvbnNbJ2RlcHRoJ11gXG4gKi9cbnR5cGUgUmVjdXJzaXZlUGF0aHNPcHRpb25zID0ge1xuICBkZXB0aDogYW55W107XG59O1xuXG4vKipcbiAqIEBwYXJhbSBkZXB0aCBCeSBkZWZhdWx0LCB0aGUgZGVwdGggb3B0aW9uIGlzIHNldCB0byA3LiBJdCBzaG91bGQgY292ZXIgdGhlXG4gKiBtYWpvcml0eSBvZiB1c2UgY2FzZXMuIElmIGJ5IGFueSBjaGFuY2UgaXQgZG9lc24ndCBmaXQgeW91LCBmZWVsIGZyZWUgdG9cbiAqIGluY3JlYXNlIHRoZSB2YWx1ZS4gSG93ZXZlciwgdGhpcyBtYXkgaW5jcmVhc2UgdGhlIGNoYW5jZSBvZiBnZXR0aW5nXG4gKiBgVHlwZSBpbnN0YW50aWF0aW9uIGlzIGV4Y2Vzc2l2ZWx5IGRlZXAgYW5kIHBvc3NpYmx5IGluZmluaXRlYCBlcnJvci5cbiAqXG4gKiBAcGFyYW0gYW55QXJyYXlJbmRleEFjY2Vzc29yIEJ5IGRlZmF1bHQgdGhlcmUgaXMgbm8gd2lsZGNhcmQgYWNjZXNzIHRvXG4gKiBhcnJheSBpbmRpY2VzIC0gdXNhZ2UgbXVzdCBiZSBpbnRlbnRpb25hbGx5IGNvbmZpZ3VyZWQuXG4gKi9cbnR5cGUgRGVmYXVsdFBhdGhzT3B0aW9ucyA9IHtcbiAgZGVwdGg6IDc7XG4gIGFueUFycmF5SW5kZXhBY2Nlc3NvcjogYCR7bnVtYmVyfWA7XG59O1xuXG4vKipcbiAqIEBwYXJhbSBkZXB0aCBUaGlzIG9wdGlvbiByZXN0cmljdHMgdGhlIGRlcHRoIG9mIHRoZSBwYXRocyBsb29rdXAgYW5kIHJlbW92ZXMgYFR5cGVcbiAqIGluc3RhbnRpYXRpb24gaXMgZXhjZXNzaXZlbHkgZGVlcCBhbmQgcG9zc2libHkgaW5maW5pdGVgIGVycm9ycyBmb3JcbiAqIHBvdGVudGlhbGx5IGluZmluaXRlIHR5cGVzLlxuICpcbiAqIEBwYXJhbSBhbnlBcnJheUluZGV4QWNjZXNzb3IgVGhpcyB3aWxkY2FyZCB3aWxsIHNhdGlzZnkgYW55IGFycmF5IGluZGV4IGlmIGRlZmluZWQuXG4gKi9cbnR5cGUgUGF0aHNPcHRpb25zID0ge1xuICBkZXB0aDogbnVtYmVyO1xuICBhbnlBcnJheUluZGV4QWNjZXNzb3I6IHN0cmluZztcbn07XG5cbnR5cGUgQXBwZW5kPFR1cGxlIGV4dGVuZHMgYW55W10+ID0gWy4uLlR1cGxlLCAwXTtcblxudHlwZSBSZWN1cnNpdmVQYXRoczxcbiAgVHlwZSxcbiAgVXNlck9wdGlvbnMgZXh0ZW5kcyBSZXF1aXJlZDxQYXRoc09wdGlvbnM+LFxuICBDYWxsT3B0aW9ucyBleHRlbmRzIFJlY3Vyc2l2ZVBhdGhzT3B0aW9ucyxcbj4gPSBJc05ldmVyPGtleW9mIFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IG5ldmVyXG4gIDogLy8gYE5vbk51bGxhYmxlYCByZW1vdmVzIGB1bmRlZmluZWRgIHdoZW4gcGFydGlhbCBwcm9wZXJ0aWVzIGV4aXN0IGluIG9iamVjdFxuICAgIE5vbk51bGxhYmxlPFxuICAgICAgVmFsdWVPZjx7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFBhdGhhYmxlXG4gICAgICAgICAgP1xuICAgICAgICAgICAgICB8IGAke0FueUFycmF5SW5kZXhBY2Nlc3Nvck9yS2V5PEtleSwgVXNlck9wdGlvbnM+fWBcbiAgICAgICAgICAgICAgfCAoQ2FsbE9wdGlvbnNbXCJkZXB0aFwiXVtcImxlbmd0aFwiXSBleHRlbmRzIFVzZXJPcHRpb25zW1wiZGVwdGhcIl1cbiAgICAgICAgICAgICAgICAgID8gLy8gU3RvcCBhdCB0aGUgY29uZmlndXJlZCBkZXB0aFxuICAgICAgICAgICAgICAgICAgICBuZXZlclxuICAgICAgICAgICAgICAgICAgOiBUeXBlW0tleV0gZXh0ZW5kcyBpbmZlciBWYWx1ZVxuICAgICAgICAgICAgICAgICAgPyBWYWx1ZSBleHRlbmRzIFZhbHVlXG4gICAgICAgICAgICAgICAgICAgID8gLy8gQXZvaWQgY2FsbGluZyBgVW5zYWZlUGF0aHNgIHRvIGtlZXAgYENhbGxPcHRpb25zYCBsb2NhbGx5XG4gICAgICAgICAgICAgICAgICAgICAgSGFzUGFyc2FibGVQYXRoPFZhbHVlPiBleHRlbmRzIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICA/IFJlY3Vyc2l2ZVBhdGhzPFxuICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aDogQXBwZW5kPENhbGxPcHRpb25zW1wiZGVwdGhcIl0+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+IGV4dGVuZHMgaW5mZXIgUmVzdFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBJc05ldmVyPFJlc3Q+IGV4dGVuZHMgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogUmVzdCBleHRlbmRzIFBhdGhhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7QW55QXJyYXlJbmRleEFjY2Vzc29yT3JLZXk8S2V5LCBVc2VyT3B0aW9ucz59LiR7UmVzdH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgICAgICA6IG5ldmVyXG4gICAgICAgICAgICAgICAgICAgIDogbmV2ZXJcbiAgICAgICAgICAgICAgICAgIDogbmV2ZXIpXG4gICAgICAgICAgOiBuZXZlcjtcbiAgICAgIH0+XG4gICAgPjtcblxudHlwZSBVbnNhZmVQYXRoczxUeXBlLCBPcHRpb25zIGV4dGVuZHMgUmVxdWlyZWQ8UGF0aHNPcHRpb25zPj4gPSBUeXBlIGV4dGVuZHMgVHlwZVxuICA/IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIHRydWVcbiAgICA/IFJlY3Vyc2l2ZVBhdGhzPFR5cGUsIE9wdGlvbnMsIERlZmF1bHRSZWN1cnNpdmVQYXRoc09wdGlvbnM+XG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG50eXBlIEFueUFycmF5SW5kZXhBY2Nlc3Nvck9yS2V5PEtleSBleHRlbmRzIFBhdGhhYmxlLCBVc2VyT3B0aW9ucyBleHRlbmRzIFJlcXVpcmVkPFBhdGhzT3B0aW9ucz4+ID0gS2V5IGV4dGVuZHMgbnVtYmVyXG4gID8gS2V5IHwgVXNlck9wdGlvbnNbXCJhbnlBcnJheUluZGV4QWNjZXNzb3JcIl1cbiAgOiBLZXk7XG5cbmV4cG9ydCB0eXBlIFBhdGhzPFR5cGUsIE92ZXJyaWRlUGF0aE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFBhdGhzT3B0aW9ucz4gPSB7fT4gPSBVbnNhZmVQYXRoczxcbiAgVHlwZSxcbiAgQ3JlYXRlVHlwZU9wdGlvbnM8UGF0aHNPcHRpb25zLCBPdmVycmlkZVBhdGhPcHRpb25zLCBEZWZhdWx0UGF0aHNPcHRpb25zPlxuPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGljay1wcm9wZXJ0aWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQaWNrUHJvcGVydGllczxUeXBlLCBWYWx1ZT4gPSB7XG4gIFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlW0tleV0gZXh0ZW5kcyBWYWx1ZSA/IEtleSA6IG5ldmVyXTogVHlwZVtLZXldO1xufTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJldHRpZnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFByZXR0aWZ5PFR5cGU+ID0gVHlwZSBleHRlbmRzIEZ1bmN0aW9uXG4gID8gVHlwZVxuICA6IEV4dHJhY3Q8XG4gICAgICB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IFR5cGVbS2V5XTtcbiAgICAgIH0sXG4gICAgICBUeXBlXG4gICAgPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc2FmZS1kaWN0aW9uYXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlvZkJhc2UgfSBmcm9tIFwiLi4va2V5LW9mLWJhc2VcIjtcblxuZXhwb3J0IHR5cGUgU2FmZURpY3Rpb25hcnk8VHlwZSwgS2V5cyBleHRlbmRzIEtleW9mQmFzZSA9IHN0cmluZz4gPSB7IFtrZXkgaW4gS2V5c10/OiBUeXBlIH07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdW5pb24tdG8taW50ZXJzZWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFVuaW9uPiA9IChVbmlvbiBleHRlbmRzIGFueSA/IChhcmc6IFVuaW9uKSA9PiB2b2lkIDogbmV2ZXIpIGV4dGVuZHMgKFxuICBhcmc6IGluZmVyIEludGVyc2VjdGlvbixcbikgPT4gdm9pZFxuICA/IEludGVyc2VjdGlvblxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdmFsdWUtb2YvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueUFycmF5IH0gZnJvbSBcIi4uL2FueS1hcnJheVwiO1xuaW1wb3J0IHsgQW55RnVuY3Rpb24gfSBmcm9tIFwiLi4vYW55LWZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tIFwiLi4vcHJpbWl0aXZlXCI7XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VHlwZT4gPSBUeXBlIGV4dGVuZHMgUHJpbWl0aXZlXG4gID8gVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBBbnlBcnJheVxuICA/IFR5cGVbbnVtYmVyXVxuICA6IFR5cGUgZXh0ZW5kcyBBbnlGdW5jdGlvblxuICA/IFJldHVyblR5cGU8VHlwZT5cbiAgOiBUeXBlW2tleW9mIFR5cGVdO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIveG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuLy8gV2hlbiBUeXBlMiBpcyB1bmtub3duLCBpdCBjcmVhdGVzIHR5cGUgd2l0aCBhbGwgcHJvcGVydGllcyBleGNsdWRlZCBmcm9tIGl0XG4vLyBlLmcuIFdpdGhvdXQ8eyBmb286IG51bWJlcjsgYmFyOiBudW1iZXIgfSwgdW5rbm93bj4gaXMgeyBmb28/OiBuZXZlcjsgYmFyPzogbmV2ZXIgfVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RzLWVzc2VudGlhbHMvdHMtZXNzZW50aWFscy9pc3N1ZXMvNDAwXG5cbnR5cGUgV2l0aG91dDxUeXBlMSwgVHlwZTI+ID0gSXNVbmtub3duPFR5cGUyPiBleHRlbmRzIHRydWVcbiAgPyBuZXZlclxuICA6IHsgW1AgaW4gRXhjbHVkZTxrZXlvZiBUeXBlMSwga2V5b2YgVHlwZTI+XT86IG5ldmVyIH07XG5cbi8vIFRoaXMgdXRpbGl0eSB0eXBlIGJvZHkgaXMgYXV0b2dlbmVyYXRlZCBpbiBKUyBieSBydW5uaW5nOlxuLy8gY29uc3QgdHlwZXMgPSBBcnJheSg1MCkuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiBgVHlwZSR7aW5kZXggKyAxfWApXG4vLyB0eXBlcy5tYXAodHlwZSA9PiBgV2l0aG91dDwke3R5cGVzLmZpbHRlcih0ID0+IHQgIT09IHR5cGUpLmpvaW4oJyYnKX0sICR7dHlwZX0+ICYgJHt0eXBlfWApLmpvaW4oJ3wnKVxuZXhwb3J0IHR5cGUgWE9SPFxuICBUeXBlMSxcbiAgVHlwZTIsXG4gIFR5cGUzID0gdW5rbm93bixcbiAgVHlwZTQgPSB1bmtub3duLFxuICBUeXBlNSA9IHVua25vd24sXG4gIFR5cGU2ID0gdW5rbm93bixcbiAgVHlwZTcgPSB1bmtub3duLFxuICBUeXBlOCA9IHVua25vd24sXG4gIFR5cGU5ID0gdW5rbm93bixcbiAgVHlwZTEwID0gdW5rbm93bixcbiAgVHlwZTExID0gdW5rbm93bixcbiAgVHlwZTEyID0gdW5rbm93bixcbiAgVHlwZTEzID0gdW5rbm93bixcbiAgVHlwZTE0ID0gdW5rbm93bixcbiAgVHlwZTE1ID0gdW5rbm93bixcbiAgVHlwZTE2ID0gdW5rbm93bixcbiAgVHlwZTE3ID0gdW5rbm93bixcbiAgVHlwZTE4ID0gdW5rbm93bixcbiAgVHlwZTE5ID0gdW5rbm93bixcbiAgVHlwZTIwID0gdW5rbm93bixcbiAgVHlwZTIxID0gdW5rbm93bixcbiAgVHlwZTIyID0gdW5rbm93bixcbiAgVHlwZTIzID0gdW5rbm93bixcbiAgVHlwZTI0ID0gdW5rbm93bixcbiAgVHlwZTI1ID0gdW5rbm93bixcbiAgVHlwZTI2ID0gdW5rbm93bixcbiAgVHlwZTI3ID0gdW5rbm93bixcbiAgVHlwZTI4ID0gdW5rbm93bixcbiAgVHlwZTI5ID0gdW5rbm93bixcbiAgVHlwZTMwID0gdW5rbm93bixcbiAgVHlwZTMxID0gdW5rbm93bixcbiAgVHlwZTMyID0gdW5rbm93bixcbiAgVHlwZTMzID0gdW5rbm93bixcbiAgVHlwZTM0ID0gdW5rbm93bixcbiAgVHlwZTM1ID0gdW5rbm93bixcbiAgVHlwZTM2ID0gdW5rbm93bixcbiAgVHlwZTM3ID0gdW5rbm93bixcbiAgVHlwZTM4ID0gdW5rbm93bixcbiAgVHlwZTM5ID0gdW5rbm93bixcbiAgVHlwZTQwID0gdW5rbm93bixcbiAgVHlwZTQxID0gdW5rbm93bixcbiAgVHlwZTQyID0gdW5rbm93bixcbiAgVHlwZTQzID0gdW5rbm93bixcbiAgVHlwZTQ0ID0gdW5rbm93bixcbiAgVHlwZTQ1ID0gdW5rbm93bixcbiAgVHlwZTQ2ID0gdW5rbm93bixcbiAgVHlwZTQ3ID0gdW5rbm93bixcbiAgVHlwZTQ4ID0gdW5rbm93bixcbiAgVHlwZTQ5ID0gdW5rbm93bixcbiAgVHlwZTUwID0gdW5rbm93bixcbj4gPSBQcmV0dGlmeTxcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMVxuICAgID4gJlxuICAgICAgVHlwZTEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTJcbiAgICA+ICZcbiAgICAgIFR5cGUyKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzXG4gICAgPiAmXG4gICAgICBUeXBlMylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNFxuICAgID4gJlxuICAgICAgVHlwZTQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTVcbiAgICA+ICZcbiAgICAgIFR5cGU1KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU2XG4gICAgPiAmXG4gICAgICBUeXBlNilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlN1xuICAgID4gJlxuICAgICAgVHlwZTcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZThcbiAgICA+ICZcbiAgICAgIFR5cGU4KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU5XG4gICAgPiAmXG4gICAgICBUeXBlOSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxMFxuICAgID4gJlxuICAgICAgVHlwZTEwKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTExXG4gICAgPiAmXG4gICAgICBUeXBlMTEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMTJcbiAgICA+ICZcbiAgICAgIFR5cGUxMilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxM1xuICAgID4gJlxuICAgICAgVHlwZTEzKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTE0XG4gICAgPiAmXG4gICAgICBUeXBlMTQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMTVcbiAgICA+ICZcbiAgICAgIFR5cGUxNSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxNlxuICAgID4gJlxuICAgICAgVHlwZTE2KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTE3XG4gICAgPiAmXG4gICAgICBUeXBlMTcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMThcbiAgICA+ICZcbiAgICAgIFR5cGUxOClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUxOVxuICAgID4gJlxuICAgICAgVHlwZTE5KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTIwXG4gICAgPiAmXG4gICAgICBUeXBlMjApXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjFcbiAgICA+ICZcbiAgICAgIFR5cGUyMSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyMlxuICAgID4gJlxuICAgICAgVHlwZTIyKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTIzXG4gICAgPiAmXG4gICAgICBUeXBlMjMpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjRcbiAgICA+ICZcbiAgICAgIFR5cGUyNClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyNVxuICAgID4gJlxuICAgICAgVHlwZTI1KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTI2XG4gICAgPiAmXG4gICAgICBUeXBlMjYpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMjdcbiAgICA+ICZcbiAgICAgIFR5cGUyNylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUyOFxuICAgID4gJlxuICAgICAgVHlwZTI4KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTI5XG4gICAgPiAmXG4gICAgICBUeXBlMjkpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzBcbiAgICA+ICZcbiAgICAgIFR5cGUzMClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzMVxuICAgID4gJlxuICAgICAgVHlwZTMxKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTMyXG4gICAgPiAmXG4gICAgICBUeXBlMzIpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzNcbiAgICA+ICZcbiAgICAgIFR5cGUzMylcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzNFxuICAgID4gJlxuICAgICAgVHlwZTM0KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTM1XG4gICAgPiAmXG4gICAgICBUeXBlMzUpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzZcbiAgICA+ICZcbiAgICAgIFR5cGUzNilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGUzN1xuICAgID4gJlxuICAgICAgVHlwZTM3KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTM4XG4gICAgPiAmXG4gICAgICBUeXBlMzgpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlMzlcbiAgICA+ICZcbiAgICAgIFR5cGUzOSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0MFxuICAgID4gJlxuICAgICAgVHlwZTQwKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQxXG4gICAgPiAmXG4gICAgICBUeXBlNDEpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDJcbiAgICA+ICZcbiAgICAgIFR5cGU0MilcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0M1xuICAgID4gJlxuICAgICAgVHlwZTQzKVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQ0XG4gICAgPiAmXG4gICAgICBUeXBlNDQpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDggJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDVcbiAgICA+ICZcbiAgICAgIFR5cGU0NSlcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU0OSAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0NlxuICAgID4gJlxuICAgICAgVHlwZTQ2KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5ICZcbiAgICAgICAgVHlwZTUwLFxuICAgICAgVHlwZTQ3XG4gICAgPiAmXG4gICAgICBUeXBlNDcpXG4gIHwgKFdpdGhvdXQ8XG4gICAgICBUeXBlMSAmXG4gICAgICAgIFR5cGUyICZcbiAgICAgICAgVHlwZTMgJlxuICAgICAgICBUeXBlNCAmXG4gICAgICAgIFR5cGU1ICZcbiAgICAgICAgVHlwZTYgJlxuICAgICAgICBUeXBlNyAmXG4gICAgICAgIFR5cGU4ICZcbiAgICAgICAgVHlwZTkgJlxuICAgICAgICBUeXBlMTAgJlxuICAgICAgICBUeXBlMTEgJlxuICAgICAgICBUeXBlMTIgJlxuICAgICAgICBUeXBlMTMgJlxuICAgICAgICBUeXBlMTQgJlxuICAgICAgICBUeXBlMTUgJlxuICAgICAgICBUeXBlMTYgJlxuICAgICAgICBUeXBlMTcgJlxuICAgICAgICBUeXBlMTggJlxuICAgICAgICBUeXBlMTkgJlxuICAgICAgICBUeXBlMjAgJlxuICAgICAgICBUeXBlMjEgJlxuICAgICAgICBUeXBlMjIgJlxuICAgICAgICBUeXBlMjMgJlxuICAgICAgICBUeXBlMjQgJlxuICAgICAgICBUeXBlMjUgJlxuICAgICAgICBUeXBlMjYgJlxuICAgICAgICBUeXBlMjcgJlxuICAgICAgICBUeXBlMjggJlxuICAgICAgICBUeXBlMjkgJlxuICAgICAgICBUeXBlMzAgJlxuICAgICAgICBUeXBlMzEgJlxuICAgICAgICBUeXBlMzIgJlxuICAgICAgICBUeXBlMzMgJlxuICAgICAgICBUeXBlMzQgJlxuICAgICAgICBUeXBlMzUgJlxuICAgICAgICBUeXBlMzYgJlxuICAgICAgICBUeXBlMzcgJlxuICAgICAgICBUeXBlMzggJlxuICAgICAgICBUeXBlMzkgJlxuICAgICAgICBUeXBlNDAgJlxuICAgICAgICBUeXBlNDEgJlxuICAgICAgICBUeXBlNDIgJlxuICAgICAgICBUeXBlNDMgJlxuICAgICAgICBUeXBlNDQgJlxuICAgICAgICBUeXBlNDUgJlxuICAgICAgICBUeXBlNDYgJlxuICAgICAgICBUeXBlNDcgJlxuICAgICAgICBUeXBlNDkgJlxuICAgICAgICBUeXBlNTAsXG4gICAgICBUeXBlNDhcbiAgICA+ICZcbiAgICAgIFR5cGU0OClcbiAgfCAoV2l0aG91dDxcbiAgICAgIFR5cGUxICZcbiAgICAgICAgVHlwZTIgJlxuICAgICAgICBUeXBlMyAmXG4gICAgICAgIFR5cGU0ICZcbiAgICAgICAgVHlwZTUgJlxuICAgICAgICBUeXBlNiAmXG4gICAgICAgIFR5cGU3ICZcbiAgICAgICAgVHlwZTggJlxuICAgICAgICBUeXBlOSAmXG4gICAgICAgIFR5cGUxMCAmXG4gICAgICAgIFR5cGUxMSAmXG4gICAgICAgIFR5cGUxMiAmXG4gICAgICAgIFR5cGUxMyAmXG4gICAgICAgIFR5cGUxNCAmXG4gICAgICAgIFR5cGUxNSAmXG4gICAgICAgIFR5cGUxNiAmXG4gICAgICAgIFR5cGUxNyAmXG4gICAgICAgIFR5cGUxOCAmXG4gICAgICAgIFR5cGUxOSAmXG4gICAgICAgIFR5cGUyMCAmXG4gICAgICAgIFR5cGUyMSAmXG4gICAgICAgIFR5cGUyMiAmXG4gICAgICAgIFR5cGUyMyAmXG4gICAgICAgIFR5cGUyNCAmXG4gICAgICAgIFR5cGUyNSAmXG4gICAgICAgIFR5cGUyNiAmXG4gICAgICAgIFR5cGUyNyAmXG4gICAgICAgIFR5cGUyOCAmXG4gICAgICAgIFR5cGUyOSAmXG4gICAgICAgIFR5cGUzMCAmXG4gICAgICAgIFR5cGUzMSAmXG4gICAgICAgIFR5cGUzMiAmXG4gICAgICAgIFR5cGUzMyAmXG4gICAgICAgIFR5cGUzNCAmXG4gICAgICAgIFR5cGUzNSAmXG4gICAgICAgIFR5cGUzNiAmXG4gICAgICAgIFR5cGUzNyAmXG4gICAgICAgIFR5cGUzOCAmXG4gICAgICAgIFR5cGUzOSAmXG4gICAgICAgIFR5cGU0MCAmXG4gICAgICAgIFR5cGU0MSAmXG4gICAgICAgIFR5cGU0MiAmXG4gICAgICAgIFR5cGU0MyAmXG4gICAgICAgIFR5cGU0NCAmXG4gICAgICAgIFR5cGU0NSAmXG4gICAgICAgIFR5cGU0NiAmXG4gICAgICAgIFR5cGU0NyAmXG4gICAgICAgIFR5cGU0OCAmXG4gICAgICAgIFR5cGU1MCxcbiAgICAgIFR5cGU0OVxuICAgID4gJlxuICAgICAgVHlwZTQ5KVxuICB8IChXaXRob3V0PFxuICAgICAgVHlwZTEgJlxuICAgICAgICBUeXBlMiAmXG4gICAgICAgIFR5cGUzICZcbiAgICAgICAgVHlwZTQgJlxuICAgICAgICBUeXBlNSAmXG4gICAgICAgIFR5cGU2ICZcbiAgICAgICAgVHlwZTcgJlxuICAgICAgICBUeXBlOCAmXG4gICAgICAgIFR5cGU5ICZcbiAgICAgICAgVHlwZTEwICZcbiAgICAgICAgVHlwZTExICZcbiAgICAgICAgVHlwZTEyICZcbiAgICAgICAgVHlwZTEzICZcbiAgICAgICAgVHlwZTE0ICZcbiAgICAgICAgVHlwZTE1ICZcbiAgICAgICAgVHlwZTE2ICZcbiAgICAgICAgVHlwZTE3ICZcbiAgICAgICAgVHlwZTE4ICZcbiAgICAgICAgVHlwZTE5ICZcbiAgICAgICAgVHlwZTIwICZcbiAgICAgICAgVHlwZTIxICZcbiAgICAgICAgVHlwZTIyICZcbiAgICAgICAgVHlwZTIzICZcbiAgICAgICAgVHlwZTI0ICZcbiAgICAgICAgVHlwZTI1ICZcbiAgICAgICAgVHlwZTI2ICZcbiAgICAgICAgVHlwZTI3ICZcbiAgICAgICAgVHlwZTI4ICZcbiAgICAgICAgVHlwZTI5ICZcbiAgICAgICAgVHlwZTMwICZcbiAgICAgICAgVHlwZTMxICZcbiAgICAgICAgVHlwZTMyICZcbiAgICAgICAgVHlwZTMzICZcbiAgICAgICAgVHlwZTM0ICZcbiAgICAgICAgVHlwZTM1ICZcbiAgICAgICAgVHlwZTM2ICZcbiAgICAgICAgVHlwZTM3ICZcbiAgICAgICAgVHlwZTM4ICZcbiAgICAgICAgVHlwZTM5ICZcbiAgICAgICAgVHlwZTQwICZcbiAgICAgICAgVHlwZTQxICZcbiAgICAgICAgVHlwZTQyICZcbiAgICAgICAgVHlwZTQzICZcbiAgICAgICAgVHlwZTQ0ICZcbiAgICAgICAgVHlwZTQ1ICZcbiAgICAgICAgVHlwZTQ2ICZcbiAgICAgICAgVHlwZTQ3ICZcbiAgICAgICAgVHlwZTQ4ICZcbiAgICAgICAgVHlwZTQ5LFxuICAgICAgVHlwZTUwXG4gICAgPiAmXG4gICAgICBUeXBlNTApXG4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1vcHRpb25hbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWxLZXlzIH0gZnJvbSBcIi4uL29wdGlvbmFsLWtleXNcIjtcbmltcG9ydCB7IFByZXR0aWZ5IH0gZnJvbSBcIi4uL3ByZXR0aWZ5XCI7XG5cbmV4cG9ydCB0eXBlIE1hcmtPcHRpb25hbDxUeXBlLCBLZXlzIGV4dGVuZHMga2V5b2YgVHlwZT4gPSBUeXBlIGV4dGVuZHMgVHlwZVxuICA/IFByZXR0aWZ5PFBhcnRpYWw8VHlwZT4gJiBSZXF1aXJlZDxPbWl0PFR5cGUsIEtleXMgfCBPcHRpb25hbEtleXM8VHlwZT4+Pj5cbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1yZWFkb25seS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZG9ubHlLZXlzIH0gZnJvbSBcIi4uL3JlYWRvbmx5LWtleXNcIjtcbmltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSBcIi4uL3dyaXRhYmxlXCI7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gXCIuLi9wcmV0dGlmeVwiO1xuXG5leHBvcnQgdHlwZSBNYXJrUmVhZG9ubHk8VHlwZSwgS2V5cyBleHRlbmRzIGtleW9mIFR5cGU+ID0gVHlwZSBleHRlbmRzIFR5cGVcbiAgPyBQcmV0dGlmeTxSZWFkb25seTxUeXBlPiAmIFdyaXRhYmxlPE9taXQ8VHlwZSwgS2V5cyB8IFJlYWRvbmx5S2V5czxUeXBlICYgb2JqZWN0Pj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay1yZXF1aXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcblxuZXhwb3J0IHR5cGUgTWFya1JlcXVpcmVkPFR5cGUsIEtleXMgZXh0ZW5kcyBrZXlvZiBUeXBlPiA9IFR5cGUgZXh0ZW5kcyBUeXBlXG4gID8gUHJldHRpZnk8VHlwZSAmIFJlcXVpcmVkPE9taXQ8VHlwZSwgRXhjbHVkZTxrZXlvZiBUeXBlLCBLZXlzPj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWFyay13cml0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tIFwiLi4vd3JpdGFibGVcIjtcbmltcG9ydCB7IFdyaXRhYmxlS2V5cyB9IGZyb20gXCIuLi93cml0YWJsZS1rZXlzXCI7XG5pbXBvcnQgeyBQcmV0dGlmeSB9IGZyb20gXCIuLi9wcmV0dGlmeVwiO1xuXG5leHBvcnQgdHlwZSBNYXJrV3JpdGFibGU8VHlwZSwgS2V5cyBleHRlbmRzIGtleW9mIFR5cGU+ID0gVHlwZSBleHRlbmRzIFR5cGVcbiAgPyBQcmV0dGlmeTxSZWFkb25seTxUeXBlPiAmIFdyaXRhYmxlPE9taXQ8VHlwZSwgRXhjbHVkZTxrZXlvZiBUeXBlLCBXcml0YWJsZUtleXM8VHlwZSAmIG9iamVjdD4gfCBLZXlzPj4+PlxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYnVpbGRhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gXCIuLi9kZWVwLXBhcnRpYWxcIjtcbmltcG9ydCB7IERlZXBXcml0YWJsZSB9IGZyb20gXCIuLi9kZWVwLXdyaXRhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkYWJsZTxUeXBlPiA9IERlZXBQYXJ0aWFsPERlZXBXcml0YWJsZTxUeXBlPj47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1tYXJrLW9wdGlvbmFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNQYXJzYWJsZVBhdGggfSBmcm9tIFwiLi4vaGFzLXBhcnNhYmxlLXBhdGhcIjtcbmltcG9ydCB7IE1hcmtPcHRpb25hbCB9IGZyb20gXCIuLi9tYXJrLW9wdGlvbmFsXCI7XG5pbXBvcnQgeyBQYXRocyB9IGZyb20gXCIuLi9wYXRoc1wiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcbmltcG9ydCB7IFVuaW9uVG9UdXBsZSB9IGZyb20gXCIuLi91bmlvbi10by10dXBsZVwiO1xuXG50eXBlIFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWxTaW5nbGVQYXRoPFR5cGUsIEtleVBhdGg+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IEtleVBhdGggZXh0ZW5kcyBgJHtpbmZlciBQcm9wZXJ0eUtleX0uJHtpbmZlciBSZXN0S2V5UGF0aH1gXG4gICAgPyB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFByb3BlcnR5S2V5XG4gICAgICAgICAgPyBQcmV0dGlmeTxSZWN1cnNpdmVEZWVwTWFya09wdGlvbmFsU2luZ2xlUGF0aDxUeXBlW0tleV0sIFJlc3RLZXlQYXRoPj5cbiAgICAgICAgICA6IFR5cGVbS2V5XTtcbiAgICAgIH1cbiAgICA6IFByZXR0aWZ5PE1hcmtPcHRpb25hbDxUeXBlLCBLZXlQYXRoICYga2V5b2YgVHlwZT4+XG4gIDogVHlwZTtcblxudHlwZSBSZWN1cnNpdmVEZWVwTWFya09wdGlvbmFsPEFjY3VtdWxhdG9yLCBLZXlQYXRocyBleHRlbmRzIHN0cmluZ1tdPiA9IEtleVBhdGhzIGV4dGVuZHMgW1xuICBpbmZlciBLZXlQYXRoLFxuICAuLi5pbmZlciBSZXN0S2V5UGF0aHMsXG5dXG4gID8gUmVzdEtleVBhdGhzIGV4dGVuZHMgc3RyaW5nW11cbiAgICA/IC8vIEtlZXAgYWxsIHRoZSBjaGFuZ2VzIGluIGBBY2N1bXVsYXRvcmBcbiAgICAgIFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWw8UmVjdXJzaXZlRGVlcE1hcmtPcHRpb25hbFNpbmdsZVBhdGg8QWNjdW11bGF0b3IsIEtleVBhdGg+LCBSZXN0S2V5UGF0aHM+XG4gICAgOiBuZXZlclxuICA6IEFjY3VtdWxhdG9yO1xuXG5leHBvcnQgdHlwZSBEZWVwTWFya09wdGlvbmFsPFR5cGUsIEtleVBhdGhVbmlvbiBleHRlbmRzIFBhdGhzPFR5cGU+PiA9IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIGZhbHNlXG4gID8gVHlwZVxuICA6IFJlY3Vyc2l2ZURlZXBNYXJrT3B0aW9uYWw8VHlwZSwgVW5pb25Ub1R1cGxlPEtleVBhdGhVbmlvbj4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1tYXJrLXJlcXVpcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNQYXJzYWJsZVBhdGggfSBmcm9tIFwiLi4vaGFzLXBhcnNhYmxlLXBhdGhcIjtcbmltcG9ydCB7IE1hcmtSZXF1aXJlZCB9IGZyb20gXCIuLi9tYXJrLXJlcXVpcmVkXCI7XG5pbXBvcnQgeyBQYXRocyB9IGZyb20gXCIuLi9wYXRoc1wiO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tIFwiLi4vcHJldHRpZnlcIjtcbmltcG9ydCB7IFVuaW9uVG9UdXBsZSB9IGZyb20gXCIuLi91bmlvbi10by10dXBsZVwiO1xuXG50eXBlIFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWRTaW5nbGVQYXRoPFR5cGUsIEtleVBhdGg+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IEtleVBhdGggZXh0ZW5kcyBgJHtpbmZlciBQcm9wZXJ0eUtleX0uJHtpbmZlciBSZXN0S2V5UGF0aH1gXG4gICAgPyB7XG4gICAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZV06IEtleSBleHRlbmRzIFByb3BlcnR5S2V5XG4gICAgICAgICAgPyBQcmV0dGlmeTxSZWN1cnNpdmVEZWVwTWFya1JlcXVpcmVkU2luZ2xlUGF0aDxUeXBlW0tleV0sIFJlc3RLZXlQYXRoPj5cbiAgICAgICAgICA6IFR5cGVbS2V5XTtcbiAgICAgIH1cbiAgICA6IFByZXR0aWZ5PE1hcmtSZXF1aXJlZDxUeXBlLCBLZXlQYXRoICYga2V5b2YgVHlwZT4+XG4gIDogVHlwZTtcblxudHlwZSBSZWN1cnNpdmVEZWVwTWFya1JlcXVpcmVkPEFjY3VtdWxhdG9yLCBLZXlQYXRocyBleHRlbmRzIHN0cmluZ1tdPiA9IEtleVBhdGhzIGV4dGVuZHMgW1xuICBpbmZlciBLZXlQYXRoLFxuICAuLi5pbmZlciBSZXN0S2V5UGF0aHMsXG5dXG4gID8gUmVzdEtleVBhdGhzIGV4dGVuZHMgc3RyaW5nW11cbiAgICA/IC8vIEtlZXAgYWxsIHRoZSBjaGFuZ2VzIGluIGBBY2N1bXVsYXRvcmBcbiAgICAgIFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWQ8UmVjdXJzaXZlRGVlcE1hcmtSZXF1aXJlZFNpbmdsZVBhdGg8QWNjdW11bGF0b3IsIEtleVBhdGg+LCBSZXN0S2V5UGF0aHM+XG4gICAgOiBuZXZlclxuICA6IEFjY3VtdWxhdG9yO1xuXG5leHBvcnQgdHlwZSBEZWVwTWFya1JlcXVpcmVkPFR5cGUsIEtleVBhdGhVbmlvbiBleHRlbmRzIFBhdGhzPFR5cGU+PiA9IEhhc1BhcnNhYmxlUGF0aDxUeXBlPiBleHRlbmRzIGZhbHNlXG4gID8gVHlwZVxuICA6IFJlY3Vyc2l2ZURlZXBNYXJrUmVxdWlyZWQ8VHlwZSwgVW5pb25Ub1R1cGxlPEtleVBhdGhVbmlvbj4+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1ub24tbnVsbGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWx0aW4gfSBmcm9tIFwiLi4vYnVpbHQtaW5cIjtcblxuZXhwb3J0IHR5cGUgRGVlcE5vbk51bGxhYmxlPFR5cGU+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBOb25OdWxsYWJsZTxUeXBlPlxuICA6IFR5cGUgZXh0ZW5kcyBNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IE1hcDxEZWVwTm9uTnVsbGFibGU8S2V5cz4sIERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seU1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlNYXA8RGVlcE5vbk51bGxhYmxlPEtleXM+LCBEZWVwTm9uTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gV2Vha01hcDxEZWVwTm9uTnVsbGFibGU8S2V5cz4sIERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFNldDxEZWVwTm9uTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrU2V0PERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFZhbHVlcz5cbiAgPyBQcm9taXNlPERlZXBOb25OdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcE5vbk51bGxhYmxlPFR5cGVbS2V5XT4gfVxuICA6IE5vbk51bGxhYmxlPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1udWxsYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNUdXBsZSB9IGZyb20gXCIuLi9pcy10dXBsZVwiO1xuXG5leHBvcnQgdHlwZSBEZWVwTnVsbGFibGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQnVpbHRpblxuICA/IFR5cGUgfCBudWxsXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gTWFwPERlZXBOdWxsYWJsZTxLZXlzPiwgRGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwTnVsbGFibGU8S2V5cz4sIERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyAvLyBUT0RPOiByZXBsYWNlIGl0IHdpdGggV2Vha0tleSAoaW50cm9kdWNlZCBhdCBUeXBlU2NyaXB0QDUuMilcbiAgICAvLyBXZWFrTWFwIGtleSBoYXMgdG8gc2F0aXNmeSBXZWFrS2V5IHdoaWNoIGlzIG9iamVjdCBhdCB0aGUgbW9tZW50XG4gICAgRGVlcE51bGxhYmxlPEtleXM+IGV4dGVuZHMgb2JqZWN0XG4gICAgPyBXZWFrTWFwPERlZXBOdWxsYWJsZTxLZXlzPiwgRGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gICAgOiBuZXZlclxuICA6IFR5cGUgZXh0ZW5kcyBTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFNldDxEZWVwTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyAvLyBUT0RPOiByZXBsYWNlIGl0IHdpdGggV2Vha0tleSAoaW50cm9kdWNlZCBhdCBUeXBlU2NyaXB0QDUuMilcbiAgICAvLyBXZWFrU2V0IGtleSBoYXMgdG8gc2F0aXNmeSBXZWFrS2V5IHdoaWNoIGlzIG9iamVjdCBhdCB0aGUgbW9tZW50XG4gICAgRGVlcE51bGxhYmxlPFZhbHVlcz4gZXh0ZW5kcyBvYmplY3RcbiAgICA/IFdlYWtTZXQ8RGVlcE51bGxhYmxlPFZhbHVlcz4+XG4gICAgOiBuZXZlclxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBUeXBlIGV4dGVuZHMgSXNUdXBsZTxUeXBlPlxuICAgID8geyBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwTnVsbGFibGU8VHlwZVtLZXldPiB8IG51bGwgfVxuICAgIDogVHlwZSBleHRlbmRzIEFycmF5PFZhbHVlcz5cbiAgICA/IEFycmF5PERlZXBOdWxsYWJsZTxWYWx1ZXM+PlxuICAgIDogUmVhZG9ubHlBcnJheTxEZWVwTnVsbGFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBWYWx1ZT5cbiAgPyBQcm9taXNlPERlZXBOdWxsYWJsZTxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIHt9XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwTnVsbGFibGU8VHlwZVtLZXldPiB9XG4gIDogVHlwZSB8IG51bGw7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1vbWl0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlSZWNvcmQgfSBmcm9tIFwiLi4vYW55LXJlY29yZFwiO1xuaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuXG5leHBvcnQgdHlwZSBEZWVwT21pdDxUeXBlLCBGaWx0ZXI+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgTWFwPEtleXMsIGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IE1hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seU1hcDxLZXlzLCBpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seU1hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtNYXA8S2V5cywgaW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha01hcDxLZXlzLCBEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgU2V0PGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IFNldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seVNldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha1NldDxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIEFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBBcnJheTxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwT21pdDxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBGaWx0ZXJWYWx1ZT5cbiAgICA/IFByb21pc2U8RGVlcE9taXQ8VmFsdWUsIEZpbHRlclZhbHVlPj5cbiAgICA6IFR5cGVcbiAgOiBGaWx0ZXIgZXh0ZW5kcyBBbnlSZWNvcmRcbiAgPyB7XG4gICAgICBbS2V5IGluIGtleW9mIFR5cGUgYXMgS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyXG4gICAgICAgID8gRmlsdGVyW0tleV0gZXh0ZW5kcyB0cnVlXG4gICAgICAgICAgPyBuZXZlclxuICAgICAgICAgIDogS2V5XG4gICAgICAgIDogS2V5XTogS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyID8gRGVlcE9taXQ8VHlwZVtLZXldLCBGaWx0ZXJbS2V5XT4gOiBUeXBlW0tleV07XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1wYXJ0aWFsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsdGluIH0gZnJvbSBcIi4uL2J1aWx0LWluXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5pbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBFeGNsdWRlPEJ1aWx0aW4sIEVycm9yPlxuICA/IFR5cGVcbiAgOiBUeXBlIGV4dGVuZHMgTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBNYXA8RGVlcFBhcnRpYWw8S2V5cz4sIERlZXBQYXJ0aWFsPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwUGFydGlhbDxLZXlzPiwgRGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgV2Vha01hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gV2Vha01hcDxEZWVwUGFydGlhbDxLZXlzPiwgRGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBQYXJ0aWFsPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFBhcnRpYWw8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWYWx1ZXM+XG4gID8gVHlwZSBleHRlbmRzIElzVHVwbGU8VHlwZT5cbiAgICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXT86IERlZXBQYXJ0aWFsPFR5cGVbS2V5XT4gfVxuICAgIDogVHlwZSBleHRlbmRzIEFycmF5PFZhbHVlcz5cbiAgICA/IEFycmF5PERlZXBQYXJ0aWFsPFZhbHVlcz4gfCB1bmRlZmluZWQ+XG4gICAgOiBSZWFkb25seUFycmF5PERlZXBQYXJ0aWFsPFZhbHVlcz4gfCB1bmRlZmluZWQ+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwUGFydGlhbDxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIHt9XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGVdPzogRGVlcFBhcnRpYWw8VHlwZVtLZXldPiB9XG4gIDogSXNVbmtub3duPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IHVua25vd25cbiAgOiBQYXJ0aWFsPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1waWNrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlSZWNvcmQgfSBmcm9tIFwiLi4vYW55LXJlY29yZFwiO1xuaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUGljazxUeXBlLCBGaWx0ZXI+ID0gVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgTWFwPEtleXMsIGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IE1hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seU1hcDxLZXlzLCBpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seU1hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtNYXA8S2V5cywgaW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha01hcDxLZXlzLCBEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gRmlsdGVyIGV4dGVuZHMgU2V0PGluZmVyIEZpbHRlclZhbHVlcz5cbiAgICA/IFNldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBSZWFkb25seVNldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IEZpbHRlciBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgRmlsdGVyVmFsdWVzPlxuICAgID8gV2Vha1NldDxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIEFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBGaWx0ZXIgZXh0ZW5kcyBBcnJheTxpbmZlciBGaWx0ZXJWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwUGljazxWYWx1ZXMsIEZpbHRlclZhbHVlcz4+XG4gICAgOiBUeXBlXG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gRmlsdGVyIGV4dGVuZHMgUHJvbWlzZTxpbmZlciBGaWx0ZXJWYWx1ZT5cbiAgICA/IFByb21pc2U8RGVlcFBpY2s8VmFsdWUsIEZpbHRlclZhbHVlPj5cbiAgICA6IFR5cGVcbiAgOiBGaWx0ZXIgZXh0ZW5kcyBBbnlSZWNvcmRcbiAgPyB7XG4gICAgICAvLyBpdGVyYXRlIG92ZXIga2V5cyBvZiBUeXBlLCB3aGljaCBrZWVwcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQga2V5czogb3B0aW9uYWwsIHJlcXVpcmVkIG9yIHJlYWRvbmx5XG4gICAgICBbS2V5IGluIGtleW9mIFR5cGUgYXMgS2V5IGV4dGVuZHMga2V5b2YgRmlsdGVyID8gS2V5IDogbmV2ZXJdOiBGaWx0ZXJbS2V5ICYga2V5b2YgRmlsdGVyXSBleHRlbmRzIHRydWVcbiAgICAgICAgPyBUeXBlW0tleV1cbiAgICAgICAgOiBLZXkgZXh0ZW5kcyBrZXlvZiBGaWx0ZXJcbiAgICAgICAgPyBEZWVwUGljazxUeXBlW0tleV0sIEZpbHRlcltLZXldPlxuICAgICAgICA6IG5ldmVyO1xuICAgIH1cbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1yZWFkb25seS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5pbXBvcnQgeyBCdWlsdGluIH0gZnJvbSBcIi4uL2J1aWx0LWluXCI7XG5pbXBvcnQgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5pbXBvcnQgeyBJc1Vua25vd24gfSBmcm9tIFwiLi4vaXMtdW5rbm93blwiO1xuXG5leHBvcnQgdHlwZSBEZWVwUmVhZG9ubHk8VHlwZT4gPSBUeXBlIGV4dGVuZHMgRXhjbHVkZTxCdWlsdGluLCBFcnJvcj5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlNYXA8RGVlcFJlYWRvbmx5PEtleXM+LCBEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5TWFwPERlZXBSZWFkb25seTxLZXlzPiwgRGVlcFJlYWRvbmx5PFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFdlYWtNYXA8RGVlcFJlYWRvbmx5PEtleXM+LCBEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seVNldDxEZWVwUmVhZG9ubHk8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5U2V0PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrU2V0PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBQcm9taXNlPGluZmVyIFZhbHVlPlxuICA/IFByb21pc2U8RGVlcFJlYWRvbmx5PFZhbHVlPj5cbiAgOiBUeXBlIGV4dGVuZHMgQW55QXJyYXk8aW5mZXIgVmFsdWVzPlxuICA/IElzTmV2ZXI8SXNUdXBsZTxUeXBlPj4gZXh0ZW5kcyBmYWxzZVxuICAgID8geyByZWFkb25seSBbS2V5IGluIGtleW9mIFR5cGVdOiBEZWVwUmVhZG9ubHk8VHlwZVtLZXldPiB9XG4gICAgOiBSZWFkb25seUFycmF5PERlZXBSZWFkb25seTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgcmVhZG9ubHkgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcFJlYWRvbmx5PFR5cGVbS2V5XT4gfVxuICA6IElzVW5rbm93bjxUeXBlPiBleHRlbmRzIHRydWVcbiAgPyB1bmtub3duXG4gIDogUmVhZG9ubHk8VHlwZT47XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1yZXF1aXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHR5cGUgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5pbXBvcnQgeyBJc1R1cGxlIH0gZnJvbSBcIi4uL2lzLXR1cGxlXCI7XG5cbmV4cG9ydCB0eXBlIERlZXBSZXF1aXJlZDxUeXBlPiA9IFR5cGUgZXh0ZW5kcyBFcnJvclxuICA/IFJlcXVpcmVkPFR5cGU+XG4gIDogVHlwZSBleHRlbmRzIEJ1aWx0aW5cbiAgPyBUeXBlXG4gIDogVHlwZSBleHRlbmRzIE1hcDxpbmZlciBLZXlzLCBpbmZlciBWYWx1ZXM+XG4gID8gTWFwPERlZXBSZXF1aXJlZDxLZXlzPiwgRGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBSZWFkb25seU1hcDxEZWVwUmVxdWlyZWQ8S2V5cz4sIERlZXBSZXF1aXJlZDxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBXZWFrTWFwPERlZXBSZXF1aXJlZDxLZXlzPiwgRGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gU2V0PERlZXBSZXF1aXJlZDxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFJlcXVpcmVkPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwUmVxdWlyZWQ8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFZhbHVlcz5cbiAgPyBJc05ldmVyPElzVHVwbGU8VHlwZT4+IGV4dGVuZHMgZmFsc2VcbiAgICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXS0/OiBEZWVwUmVxdWlyZWQ8VHlwZVtLZXldPiB9XG4gICAgOiBUeXBlIGV4dGVuZHMgQXJyYXk8VmFsdWVzPlxuICAgID8gQXJyYXk8RXhjbHVkZTxEZWVwUmVxdWlyZWQ8VmFsdWVzPiwgdW5kZWZpbmVkPj5cbiAgICA6IFJlYWRvbmx5QXJyYXk8RXhjbHVkZTxEZWVwUmVxdWlyZWQ8VmFsdWVzPiwgdW5kZWZpbmVkPj5cbiAgOiBUeXBlIGV4dGVuZHMge31cbiAgPyB7IFtLZXkgaW4ga2V5b2YgVHlwZV0tPzogRGVlcFJlcXVpcmVkPFR5cGVbS2V5XT4gfVxuICA6IFJlcXVpcmVkPFR5cGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC11bmRlZmluYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNUdXBsZSB9IGZyb20gXCIuLi9pcy10dXBsZVwiO1xuXG5leHBvcnQgdHlwZSBEZWVwVW5kZWZpbmFibGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQnVpbHRpblxuICA/IFR5cGUgfCB1bmRlZmluZWRcbiAgOiBUeXBlIGV4dGVuZHMgTWFwPGluZmVyIEtleXMsIGluZmVyIFZhbHVlcz5cbiAgPyBNYXA8RGVlcFVuZGVmaW5hYmxlPEtleXM+LCBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgOiBUeXBlIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IFJlYWRvbmx5TWFwPERlZXBVbmRlZmluYWJsZTxLZXlzPiwgRGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtNYXA8aW5mZXIgS2V5cywgaW5mZXIgVmFsdWVzPlxuICA/IC8vIFRPRE86IHJlcGxhY2UgaXQgd2l0aCBXZWFrS2V5IChpbnRyb2R1Y2VkIGF0IFR5cGVTY3JpcHRANS4yKVxuICAgIC8vIFdlYWtNYXAga2V5IGhhcyB0byBzYXRpc2Z5IFdlYWtLZXkgd2hpY2ggaXMgb2JqZWN0IGF0IHRoZSBtb21lbnRcbiAgICBEZWVwVW5kZWZpbmFibGU8S2V5cz4gZXh0ZW5kcyBvYmplY3RcbiAgICA/IFdlYWtNYXA8RGVlcFVuZGVmaW5hYmxlPEtleXM+LCBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIFNldDxpbmZlciBWYWx1ZXM+XG4gID8gU2V0PERlZXBVbmRlZmluYWJsZTxWYWx1ZXM+PlxuICA6IFR5cGUgZXh0ZW5kcyBSZWFkb25seVNldDxpbmZlciBWYWx1ZXM+XG4gID8gUmVhZG9ubHlTZXQ8RGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IC8vIFRPRE86IHJlcGxhY2UgaXQgd2l0aCBXZWFrS2V5IChpbnRyb2R1Y2VkIGF0IFR5cGVTY3JpcHRANS4yKVxuICAgIC8vIFdlYWtTZXQga2V5IGhhcyB0byBzYXRpc2Z5IFdlYWtLZXkgd2hpY2ggaXMgb2JqZWN0IGF0IHRoZSBtb21lbnRcbiAgICBEZWVwVW5kZWZpbmFibGU8VmFsdWVzPiBleHRlbmRzIG9iamVjdFxuICAgID8gV2Vha1NldDxEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVmFsdWVzPlxuICA/IFR5cGUgZXh0ZW5kcyBJc1R1cGxlPFR5cGU+XG4gICAgPyB7IFtLZXkgaW4ga2V5b2YgVHlwZV06IERlZXBVbmRlZmluYWJsZTxUeXBlW0tleV0+IHwgdW5kZWZpbmVkIH1cbiAgICA6IFR5cGUgZXh0ZW5kcyBBcnJheTxWYWx1ZXM+XG4gICAgPyBBcnJheTxEZWVwVW5kZWZpbmFibGU8VmFsdWVzPj5cbiAgICA6IFJlYWRvbmx5QXJyYXk8RGVlcFVuZGVmaW5hYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwVW5kZWZpbmFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgW0tleSBpbiBrZXlvZiBUeXBlXTogRGVlcFVuZGVmaW5hYmxlPFR5cGVbS2V5XT4gfVxuICA6IFR5cGUgfCB1bmRlZmluZWQ7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC13cml0YWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbHRpbiB9IGZyb20gXCIuLi9idWlsdC1pblwiO1xuaW1wb3J0IHsgSXNVbmtub3duIH0gZnJvbSBcIi4uL2lzLXVua25vd25cIjtcblxuZXhwb3J0IHR5cGUgRGVlcFdyaXRhYmxlPFR5cGU+ID0gVHlwZSBleHRlbmRzIEV4Y2x1ZGU8QnVpbHRpbiwgRXJyb3I+XG4gID8gVHlwZVxuICA6IFR5cGUgZXh0ZW5kcyBNYXA8aW5mZXIgS2V5LCBpbmZlciBWYWx1ZT5cbiAgPyBNYXA8RGVlcFdyaXRhYmxlPEtleT4sIERlZXBXcml0YWJsZTxWYWx1ZT4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5TWFwPGluZmVyIEtleSwgaW5mZXIgVmFsdWU+XG4gID8gTWFwPERlZXBXcml0YWJsZTxLZXk+LCBEZWVwV3JpdGFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyBXZWFrTWFwPGluZmVyIEtleSwgaW5mZXIgVmFsdWU+XG4gID8gV2Vha01hcDxEZWVwV3JpdGFibGU8S2V5PiwgRGVlcFdyaXRhYmxlPFZhbHVlPj5cbiAgOiBUeXBlIGV4dGVuZHMgU2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFJlYWRvbmx5U2V0PGluZmVyIFZhbHVlcz5cbiAgPyBTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFdlYWtTZXQ8aW5mZXIgVmFsdWVzPlxuICA/IFdlYWtTZXQ8RGVlcFdyaXRhYmxlPFZhbHVlcz4+XG4gIDogVHlwZSBleHRlbmRzIFByb21pc2U8aW5mZXIgVmFsdWU+XG4gID8gUHJvbWlzZTxEZWVwV3JpdGFibGU8VmFsdWU+PlxuICA6IFR5cGUgZXh0ZW5kcyB7fVxuICA/IHsgLXJlYWRvbmx5IFtLZXkgaW4ga2V5b2YgVHlwZV06IERlZXBXcml0YWJsZTxUeXBlW0tleV0+IH1cbiAgOiBJc1Vua25vd248VHlwZT4gZXh0ZW5kcyB0cnVlXG4gID8gdW5rbm93blxuICA6IFR5cGU7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWRlZXAtb21pdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcE1vZGlmeSB9IGZyb20gXCIuLi9kZWVwLW1vZGlmeVwiO1xuaW1wb3J0IHsgRGVlcE9taXQgfSBmcm9tIFwiLi4vZGVlcC1vbWl0XCI7XG5cbmV4cG9ydCB0eXBlIFN0cmljdERlZXBPbWl0PFR5cGUsIEZpbHRlciBleHRlbmRzIERlZXBNb2RpZnk8VHlwZT4+ID0gRGVlcE9taXQ8VHlwZSwgRmlsdGVyPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvc3RyaWN0LWRlZXAtcGljay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcE1vZGlmeSB9IGZyb20gXCIuLi9kZWVwLW1vZGlmeVwiO1xuaW1wb3J0IHsgRGVlcFBpY2sgfSBmcm9tIFwiLi4vZGVlcC1waWNrXCI7XG5cbmV4cG9ydCB0eXBlIFN0cmljdERlZXBQaWNrPFR5cGUsIEZpbHRlciBleHRlbmRzIERlZXBNb2RpZnk8VHlwZT4+ID0gRGVlcFBpY2s8VHlwZSwgRmlsdGVyPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvb3B0aW9uYWwta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3B0aW9uYWxLZXlzPFR5cGU+ID0gVHlwZSBleHRlbmRzIG9iamVjdFxuICA/IGtleW9mIHtcbiAgICAgIFtLZXkgaW4ga2V5b2YgVHlwZSBhcyBUeXBlIGV4dGVuZHMgUmVxdWlyZWQ8UGljazxUeXBlLCBLZXk+PiA/IG5ldmVyIDogS2V5XTogbmV2ZXI7XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcGljay1rZXlzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaWNrUHJvcGVydGllcyB9IGZyb20gXCIuLi9waWNrLXByb3BlcnRpZXNcIjtcblxuZXhwb3J0IHR5cGUgUGlja0tleXM8VHlwZSwgVmFsdWU+ID0ga2V5b2YgUGlja1Byb3BlcnRpZXM8VHlwZSwgVmFsdWU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVhZG9ubHkta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXNGdWxseVdyaXRhYmxlIH0gZnJvbSBcIi4uL2lzLWZ1bGx5LXdyaXRhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIFJlYWRvbmx5S2V5czxUeXBlIGV4dGVuZHMgb2JqZWN0PiA9IFR5cGUgZXh0ZW5kcyB1bmtub3duXG4gID8ga2V5b2Yge1xuICAgICAgW0tleSBpbiBrZXlvZiBUeXBlIGFzIElzRnVsbHlXcml0YWJsZTxQaWNrPFR5cGUsIEtleT4+IGV4dGVuZHMgdHJ1ZSA/IG5ldmVyIDogS2V5XTogbmV2ZXI7XG4gICAgfVxuICA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVxdWlyZWQta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWxLZXlzIH0gZnJvbSBcIi4uL29wdGlvbmFsLWtleXNcIjtcblxuZXhwb3J0IHR5cGUgUmVxdWlyZWRLZXlzPFR5cGU+ID0gVHlwZSBleHRlbmRzIHVua25vd24gPyBFeGNsdWRlPGtleW9mIFR5cGUsIE9wdGlvbmFsS2V5czxUeXBlPj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvd3JpdGFibGUta2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZG9ubHlLZXlzIH0gZnJvbSBcIi4uL3JlYWRvbmx5LWtleXNcIjtcblxuZXhwb3J0IHR5cGUgV3JpdGFibGVLZXlzPFR5cGUgZXh0ZW5kcyBvYmplY3Q+ID0gVHlwZSBleHRlbmRzIHVua25vd24gPyBFeGNsdWRlPGtleW9mIFR5cGUsIFJlYWRvbmx5S2V5czxUeXBlPj4gOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXhhY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFueVJlY29yZCB9IGZyb20gXCIuLi9hbnktcmVjb3JkXCI7XG5pbXBvcnQgeyBJc05ldmVyIH0gZnJvbSBcIi4uL2lzLW5ldmVyXCI7XG5cbnR5cGUgSXNVbmlvbjxUVW5pb24+ID0gVW5pb25Ub1R1cGxlPFRVbmlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAxID8gZmFsc2UgOiB0cnVlO1xuXG50eXBlIFVuaW9uVG9GdW5jdGlvbkluc2VydGlvbjxUVW5pb24+ID0gKFRVbmlvbiBleHRlbmRzIGFueSA/IChhcmc6ICgpID0+IFRVbmlvbikgPT4gYW55IDogbmV2ZXIpIGV4dGVuZHMgKFxuICBhcmc6IGluZmVyIFRQYXJhbSxcbikgPT4gYW55XG4gID8gVFBhcmFtXG4gIDogbmV2ZXI7XG5cbi8vIE5PVEU6IFdoZW4gcmVwbGFjaW5nIHRoZSB1dGlsaXR5IHR5cGUgd2l0aCBgVW5pb25Ub1R1cGxlYCBmcm9tIGAuLi91bmlvbi10by10dXBsZWAsXG4vLyBgaXNCQyhiY09yQmMzKWAgZmFpbHMgYmVjYXVzZSBgaXNCQ2AgYWxsb3dzIGBCQyB8IHtyZWFkb25seSBiOiAyO3JlYWRvbmx5IGM6IDM7fWAgYXMgcGFyYW1ldGVyPz8/XG50eXBlIFVuaW9uVG9UdXBsZTxUVW5pb24+ID0gVW5pb25Ub0Z1bmN0aW9uSW5zZXJ0aW9uPFRVbmlvbj4gZXh0ZW5kcyAoKSA9PiBpbmZlciBUUmV0dXJuVHlwZVxuICA/IFsuLi5VbmlvblRvVHVwbGU8RXhjbHVkZTxUVW5pb24sIFRSZXR1cm5UeXBlPj4sIFRSZXR1cm5UeXBlXVxuICA6IFtdO1xuXG50eXBlIEV4YWN0VW5pb25MZW5ndGg8VFZhbHVlLCBUU2hhcGU+ID0gVW5pb25Ub1R1cGxlPFRWYWx1ZT5bXCJsZW5ndGhcIl0gZXh0ZW5kcyBVbmlvblRvVHVwbGU8VFNoYXBlPltcImxlbmd0aFwiXVxuICA/IHRydWVcbiAgOiBmYWxzZTtcblxuLy8gTk9URTogYFhPUmAgY2Fubm90IGJlIHVzZWQgYXMgaXQncyBvbmx5IGhhbmR5IHdpdGggb2JqZWN0cywgbm90IGJvb2xlYW5zXG50eXBlIEJvb2xlYW5Yb3I8VCwgVT4gPSBUIGV4dGVuZHMgdHJ1ZSA/IChVIGV4dGVuZHMgdHJ1ZSA/IHRydWUgOiBmYWxzZSkgOiBVIGV4dGVuZHMgZmFsc2UgPyB0cnVlIDogZmFsc2U7XG5cbnR5cGUgQm9vbGVhbkFuZDxUVHVwbGU+ID0gVFR1cGxlIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFJlc3RdXG4gID8gSGVhZCBleHRlbmRzIHRydWVcbiAgICA/IEJvb2xlYW5BbmQ8UmVzdD5cbiAgICA6IGZhbHNlXG4gIDogVFR1cGxlIGV4dGVuZHMgW11cbiAgPyB0cnVlXG4gIDogZmFsc2U7XG5cbnR5cGUgT2JqZWN0S2V5RXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gQm9vbGVhbkFuZDxcbiAgW0lzTmV2ZXI8RXhjbHVkZTxrZXlvZiBUVmFsdWUsIGtleW9mIFRTaGFwZT4+LCBJc05ldmVyPEV4Y2x1ZGU8a2V5b2YgVFNoYXBlLCBrZXlvZiBUVmFsdWU+Pl1cbj47XG5cbnR5cGUgT2JqZWN0VmFsdWVEaWZmPFRWYWx1ZSwgVFNoYXBlPiA9IHtcbiAgW1RLZXkgaW4ga2V5b2YgVFZhbHVlXTogRXhjbHVkZTxUVmFsdWVbVEtleV0sIFRTaGFwZVtUS2V5ICYga2V5b2YgVFNoYXBlXT47XG59W2tleW9mIFRWYWx1ZV07XG5cbnR5cGUgT2JqZWN0VmFsdWVFeGFjdDxUVmFsdWUsIFRTaGFwZT4gPSBCb29sZWFuQW5kPFxuICBbSXNOZXZlcjxPYmplY3RWYWx1ZURpZmY8VFZhbHVlLCBUU2hhcGU+PiwgSXNOZXZlcjxPYmplY3RWYWx1ZURpZmY8VFNoYXBlLCBUVmFsdWU+Pl1cbj47XG5cbnR5cGUgT2JqZWN0RXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gW1RWYWx1ZV0gZXh0ZW5kcyBbVFNoYXBlXVxuICA/IEJvb2xlYW5BbmQ8XG4gICAgICBbXG4gICAgICAgIEJvb2xlYW5Yb3I8SXNVbmlvbjxUVmFsdWU+LCBJc1VuaW9uPFRTaGFwZT4+LFxuICAgICAgICBFeGFjdFVuaW9uTGVuZ3RoPFRWYWx1ZSwgVFNoYXBlPixcbiAgICAgICAgT2JqZWN0S2V5RXhhY3Q8VFZhbHVlLCBUU2hhcGU+LFxuICAgICAgICBPYmplY3RWYWx1ZUV4YWN0PFRWYWx1ZSwgVFNoYXBlPixcbiAgICAgIF1cbiAgICA+IGV4dGVuZHMgdHJ1ZVxuICAgID8gVFZhbHVlXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG50eXBlIElzQXJyYXk8VFZhbHVlPiA9IFtUVmFsdWVdIGV4dGVuZHMgW3JlYWRvbmx5IGFueVtdXSA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJc1JlYWRvbmx5PFRBcnJheT4gPSBSZWFkb25seTxUQXJyYXk+IGV4dGVuZHMgVEFycmF5ID8gdHJ1ZSA6IGZhbHNlO1xuXG50eXBlIFNhbWVMZW5ndGg8VFZhbHVlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10sIFRTaGFwZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdPiA9IElzTmV2ZXI8XG4gIFByaW1pdGl2ZUV4YWN0PFRWYWx1ZVtcImxlbmd0aFwiXSwgVFNoYXBlW1wibGVuZ3RoXCJdPlxuPiBleHRlbmRzIHRydWVcbiAgPyBmYWxzZVxuICA6IHRydWU7XG5cbnR5cGUgQXJyYXlFeGFjdDxUVmFsdWUgZXh0ZW5kcyByZWFkb25seSBhbnlbXSwgVFNoYXBlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10+ID0gQm9vbGVhbkFuZDxcbiAgW1xuICAgIC8vIGJvdGggYXJyYXlzXG4gICAgSXNBcnJheTxUVmFsdWU+LFxuICAgIElzQXJyYXk8VFNoYXBlPixcbiAgICAvLyBzYW1lIGxlbmd0aFxuICAgIFNhbWVMZW5ndGg8VFZhbHVlLCBUU2hhcGU+LFxuICAgIC8vIGJvdGggcmVhZG9ubHkgb3Igbm90XG4gICAgQm9vbGVhblhvcjxJc1JlYWRvbmx5PFRWYWx1ZT4sIElzUmVhZG9ubHk8VFNoYXBlPj4sXG4gIF1cbj4gZXh0ZW5kcyB0cnVlXG4gID8gW1RWYWx1ZSwgVFNoYXBlXSBleHRlbmRzIFtyZWFkb25seSAoaW5mZXIgVFZhbHVlRWxlbWVudClbXSwgcmVhZG9ubHkgKGluZmVyIFRTaGFwZUVsZW1lbnQpW11dXG4gICAgPyBFeGFjdDxUVmFsdWVFbGVtZW50LCBUU2hhcGVFbGVtZW50PiBleHRlbmRzIFRWYWx1ZUVsZW1lbnRcbiAgICAgID8gVFZhbHVlXG4gICAgICA6IG5ldmVyXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vLyBOT1RFOiBXaGVuIHJlcGxhY2luZyB0aGUgYm9keSB3aXRoIGBBcmVOb25EaXN0cmlidXRpdmVFcXVhbDxUVmFsdWUsIFRTaGFwZT4gZXh0ZW5kcyB0cnVlID8gVFZhbHVlIDogbmV2ZXJgLFxuLy8gYGlzQkNvckJDMyhiY09yQmMzKWAgZmFpbHMgYmVjYXVzZSBgYmNPckJjM2AgaXMgaW5mZXJyZWQgYXMgYEJDYD8/P1xudHlwZSBQcmltaXRpdmVFeGFjdDxUVmFsdWUsIFRTaGFwZT4gPSBbVFZhbHVlXSBleHRlbmRzIFtUU2hhcGVdID8gKFtUU2hhcGVdIGV4dGVuZHMgW1RWYWx1ZV0gPyBUVmFsdWUgOiBuZXZlcikgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgRXhhY3Q8VFZhbHVlLCBUU2hhcGU+ID0gW1RWYWx1ZV0gZXh0ZW5kcyBbcmVhZG9ubHkgYW55W11dXG4gID8gW1RTaGFwZV0gZXh0ZW5kcyBbcmVhZG9ubHkgYW55W11dXG4gICAgPyBBcnJheUV4YWN0PFRWYWx1ZSwgVFNoYXBlPlxuICAgIDogbmV2ZXJcbiAgOiBbVFZhbHVlXSBleHRlbmRzIFtBbnlSZWNvcmRdXG4gID8gT2JqZWN0RXhhY3Q8VFZhbHVlLCBUU2hhcGU+XG4gIDogUHJpbWl0aXZlRXhhY3Q8VFZhbHVlLCBUU2hhcGU+O1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtYW55L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTkyNzUyMy9kaXNhbGxvdy1jYWxsLXdpdGgtYW55LzQ5OTI4MzYwIzQ5OTI4MzYwXG5leHBvcnQgdHlwZSBJc0FueTxUeXBlPiA9IDAgZXh0ZW5kcyAxICYgVHlwZSA/IHRydWUgOiBmYWxzZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtbmV2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElzTmV2ZXI8VHlwZT4gPSBbVHlwZV0gZXh0ZW5kcyBbbmV2ZXJdID8gdHJ1ZSA6IGZhbHNlO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtdW5rbm93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXNBbnkgfSBmcm9tIFwiLi4vaXMtYW55XCI7XG5cbmV4cG9ydCB0eXBlIElzVW5rbm93bjxUeXBlPiA9IElzQW55PFR5cGU+IGV4dGVuZHMgdHJ1ZSA/IGZhbHNlIDogdW5rbm93biBleHRlbmRzIFR5cGUgPyB0cnVlIDogZmFsc2U7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaXMtdHVwbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElzVHVwbGU8VHlwZT4gPSBUeXBlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPyAoYW55W10gZXh0ZW5kcyBUeXBlID8gbmV2ZXIgOiBUeXBlKSA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLWVtcHR5LW9iamVjdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55UmVjb3JkIH0gZnJvbSBcIi4uL2FueS1yZWNvcmRcIjtcblxuZXhwb3J0IHR5cGUgTm9uRW1wdHlPYmplY3Q8T2JqZWN0IGV4dGVuZHMgQW55UmVjb3JkPiA9IGtleW9mIE9iamVjdCBleHRlbmRzIG5ldmVyID8gbmV2ZXIgOiBPYmplY3Q7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYW55LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBbnlBcnJheTxUeXBlID0gYW55PiA9IEFycmF5PFR5cGU+IHwgUmVhZG9ubHlBcnJheTxUeXBlPjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXJyYXktb3Itc2luZ2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBcnJheU9yU2luZ2xlPFR5cGU+ID0gVHlwZSB8IFR5cGVbXTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZWxlbWVudC1vZi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRWxlbWVudE9mPFR5cGUgZXh0ZW5kcyByZWFkb25seSBhbnlbXT4gPSBUeXBlIGV4dGVuZHMgcmVhZG9ubHkgKGluZmVyIFZhbHVlcylbXSA/IFZhbHVlcyA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaGVhZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5cbmV4cG9ydCB0eXBlIEhlYWQ8VHlwZSBleHRlbmRzIEFueUFycmF5PiA9IFR5cGUgZXh0ZW5kcyB1bmtub3duID8gKFR5cGVbXCJsZW5ndGhcIl0gZXh0ZW5kcyAwID8gbmV2ZXIgOiBUeXBlWzBdKSA6IG5ldmVyO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbm9uLWVtcHR5LWFycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOb25FbXB0eUFycmF5PFR5cGU+ID0gW1R5cGUsIC4uLlR5cGVbXV07XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcmVhZG9ubHktYXJyYXktb3Itc2luZ2xlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWFkb25seUFycmF5T3JTaW5nbGU8VHlwZT4gPSBUeXBlIHwgcmVhZG9ubHkgVHlwZVtdO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdGFpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55QXJyYXkgfSBmcm9tIFwiLi4vYW55LWFycmF5XCI7XG5cbmV4cG9ydCB0eXBlIFRhaWw8VHlwZSBleHRlbmRzIEFueUFycmF5PiA9IFR5cGUgZXh0ZW5kcyByZWFkb25seSBbXVxuICA/IG5ldmVyXG4gIDogVHlwZSBleHRlbmRzIHJlYWRvbmx5IFthbnk/LCAuLi5pbmZlciBSZXN0XVxuICA/IFJlc3RcbiAgOiBuZXZlcjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdHVwbGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFR1cGxlPFR5cGUgPSBhbnk+ID0gW1R5cGU/LCAuLi5UeXBlW11dO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvY2FtZWwtY2FzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBJc1N0cmluZ0xpdGVyYWw8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gKHN0cmluZyBleHRlbmRzIFR5cGUgPyBmYWxzZSA6IHRydWUpIDogZmFsc2U7XG5cbnR5cGUgV29yZEluQ2FtZWxDYXNlPFR5cGUsIFdvcmQgZXh0ZW5kcyBzdHJpbmcgPSBcIlwiPiA9IFR5cGUgZXh0ZW5kcyBgJHtXb3JkfSR7aW5mZXIgTmV4dENoYXJhY3Rlcn0ke2luZmVyIF99YFxuICA/IE5leHRDaGFyYWN0ZXIgZXh0ZW5kcyBDYXBpdGFsaXplPE5leHRDaGFyYWN0ZXI+XG4gICAgPyBXb3JkXG4gICAgOiBXb3JkSW5DYW1lbENhc2U8VHlwZSwgYCR7V29yZH0ke05leHRDaGFyYWN0ZXJ9YD5cbiAgOiBXb3JkO1xuXG50eXBlIFNlcGFyYXRvciA9IFwiX1wiIHwgXCItXCI7XG5cbnR5cGUgSW5jbHVkZXNTZXBhcmF0b3I8VHlwZT4gPSBUeXBlIGV4dGVuZHMgYCR7c3RyaW5nfSR7U2VwYXJhdG9yfSR7c3RyaW5nfWAgPyB0cnVlIDogZmFsc2U7XG5cbnR5cGUgSXNPbmVXb3JkPFR5cGU+ID0gVHlwZSBleHRlbmRzIExvd2VyY2FzZTxUeXBlICYgc3RyaW5nPlxuICA/IHRydWVcbiAgOiBUeXBlIGV4dGVuZHMgVXBwZXJjYXNlPFR5cGUgJiBzdHJpbmc+XG4gID8gdHJ1ZVxuICA6IGZhbHNlO1xuXG50eXBlIElzQ2FtZWxDYXNlPFR5cGU+ID0gVHlwZSBleHRlbmRzIFVuY2FwaXRhbGl6ZTxUeXBlICYgc3RyaW5nPiA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJc1Bhc2NhbENhc2U8VHlwZT4gPSBUeXBlIGV4dGVuZHMgQ2FwaXRhbGl6ZTxUeXBlICYgc3RyaW5nPiA/IHRydWUgOiBmYWxzZTtcblxuLyoqIHNuYWtlX2Nhc2UsIENPTlNUQU5UX0NBU0UsIGtlYmFiLWNhc2Ugb3IgQ09CT0wtQ0FTRSAqL1xudHlwZSBTZXBhcmF0b3JDYXNlUGFyc2VyPFxuICBUeXBlLFxuICBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW10sXG4+ID0gVHlwZSBleHRlbmRzIGAke2luZmVyIFdvcmR9JHtTZXBhcmF0b3J9JHtpbmZlciBUYWlsfWBcbiAgPyBTZXBhcmF0b3JDYXNlUGFyc2VyPFRhaWwsIFsuLi5UdXBsZSwgTG93ZXJjYXNlPFdvcmQ+XT5cbiAgOiBUeXBlIGV4dGVuZHMgYCR7aW5mZXIgV29yZH1gXG4gID8gWy4uLlR1cGxlLCBMb3dlcmNhc2U8V29yZD5dXG4gIDogVHVwbGU7XG5cbnR5cGUgQ2FtZWxDYXNlUGFyc2VyPFR5cGUsIFR1cGxlIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSBbXT4gPSBUeXBlIGV4dGVuZHMgXCJcIlxuICA/IFR1cGxlXG4gIDogVHlwZSBleHRlbmRzIGAke1dvcmRJbkNhbWVsQ2FzZTxUeXBlPn0ke2luZmVyIFRhaWx9YFxuICA/IFR5cGUgZXh0ZW5kcyBgJHtpbmZlciBXb3JkfSR7VGFpbH1gXG4gICAgPyBDYW1lbENhc2VQYXJzZXI8VW5jYXBpdGFsaXplPFRhaWw+LCBbLi4uVHVwbGUsIExvd2VyY2FzZTxXb3JkPl0+XG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vLyBDb252ZXJ0IGZpcnN0IGNoYXJhY3RlciBvZiBzdHJpbmcgbGl0ZXJhbCB0eXBlIHRvIGxvd2VyY2FzZSBhbmQgcmV1c2UgQ2FtZWxDYXNlUGFyc2VyXG50eXBlIFBhc2NhbENhc2VQYXJzZXI8VHlwZT4gPSBUeXBlIGV4dGVuZHMgc3RyaW5nID8gQ2FtZWxDYXNlUGFyc2VyPFVuY2FwaXRhbGl6ZTxUeXBlPj4gOiBuZXZlcjtcblxudHlwZSBTcGxpdEFueUNhc2U8VHlwZT4gPSBJbmNsdWRlc1NlcGFyYXRvcjxUeXBlPiBleHRlbmRzIHRydWVcbiAgPyBTZXBhcmF0b3JDYXNlUGFyc2VyPFR5cGU+XG4gIDogSXNPbmVXb3JkPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IFtMb3dlcmNhc2U8VHlwZSAmIHN0cmluZz5dXG4gIDogSXNDYW1lbENhc2U8VHlwZT4gZXh0ZW5kcyB0cnVlXG4gID8gQ2FtZWxDYXNlUGFyc2VyPFR5cGU+XG4gIDogSXNQYXNjYWxDYXNlPFR5cGU+IGV4dGVuZHMgdHJ1ZVxuICA/IFBhc2NhbENhc2VQYXJzZXI8VHlwZT5cbiAgOiBbXTtcblxudHlwZSBQYXNjYWxDYXBpdGFsaXplcjxUeXBlLCBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW10+ID0gVHlwZSBleHRlbmRzIFtpbmZlciBIZWFkLCAuLi5pbmZlciBUYWlsXVxuICA/IEhlYWQgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFBhc2NhbENhcGl0YWxpemVyPFRhaWwsIFsuLi5UdXBsZSwgQ2FwaXRhbGl6ZTxIZWFkPl0+XG4gICAgOiBQYXNjYWxDYXBpdGFsaXplcjxUYWlsLCBUdXBsZT5cbiAgOiBUdXBsZTtcblxudHlwZSBDYW1lbENhcGl0YWxpemVyPFR5cGU+ID0gVHlwZSBleHRlbmRzIFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgVGFpbF0gPyBQYXNjYWxDYXBpdGFsaXplcjxUYWlsLCBbRmlyc3RdPiA6IFtdO1xuXG50eXBlIEpvaW48VHlwZSwgSm9pbmVkU3RyaW5nIGV4dGVuZHMgc3RyaW5nID0gXCJcIj4gPSBUeXBlIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFRhaWxdXG4gID8gSGVhZCBleHRlbmRzIHN0cmluZ1xuICAgID8gSm9pbjxUYWlsLCBgJHtKb2luZWRTdHJpbmd9JHtIZWFkfWA+XG4gICAgOiBKb2luPFRhaWw+XG4gIDogSm9pbmVkU3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDYW1lbENhc2U8VHlwZT4gPSBJc1N0cmluZ0xpdGVyYWw8VHlwZT4gZXh0ZW5kcyB0cnVlID8gSm9pbjxDYW1lbENhcGl0YWxpemVyPFNwbGl0QW55Q2FzZTxUeXBlPj4+IDogVHlwZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZGVlcC1jYW1lbC1jYXNlLXByb3BlcnRpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbWVsQ2FzZSB9IGZyb20gXCIuLi9jYW1lbC1jYXNlXCI7XG5cbmV4cG9ydCB0eXBlIERlZXBDYW1lbENhc2VQcm9wZXJ0aWVzPFR5cGU+ID0gVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gID8geyBbS2V5IGluIGtleW9mIFR5cGUgYXMgQ2FtZWxDYXNlPEtleT5dOiBEZWVwQ2FtZWxDYXNlUHJvcGVydGllczxUeXBlW0tleV0+IH1cbiAgOiBUeXBlO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYW55LWZ1bmN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBbnlGdW5jdGlvbjxBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXSwgUmV0dXJuVHlwZSA9IGFueT4gPSAoLi4uYXJnczogQXJncykgPT4gUmV0dXJuVHlwZTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJlZGljYXRlLWZ1bmN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBQcmVkaWNhdGVGdW5jdGlvbiA9ICh4OiBhbnksIC4uLl96OiBhbnlbXSkgPT4geCBpcyBhbnk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJlZGljYXRlLXR5cGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWRpY2F0ZUZ1bmN0aW9uIH0gZnJvbSBcIi4uL3ByZWRpY2F0ZS1mdW5jdGlvblwiO1xuXG5leHBvcnQgdHlwZSBQcmVkaWNhdGVUeXBlPFR5cGUgZXh0ZW5kcyBQcmVkaWNhdGVGdW5jdGlvbj4gPSBUeXBlIGV4dGVuZHMgKFxuICB0YXJnZXQ6IGFueSxcbiAgLi4ucmVzdDogYW55W11cbikgPT4gdGFyZ2V0IGlzIGluZmVyIE5hcnJvd2VkVHlwZVxuICA/IE5hcnJvd2VkVHlwZVxuICA6IG5ldmVyO1xuIl19","export class UnreachableCaseError extends Error {\n constructor(value: never) {\n super(`Unreachable case: ${value}`);\n }\n}\n","export function assert(condition: any, message: string = \"no additional info provided\"): asserts condition {\n if (!condition) {\n throw new Error(\"Assertion Error: \" + message);\n }\n}\n","export const createFactoryWithConstraint =\n <Constraint>() =>\n <Value extends Constraint>(value: Value): Value =>\n value;\n","import { Exact } from \"../../exact\";\n\nexport const isExact =\n <ExpectedShape>() =>\n <ActualShape>(x: Exact<ActualShape, ExpectedShape>) =>\n x as ExpectedShape;\n","export function noop(..._args: unknown[]): void {}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvYXdhaXRlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgYnVpbHRpbiBgQXdhaXRlZGAgKi9cbmV4cG9ydCB0eXBlIEF3YWl0ZWQ8VHlwZT4gPSBUeXBlIGV4dGVuZHMgUHJvbWlzZUxpa2U8aW5mZXIgVmFsdWU+ID8gVmFsdWUgOiBuZXZlcjtcbiJdfQ==","// Basic\n\nexport * from \"./primitive\";\nexport * from \"./built-in\";\nexport * from \"./key-of-base\";\nexport * from \"./strict-exclude\";\nexport * from \"./strict-extract\";\nexport * from \"./strict-omit\";\nexport * from \"./writable\";\n\n// Utility types\n\nexport * from \"./async-or-sync\";\nexport * from \"./async-or-sync-type\";\nexport * from \"./dictionary\";\nexport * from \"./dictionary-values\";\nexport * from \"./merge\";\nexport * from \"./merge-n\";\nexport * from \"./newable\";\nexport * from \"./non-never\";\nexport * from \"./omit-properties\";\nexport * from \"./opaque\";\nexport * from \"./path-value\";\nexport * from \"./paths\";\nexport * from \"./pick-properties\";\nexport * from \"./prettify\";\nexport * from \"./safe-dictionary\";\nexport * from \"./union-to-intersection\";\nexport * from \"./value-of\";\nexport * from \"./xor\";\n\n// Mark wrapper types\n\nexport * from \"./mark-optional\";\nexport * from \"./mark-readonly\";\nexport * from \"./mark-required\";\nexport * from \"./mark-writable\";\n\n// Deep wrapper types\n\nexport * from \"./buildable\";\nexport * from \"./deep-mark-optional\";\nexport * from \"./deep-mark-required\";\nexport * from \"./deep-non-nullable\";\nexport * from \"./deep-nullable\";\nexport * from \"./deep-omit\";\nexport * from \"./deep-partial\";\nexport * from \"./deep-pick\";\nexport * from \"./deep-readonly\";\nexport * from \"./deep-required\";\nexport * from \"./deep-undefinable\";\nexport * from \"./deep-writable\";\nexport * from \"./strict-deep-omit\";\nexport * from \"./strict-deep-pick\";\n\n// Key types\n\nexport * from \"./optional-keys\";\nexport * from \"./pick-keys\";\nexport * from \"./readonly-keys\";\nexport * from \"./required-keys\";\nexport * from \"./writable-keys\";\n\n// Type checkers\n\nexport * from \"./exact\";\nexport * from \"./is-any\";\nexport * from \"./is-never\";\nexport * from \"./is-unknown\";\nexport * from \"./is-tuple\";\nexport * from \"./non-empty-object\";\n\n// Arrays and Tuples\n\nexport * from \"./any-array\";\nexport * from \"./array-or-single\";\nexport * from \"./element-of\";\nexport * from \"./head\";\nexport * from \"./non-empty-array\";\nexport * from \"./readonly-array-or-single\";\nexport * from \"./tail\";\nexport * from \"./tuple\";\n\n// Change case\n\nexport * from \"./camel-case\";\nexport * from \"./deep-camel-case-properties\";\n\n// Function types\n\nexport * from \"./any-function\";\nexport * from \"./predicate-function\";\nexport * from \"./predicate-type\";\n\n// Utility functions\n\nexport * from \"./functions/unreachable-case-error\";\nexport * from \"./functions/assert\";\nexport * from \"./functions/create-factory-with-constraint\";\nexport * from \"./functions/is-exact\";\nexport * from \"./functions/noop\";\n\n// Build-in types\n\nexport * from \"./awaited\";\n","import { inspect, stripVTControlCharacters, styleText } from 'node:util';\nimport { Help } from 'commander';\nimport type { CliAccount, CliOrganization } from './state';\n\nconst EMPTY_VALUE = '-';\nconst TABLE_GAP = ' ';\ntype TerminalStyle = Parameters<typeof styleText>[0];\n\nfunction applyStyle(\n value: string,\n style: TerminalStyle,\n enabled = true,\n): string {\n if (!enabled) {\n return value;\n }\n\n return styleText(style, value);\n}\n\nfunction indent(text: string, level = 2): string {\n const padding = ' '.repeat(level);\n return text\n .split('\\n')\n .map((line) => `${padding}${line}`)\n .join('\\n');\n}\n\nfunction stripAnsi(value: string): string {\n return stripVTControlCharacters(value);\n}\n\nfunction displayWidth(value: string): number {\n return stripAnsi(value).length;\n}\n\nfunction padCell(value: string, width: number): string {\n return value.padEnd(width + value.length - displayWidth(value));\n}\n\nfunction formatHeading(title: string): string {\n return applyStyle(title, ['bold', 'cyan']);\n}\n\nfunction formatLabel(label: string): string {\n return applyStyle(label, 'dim');\n}\n\nfunction formatCommandSnippet(command: string): string {\n return applyStyle(command, ['bold', 'cyan']);\n}\n\nfunction formatFlag(flag: string): string {\n return applyStyle(flag, ['bold', 'yellow']);\n}\n\nfunction formatErrorLabel(label: string): string {\n return applyStyle(label, ['bold', 'red'], process.stderr.isTTY);\n}\n\nfunction splitWords(value: string): string[] {\n const tokens: string[] = [];\n\n for (const word of value\n .replaceAll('_', ' ')\n .replaceAll('-', ' ')\n .split(' ')) {\n if (word.length === 0) {\n continue;\n }\n\n let currentToken = word[0] ?? '';\n for (const character of word.slice(1)) {\n const previousCharacter = currentToken.at(-1) ?? '';\n const shouldBreak =\n character >= 'A' &&\n character <= 'Z' &&\n ((previousCharacter >= 'a' && previousCharacter <= 'z') ||\n (previousCharacter >= '0' && previousCharacter <= '9'));\n\n if (shouldBreak) {\n tokens.push(currentToken);\n currentToken = character;\n continue;\n }\n\n currentToken += character;\n }\n\n tokens.push(currentToken);\n }\n\n return tokens;\n}\n\nfunction startCase(value: string): string {\n return splitWords(value)\n .map((segment) => {\n const lowerSegment = segment.toLowerCase();\n if (lowerSegment === 'id') {\n return 'ID';\n }\n\n if (lowerSegment === 'url') {\n return 'URL';\n }\n\n if (lowerSegment === 'api') {\n return 'API';\n }\n\n return segment.charAt(0).toUpperCase() + segment.slice(1);\n })\n .join(' ');\n}\n\nfunction formatScalar(value: unknown): string {\n if (value === null || value === undefined) {\n return EMPTY_VALUE;\n }\n\n if (typeof value === 'string') {\n return value.length === 0 ? EMPTY_VALUE : value;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n return inspect(value, {\n breakLength: Infinity,\n colors: false,\n compact: true,\n depth: 2,\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isPrimitiveLike(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n );\n}\n\nfunction formatTable(options: {\n columns: readonly string[];\n rows: readonly (readonly string[])[];\n}): string {\n const widths = options.columns.map((column, columnIndex) =>\n Math.max(\n displayWidth(column),\n ...options.rows.map((row) => displayWidth(row[columnIndex] ?? '')),\n ),\n );\n\n const renderRow = (cells: readonly string[]): string =>\n cells\n .map((cell, columnIndex) => padCell(cell, widths[columnIndex] ?? 0))\n .join(TABLE_GAP)\n .trimEnd();\n\n const divider = widths.map((width) => '-'.repeat(width)).join(TABLE_GAP);\n\n return [\n renderRow(options.columns.map((column) => applyStyle(column, 'bold'))),\n divider,\n ...options.rows.map(renderRow),\n ].join('\\n');\n}\n\nfunction canRenderRecordArrayAsTable(\n items: readonly unknown[],\n): items is readonly Record<string, unknown>[] {\n if (items.length === 0 || !items.every(isRecord)) {\n return false;\n }\n\n const keys = [...new Set(items.flatMap((item) => Object.keys(item)))];\n\n if (keys.length === 0 || keys.length > 8) {\n return false;\n }\n\n return items.every((item) => keys.every((key) => isPrimitiveLike(item[key])));\n}\n\nfunction formatRecord(record: Record<string, unknown>): string {\n const entries = Object.entries(record);\n if (entries.length === 0) {\n return EMPTY_VALUE;\n }\n\n const labelWidth = Math.max(\n ...entries.map(([key]) => displayWidth(startCase(key))),\n );\n\n return entries\n .map(([key, value]) => {\n const label = `${startCase(key)}:`;\n if (isPrimitiveLike(value)) {\n return `${padCell(formatLabel(label), labelWidth + 1)} ${formatScalar(value)}`;\n }\n\n return `${formatLabel(label)}\\n${indent(formatHumanReadableOutput(value))}`;\n })\n .join('\\n');\n}\n\nfunction formatArray(items: readonly unknown[]): string {\n if (items.length === 0) {\n return 'No results.';\n }\n\n if (items.every(isPrimitiveLike)) {\n return items.map((item) => `- ${formatScalar(item)}`).join('\\n');\n }\n\n if (canRenderRecordArrayAsTable(items)) {\n const keys = [...new Set(items.flatMap((item) => Object.keys(item)))];\n\n return formatTable({\n columns: keys.map((key) => startCase(key)),\n rows: items.map((item) => keys.map((key) => formatScalar(item[key]))),\n });\n }\n\n return items\n .map((item, index) => {\n const title = formatHeading(`Item ${index + 1}`);\n return `${title}\\n${indent(formatHumanReadableOutput(item))}`;\n })\n .join('\\n\\n');\n}\n\nfunction renderKeyValueBlock(entries: readonly [string, string][]): string {\n const labelWidth = Math.max(...entries.map(([label]) => displayWidth(label)));\n return entries\n .map(\n ([label, value]) =>\n `${padCell(formatLabel(`${label}:`), labelWidth + 1)} ${value}`,\n )\n .join('\\n');\n}\n\nfunction renderSection(title: string, bodyLines: readonly string[]): string {\n return [formatHeading(title), '', ...bodyLines].join('\\n');\n}\n\nexport class MagicalHelp extends Help {\n private outputHasColors = process.stdout.isTTY;\n\n public constructor() {\n super();\n this.helpWidth = 96;\n this.showGlobalOptions = true;\n this.sortSubcommands = true;\n }\n\n public override prepareContext(contextOptions: {\n error?: boolean;\n helpWidth?: number;\n outputHasColors?: boolean;\n }): void {\n super.prepareContext(contextOptions);\n this.outputHasColors =\n contextOptions.outputHasColors ?? process.stdout.isTTY;\n }\n\n public override styleTitle(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleCommandText(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleSubcommandText(str: string): string {\n return applyStyle(str, ['bold', 'cyan'], this.outputHasColors);\n }\n\n public override styleOptionText(str: string): string {\n return applyStyle(str, ['bold', 'yellow'], this.outputHasColors);\n }\n\n public override styleArgumentText(str: string): string {\n return applyStyle(str, ['bold', 'green'], this.outputHasColors);\n }\n\n public override styleDescriptionText(str: string): string {\n return applyStyle(str, 'dim', this.outputHasColors);\n }\n}\n\nexport function formatAuthLoginPrompt(options: {\n userCode: string;\n verificationUrl: string;\n}): string {\n return renderSection('Sign In With Your Browser', [\n renderKeyValueBlock([\n ['Open', options.verificationUrl],\n ['Code', options.userCode],\n ]),\n ]);\n}\n\nexport function formatAuthLoginSuccess(options: {\n account: CliAccount;\n defaultOrganization: CliOrganization | null;\n organizationCount: number;\n}): string {\n return renderSection('Signed In', [\n renderKeyValueBlock([\n ['Account', options.account.email ?? options.account.userId],\n ['Organizations', String(options.organizationCount)],\n [\n 'Default org',\n options.defaultOrganization\n ? `${options.defaultOrganization.name} (${options.defaultOrganization.id})`\n : 'None selected',\n ],\n ]),\n ]);\n}\n\nexport function formatBrowserOpenFallback(): string {\n return 'Browser auto-open failed. Paste the URL above into any browser.';\n}\n\nexport function formatLogoutSuccess(): string {\n return renderSection('Signed Out', ['Saved CLI auth state was cleared.']);\n}\n\nexport function formatOrganizationList(options: {\n defaultOrgId: string | null;\n lastUsedOrgId: string | null;\n organizations: readonly CliOrganization[];\n}): string {\n if (options.organizations.length === 0) {\n return renderSection('Organizations', ['No organizations are available.']);\n }\n\n const rows = options.organizations.map((organization) => {\n const status = [\n options.defaultOrgId === organization.id ? 'default' : null,\n options.lastUsedOrgId === organization.id ? 'last used' : null,\n ]\n .filter((value) => value !== null)\n .join(', ');\n\n return [\n status || EMPTY_VALUE,\n organization.name,\n organization.id,\n organization.primaryDomain ?? EMPTY_VALUE,\n ];\n });\n\n return renderSection('Organizations', [\n formatTable({\n columns: ['Status', 'Name', 'ID', 'Primary domain'],\n rows,\n }),\n ]);\n}\n\nexport function formatDefaultOrganizationSelection(\n organization: CliOrganization,\n): string {\n return renderSection('Default Organization Updated', [\n `${organization.name} (${organization.id})`,\n ]);\n}\n\nexport function formatHumanReadableOutput(value: unknown): string {\n if (isPrimitiveLike(value)) {\n return formatScalar(value);\n }\n\n if (Array.isArray(value)) {\n return formatArray(value);\n }\n\n if (isRecord(value)) {\n return formatRecord(value);\n }\n\n return inspect(value, {\n colors: false,\n depth: null,\n });\n}\n\nexport function formatCliError(message: string): string {\n return `${formatErrorLabel('Error:')} ${message}`;\n}\n\nexport function formatExamples(\n title: string,\n examples: readonly string[],\n): string {\n return [\n formatHeading(title),\n '',\n ...examples.map((example) => ` ${formatCommandSnippet(example)}`),\n ].join('\\n');\n}\n\nexport function formatOutputModesNote(): string {\n return renderSection('Output', [\n `Human-readable by default.`,\n `Add ${formatFlag('--json')} before or after a command for stable machine-readable output.`,\n ]);\n}\n","export class CliError extends Error {\n public constructor(\n message: string,\n options?: {\n cause?: unknown;\n },\n ) {\n super(message, options);\n this.name = 'CliError';\n }\n}\n\nexport function getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n\n return 'Unknown CLI error';\n}\n","import { z } from 'zod';\nimport { createOperationSpec } from './operation-spec';\nimport type { CliOptionSpec, OperationSpec } from './operation-types';\n\nfunction stringOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueType: 'string',\n };\n}\n\nfunction numberOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueType: 'number',\n };\n}\n\nfunction booleanOption({\n description,\n flagName,\n inputKey,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n valueType: 'boolean',\n };\n}\n\nfunction stringArrayOption({\n description,\n flagName,\n inputKey,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n valueHint: 'comma-separated',\n valueType: 'string-array',\n };\n}\n\nfunction jsonOption({\n description,\n flagName,\n inputKey,\n required = false,\n}: {\n description: string;\n flagName: string;\n inputKey: string;\n required?: boolean;\n}): CliOptionSpec {\n return {\n description,\n flagName,\n inputKey,\n required,\n valueHint: 'JSON',\n valueType: 'json',\n };\n}\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\n\nexport const operationSpecs = [\n createOperationSpec({\n operationName: 'GetAgent',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-agent',\n path: ['agents', 'get'],\n description: 'Fetch a single agent with config and schema fields.',\n resultKey: 'agent',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Agent ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'agent.graphql' },\n document: `# Query to fetch a single agent with all fields\n# Config selection is limited to scalar/JSON fields to keep responses flat\nquery GetAgent($id: ID!) {\n agent(id: $id) {\n id\n name\n description\n instructions\n organizationId\n createdAt\n updatedAt\n sourceAgentId\n inputSchema\n outputSchema\n config {\n type\n language\n model\n tools\n maxSessionMessages\n commonParametersSchema\n taskQueue\n waitUponQueueing\n queueableAgentIds\n additionalSystemPrompt\n ignoreUnstableSessionState\n }\n childAgentIds\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAgentRun',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-agent-run',\n path: ['agent-runs', 'get'],\n description: 'Fetch a single agent run.',\n resultKey: 'agentRun',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Agent run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'agentRun.graphql' },\n document: `# Query a single agent run\nquery GetAgentRun($id: ID!) {\n agentRun(id: $id) {\n id\n agentVersionId\n agentName\n status\n statusDetail\n isChildAgent\n input\n startedAt\n finishedAt\n parentAgentRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationAgents',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-agents',\n path: ['automations', 'agents'],\n description: 'Fetch the agents attached to an automation.',\n resultKey: 'automation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationAgents.graphql' },\n document: `# Query to fetch automation agents with flat fields only\n# Excludes nested agent config and schemas for MCP tool simplicity\nquery GetAutomationAgents($id: ID!) {\n automation(id: $id) {\n id\n name\n agents {\n automationId\n agentId\n isTrigger\n agent {\n id\n name\n description\n instructions\n organizationId\n createdAt\n updatedAt\n sourceAgentId\n childAgentIds\n }\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRun',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-run',\n path: ['automation-runs', 'get'],\n description: 'Fetch a single automation run.',\n resultKey: 'automationRun',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationRun.graphql' },\n document: `# Query a full automation run details payload\nquery GetAutomationRun($id: ID!) {\n automationRun(id: $id) {\n id\n automationId\n status\n statusDetail\n summary\n invocationType\n input\n additionalPrompt\n debugUrl\n createdAt\n startedAt\n pausedAt\n finishedAt\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRunAgentRuns',\n kind: 'query',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-run-agent-runs',\n path: ['automation-runs', 'agent-runs'],\n description: 'Fetch ordered agent runs for an automation run.',\n resultKey: 'automationRunAgentRuns',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationRunAgentRuns.graphql' },\n document: `# Query ordered agent runs for an automation run\nquery GetAutomationRunAgentRuns($automationRunId: ID!) {\n automationRunAgentRuns(automationRunId: $automationRunId) {\n id\n agentVersionId\n agentName\n status\n statusDetail\n isChildAgent\n input\n startedAt\n finishedAt\n parentAgentRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRunIterations',\n kind: 'query',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n agentRunId: z.string().min(1).optional(),\n limit: z.number().int().positive().optional(),\n reverse: z.boolean().optional(),\n }),\n cli: {\n name: 'get-automation-run-iterations',\n path: ['automation-runs', 'iterations'],\n description: 'Fetch ordered iterations for an automation run.',\n resultKey: 'automationRunIterations',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'agentRunId',\n flagName: 'agent-run-id',\n description: 'Optional agent run ID to filter by.',\n }),\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of iterations to return.',\n }),\n booleanOption({\n inputKey: 'reverse',\n flagName: 'reverse',\n description: 'Return newest iterations first.',\n }),\n ],\n },\n mcp: { fileName: 'automationRunIterations.graphql' },\n document: `# Query iterations for an automation run with optional filtering by agent run\nquery GetAutomationRunIterations(\n $automationRunId: ID!\n $agentRunId: ID\n $limit: Int\n $reverse: Boolean\n) {\n automationRunIterations(\n automationRunId: $automationRunId\n agentRunId: $agentRunId\n limit: $limit\n reverse: $reverse\n ) {\n id\n sequence\n agentRunId\n metadata\n startedAt\n finishedAt\n totalDurationMs\n llmResponseDurationMs\n withMarksScreenshotUrl\n withMarksMimeType\n memories {\n id\n type\n value\n sequence\n screenshotUrl\n screenshotMimeType\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationRuns',\n kind: 'query',\n inputSchema: z.object({\n automationId: z.string().min(1),\n status: z.array(z.string().min(1)).optional(),\n invocationType: z.array(z.string().min(1)).optional(),\n limit: z.number().int().positive().optional(),\n page: z.number().int().positive().optional(),\n }),\n cli: {\n name: 'get-automation-runs',\n path: ['automation-runs', 'list'],\n description: 'Fetch automation run history.',\n resultKey: 'automationRuns',\n options: [\n stringOption({\n inputKey: 'automationId',\n flagName: 'automation-id',\n description: 'Automation ID.',\n required: true,\n }),\n stringArrayOption({\n inputKey: 'status',\n flagName: 'status',\n description: 'Optional run statuses.',\n }),\n stringArrayOption({\n inputKey: 'invocationType',\n flagName: 'invocation-type',\n description: 'Optional invocation types.',\n }),\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of runs to return.',\n }),\n numberOption({\n inputKey: 'page',\n flagName: 'page',\n description: 'Page number.',\n }),\n ],\n },\n mcp: { fileName: 'automationRuns.graphql' },\n document: `# Query automation run history for a specific automation with optional filters\nquery GetAutomationRuns(\n $automationId: ID!\n $status: [RunStatus!]\n $invocationType: [InvocationType!]\n $limit: Int\n $page: Int\n) {\n automationRuns(\n automationId: $automationId\n status: $status\n invocationType: $invocationType\n limit: $limit\n page: $page\n ) {\n id\n automationId\n status\n statusDetail\n invocationType\n summary\n createdAt\n startedAt\n pausedAt\n finishedAt\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomations',\n kind: 'query',\n inputSchema: z.object({\n limit: z.number().positive().optional(),\n order: jsonObjectSchema.optional(),\n where: jsonObjectSchema.optional(),\n }),\n cli: {\n name: 'get-automations',\n path: ['automations', 'list'],\n description: 'Fetch automations with optional list filters.',\n resultKey: 'automations',\n options: [\n numberOption({\n inputKey: 'limit',\n flagName: 'limit',\n description: 'Maximum number of automations to return.',\n }),\n jsonOption({\n inputKey: 'order',\n flagName: 'order-json',\n description: 'GraphQL order object.',\n }),\n jsonOption({\n inputKey: 'where',\n flagName: 'where-json',\n description: 'GraphQL filter object.',\n }),\n ],\n },\n mcp: { fileName: 'automations.graphql' },\n document: `# Query to fetch automations with flat fields only (no nested objects)\n# Excludes config and agents for MCP tool simplicity\nquery GetAutomations(\n $limit: Float\n $order: AutomationsOrder\n $where: AutomationsWhereInput\n) {\n automations(limit: $limit, order: $order, where: $where) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAutomationWithConfigs',\n kind: 'query',\n inputSchema: z.object({\n id: z.string().min(1),\n }),\n cli: {\n name: 'get-automation-with-configs',\n path: ['automations', 'get'],\n description: 'Fetch a single automation with config fields.',\n resultKey: 'automation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'automationWithConfigs.graphql' },\n document: `# Query to fetch a single automation with config but excluding agents\n# Config selection is limited to scalar/JSON fields to keep responses flat\nquery GetAutomationWithConfigs($id: ID!) {\n automation(id: $id) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n config {\n cronExpression\n calendars\n interval\n enableVisualChangeChecks\n isCDPforSOM\n humanInterventionTimeoutSeconds\n availableSlots\n additionalSystemPrompt\n ignoreUnstableSessionState\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableCommands',\n kind: 'query',\n inputSchema: z.object({\n env: z.string().min(1),\n }),\n cli: {\n name: 'get-available-commands',\n path: ['catalog', 'commands'],\n description: 'Fetch available command definitions by environment.',\n resultKey: 'availableCommands',\n options: [\n stringOption({\n inputKey: 'env',\n flagName: 'env',\n description: 'Environment name.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'availableCommands.graphql' },\n document: `# Query to fetch available command definitions by environment\nquery GetAvailableCommands($env: AvailableCommandsEnv!) {\n availableCommands(env: $env) {\n id\n description\n inputSchema\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableModels',\n kind: 'query',\n inputSchema: z.object({\n agentId: z.string().min(1),\n }),\n cli: {\n name: 'get-available-models',\n path: ['catalog', 'models'],\n description: 'Fetch available model definitions for an agent.',\n resultKey: 'availableModels',\n options: [\n stringOption({\n inputKey: 'agentId',\n flagName: 'agent-id',\n description: 'Agent ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'availableModels.graphql' },\n document: `# Query to fetch available model definitions and pools for a specific agent\nquery GetAvailableModels($agentId: String!) {\n availableModels(agentId: $agentId) {\n availableModelPools {\n name\n poolId\n models {\n id\n name\n description\n status\n provider\n }\n }\n allAvailableModels {\n id\n name\n description\n status\n provider\n }\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetAvailableTools',\n kind: 'query',\n inputSchema: z.object({\n env: z.string().min(1),\n automationId: z.string().min(1).optional(),\n }),\n cli: {\n name: 'get-available-tools',\n path: ['catalog', 'tools'],\n description: 'Fetch available tool definitions by environment.',\n resultKey: 'availableTools',\n options: [\n stringOption({\n inputKey: 'env',\n flagName: 'env',\n description: 'Environment name.',\n required: true,\n }),\n stringOption({\n inputKey: 'automationId',\n flagName: 'automation-id',\n description: 'Optional automation ID.',\n }),\n ],\n },\n mcp: { fileName: 'availableTools.graphql' },\n document: `# Query to fetch available tool definitions by environment\nquery GetAvailableTools($env: AvailableCommandsEnv!, $automationId: String) {\n availableTools(env: $env, automationId: $automationId) {\n id\n description\n inputSchema\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'CreateAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n input: jsonObjectSchema,\n }),\n cli: {\n name: 'create-automation',\n path: ['automations', 'create'],\n description: 'Create a draft automation.',\n resultKey: 'createAutomation',\n options: [\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'CreateAutomationInput payload.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'createAutomation.graphql' },\n document: `# Mutation to create a draft automation with optional initial values\n# Returns flat fields only for MCP tool simplicity\nmutation CreateAutomation($input: CreateAutomationInput!) {\n createAutomation(input: $input) {\n id\n name\n organizationId\n createdAt\n updatedAt\n environment\n lastSavedAt\n publishedVersionId\n draftVersionId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'GetGraphqlSchema',\n kind: 'query',\n inputSchema: z.object({}),\n cli: {\n name: 'get-graphql-schema',\n path: ['graphql', 'schema'],\n description: 'Fetch GraphQL schema metadata.',\n resultKey: 'graphqlSchema',\n options: [],\n },\n mcp: { fileName: 'graphqlSchema.graphql' },\n document: `# Query to fetch full GraphQL schema metadata.\n# Uses the first-class graphqlSchema query field to avoid __schema validation\n# issues in MCP tool-load paths while still returning introspection JSON.\n# Response can be large: call sparingly (typically once per task/session) and\n# reuse cached results.\nquery GetGraphqlSchema {\n graphqlSchema\n}`,\n }),\n createOperationSpec({\n operationName: 'PauseAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'pause-automation-run',\n path: ['automation-runs', 'pause'],\n description: 'Pause an automation run.',\n resultKey: 'pauseAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'pauseAutomationRun.graphql' },\n document: `# Mutation to pause an automation run\nmutation PauseAutomationRun($automationRunId: ID!) {\n pauseAutomationRun(automationRunId: $automationRunId)\n}`,\n }),\n createOperationSpec({\n operationName: 'RerunAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n additionalPrompt: z.string().min(1).optional(),\n idempotencyKey: z.string().min(1),\n }),\n cli: {\n name: 'rerun-automation',\n path: ['automation-runs', 'rerun'],\n description: 'Rerun an existing automation run.',\n resultKey: 'rerunAutomation',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'additionalPrompt',\n flagName: 'additional-prompt',\n description: 'Optional prompt appended to the rerun.',\n }),\n stringOption({\n inputKey: 'idempotencyKey',\n flagName: 'idempotency-key',\n description: 'Idempotency key for the rerun request.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'rerunAutomation.graphql' },\n document: `# Mutation to rerun an existing automation run\nmutation RerunAutomation(\n $automationRunId: ID!\n $additionalPrompt: String\n $idempotencyKey: String!\n) {\n rerunAutomation(\n automationRunId: $automationRunId\n additionalPrompt: $additionalPrompt\n idempotencyKey: $idempotencyKey\n ) {\n automationRunId\n workflowId\n workflowRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'ResumeAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n message: z.string().min(1).optional(),\n }),\n cli: {\n name: 'resume-automation-run',\n path: ['automation-runs', 'resume'],\n description: 'Resume a paused automation run.',\n resultKey: 'resumeAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'message',\n flagName: 'message',\n description: 'Optional resume message.',\n }),\n ],\n },\n mcp: { fileName: 'resumeAutomationRun.graphql' },\n document: `# Mutation to resume an automation run\nmutation ResumeAutomationRun($automationRunId: ID!, $message: String) {\n resumeAutomationRun(automationRunId: $automationRunId, message: $message)\n}`,\n }),\n createOperationSpec({\n operationName: 'RunDraftAutomation',\n kind: 'mutation',\n inputSchema: z.object({\n draftAutomationId: z.string().min(1),\n agentId: z.string().min(1),\n idempotencyKey: z.string().min(1),\n input: z.unknown().optional(),\n additionalPrompt: z.string().min(1).optional(),\n }),\n cli: {\n name: 'run-draft-automation',\n path: ['automations', 'run-draft'],\n description: 'Run a draft automation with an explicit trigger agent.',\n resultKey: 'runDraftAutomation',\n options: [\n stringOption({\n inputKey: 'draftAutomationId',\n flagName: 'draft-automation-id',\n description: 'Draft automation ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'agentId',\n flagName: 'agent-id',\n description: 'Trigger agent ID.',\n required: true,\n }),\n stringOption({\n inputKey: 'idempotencyKey',\n flagName: 'idempotency-key',\n description: 'Idempotency key for the run request.',\n required: true,\n }),\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'Optional JSON input payload.',\n }),\n stringOption({\n inputKey: 'additionalPrompt',\n flagName: 'additional-prompt',\n description: 'Optional prompt appended to the run.',\n }),\n ],\n },\n mcp: { fileName: 'runDraftAutomation.graphql' },\n document: `# Mutation to run a draft automation with an explicit agent.\n# \\`draftAutomationId\\` is the draft automation entity ID (\\`Automation.id\\`), not \\`draftVersionId\\`.\nmutation RunDraftAutomation(\n $draftAutomationId: ID!\n $agentId: ID!\n $idempotencyKey: String!\n $input: JSON\n $additionalPrompt: String\n) {\n runDraftAutomation(\n draftAutomationId: $draftAutomationId\n agentId: $agentId\n idempotencyKey: $idempotencyKey\n input: $input\n additionalPrompt: $additionalPrompt\n ) {\n automationRunId\n workflowId\n workflowRunId\n }\n}`,\n }),\n createOperationSpec({\n operationName: 'StopAutomationRun',\n kind: 'mutation',\n inputSchema: z.object({\n automationRunId: z.string().min(1),\n }),\n cli: {\n name: 'stop-automation-run',\n path: ['automation-runs', 'stop'],\n description: 'Stop an automation run.',\n resultKey: 'stopAutomationRun',\n options: [\n stringOption({\n inputKey: 'automationRunId',\n flagName: 'automation-run-id',\n description: 'Automation run ID.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'stopAutomationRun.graphql' },\n document: `# Mutation to stop an automation run\nmutation StopAutomationRun($automationRunId: ID!) {\n stopAutomationRun(automationRunId: $automationRunId)\n}`,\n }),\n createOperationSpec({\n operationName: 'UpdateAutomationById',\n kind: 'mutation',\n inputSchema: z.object({\n id: z.string().min(1),\n input: jsonObjectSchema,\n }),\n cli: {\n name: 'update-automation-by-id',\n path: ['automations', 'update'],\n description: 'Update an automation.',\n resultKey: 'updateAutomation',\n options: [\n stringOption({\n inputKey: 'id',\n flagName: 'id',\n description: 'Automation ID.',\n required: true,\n }),\n jsonOption({\n inputKey: 'input',\n flagName: 'input-json',\n description: 'UpdateAutomationInput payload.',\n required: true,\n }),\n ],\n },\n mcp: { fileName: 'updateAutomation.graphql' },\n document: `# Mutation to update an automation\n# Returns only id and lastSavedAt for MCP tool simplicity\nmutation UpdateAutomationById($id: ID!, $input: UpdateAutomationInput!) {\n updateAutomation(id: $id, input: $input) {\n id\n lastSavedAt\n }\n}`,\n }),\n] as const satisfies readonly OperationSpec[];\n","import type { z } from 'zod';\nimport type { OperationSpec } from './operation-types';\n\nfunction stripLeadingGraphqlComments(document: string): string {\n return document.replace(/^(?:\\s*#.*\\n)+/u, '').trimStart();\n}\n\nfunction assertDocumentMatchesOperation({\n document,\n kind,\n operationName,\n}: {\n document: string;\n kind: OperationSpec['kind'];\n operationName: string;\n}): void {\n const normalizedDocument = stripLeadingGraphqlComments(document);\n const match =\n /^(?<actualKind>query|mutation)\\s+(?<actualOperationName>[_A-Za-z][_0-9A-Za-z]*)/u.exec(\n normalizedDocument,\n );\n\n const actualKind = match?.groups?.['actualKind'];\n const actualOperationName = match?.groups?.['actualOperationName'];\n if (!actualKind || !actualOperationName) {\n throw new Error(\n `Operation \"${operationName}\" is missing a top-level GraphQL ${kind} definition.`,\n );\n }\n\n if (actualKind !== kind || actualOperationName !== operationName) {\n throw new Error(\n `Operation \"${operationName}\" does not match its GraphQL document (${actualKind} ${actualOperationName}).`,\n );\n }\n}\n\nexport function createOperationSpec<TInputSchema extends z.ZodTypeAny>(\n spec: OperationSpec<TInputSchema>,\n): OperationSpec<TInputSchema> {\n assertDocumentMatchesOperation(spec);\n return spec;\n}\n","import { operationSpecs } from '@magical/mcp-registry';\nimport type { CliOptionSpec, OperationSpec } from '@magical/mcp-registry';\nimport { Command, InvalidArgumentError, Option } from 'commander';\nimport { createMagicalApiClient } from './api';\nimport type { ApiClient } from './api';\nimport { handleAuthLogin } from './auth-login';\nimport {\n formatDefaultOrganizationSelection,\n formatExamples,\n formatHumanReadableOutput,\n formatLogoutSuccess,\n formatOrganizationList,\n formatOutputModesNote,\n} from './cli-formatting';\nimport {\n configureCommandPresentation,\n createOperationHelpExamples,\n rootOperationalGroupDescriptions,\n} from './command-presentation';\nimport { getRuntimeConfig } from './config';\nimport type { RuntimeConfig } from './config';\nimport { CliError } from './errors';\nimport { createKeytarRefreshTokenStore } from './keychain';\nimport { openExternalUrl } from './open-url';\nimport {\n getInstalledCliUpdateRequirement,\n selfUpdateInstalledCli,\n} from './self-update';\nimport {\n createFileSettingsStore,\n resolveConfiguredApiBaseUrl,\n} from './settings';\nimport type { SettingsStore } from './settings';\nimport { createSettingsCommand } from './settings-command';\nimport { createFileStateStore } from './state';\nimport type {\n CliOrganization,\n CliState,\n RefreshTokenStore,\n StateStore,\n} from './state';\nimport { createWorkosAuthClient } from './workos-auth';\nimport type { AuthClient } from './workos-auth';\n\nexport interface CliIo {\n error: (message: string) => void;\n info: (message: string) => void;\n}\n\nexport interface CliDependencies {\n apiClient: ApiClient;\n authClient: AuthClient;\n io: CliIo;\n openExternalUrl: (url: string) => Promise<void>;\n refreshTokenStore: RefreshTokenStore;\n runtimeConfig: RuntimeConfig;\n ensureLatestCliVersion?: () => Promise<{\n installedVersion: string;\n latestVersion: string;\n } | null>;\n settingsStore?: SettingsStore;\n selfUpdateCli?: () => Promise<{\n installPrefix: string;\n packageSpecifier: string;\n registryUrl: string;\n }>;\n stateStore: StateStore;\n}\n\ntype JsonCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\ninterface OperationalCommandOptions {\n json?: boolean;\n org?: string;\n}\n\nfunction buildCommandOptionProperty(flagName: string): string {\n const [firstSegment, ...remainingSegments] = flagName.split('-');\n return [\n firstSegment ?? '',\n ...remainingSegments.map(\n (segment) => `${segment[0]?.toUpperCase() ?? ''}${segment.slice(1)}`,\n ),\n ].join('');\n}\n\nfunction parseCommandOptionValue(\n rawValue: string,\n optionSpec: CliOptionSpec,\n): unknown {\n switch (optionSpec.valueType) {\n case 'number': {\n const parsedNumber = Number(rawValue);\n if (Number.isNaN(parsedNumber)) {\n throw new InvalidArgumentError(\n `Expected a number for --${optionSpec.flagName}.`,\n );\n }\n\n return parsedNumber;\n }\n\n case 'string-array': {\n return rawValue\n .split(',')\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n }\n\n case 'json': {\n try {\n return JSON.parse(rawValue) as unknown;\n } catch {\n throw new InvalidArgumentError(\n `Expected valid JSON for --${optionSpec.flagName}.`,\n );\n }\n }\n\n case 'boolean': {\n return rawValue;\n }\n\n case 'string': {\n return rawValue;\n }\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction resolveOrganizationBySelector({\n organizations,\n selector,\n}: {\n organizations: CliOrganization[];\n selector: string;\n}): CliOrganization {\n const matchedOrganization = organizations.find(\n (organization) =>\n organization.id === selector || organization.name === selector,\n );\n\n if (!matchedOrganization) {\n throw new CliError(`Unknown organization \"${selector}\".`);\n }\n\n return matchedOrganization;\n}\n\nfunction resolveSelectedOrganization({\n organizationSelector,\n state,\n}: {\n organizationSelector?: string;\n state: CliState;\n}): CliOrganization {\n if (organizationSelector) {\n return resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: organizationSelector,\n });\n }\n\n if (!state.defaultOrgId) {\n throw new CliError(\n 'No default organization is configured. Use \"mgcl org use <org>\" or pass --org.',\n );\n }\n\n return resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: state.defaultOrgId,\n });\n}\n\nfunction requireLoggedInState(state: CliState | null): CliState {\n if (!state) {\n throw new CliError('You are not logged in. Run \"mgcl auth login\" first.');\n }\n\n return state;\n}\n\nfunction writeJsonOutput(io: CliIo, value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nfunction collectOperationVariables(\n operationSpec: OperationSpec,\n options: Record<string, unknown>,\n): Record<string, unknown> {\n const variables = Object.fromEntries(\n operationSpec.cli.options.flatMap((optionSpec: CliOptionSpec) => {\n const optionValue =\n options[buildCommandOptionProperty(optionSpec.flagName)];\n if (optionValue === undefined) {\n return [];\n }\n\n return [[optionSpec.inputKey, optionValue]];\n }),\n );\n\n const parsedVariables = operationSpec.inputSchema.safeParse(variables);\n if (!parsedVariables.success) {\n throw new CliError(\n parsedVariables.error.issues[0]?.message ?? 'Invalid command input.',\n );\n }\n\n if (!isRecord(parsedVariables.data)) {\n throw new CliError('Invalid command input.');\n }\n\n return parsedVariables.data;\n}\n\nasync function withOrgScopedAccessToken({\n dependencies,\n organizationId,\n state,\n}: {\n dependencies: CliDependencies;\n organizationId: string;\n state: CliState;\n}): Promise<{ accessToken: string }> {\n const refreshToken = await dependencies.refreshTokenStore.load(state.account);\n if (!refreshToken) {\n throw new CliError(\n 'No refresh token was found. Run \"mgcl auth login\" again.',\n );\n }\n\n const tokenResponse = await dependencies.authClient\n .refreshTokens({\n clientId: state.account.clientId,\n organizationId,\n refreshToken,\n })\n .catch((error: unknown) => {\n if (\n error instanceof CliError &&\n error.message === 'Refresh token already exchanged.'\n ) {\n throw new CliError(\n 'Refresh token already exchanged. Run \"mgcl auth login\" again.',\n { cause: error },\n );\n }\n\n throw error;\n });\n\n await dependencies.refreshTokenStore.save(\n state.account,\n tokenResponse.refresh_token,\n );\n\n return {\n accessToken: tokenResponse.access_token,\n };\n}\n\nasync function handleAuthLogout(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = await dependencies.stateStore.load();\n if (state) {\n await dependencies.refreshTokenStore.clear(state.account);\n }\n\n await dependencies.stateStore.clear();\n\n if (options.json) {\n writeJsonOutput(dependencies.io, { loggedOut: true });\n return;\n }\n\n dependencies.io.info(formatLogoutSuccess());\n}\n\nasync function handleOrgList(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n if (options.json) {\n writeJsonOutput(dependencies.io, state.organizations);\n return;\n }\n\n dependencies.io.info(\n formatOrganizationList({\n defaultOrgId: state.defaultOrgId,\n lastUsedOrgId: state.lastUsedOrgId,\n organizations: state.organizations,\n }),\n );\n}\n\nasync function handleOrgUse(\n dependencies: CliDependencies,\n organizationSelector: string,\n options: JsonCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n const organization = resolveOrganizationBySelector({\n organizations: state.organizations,\n selector: organizationSelector,\n });\n\n const nextState: CliState = {\n ...state,\n defaultOrgId: organization.id,\n lastUsedOrgId: organization.id,\n };\n await dependencies.stateStore.save(nextState);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n defaultOrgId: organization.id,\n organization,\n });\n return;\n }\n\n dependencies.io.info(formatDefaultOrganizationSelection(organization));\n}\n\nasync function handleSelfUpdate(\n dependencies: CliDependencies,\n options: JsonCommandOptions,\n): Promise<void> {\n const { selfUpdateCli } = dependencies;\n if (!selfUpdateCli) {\n throw new CliError('Self-update is not configured for this CLI instance.');\n }\n\n const updateResult = await selfUpdateCli();\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n installPrefix: updateResult.installPrefix,\n packageSpecifier: updateResult.packageSpecifier,\n registryUrl: updateResult.registryUrl,\n updated: true,\n });\n return;\n }\n\n dependencies.io.info(\n `Updated mgcl via npm (${updateResult.packageSpecifier}) in ${updateResult.installPrefix}.`,\n );\n}\n\nfunction isRootUpdateCommand(\n program: Command,\n actionCommand: Command,\n): boolean {\n return actionCommand.parent === program && actionCommand.name() === 'update';\n}\n\nasync function enforceLatestCliVersionIfNeeded({\n dependencies,\n program,\n actionCommand,\n}: {\n dependencies: CliDependencies;\n program: Command;\n actionCommand: Command;\n}): Promise<void> {\n if (\n actionCommand === program ||\n isRootUpdateCommand(program, actionCommand)\n ) {\n return;\n }\n\n const updateRequirement = await dependencies.ensureLatestCliVersion?.();\n if (!updateRequirement) {\n return;\n }\n\n throw new CliError(\n `mgcl ${updateRequirement.installedVersion} is outdated. Upgrade to ${updateRequirement.latestVersion} with \"mgcl update\", then rerun your command.`,\n );\n}\n\nasync function handleOperationCommand(\n dependencies: CliDependencies,\n operationSpec: OperationSpec,\n commandOptions: Record<string, unknown> & OperationalCommandOptions,\n): Promise<void> {\n const state = requireLoggedInState(await dependencies.stateStore.load());\n const organization = resolveSelectedOrganization({\n state,\n ...(commandOptions.org ? { organizationSelector: commandOptions.org } : {}),\n });\n const variables = collectOperationVariables(operationSpec, commandOptions);\n const { accessToken } = await withOrgScopedAccessToken({\n dependencies,\n organizationId: organization.id,\n state,\n });\n\n const result = await dependencies.apiClient.executeGraphQl({\n accessToken,\n query: operationSpec.document,\n resultKey: operationSpec.cli.resultKey,\n variables,\n });\n\n await dependencies.stateStore.save({\n ...state,\n lastUsedOrgId: organization.id,\n });\n\n if (commandOptions.json) {\n writeJsonOutput(dependencies.io, result);\n return;\n }\n\n dependencies.io.info(formatHumanReadableOutput(result));\n}\n\nfunction addRegistryOperationCommand({\n program,\n commandGroups,\n dependencies,\n operationSpec,\n}: {\n program: Command;\n commandGroups: Map<string, Command>;\n dependencies: CliDependencies;\n operationSpec: OperationSpec;\n}): void {\n const commandPath = [...operationSpec.cli.path];\n const leafCommandName = commandPath.pop();\n if (!leafCommandName) {\n throw new CliError(\n `CLI path is missing a leaf command for ${operationSpec.operationName}.`,\n );\n }\n\n let parentCommand = program;\n const currentGroupPath: string[] = [];\n\n for (const groupSegment of commandPath) {\n currentGroupPath.push(groupSegment);\n const groupPathKey = currentGroupPath.join(' ');\n const existingGroup = commandGroups.get(groupPathKey);\n if (existingGroup) {\n parentCommand = existingGroup;\n continue;\n }\n\n const nextGroup = parentCommand.command(groupSegment);\n if (currentGroupPath.length === 1) {\n nextGroup.helpGroup('Operation groups:');\n }\n const rootGroupDescription =\n currentGroupPath.length === 1\n ? rootOperationalGroupDescriptions.get(groupSegment)\n : undefined;\n if (rootGroupDescription) {\n nextGroup.description(rootGroupDescription);\n }\n\n commandGroups.set(groupPathKey, nextGroup);\n parentCommand = nextGroup;\n }\n\n const command = parentCommand.command(leafCommandName);\n configureOperationalCommand(command, dependencies, operationSpec);\n const legacyAliasCommand = program.command(operationSpec.cli.name, {\n hidden: true,\n });\n configureOperationalCommand(legacyAliasCommand, dependencies, operationSpec);\n}\nfunction configureOperationalCommand(\n command: Command,\n dependencies: CliDependencies,\n operationSpec: OperationSpec,\n): void {\n command\n .description(operationSpec.cli.description)\n .addOption(\n new Option(\n '--org <org>',\n 'Organization ID or exact organization name to use.',\n ).helpGroup('Shared options:'),\n )\n .addHelpText(\n 'after',\n `\\n${formatExamples(\n 'Examples',\n createOperationHelpExamples(operationSpec),\n )}`,\n );\n\n for (const optionSpec of operationSpec.cli.options) {\n const optionFlags =\n optionSpec.valueType === 'boolean'\n ? `--${optionSpec.flagName}`\n : `--${optionSpec.flagName} <value>`;\n const optionDescription = optionSpec.valueHint\n ? `${optionSpec.description} (${optionSpec.valueHint})`\n : optionSpec.description;\n const nextOption = new Option(optionFlags, optionDescription).helpGroup(\n operationSpec.kind === 'query' ? 'Query options:' : 'Mutation options:',\n );\n\n if (optionSpec.valueType === 'boolean') {\n command.addOption(nextOption);\n continue;\n }\n\n const parser = (rawValue: string): unknown =>\n parseCommandOptionValue(rawValue, optionSpec);\n nextOption.argParser(parser);\n\n if (optionSpec.required) {\n nextOption.makeOptionMandatory(true);\n command.addOption(nextOption);\n continue;\n }\n\n command.addOption(nextOption);\n }\n\n command.action(async function (this: Command) {\n await handleOperationCommand(\n dependencies,\n operationSpec,\n this.optsWithGlobals(),\n );\n });\n}\n\nexport function createConsoleIo(): CliIo {\n return {\n error(message) {\n process.stderr.write(`${message}\\n`);\n },\n info(message) {\n process.stdout.write(`${message}\\n`);\n },\n };\n}\n\nexport function createDefaultDependencies(): CliDependencies {\n const runtimeConfig = getRuntimeConfig();\n const settingsStore = createFileSettingsStore(runtimeConfig.stateFilePath);\n const selfUpdateOptions = {\n ...(runtimeConfig.cliDistTag ? { distTag: runtimeConfig.cliDistTag } : {}),\n ...(runtimeConfig.npmRegistryUrl\n ? { registryUrl: runtimeConfig.npmRegistryUrl }\n : {}),\n };\n\n return {\n apiClient: createMagicalApiClient({\n apiBaseUrl: async () =>\n resolveConfiguredApiBaseUrl({\n defaultApiBaseUrl: runtimeConfig.magicalApiUrl,\n settings: await settingsStore.load(),\n }),\n }),\n authClient: createWorkosAuthClient({\n workosApiUrl: runtimeConfig.workosApiUrl,\n }),\n io: createConsoleIo(),\n openExternalUrl,\n refreshTokenStore: createKeytarRefreshTokenStore(\n runtimeConfig.keychainServiceName,\n ),\n ensureLatestCliVersion: async () =>\n getInstalledCliUpdateRequirement(selfUpdateOptions),\n runtimeConfig,\n settingsStore,\n selfUpdateCli: async () => selfUpdateInstalledCli(selfUpdateOptions),\n stateStore: createFileStateStore(runtimeConfig.stateFilePath),\n };\n}\n\nexport function buildProgram(dependencies: CliDependencies): Command {\n const program = configureCommandPresentation(\n new Command()\n .name('mgcl')\n .description('Run Magical operations from the command line.'),\n )\n .addOption(new Option('--json', 'Render JSON output.'))\n .addOption(\n new Option(\n '--update',\n 'Update mgcl to the latest published npm release.',\n ),\n )\n .showHelpAfterError()\n .showSuggestionAfterError()\n .addHelpText(\n 'after',\n `\\n${formatExamples('Quick start', [\n 'mgcl auth login',\n 'mgcl org list',\n 'mgcl automations list --limit 10',\n 'mgcl automation-runs get --id <run-id>',\n 'mgcl update',\n ])}\\n\\n${formatOutputModesNote()}`,\n );\n program.action(async function (this: Command) {\n const options = this.optsWithGlobals<\n JsonCommandOptions & {\n update?: boolean;\n }\n >();\n\n if (options.update) {\n await handleSelfUpdate(dependencies, options);\n return;\n }\n\n this.outputHelp();\n });\n program.hook('preAction', async (_command, actionCommand) => {\n await enforceLatestCliVersionIfNeeded({\n actionCommand,\n dependencies,\n program,\n });\n });\n\n const authCommand = configureCommandPresentation(\n new Command('auth').description('Manage CLI authentication.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', ['mgcl auth login', 'mgcl auth logout'])}`,\n );\n authCommand\n .command('login')\n .description('Authenticate with Magical and load organization memberships.')\n .action(async function (this: Command) {\n await handleAuthLogin(dependencies, this.optsWithGlobals());\n });\n authCommand\n .command('logout')\n .description('Remove local CLI auth state.')\n .action(async function (this: Command) {\n await handleAuthLogout(dependencies, this.optsWithGlobals());\n });\n program.addCommand(authCommand);\n\n program.addCommand(createSettingsCommand(dependencies));\n\n const orgCommand = configureCommandPresentation(\n new Command('org').description('Manage organization selection.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', [\n 'mgcl org list',\n 'mgcl org use <org>',\n ])}`,\n );\n orgCommand\n .command('list')\n .description('List organizations available to the saved identity.')\n .action(async function (this: Command) {\n await handleOrgList(dependencies, this.optsWithGlobals());\n });\n orgCommand\n .command('use <org>')\n .description('Set the default organization by ID or exact name.')\n .action(async function (this: Command, organizationSelector: string) {\n await handleOrgUse(\n dependencies,\n organizationSelector,\n this.optsWithGlobals(),\n );\n });\n program.addCommand(orgCommand);\n\n const updateCommand = configureCommandPresentation(\n new Command('update').description(\n 'Update mgcl to the latest published npm release.',\n ),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', ['mgcl update', 'mgcl --update'])}`,\n );\n updateCommand.action(async function (this: Command) {\n await handleSelfUpdate(dependencies, this.optsWithGlobals());\n });\n program.addCommand(updateCommand);\n\n const operationalCommandGroups = new Map<string, Command>();\n for (const operationSpec of operationSpecs) {\n addRegistryOperationCommand({\n program,\n commandGroups: operationalCommandGroups,\n dependencies,\n operationSpec,\n });\n }\n\n return program;\n}\n","import { z } from 'zod';\nimport { CliError } from './errors';\nimport type { CliOrganization } from './state';\n\nconst workosOrganizationsResponseSchema = z.object({\n organizations: z.array(\n z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n primaryDomain: z.string().nullable().optional(),\n }),\n ),\n success: z.boolean(),\n});\n\nconst workosUserSchema = z.object({\n email: z.string().nullable(),\n id: z.string().min(1),\n});\n\nconst graphQlResponseSchema = z.object({\n data: z.record(z.string(), z.unknown()).optional(),\n errors: z\n .array(\n z.object({\n message: z.string().min(1),\n }),\n )\n .optional(),\n});\nconst apiErrorResponseSchema = z.object({\n errors: z\n .array(\n z.object({\n message: z.string().min(1),\n }),\n )\n .optional(),\n message: z.string().min(1).optional(),\n});\n\nfunction getApiErrorDetail(responseBody: unknown): string | null {\n const parsedResponse = apiErrorResponseSchema.safeParse(responseBody);\n if (!parsedResponse.success) {\n return null;\n }\n\n if (parsedResponse.data.message) {\n return parsedResponse.data.message;\n }\n\n if (!parsedResponse.data.errors || parsedResponse.data.errors.length === 0) {\n return null;\n }\n\n return parsedResponse.data.errors.map((error) => error.message).join('\\n');\n}\n\nexport interface ApiClient {\n executeGraphQl: (input: {\n accessToken: string;\n query: string;\n resultKey: string;\n variables: Record<string, unknown>;\n }) => Promise<unknown>;\n fetchOrganizations: (input: {\n accessToken: string;\n }) => Promise<CliOrganization[]>;\n fetchUser: (input: {\n accessToken: string;\n userId: string;\n }) => Promise<z.infer<typeof workosUserSchema>>;\n}\n\ntype ApiBaseUrlResolver = () => Promise<string> | string;\n\nfunction trimTrailingSlash(value: string): string {\n return value.replace(/\\/+$/u, '');\n}\n\nexport function createMagicalApiClient({\n apiBaseUrl,\n fetchFn = fetch,\n}: {\n apiBaseUrl: string | ApiBaseUrlResolver;\n fetchFn?: typeof fetch;\n}): ApiClient {\n const resolveApiBaseUrl: ApiBaseUrlResolver =\n typeof apiBaseUrl === 'string' ? () => apiBaseUrl : apiBaseUrl;\n\n async function fetchJson({\n accessToken,\n path,\n init,\n }: {\n accessToken: string;\n init?: RequestInit;\n path: string;\n }): Promise<unknown> {\n const url = `${trimTrailingSlash(await resolveApiBaseUrl())}${path}`;\n const headers = new Headers(init?.headers);\n headers.set('authorization', `Bearer ${accessToken}`);\n\n const response = await fetchFn(url, {\n ...init,\n headers,\n }).catch((error: unknown) => {\n throw new CliError(\n `Failed to reach Magical API at ${url}. Check your configured base URL and make sure service-main is running.`,\n { cause: error },\n );\n });\n\n const responseBody = await response.json().catch((error: unknown) => {\n if (!response.ok) {\n throw new CliError(\n `Magical API request to ${url} failed with status ${response.status}.`,\n {\n cause: error,\n },\n );\n }\n\n throw new CliError(\n `Magical API returned a non-JSON response for ${url}.`,\n {\n cause: error,\n },\n );\n });\n if (!response.ok) {\n const errorDetail = getApiErrorDetail(responseBody);\n\n throw new CliError(\n `Magical API request to ${url} failed with status ${response.status}${errorDetail ? `: ${errorDetail}` : '.'}`,\n );\n }\n\n return responseBody;\n }\n\n return {\n async executeGraphQl({\n accessToken,\n query,\n resultKey,\n variables,\n }): Promise<unknown> {\n const headers = new Headers();\n headers.set('content-type', 'application/json');\n\n const parsedResponse = graphQlResponseSchema.safeParse(\n await fetchJson({\n accessToken,\n path: '/graphql',\n init: {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query,\n variables,\n }),\n },\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('GraphQL response payload was invalid.');\n }\n\n if (parsedResponse.data.errors && parsedResponse.data.errors.length > 0) {\n throw new CliError(\n parsedResponse.data.errors.map((error) => error.message).join('\\n'),\n );\n }\n\n return parsedResponse.data.data?.[resultKey] ?? null;\n },\n\n async fetchOrganizations({ accessToken }): Promise<CliOrganization[]> {\n const parsedResponse = workosOrganizationsResponseSchema.safeParse(\n await fetchJson({\n accessToken,\n path: '/workos/organizations',\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('Organization list payload was invalid.');\n }\n\n return parsedResponse.data.organizations.map((organization) => ({\n id: organization.id,\n name: organization.name,\n primaryDomain: organization.primaryDomain ?? null,\n }));\n },\n\n async fetchUser({\n accessToken,\n userId,\n }): Promise<z.infer<typeof workosUserSchema>> {\n const parsedResponse = workosUserSchema.safeParse(\n await fetchJson({\n accessToken,\n path: `/workos/user/${userId}`,\n }),\n );\n\n if (!parsedResponse.success) {\n throw new CliError('User payload was invalid.');\n }\n\n return parsedResponse.data;\n },\n };\n}\n","import os from 'node:os';\nimport path from 'node:path';\n\nexport const DEFAULT_MAGICAL_API_URL = 'https://api-agt.getmagical.io';\nexport const DEFAULT_WORKOS_API_URL = 'https://api.workos.com';\nexport const DEFAULT_WORKOS_CLIENT_ID = 'client_01JJZ6XJ1RF248P20WF63M4VAM';\nexport const DEFAULT_STAGING_WORKOS_CLIENT_ID =\n 'client_01JJZ6X26BGFBT8AC303XPQ9EQ';\nexport const DEFAULT_KEYCHAIN_SERVICE_NAME = '@getmagical/mcp-cli';\nexport const DEFAULT_CLI_DIST_TAG = 'latest';\nexport const DEFAULT_CLI_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';\nexport const CLI_CONFIG_DIRECTORY_NAME = 'magical-mcp-cli';\nexport const CLI_STATE_FILE_NAME = 'state.json';\nexport const CLI_SETTINGS_FILE_NAME = 'settings.json';\n\nexport interface RuntimeConfig {\n cliDistTag?: string;\n keychainServiceName: string;\n magicalApiUrl: string;\n npmRegistryUrl?: string;\n stateFilePath: string;\n workosApiUrl: string;\n workosClientId: string;\n}\n\nfunction resolvePlatformConfigDirectory(): string {\n const customConfigDirectory = process.env['MAGICAL_CLI_CONFIG_DIR'];\n if (customConfigDirectory) {\n return customConfigDirectory;\n }\n\n if (process.platform === 'darwin') {\n return path.join(os.homedir(), 'Library', 'Application Support');\n }\n\n if (process.platform === 'win32') {\n const appDataDirectory = process.env['APPDATA'];\n return appDataDirectory ?? path.join(os.homedir(), 'AppData', 'Roaming');\n }\n\n return process.env['XDG_CONFIG_HOME'] ?? path.join(os.homedir(), '.config');\n}\n\nexport function getRuntimeConfig(): RuntimeConfig {\n const configDirectory = path.join(\n resolvePlatformConfigDirectory(),\n CLI_CONFIG_DIRECTORY_NAME,\n );\n\n return {\n cliDistTag: process.env['MAGICAL_CLI_DIST_TAG'] ?? DEFAULT_CLI_DIST_TAG,\n magicalApiUrl: DEFAULT_MAGICAL_API_URL,\n npmRegistryUrl:\n process.env['MAGICAL_CLI_NPM_REGISTRY_URL'] ??\n DEFAULT_CLI_NPM_REGISTRY_URL,\n stateFilePath: path.join(configDirectory, CLI_STATE_FILE_NAME),\n workosApiUrl: DEFAULT_WORKOS_API_URL,\n workosClientId: DEFAULT_WORKOS_CLIENT_ID,\n keychainServiceName: DEFAULT_KEYCHAIN_SERVICE_NAME,\n };\n}\n\nexport function requireWorkosClientId(config: RuntimeConfig): string {\n return config.workosClientId;\n}\n","import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { safeJsonParse } from '@magical/common/stdlib/json.util';\nimport { isErr } from '@magical/common/stdlib/result.util';\nimport { z } from 'zod';\nimport { CLI_SETTINGS_FILE_NAME } from './config';\nimport { CliError } from './errors';\n\nexport const cliSettingsSchema = z.object({\n env: z\n .object({\n baseUrl: z.url().optional(),\n })\n .default({}),\n});\n\nexport type CliSettings = z.infer<typeof cliSettingsSchema>;\n\nexport interface SettingsStore {\n load: () => Promise<CliSettings>;\n save: (settings: CliSettings) => Promise<void>;\n}\n\nexport function createEmptyCliSettings(): CliSettings {\n return {\n env: {},\n };\n}\n\nexport function hasCliSettingsOverrides(settings: CliSettings): boolean {\n return settings.env.baseUrl !== undefined;\n}\n\nexport function resolveSettingsFilePath(stateFilePath: string): string {\n return path.join(path.dirname(stateFilePath), CLI_SETTINGS_FILE_NAME);\n}\n\nexport function resolveConfiguredApiBaseUrl({\n defaultApiBaseUrl,\n settings,\n}: {\n defaultApiBaseUrl: string;\n settings: CliSettings;\n}): string {\n return settings.env.baseUrl ?? defaultApiBaseUrl;\n}\n\nexport function shouldUseStagingWorkosClientId(settings: CliSettings): boolean {\n return settings.env.baseUrl !== undefined;\n}\n\nexport function createFileSettingsStore(stateFilePath: string): SettingsStore {\n const settingsFilePath = resolveSettingsFilePath(stateFilePath);\n\n return {\n async load() {\n const fileContents = await readFile(settingsFilePath, 'utf8').catch(\n (error: unknown) => {\n if (\n error instanceof Error &&\n 'code' in error &&\n error.code === 'ENOENT'\n ) {\n return null;\n }\n\n throw new CliError('Failed to load CLI settings.', { cause: error });\n },\n );\n if (fileContents === null) {\n return createEmptyCliSettings();\n }\n\n const parsedJson = safeJsonParse<unknown>(fileContents);\n if (isErr(parsedJson)) {\n throw new CliError('Stored CLI settings are invalid.', {\n cause: parsedJson.error.cause,\n });\n }\n\n const parsed = cliSettingsSchema.safeParse(parsedJson.value);\n if (!parsed.success) {\n throw new CliError('Stored CLI settings are invalid.', {\n cause: parsed.error,\n });\n }\n\n return parsed.data;\n },\n async save(settings) {\n if (!hasCliSettingsOverrides(settings)) {\n await rm(settingsFilePath, { force: true });\n return;\n }\n\n await mkdir(path.dirname(settingsFilePath), { recursive: true });\n await writeFile(\n settingsFilePath,\n `${JSON.stringify(settings, null, 2)}\\n`,\n );\n },\n };\n}\n\nexport function createMemorySettingsStore(\n initialSettings: CliSettings = createEmptyCliSettings(),\n): SettingsStore {\n let currentSettings = initialSettings;\n\n return {\n async load() {\n return currentSettings;\n },\n async save(settings) {\n currentSettings = settings;\n },\n };\n}\n","/* eslint-disable no-restricted-syntax -- Only place where JSON.parse is allowed */\nimport { UnreachableCaseError } from 'ts-essentials';\nimport type { z } from 'zod';\nimport { Err, isErr, Ok } from './result.util';\nimport type { Result } from './result.util';\nimport type { FlatJSONObject, JSONObject } from './types.util';\n\nexport function safeJsonParse<T>(\n json: string,\n): Result<T, JSONErrors.InvalidJSON> {\n try {\n return Ok(JSON.parse(json));\n } catch (error) {\n // Avoid a circular dependency between stdlib and logger initialization.\n // eslint-disable-next-line no-console\n console.warn('Failed to parse JSON', { error, json });\n return Err({ type: 'invalid-json', cause: error, json });\n }\n}\n\nexport function parseJson<T extends z.ZodTypeAny>(\n schema: T,\n jsonString: string,\n): Result<z.infer<T>, JSONErrors> {\n const jsonData = safeJsonParse(jsonString);\n\n if (isErr(jsonData)) {\n return jsonData;\n }\n\n const data = schema.safeParse(jsonData.value);\n\n if (!data.success) {\n return Err({\n type: 'failed-to-validate',\n cause: data.error,\n });\n }\n\n return Ok(data.data);\n}\n\nexport type JSONErrors = JSONErrors.InvalidJSON | JSONErrors.FailedToValidate;\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport namespace JSONErrors {\n export interface InvalidJSON {\n type: 'invalid-json';\n cause: unknown;\n json: string;\n }\n\n export interface FailedToValidate {\n type: 'failed-to-validate';\n cause: unknown;\n }\n}\n\n/**\n * Converts a camelCase string to snake_case.\n * @param str - The string to convert\n * @returns The snake_case version of the string\n */\nfunction toSnakeCase(str: string): string {\n return str.replaceAll(\n /(?<lower>[a-z])(?<upper>[A-Z])/gu,\n (_, lower: string, upper: string) => `${lower}_${upper.toLowerCase()}`,\n );\n}\n\nexport interface ToFlatJsonObjectOptions {\n /**\n * The maximum depth to convert (default: 10)\n */\n maxDepth?: number;\n /**\n * Whether to convert keys to snake_case (default: false)\n */\n snakeCase?: boolean;\n}\n\n/**\n * Converts an object to a flat JSON object.\n * All nested objects are flattened, nested keys are separated by a dot.\n * Optionally converts keys from camelCase to snake_case.\n * This function is useful for converting an object to a format that can be used as tags for logging or other purposes.\n *\n * @param context - The object to convert to a flat JSON object.\n * @param options - Conversion options\n * @returns A flat JSON object.\n */\nexport function toFlatJsonObject(\n context: Record<string, unknown> | unknown[],\n options: ToFlatJsonObjectOptions = {},\n): FlatJSONObject {\n const { maxDepth = 10, snakeCase = false } = options;\n\n if (maxDepth <= 0) {\n return {};\n }\n\n /* v8 ignore start -- all cases tested, branch tracking issues from TypeScript narrowing */\n return Object.entries(context).reduce<FlatJSONObject>((acc, [key, value]) => {\n const processedKey = snakeCase ? toSnakeCase(key) : key;\n const valueType = typeof value;\n switch (valueType) {\n case 'undefined':\n case 'function': {\n return acc;\n }\n case 'object': {\n if (value === null) {\n acc[processedKey] = null;\n return acc;\n } else if (value instanceof Date) {\n acc[processedKey] = value.toISOString();\n } else if (typeof value === 'object') {\n const flattened = toFlatJsonObject(\n { ...value },\n {\n maxDepth: maxDepth - 1,\n snakeCase,\n },\n );\n return {\n ...acc,\n ...Object.entries(flattened).reduce<FlatJSONObject>(\n (innerAcc, [innerKey, innerValue]) => {\n innerAcc[`${processedKey}.${innerKey}`] = innerValue;\n return innerAcc;\n },\n {},\n ),\n };\n }\n break;\n }\n case 'bigint': {\n if (typeof value === 'bigint') {\n acc[processedKey] = value.toString();\n }\n break;\n }\n case 'boolean': {\n if (typeof value === 'boolean') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'number': {\n if (typeof value === 'number') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'string': {\n if (typeof value === 'string') {\n acc[processedKey] = value;\n }\n break;\n }\n case 'symbol': {\n if (typeof value === 'symbol') {\n acc[processedKey] = value.toString();\n }\n break;\n }\n default: {\n throw new UnreachableCaseError(valueType);\n }\n }\n\n return acc;\n }, {});\n /* v8 ignore stop */\n}\n\n/**\n * Converts an object to a JSON object.\n * This function recursively processes nested objects, keeping only JSON values.\n *\n * @param context - The object to convert to a JSON object.\n * @param maxDepth - The maximum depth to convert.\n * @returns A JSON object.\n */\nexport function toJsonObject(\n context: Record<string, unknown>,\n maxDepth = 10,\n): JSONObject {\n if (maxDepth <= 0) {\n return {};\n }\n\n /* v8 ignore start -- all cases tested, branch tracking issues from TypeScript narrowing */\n return Object.entries(context).reduce<JSONObject>((acc, [key, value]) => {\n const t = typeof value;\n switch (t) {\n case 'undefined':\n case 'function': {\n return acc;\n }\n case 'object': {\n if (value === null) {\n acc[key] = null;\n return acc;\n } else if (typeof value === 'object') {\n acc[key] =\n value instanceof Date\n ? value.toISOString()\n : toJsonObject({ ...value }, maxDepth - 1);\n }\n break;\n }\n case 'bigint': {\n if (typeof value === 'bigint') {\n acc[key] = value.toString();\n }\n break;\n }\n case 'boolean': {\n if (typeof value === 'boolean') {\n acc[key] = value;\n }\n break;\n }\n case 'number': {\n if (typeof value === 'number') {\n acc[key] = value;\n }\n break;\n }\n case 'string': {\n if (typeof value === 'string') {\n acc[key] = value;\n }\n break;\n }\n case 'symbol': {\n if (typeof value === 'symbol') {\n acc[key] = value.toString();\n }\n break;\n }\n default: {\n throw new UnreachableCaseError(t);\n }\n }\n\n return acc;\n }, {});\n /* v8 ignore stop */\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-type-assertion */\n/* eslint-disable @typescript-eslint/no-invalid-void-type */\n/* eslint-disable @typescript-eslint/no-redeclare */\nimport type { AsyncOrSync } from 'ts-essentials';\nimport { z } from 'zod';\nimport type { AppErrorBaseFields, AppErrorType } from './error';\nimport { AppError } from './error';\n\nexport type Result<O, E extends AppErrorType> = Result.Ok<O> | Result.Err<E>;\n\nexport namespace Result {\n export interface Ok<O = undefined> {\n _tag: 'Ok';\n value: O extends undefined ? void : O;\n }\n\n export interface Err<E extends AppErrorType> {\n _tag: 'Err';\n error: AppError<E>;\n }\n\n export function partition<O, E extends AppErrorType>(\n responses: Result<O, E>[],\n ): [O[], AppError<E>[]] {\n const oks = responses\n .filter((resp) => resp._tag === 'Ok')\n .map((resp) => resp.value);\n const errs = responses\n .filter((resp) => resp._tag === 'Err')\n .map((resp) => resp.error);\n\n return [oks as O[], errs];\n }\n\n export async function promiseAllAndPartition<O, E extends AppErrorType>(\n promises: Promise<Result<O, E>>[],\n ): Promise<[O[], AppError<E>[]]> {\n const results = await Promise.all(promises);\n return partition(results);\n }\n\n export function unwrapOrThrow<O, E extends AppErrorType>(\n result: Result<O, E>,\n ): O extends undefined ? void : O {\n if (isErr(result)) {\n throw result.error;\n }\n\n return result.value;\n }\n\n export async function all<O, E extends AppErrorType>(\n promises: (Promise<Result<O, E>> | Result<O, E>)[],\n ): Promise<Result<O[], E>> {\n const results = await fromThrowable(\n async () =>\n Promise.all(\n promises.map(async (promise) => {\n const result = await promise;\n if (isErr(result)) {\n throw result.error;\n }\n return result;\n }),\n ),\n 'unknown-error',\n );\n\n if (isErr(results)) {\n // eslint-disable-next-line new-cap -- no global disable, just here\n return ErrFromThrowable(results.error.cause);\n }\n\n return Ok(results.value.map((r) => r.value as O));\n }\n\n // #region andThen - lots of typescript magic to get this to work\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/max-params */\n export function andThenSync<O1, E1 extends AppErrorType>(\n fn1: () => Result<O1, E1>,\n ): Result<O1, E1>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n ): Result<O2, E1 | E2>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n ): Result<O3, E1 | E2 | E3>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n ): Result<O4, E1 | E2 | E3 | E4>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n ): Result<O5, E1 | E2 | E3 | E4 | E5>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O6, E6>,\n ): Result<O6, E1 | E2 | E3 | E4 | E5 | E6>;\n\n export function andThenSync<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n >(\n fn1: () => Result<O1, E1>,\n fn2: (value: O1) => Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Result<O3, E3>,\n fn4: (value3: O3, value2: O2, value1: O1) => Result<O4, E4>,\n fn5: (value4: O4, value3: O3, value2: O2, value1: O1) => Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Result<O7, E7>,\n ): Result<O7, E1 | E2 | E3 | E4 | E5 | E6 | E7>;\n\n export function andThenSync(\n fnFirst: () => Result<any, any>,\n ...fns: ((...value: any[]) => Result<any, any>)[]\n ): Result<any, any> {\n let result = fnFirst();\n const values = [];\n\n for (const fn of fns) {\n if (isErr(result)) {\n return result;\n }\n\n values.unshift(result.value);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- Safe via types\n result = fn(...values);\n }\n\n return result;\n }\n\n // andThen async overloads\n export function andThen<O1, E1 extends AppErrorType>(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n ): Promise<Result<O1, E1>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n ): Promise<Result<O2, E1 | E2>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n ): Promise<Result<O3, E1 | E2 | E3>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n ): Promise<Result<O4, E1 | E2 | E3 | E4>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n ): Promise<Result<O5, E1 | E2 | E3 | E4 | E5>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n ): Promise<Result<O6, E1 | E2 | E3 | E4 | E5 | E6>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O7, E7>> | Result<O7, E7>,\n ): Promise<Result<O7, E1 | E2 | E3 | E4 | E5 | E6 | E7>>;\n\n export function andThen<\n O1,\n E1 extends AppErrorType,\n O2,\n E2 extends AppErrorType,\n O3,\n E3 extends AppErrorType,\n O4,\n E4 extends AppErrorType,\n O5,\n E5 extends AppErrorType,\n O6,\n E6 extends AppErrorType,\n O7,\n E7 extends AppErrorType,\n O8,\n E8 extends AppErrorType,\n >(\n fn1: () => Promise<Result<O1, E1>> | Result<O1, E1>,\n fn2: (value: O1) => Promise<Result<O2, E2>> | Result<O2, E2>,\n fn3: (value2: O2, value1: O1) => Promise<Result<O3, E3>> | Result<O3, E3>,\n fn4: (\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O4, E4>> | Result<O4, E4>,\n fn5: (\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O5, E5>> | Result<O5, E5>,\n fn6: (\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O6, E6>> | Result<O6, E6>,\n fn7: (\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O7, E7>> | Result<O7, E7>,\n fn8: (\n value7: O7,\n value6: O6,\n value5: O5,\n value4: O4,\n value3: O3,\n value2: O2,\n value1: O1,\n ) => Promise<Result<O8, E8>> | Result<O8, E8>,\n ): Promise<Result<O8, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8>>;\n\n export async function andThen(\n fnFirst: () => Promise<Result<any, any>> | Result<any, any>,\n ...fns: ((\n ...value: any[]\n ) => Promise<Result<any, any>> | Result<any, any>)[]\n ): Promise<Result<any, any>> {\n let result = await fnFirst();\n const values = [];\n\n for (const fn of fns) {\n if (isErr(result)) {\n return result;\n }\n\n values.unshift(result.value);\n\n // eslint-disable-next-line no-await-in-loop, @typescript-eslint/no-unsafe-argument -- Safe via types\n result = await fn(...values);\n }\n\n return result;\n }\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/max-params */\n // #endregion\n}\n\nexport function Ok(): Result.Ok;\nexport function Ok<O>(value: O): Result.Ok<O>;\nexport function Ok<O>(value?: O): Result.Ok<O> {\n if (arguments.length === 0) {\n return {\n _tag: 'Ok',\n value: undefined,\n } as Result.Ok<O>;\n }\n\n return {\n _tag: 'Ok',\n value,\n } as Result.Ok<O>;\n}\n\nexport function Err<E extends AppErrorType>(error: E): Result.Err<E> {\n return {\n _tag: 'Err',\n error: new AppError(error),\n };\n}\n\nexport function ErrFromThrowable<E extends AppErrorType>(\n error: unknown,\n): Result.Err<E> {\n return {\n _tag: 'Err',\n error: error as AppError<E>,\n } as Result.Err<E>;\n}\n\nexport function isOk<O, E extends AppErrorType>(\n result: Result<O, E>,\n): result is Result.Ok<O> {\n return result._tag === 'Ok';\n}\n\nexport function isErr<O, E extends AppErrorType>(\n result: Result<O, E>,\n): result is Result.Err<E> {\n return result._tag === 'Err';\n}\n\nexport function match<O, E extends AppErrorType, R>(\n result: Result<O, E>,\n {\n onErr,\n onOk,\n }: {\n onErr: (error: AppError<E>) => R;\n onOk: (value: O | void) => R;\n },\n): R {\n if (isErr(result)) {\n return onErr(result.error);\n }\n\n return onOk(result.value);\n}\n\n/**\n * Best used for functions that are deeply generic or are not a good candidate for re-use.\n */\n\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => Promise<O>,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n): Promise<Result<O, AppErrorType<T, R> & { cause: unknown }>>;\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => O,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n): Result<O, AppErrorType<T, R> & { cause: unknown }>;\nexport function fromThrowable<\n O,\n T extends string,\n R extends Record<string, unknown> = Record<string, never>,\n>(\n fn: () => O | Promise<O>,\n errorType: T,\n errorInfo?: AppErrorBaseFields & R,\n):\n | Result<O, AppErrorType<T, R> & { cause: unknown }>\n | Promise<Result<O, AppErrorType<T, R> & { cause: unknown }>> {\n // eslint-disable-next-line no-restricted-syntax -- Automated Disable - Please fix\n try {\n const result = fn();\n if (result && typeof (result as Promise<O>).then === 'function') {\n return (\n (result as Promise<O>)\n // eslint-disable-next-line promise/prefer-await-to-then\n .then((value) => Ok(value))\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch((err: unknown) =>\n Err({\n ...errorInfo,\n type: errorType,\n cause: err,\n } as AppErrorType<T, R> & { cause: unknown }),\n )\n );\n }\n return Ok(result as O);\n } catch (err) {\n return Err({\n ...errorInfo,\n type: errorType,\n cause: err,\n } as AppErrorType<T, R> & { cause: unknown });\n }\n}\n\n/**\n * Best used for functions that are not deeply generic.\n */\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => Promise<O>,\n): (\n ...args: A\n) => Promise<Result<O, { type: 'unknown-error'; cause: unknown }>>;\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => O,\n): (...args: A) => Result<O, { type: 'unknown-error'; cause: unknown }>;\n\nexport function resultify<A extends unknown[], O>(\n fn: (...args: A) => O | Promise<O>,\n): (\n ...args: A\n) =>\n | Result<O, { type: 'unknown-error'; cause: unknown }>\n | Promise<Result<O, { type: 'unknown-error'; cause: unknown }>> {\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n return (...args: A) => {\n // eslint-disable-next-line no-restricted-syntax -- Automated Disable - Please fix\n try {\n const result = fn(...args);\n if (result && typeof (result as Promise<O>).then === 'function') {\n return (\n (result as Promise<O>)\n // eslint-disable-next-line promise/prefer-await-to-then\n .then((value) => Ok(value))\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch((error: unknown) =>\n Err({\n type: 'unknown-error',\n cause: error,\n }),\n )\n );\n }\n return Ok(result as O);\n } catch (error: unknown) {\n return Err({\n type: 'unknown-error',\n cause: error,\n });\n }\n };\n}\n\ntype ZOk<T extends z.ZodType> = z.ZodObject<{\n _tag: z.ZodLiteral<'Ok'>;\n value: T;\n}>;\n\ntype ZErr<T extends z.ZodType> = z.ZodObject<{\n _tag: z.ZodLiteral<'Err'>;\n error: T;\n}>;\n\nexport function zOk<T extends z.ZodType>(okSchema: T): ZOk<T> {\n return z.object({\n _tag: z.literal('Ok'),\n value: okSchema,\n });\n}\n\nexport function zErr<T extends z.ZodType>(errSchema: T): ZErr<T> {\n return z.object({\n _tag: z.literal('Err'),\n error: errSchema,\n });\n}\n\nexport function zResult<\n OkSchema extends z.ZodType,\n ErrSchema extends z.ZodType,\n>(\n okSchema: OkSchema,\n errSchema: ErrSchema,\n): z.ZodUnion<[ZOk<OkSchema>, ZErr<ErrSchema>]> {\n return z.union([zOk(okSchema), zErr(errSchema)]);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type OkOf<T> = T extends (\n ...args: any[]\n) => AsyncOrSync<Result<infer O, any>>\n ? O\n : never;\n\n/**\n * Extracts the error type from a function that returns Result<_, E> or Promise<Result<_, E>>\n *\n * @example\n * function funcA(): Result<Buffer, ATimeoutError | AAuthError> {...}\n *\n * type FuncAError = ErrOf<typeof funcA>; // type FuncAError = ATimeoutError | AAuthError\n *\n * async function funcThatCallsFuncs(): Promise<Result<SuccessResult, FuncAError | FuncBError> {\n * const resA = funcA();\n * if (isErr(resA)) {\n * return resA;\n * }\n *\n * const resB = await funcB();\n * if (isErr(resB)) {\n * return resB;\n * }\n * }\n */\n/* #region ErrOf */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport type ErrOf<T> = T extends (\n ...args: any[]\n) => Promise<Result<any, infer E>>\n ? E\n : T extends (...args: any[]) => Result<any, infer E>\n ? E\n : never;\n/* eslint-enable @typescript-eslint/no-explicit-any */\n/* #endregion ErrOf */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype OkOfResult<R> = [R] extends [Result<infer O, any>] ? O : never;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ErrOfResult<R> = [R] extends [Result<any, infer E>] ? E : never;\n\ntype FlattenResult<R> = [R] extends [Result<infer O, infer E>]\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [O] extends [Result<any, any>]\n ? FlattenResult<Result<OkOfResult<O>, E | ErrOfResult<O>>>\n : Result<O, E>\n : R;\n\nexport function isResult(v: unknown): v is Result<unknown, AppErrorType> {\n return (\n !!v &&\n typeof v === 'object' &&\n '_tag' in v &&\n (v._tag === 'Ok' || v._tag === 'Err')\n );\n}\n\n/**\n * Recursively flattens a nested Result, returning a value without a nested result or a Result.Err.\n *\n * @example\n * interface UnauthorizedError { type: 'unauthorized'; message: string }\n * interface GetAutomationIdError { type: 'get-automation-id'; message: string }\n *\n * type Inner = Result<{ id: BrandedString<'automationTestId'> }, UnauthorizedError>;\n * type Outer = Result<Inner, GetAutomationIdError>;\n *\n * const nested: Outer = Ok(Ok({ id: brandString<'automationTestId'>('123') }));\n * const flat = flattenResult(nested);\n * // flat is Ok({ id: '123' })\n * // with type Result<{ id: BrandedString<'automationTestId'> }, UnauthorizedError | GetAutomationIdError>\n */\nexport function flattenResult<E extends AppErrorType>(\n res: Result.Err<E>,\n): Result.Err<E>;\nexport function flattenResult<O, E extends AppErrorType>(\n res: Result.Ok<O>,\n): O extends Result<unknown, AppErrorType>\n ? FlattenResult<Result<O, E>>\n : Result.Ok<O>;\nexport function flattenResult<R extends Result<unknown, AppErrorType>>(\n res: R,\n): FlattenResult<R>;\n\nexport function flattenResult(\n res: Result<unknown, AppErrorType>,\n): FlattenResult<Result<unknown, AppErrorType>> {\n if (isErr(res)) {\n return res;\n }\n\n const { value } = res;\n\n if (isResult(value)) {\n return flattenResult(value);\n }\n\n return res;\n}\n","import type { AppError, AppErrorType } from './error';\nimport type { JSONObject, JSONValue } from './types.util';\n\nexport type UserFacingApiStatusCode = number;\n\nconst USER_FACING_STATUS_MESSAGES = new Map<number, string>([\n [400, 'Bad Request'],\n [401, 'Unauthorized'],\n [403, 'Forbidden'],\n [404, 'Not Found'],\n [500, 'Internal Server Error'],\n]);\n\nconst USER_FACING_DEFAULT_ACTIONS = new Map<number, string>([\n [400, 'Review the request payload and retry.'],\n [401, 'Authenticate and retry the request.'],\n [403, 'Verify your permissions and retry the request.'],\n [404, 'Verify the requested resource exists and retry.'],\n [\n 500,\n 'Retry the request. If this keeps happening, contact support and share the correlation ID.',\n ],\n]);\n\nconst USER_FACING_FALLBACK_CODES = new Map<number, string>([\n [400, 'BAD_REQUEST'],\n [401, 'UNAUTHORIZED'],\n [403, 'FORBIDDEN'],\n [404, 'NOT_FOUND'],\n [500, 'INTERNAL_SERVER_ERROR'],\n]);\n\nexport interface UserFacingApiError {\n code: string;\n message: string;\n correlationId: string;\n suggestedAction?: string | undefined;\n details?: JSONObject | undefined;\n}\n\nexport type UserFacingGraphQLErrorCode =\n | 'BAD_USER_INPUT'\n | 'FORBIDDEN'\n | 'INTERNAL_SERVER_ERROR'\n | 'NOT_FOUND'\n | 'UNAUTHORIZED';\n\nexport interface UserFacingGraphQLError {\n code: UserFacingGraphQLErrorCode;\n errorCode: string;\n message: string;\n correlationId: string;\n}\n\ninterface ZodIssueLike {\n path?: unknown;\n message?: unknown;\n code?: unknown;\n}\n\nfunction isCustomerUsageError(appError: AppError<AppErrorType>): boolean {\n return appError.categories.includes('customer_usage');\n}\n\nfunction getStatusCodeFromAppErrorCode(\n code: AppErrorType['statusCode'],\n): UserFacingApiStatusCode | undefined {\n if (typeof code !== 'number' || !Number.isInteger(code)) {\n return undefined;\n }\n\n if (code >= 400 && code <= 599) {\n return code;\n }\n\n return undefined;\n}\n\nfunction getStatusFamilyFallbackCode(statusCode: number): 400 | 500 {\n if (statusCode >= 400 && statusCode <= 499) {\n return 400;\n }\n\n return 500;\n}\n\nfunction getStatusMessage(statusCode: number): string {\n const directMessage = USER_FACING_STATUS_MESSAGES.get(statusCode);\n if (directMessage !== undefined) {\n return directMessage;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'Bad Request'\n : 'Internal Server Error';\n}\n\nfunction getDefaultSuggestedAction(statusCode: number): string {\n const directAction = USER_FACING_DEFAULT_ACTIONS.get(statusCode);\n if (directAction !== undefined) {\n return directAction;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'Review the request payload and retry.'\n : 'Retry the request. If this keeps happening, contact support and share the correlation ID.';\n}\n\nfunction getFallbackErrorCode(statusCode: number): string {\n const directCode = USER_FACING_FALLBACK_CODES.get(statusCode);\n if (directCode !== undefined) {\n return directCode;\n }\n\n return getStatusFamilyFallbackCode(statusCode) === 400\n ? 'BAD_REQUEST'\n : 'INTERNAL_SERVER_ERROR';\n}\n\nfunction shouldExposeMessage({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): boolean {\n if (statusCode >= 500) {\n return false;\n }\n\n return isCustomerUsageError(appError);\n}\n\nfunction resolveApiMessage({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return getStatusMessage(statusCode);\n }\n\n const trimmedMessage = appError.message.trim();\n if (trimmedMessage.length > 0) {\n return trimmedMessage;\n }\n\n return getStatusMessage(statusCode);\n}\n\nfunction resolveApiErrorCode({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return getFallbackErrorCode(statusCode);\n }\n\n return normalizeUserFacingErrorCode({\n type: appError.type,\n fallbackCode: getFallbackErrorCode(statusCode),\n });\n}\n\nfunction resolveSuggestedAction({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): string {\n const trimmedSuggestedAction = appError.suggestedAction?.trim();\n if (shouldExposeMessage({ appError, statusCode }) && trimmedSuggestedAction) {\n return trimmedSuggestedAction;\n }\n\n return getDefaultSuggestedAction(statusCode);\n}\n\nfunction getZodIssuesFromCause(\n cause: unknown,\n maxDepth = 10,\n): ZodIssueLike[] | undefined {\n if (maxDepth < 0 || typeof cause !== 'object' || cause === null) {\n return undefined;\n }\n\n if ('issues' in cause && Array.isArray(cause.issues)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n return cause.issues as ZodIssueLike[];\n }\n\n if ('cause' in cause) {\n return getZodIssuesFromCause(cause.cause, maxDepth - 1);\n }\n\n return undefined;\n}\n\nfunction toUserFacingDetailsValue(\n value: unknown,\n depth: number,\n): JSONValue | undefined {\n if (depth < 0) {\n return undefined;\n }\n\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const serializedValues = value\n .map((item) => toUserFacingDetailsValue(item, depth - 1))\n .filter((item): item is JSONValue => item !== undefined);\n\n return serializedValues;\n }\n\n if (value && typeof value === 'object') {\n const serializedObject: JSONObject = {};\n for (const [key, itemValue] of Object.entries(value)) {\n const serializedItemValue = toUserFacingDetailsValue(\n itemValue,\n depth - 1,\n );\n if (serializedItemValue !== undefined) {\n serializedObject[key] = serializedItemValue;\n }\n }\n\n if (Object.keys(serializedObject).length === 0) {\n return undefined;\n }\n\n return serializedObject;\n }\n\n return undefined;\n}\n\nfunction resolveApiDetails({\n appError,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n statusCode: UserFacingApiStatusCode;\n}): JSONObject | undefined {\n if (!shouldExposeMessage({ appError, statusCode })) {\n return undefined;\n }\n\n const zodIssues = getZodIssuesFromCause(appError.cause);\n if (zodIssues && zodIssues.length > 0) {\n return {\n validationErrors: zodIssues.map((issue) => ({\n path: Array.isArray(issue.path) ? issue.path.map(String).join('.') : '',\n message:\n typeof issue.message === 'string' ? issue.message : 'Invalid value',\n ...(typeof issue.code === 'string' ? { code: issue.code } : {}),\n })),\n };\n }\n\n const rawDetails = toUserFacingDetailsValue(appError.details, 4);\n if (\n rawDetails &&\n typeof rawDetails === 'object' &&\n !Array.isArray(rawDetails) &&\n Object.keys(rawDetails).length > 0\n ) {\n return rawDetails;\n }\n\n return undefined;\n}\n\nfunction getGraphQLErrorCodeFromAppErrorCode(\n code: AppErrorType['statusCode'],\n): UserFacingGraphQLErrorCode | undefined {\n if (code === 400) {\n return 'BAD_USER_INPUT';\n }\n\n if (code === 401) {\n return 'UNAUTHORIZED';\n }\n\n if (code === 403) {\n return 'FORBIDDEN';\n }\n\n if (code === 404) {\n return 'NOT_FOUND';\n }\n\n if (code === 500) {\n return 'INTERNAL_SERVER_ERROR';\n }\n\n return undefined;\n}\n\nfunction resolveGraphQLErrorCode(\n appError: AppError<AppErrorType>,\n): UserFacingGraphQLErrorCode {\n const codeFromAppErrorCode = getGraphQLErrorCodeFromAppErrorCode(\n appError.statusCode,\n );\n if (codeFromAppErrorCode !== undefined) {\n return codeFromAppErrorCode;\n }\n\n const normalizedErrorType = appError.type.toLowerCase();\n\n if (normalizedErrorType.includes('unauthorized')) {\n return 'UNAUTHORIZED';\n }\n\n if (normalizedErrorType.includes('forbidden')) {\n return 'FORBIDDEN';\n }\n\n if (normalizedErrorType.includes('not-found')) {\n return 'NOT_FOUND';\n }\n\n if (isCustomerUsageError(appError)) {\n return 'BAD_USER_INPUT';\n }\n\n return 'INTERNAL_SERVER_ERROR';\n}\n\nfunction getStatusCodeFromGraphQLErrorCode(\n code: UserFacingGraphQLErrorCode,\n): UserFacingApiStatusCode {\n switch (code) {\n case 'BAD_USER_INPUT': {\n return 400;\n }\n case 'UNAUTHORIZED': {\n return 401;\n }\n case 'FORBIDDEN': {\n return 403;\n }\n case 'NOT_FOUND': {\n return 404;\n }\n case 'INTERNAL_SERVER_ERROR': {\n return 500;\n }\n }\n}\n\nfunction getGraphQLErrorMessage({\n code,\n apiMessage,\n}: {\n code: UserFacingGraphQLErrorCode;\n apiMessage: string;\n}): string {\n switch (code) {\n case 'BAD_USER_INPUT':\n case 'NOT_FOUND':\n case 'INTERNAL_SERVER_ERROR': {\n return apiMessage;\n }\n case 'UNAUTHORIZED': {\n return 'Unauthorized';\n }\n case 'FORBIDDEN': {\n return 'Forbidden';\n }\n }\n}\n\nfunction getGraphQLAppErrorCode({\n code,\n apiCode,\n}: {\n code: UserFacingGraphQLErrorCode;\n apiCode: string;\n}): string {\n if (\n code === 'INTERNAL_SERVER_ERROR' ||\n code === 'UNAUTHORIZED' ||\n code === 'FORBIDDEN'\n ) {\n return code;\n }\n\n return apiCode;\n}\n\nfunction normalizeErrorCodeSegment(value: string): string {\n return value\n .trim()\n .toUpperCase()\n .replaceAll(/[^\\dA-Z]+/gu, '_')\n .replaceAll(/^_+/gu, '')\n .replaceAll(/_+$/gu, '');\n}\n\nexport function getStatusCodeForAppErrorFromAppError(\n appError: AppError<AppErrorType>,\n): UserFacingApiStatusCode {\n const statusCodeFromCode = getStatusCodeFromAppErrorCode(appError.statusCode);\n if (statusCodeFromCode !== undefined) {\n return statusCodeFromCode;\n }\n\n if (isCustomerUsageError(appError)) {\n return 400;\n }\n\n return 500;\n}\n\nexport function normalizeUserFacingErrorCode({\n type,\n fallbackCode,\n prefix,\n}: {\n type: string | undefined;\n fallbackCode: string;\n prefix?: string | undefined;\n}): string {\n if (!type) {\n return fallbackCode;\n }\n\n const normalized = normalizeErrorCodeSegment(type);\n\n if (normalized.length === 0) {\n return fallbackCode;\n }\n\n const normalizedPrefix = prefix\n ? normalizeErrorCodeSegment(prefix)\n : undefined;\n\n if (!normalizedPrefix) {\n return normalized;\n }\n\n if (normalized.startsWith(`${normalizedPrefix}_`)) {\n return normalized;\n }\n\n return `${normalizedPrefix}_${normalized}`;\n}\n\nexport function toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n}: {\n appError: AppError<AppErrorType>;\n correlationId: string;\n statusCode?: UserFacingApiStatusCode | undefined;\n}): UserFacingApiError {\n const resolvedStatusCode =\n statusCode ?? getStatusCodeForAppErrorFromAppError(appError);\n const message = resolveApiMessage({\n appError,\n statusCode: resolvedStatusCode,\n });\n const suggestedAction = resolveSuggestedAction({\n appError,\n statusCode: resolvedStatusCode,\n });\n const details = resolveApiDetails({\n appError,\n statusCode: resolvedStatusCode,\n });\n\n return {\n code: resolveApiErrorCode({\n appError,\n statusCode: resolvedStatusCode,\n }),\n message,\n correlationId,\n suggestedAction,\n ...(details ? { details } : {}),\n };\n}\n\nexport function toUserFacingGraphQLErrorFromAppError({\n appError,\n correlationId,\n}: {\n appError: AppError<AppErrorType>;\n correlationId: string;\n}): UserFacingGraphQLError {\n const code = resolveGraphQLErrorCode(appError);\n const statusCode = getStatusCodeFromGraphQLErrorCode(code);\n const apiError = toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n });\n\n return {\n code,\n errorCode: getGraphQLAppErrorCode({ code, apiCode: apiError.code }),\n message: getGraphQLErrorMessage({ code, apiMessage: apiError.message }),\n correlationId,\n };\n}\n\nexport function renderUserFacingApiError(error: UserFacingApiError): string {\n return [\n `code: ${error.code}`,\n `message: ${error.message}`,\n ...(error.suggestedAction\n ? [`suggestedAction: ${error.suggestedAction}`]\n : []),\n ...(error.details ? [`details: ${JSON.stringify(error.details)}`] : []),\n `correlationId: ${error.correlationId}`,\n ].join('\\n');\n}\n","import { isErrorLike } from './error-serialization';\nimport {\n getStatusCodeForAppErrorFromAppError,\n toUserFacingApiErrorFromAppError,\n toUserFacingGraphQLErrorFromAppError,\n} from './error-user-facing';\nimport type {\n UserFacingApiError,\n UserFacingApiStatusCode,\n UserFacingGraphQLError,\n} from './error-user-facing';\nimport { fromThrowable, isErr } from './result.util';\nimport type { JSONObject } from './types.util';\n\nconst ERROR_FIELDS = new Set(['name', 'message', 'stack', 'cause']);\n\n// Build a stack for the wrapper error that preserves the original throw site frames\n// but removes internal frames from this utility file, and uses the wrapper header.\nconst INTERNAL_STACK_PATHS = [\n '/src/stdlib/result.util.ts',\n '/src/stdlib/error.ts',\n];\n\nfunction stripInternalFrames(\n stack: string,\n internalFrames: string[],\n): string[] {\n const lines = stack.split('\\n');\n return lines.filter(\n (line) =>\n !internalFrames.some((internalFrame) => line.includes(internalFrame)),\n );\n}\n\nexport const ORDERED_APP_ERROR_CATEGORIES = [\n 'internal_platform',\n 'customer_usage',\n 'third_party',\n] as const;\nexport type AppErrorCategory = (typeof ORDERED_APP_ERROR_CATEGORIES)[number];\n\nexport function isAppErrorCategory(\n category: unknown,\n): category is AppErrorCategory {\n return (\n typeof category === 'string' &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n ORDERED_APP_ERROR_CATEGORIES.includes(category as AppErrorCategory)\n );\n}\n\nfunction isNonEmptyAppErrorCategoryArray(\n categories: unknown,\n): categories is [AppErrorCategory, ...AppErrorCategory[]] {\n return (\n Array.isArray(categories) &&\n categories.length > 0 &&\n categories.every(isAppErrorCategory)\n );\n}\n\nexport const APP_ERROR_SEVERITIES = ['warn', 'error', 'fatal'] as const;\nexport type AppErrorSeverity = (typeof APP_ERROR_SEVERITIES)[number];\n\nexport type AppErrorCode = number;\n\nexport function isAppErrorCode(code: unknown): code is AppErrorCode {\n return (\n typeof code === 'number' &&\n Number.isInteger(code) &&\n code >= 400 &&\n code <= 599\n );\n}\n\nexport function isAppErrorSeverity(\n severity: unknown,\n): severity is AppErrorSeverity {\n return (\n typeof severity === 'string' &&\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n APP_ERROR_SEVERITIES.includes(severity as AppErrorSeverity)\n );\n}\n\nexport function getMainAppErrorCategory(\n categories: [AppErrorCategory, ...AppErrorCategory[]],\n): AppErrorCategory;\nexport function getMainAppErrorCategory(categories: []): undefined;\nexport function getMainAppErrorCategory(\n categories: AppErrorCategory[],\n): AppErrorCategory | undefined;\nexport function getMainAppErrorCategory(\n categories: AppErrorCategory[],\n): AppErrorCategory | undefined {\n return ORDERED_APP_ERROR_CATEGORIES.find((category) =>\n categories.includes(category),\n );\n}\n\nexport interface AppErrorBaseFields {\n categories?: AppErrorCategory[] | undefined;\n severity?: AppErrorSeverity | undefined;\n statusCode?: AppErrorCode | undefined;\n /** @deprecated Use statusCode instead. */\n code?: AppErrorCode | undefined;\n message?: string | undefined;\n suggestedAction?: string | undefined;\n nonRetryable?: boolean | undefined;\n stack?: string | undefined;\n internalFrames?: string[] | undefined;\n}\n\ntype AppErrorWithoutCauseType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = R &\n AppErrorBaseFields & {\n type: T extends 'unknown-error' ? never : T;\n message: string;\n cause?: unknown;\n };\n\nexport type AppErrorWithCauseType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = R &\n AppErrorBaseFields & {\n type: T;\n cause: unknown;\n };\n\nexport type AppErrorType<\n T extends string = string,\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n R extends Record<string, unknown> = {},\n> = AppErrorWithoutCauseType<T, R> | AppErrorWithCauseType<T, R>;\n\nexport class AppError<E extends AppErrorType> extends Error {\n declare cause: E extends { cause: infer C } ? C : unknown;\n type: E['type'];\n categories: NonNullable<E['categories']>;\n severity: NonNullable<E['severity']>;\n statusCode: E['statusCode'];\n suggestedAction: E['suggestedAction'];\n nonRetryable: E['nonRetryable'];\n details: Omit<\n E,\n | 'type'\n | 'message'\n | 'cause'\n | 'nonRetryable'\n | 'stack'\n | 'internalFrames'\n | 'categories'\n | 'severity'\n | 'statusCode'\n | 'code'\n | 'suggestedAction'\n >;\n\n constructor({\n type,\n categories,\n severity,\n statusCode,\n code,\n message,\n suggestedAction,\n cause,\n nonRetryable,\n stack,\n internalFrames,\n ...details\n }: E) {\n super(AppError.resolveMessage(message, cause, type), { cause });\n\n this.type = type;\n this.name = type;\n this.details = details;\n this.categories = categories ?? AppError.extractCategoriesFromCause(cause);\n this.severity = severity ?? AppError.extractSeverityFromCause(cause);\n this.statusCode =\n statusCode ?? code ?? AppError.extractStatusCodeFromCause(cause);\n this.suggestedAction =\n suggestedAction ?? AppError.extractSuggestedActionFromCause(cause);\n this.nonRetryable = nonRetryable ?? false;\n\n AppError.applyStack(this, stack, internalFrames);\n }\n\n private static resolveMessage(\n message: string | undefined,\n cause: unknown,\n type: string,\n ): string {\n if (message) {\n return message;\n }\n if (cause instanceof Error) {\n return cause.message;\n }\n return type;\n }\n\n private static getInheritedCauseField<T>(\n cause: unknown,\n extractor: (causeRecord: Record<string, unknown>) => T | undefined,\n seen: ReadonlySet<unknown> = new Set(),\n ): T | undefined {\n if (!cause || typeof cause !== 'object' || seen.has(cause)) {\n return undefined;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n const causeRecord = cause as Record<string, unknown>;\n const extractedValue = extractor(causeRecord);\n if (extractedValue !== undefined) {\n return extractedValue;\n }\n\n return AppError.getInheritedCauseField(\n causeRecord['cause'],\n extractor,\n new Set(seen).add(cause),\n );\n }\n\n private static extractCategoriesFromCause(\n cause: unknown,\n ): [AppErrorCategory, ...AppErrorCategory[]] {\n return (\n AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { categories } = causeRecord;\n if (isNonEmptyAppErrorCategoryArray(categories)) {\n return categories;\n }\n\n return undefined;\n }) ?? ['internal_platform']\n );\n }\n\n private static extractSeverityFromCause(cause: unknown): AppErrorSeverity {\n return (\n AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { severity } = causeRecord;\n return isAppErrorSeverity(severity) ? severity : undefined;\n }) ?? 'error'\n );\n }\n\n private static extractStatusCodeFromCause(\n cause: unknown,\n ): AppErrorCode | undefined {\n return AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { statusCode } = causeRecord;\n if (isAppErrorCode(statusCode)) {\n return statusCode;\n }\n\n const { code: legacyCode } = causeRecord;\n return isAppErrorCode(legacyCode) ? legacyCode : undefined;\n });\n }\n\n /** @deprecated Use statusCode instead. */\n get code(): E['statusCode'] {\n return this.statusCode;\n }\n\n private static extractSuggestedActionFromCause(\n cause: unknown,\n ): string | undefined {\n return AppError.getInheritedCauseField(cause, (causeRecord) => {\n const { suggestedAction } = causeRecord;\n if (typeof suggestedAction !== 'string') {\n return undefined;\n }\n\n const trimmedSuggestedAction = suggestedAction.trim();\n return trimmedSuggestedAction.length > 0\n ? trimmedSuggestedAction\n : undefined;\n });\n }\n\n private static applyStack(\n error: AppError<AppErrorType>,\n stack: string | undefined,\n internalFrames: string[] | undefined,\n ): void {\n if (stack) {\n error.stack = stack;\n }\n\n error.stack &&= stripInternalFrames(error.stack, [\n ...INTERNAL_STACK_PATHS,\n ...(internalFrames ?? []),\n ]).join('\\n');\n }\n\n toApiError({ correlationId }: { correlationId: string }): UserFacingApiError {\n return toUserFacingApiError({\n error: this,\n correlationId,\n statusCode: getStatusCodeForAppError(this),\n });\n }\n\n toGqlError({\n correlationId,\n }: {\n correlationId: string;\n }): UserFacingGraphQLError {\n return toUserFacingGraphQLError({\n error: this,\n correlationId,\n });\n }\n}\n\nfunction toAppError(\n error: AppErrorType | AppError<AppErrorType>,\n): AppError<AppErrorType> {\n return error instanceof AppError ? error : new AppError(error);\n}\n\nexport function getStatusCodeForAppError(\n error: AppErrorType | AppError<AppErrorType>,\n): UserFacingApiStatusCode {\n const appError = toAppError(error);\n return getStatusCodeForAppErrorFromAppError(appError);\n}\n\nexport function toUserFacingApiError({\n error,\n correlationId,\n statusCode,\n}: {\n error: AppErrorType | AppError<AppErrorType>;\n correlationId: string;\n statusCode?: UserFacingApiStatusCode | undefined;\n}): UserFacingApiError {\n const appError = toAppError(error);\n return toUserFacingApiErrorFromAppError({\n appError,\n correlationId,\n statusCode,\n });\n}\n\nexport function toUserFacingGraphQLError({\n error,\n correlationId,\n}: {\n error: AppErrorType | AppError<AppErrorType>;\n correlationId: string;\n}): UserFacingGraphQLError {\n const appError = toAppError(error);\n return toUserFacingGraphQLErrorFromAppError({\n appError,\n correlationId,\n });\n}\n\nexport {\n normalizeUserFacingErrorCode,\n renderUserFacingApiError,\n} from './error-user-facing';\nexport type {\n UserFacingApiError,\n UserFacingApiStatusCode,\n UserFacingGraphQLError,\n UserFacingGraphQLErrorCode,\n} from './error-user-facing';\n\nexport {\n addSpaceToEachLine,\n getErrorMessage,\n isErrorLike,\n jsonToError,\n} from './error-serialization';\n\nexport {\n isTemporalApplicationFailure,\n isTemporalActivityFailure,\n isTemporalChildWorkflowFailure,\n isTemporalFailure,\n} from './error-temporal';\n\nexport function errorToJSON(\n error: unknown,\n options?: { excludeCause?: boolean },\n): Record<string, unknown> {\n const { excludeCause = false } = options ?? {};\n\n if (!(error instanceof Error) && typeof error !== 'object') {\n return { errorValue: JSON.stringify(error) };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, no-restricted-syntax\n return JSON.parse(\n JSON.stringify(error, (key, value) =>\n replacerWithInherited(key, value, {\n excludeCause: excludeCause && key === '',\n }),\n ),\n );\n}\n\nfunction replacerWithInherited(\n key: unknown,\n value: unknown,\n options: { excludeCause?: boolean },\n): unknown {\n const { excludeCause = false } = options;\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Checked above\n let current = value as Record<string, unknown>;\n const allProps: Record<string, unknown> = {};\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Won't be true at some point\n while (current) {\n // Get all own property names (enumerable and non-enumerable)\n for (const propKey of Object.getOwnPropertyNames(current)) {\n // Only skip 'cause' property at the root level when excludeCause is true\n if (excludeCause && propKey === 'cause') {\n continue;\n }\n\n // Avoid overwriting if a property exists higher up the chain.\n if (propKey in allProps) {\n continue;\n }\n // eslint-disable-next-line no-restricted-syntax -- Don't need the result nor the overhead of a function call.\n try {\n allProps[propKey] = current[propKey];\n /* v8 ignore start */\n } catch {\n // Ignore errors e.g. from Zod when we access getter that need the correct `this` as we\n // walk the prototype chain.\n }\n /* v8 ignore stop */\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- No alternative\n current = Object.getPrototypeOf(current);\n }\n return allProps;\n }\n return value;\n}\n\nexport function getErrorDetails(error: unknown): Record<string, unknown> {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const details: Record<string, unknown> = Object.fromEntries(\n Object.entries(error).filter(\n ([key]) => !ERROR_FIELDS.has(key) && key !== 'details',\n ),\n );\n if ('details' in error && typeof error.details === 'object') {\n return { ...details, ...error.details };\n }\n\n return details;\n}\n\nexport function getRecursiveErrorDetails(\n error: unknown,\n): Record<string, unknown> {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const details = getErrorDetails(error);\n\n // Recursively process Error causes; preserve non-Error causes as-is; use {}\n // if no cause\n const cause = 'cause' in error ? error.cause : undefined;\n details['cause'] = isErrorLike(cause)\n ? getRecursiveErrorDetails(cause)\n : (cause ?? {});\n\n return details;\n}\n\nexport function getErrorTags(\n error: unknown,\n options?: { includeAllFields?: boolean },\n): JSONObject {\n if (!isErrorLike(error)) {\n return {};\n }\n\n const tags = {\n ...getErrorBasicTags(error),\n ...getErrorCategoryTags(error),\n };\n\n if (!options?.includeAllFields) {\n return tags;\n }\n\n return {\n ...tags,\n cause: getErrorTags(error.cause, { includeAllFields: true }),\n ...(error.stack ? { stack: error.stack } : {}),\n ...('details' in error && typeof error.details === 'object'\n ? // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n { details: error.details as JSONObject }\n : {}),\n };\n}\n\nfunction getErrorCategoryTags(error: Error): {\n categories?: AppErrorCategory[];\n category?: AppErrorCategory;\n} {\n if (\n !('categories' in error) ||\n !Array.isArray(error.categories) ||\n !error.categories.every(isAppErrorCategory)\n ) {\n return {};\n }\n\n const mainCategory = getMainAppErrorCategory(error.categories);\n return {\n categories: error.categories,\n ...(mainCategory ? { category: mainCategory } : {}),\n };\n}\n\nfunction getErrorBasicTags(error: Error): {\n message: string;\n name: string;\n type: string;\n nonRetryable: boolean;\n severity: AppErrorSeverity;\n handling?: 'handled';\n} {\n const severity =\n 'severity' in error && isAppErrorSeverity(error.severity)\n ? error.severity\n : 'error';\n return {\n message: error.message,\n name: error.name,\n type:\n 'type' in error && typeof error.type === 'string'\n ? error.type\n : error.constructor.name,\n nonRetryable:\n 'nonRetryable' in error && typeof error.nonRetryable === 'boolean'\n ? error.nonRetryable\n : false,\n severity,\n ...(severity === 'warn' ? { handling: 'handled' } : {}),\n };\n}\n\nexport function getErrorWithoutExtraFields(error: unknown): unknown {\n if (!isErrorLike(error)) {\n return error;\n }\n\n const newError = new Error(error.message, {\n cause: getErrorWithoutExtraFields(error.cause),\n });\n newError.name = error.name;\n Object.assign(newError, { stack: error.stack });\n\n return newError;\n}\n\nexport interface TrimErrorOptions {\n /** Maximum depth of nested causes to process (default: 10) */\n maxDepth?: number;\n /** Maximum overall size in bytes for the entire error chain (default: 30KB) */\n maxErrorSize?: number;\n}\n\n/**\n * Trims an error to prevent it from exceeding size limits when serialized.\n * This is particularly useful for Temporal workflows where large errors can cause failures.\n *\n * The function recursively processes error causes up to maxDepth levels:\n * - Tracks cumulative size across all error levels\n * - If adding an error level would exceed maxErrorSize, uses minimal fields for that level and all remaining levels\n * - Minimal fields include: name, message, type, and stack\n * - After maxDepth levels, causes are dropped\n *\n * @param error - The error to trim\n * @param options - Configuration options\n * @returns Trimmed error object safe for serialization\n */\nexport function trimError(\n error: unknown,\n options: TrimErrorOptions = {},\n): unknown {\n // Default 30KB overall\n const { maxDepth = 10, maxErrorSize = 30 * 1024 } = options;\n\n if (!isErrorLike(error)) {\n return error;\n }\n\n return trimErrorRecursive({\n error,\n currentDepth: 0,\n maxDepth,\n maxErrorSize,\n accumulatedSize: 0,\n });\n}\n\n/**\n * Serializes an error and checks if it exceeds the remaining size budget.\n * If too large or serialization fails, returns minimal error fields.\n * The cause field is removed before size checking as it's processed separately.\n */\nfunction serializeErrorWithSizeCheck({\n error,\n remainingSize,\n}: {\n error: Error;\n remainingSize: number;\n}): { serialized: Record<string, unknown>; size: number } {\n const result = fromThrowable(() => {\n // Serialize the full error first\n const serialized = errorToJSON(error, { excludeCause: true });\n\n // Remove cause from serialized version to check size of this error level only\n delete serialized['cause'];\n\n // Check if this error level (without cause) fits in remaining budget\n const size = JSON.stringify(serialized).length;\n if (size > remainingSize) {\n const minimal = getMinimalErrorFields(error);\n return { serialized: minimal, size: JSON.stringify(minimal).length };\n }\n\n return { serialized, size };\n }, 'unknown');\n\n if (isErr(result)) {\n const minimal = getMinimalErrorFields(error);\n return { serialized: minimal, size: JSON.stringify(minimal).length };\n }\n\n return result.value;\n}\n\n/**\n * Serializes a non-error cause value.\n * If the serialized value fits in the remaining size budget, returns it as-is.\n * Otherwise, truncates it to fit within the remaining size.\n */\nfunction serializeNonErrorCause({\n cause,\n remainingSize,\n}: {\n cause: unknown;\n remainingSize: number;\n}): { serialized: unknown; size: number } {\n const result = fromThrowable(() => {\n const causeStr = JSON.stringify(cause);\n // eslint-disable-next-line no-restricted-syntax\n const causeJson: unknown = JSON.parse(causeStr);\n if (causeStr.length <= remainingSize) {\n return { serialized: causeJson, size: causeStr.length };\n }\n\n // Truncate the JSON string itself, not String(cause) which becomes [object Object]\n const truncated = causeStr.slice(\n 0,\n Math.max(0, Math.min(remainingSize, 1000)),\n );\n return { serialized: truncated, size: truncated.length };\n }, 'unknown');\n\n if (isErr(result)) {\n const truncated = String(cause).slice(\n 0,\n Math.max(0, Math.min(remainingSize, 1000)),\n );\n return { serialized: truncated, size: truncated.length };\n }\n\n return result.value;\n}\n\nfunction trimErrorRecursive({\n error,\n currentDepth,\n maxDepth,\n maxErrorSize,\n accumulatedSize,\n}: {\n error: Error;\n currentDepth: number;\n maxDepth: number;\n maxErrorSize: number;\n accumulatedSize: number;\n}): Record<string, unknown> {\n // Check if we've reached max depth or exceeded size budget\n if (currentDepth >= maxDepth || accumulatedSize >= maxErrorSize) {\n return getMinimalErrorFields(error);\n }\n\n // Extract cause for separate processing\n const cause = 'cause' in error ? error.cause : undefined;\n\n const remainingSize = maxErrorSize - accumulatedSize;\n const { serialized, size } = serializeErrorWithSizeCheck({\n error,\n remainingSize,\n });\n\n const newAccumulatedSize = accumulatedSize + size;\n\n // Process the cause recursively\n if (cause !== undefined) {\n if (isErrorLike(cause)) {\n serialized['cause'] = trimErrorRecursive({\n error: cause,\n currentDepth: currentDepth + 1,\n maxDepth,\n maxErrorSize,\n accumulatedSize: newAccumulatedSize,\n });\n } else {\n // Non-error causes are serialized with size checking\n const { serialized: causeSerialized } = serializeNonErrorCause({\n cause,\n remainingSize: maxErrorSize - newAccumulatedSize,\n });\n serialized['cause'] = causeSerialized;\n }\n }\n\n return serialized;\n}\n\nfunction getMinimalErrorFields(error: Error): Record<string, unknown> {\n const minimal: Record<string, unknown> = {\n name: error.name,\n message: error.message,\n };\n\n if (error.stack) {\n minimal['stack'] = error.stack;\n }\n\n // Preserve 'type' if it exists (for ApplicationFailures and AppErrors)\n if ('type' in error && typeof error.type === 'string') {\n minimal['type'] = error.type;\n }\n\n if ('categories' in error && Array.isArray(error.categories)) {\n minimal['categories'] = error.categories;\n }\n\n if ('severity' in error && isAppErrorSeverity(error.severity)) {\n minimal['severity'] = error.severity;\n }\n\n if ('statusCode' in error && isAppErrorCode(error.statusCode)) {\n minimal['statusCode'] = error.statusCode;\n } else if ('code' in error && isAppErrorCode(error.code)) {\n minimal['statusCode'] = error.code;\n }\n\n return minimal;\n}\n","import {\n formatAuthLoginPrompt,\n formatAuthLoginSuccess,\n formatBrowserOpenFallback,\n} from './cli-formatting';\nimport {\n DEFAULT_STAGING_WORKOS_CLIENT_ID,\n requireWorkosClientId,\n} from './config';\nimport type { CliDependencies } from './program';\nimport {\n createEmptyCliSettings,\n shouldUseStagingWorkosClientId,\n} from './settings';\nimport type { CliState } from './state';\n\nexport type AuthLoginCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\nfunction writeJsonOutput(io: CliDependencies['io'], value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nexport async function handleAuthLogin(\n dependencies: CliDependencies,\n options: AuthLoginCommandOptions,\n): Promise<void> {\n const settings =\n (await dependencies.settingsStore?.load()) ?? createEmptyCliSettings();\n const clientId = shouldUseStagingWorkosClientId(settings)\n ? DEFAULT_STAGING_WORKOS_CLIENT_ID\n : requireWorkosClientId(dependencies.runtimeConfig);\n const deviceAuthorization =\n await dependencies.authClient.startDeviceAuthorization({ clientId });\n const verificationUrl =\n deviceAuthorization.verification_uri_complete ??\n deviceAuthorization.verification_uri;\n const promptWriter = options.json\n ? dependencies.io.error\n : dependencies.io.info;\n\n promptWriter(\n formatAuthLoginPrompt({\n userCode: deviceAuthorization.user_code,\n verificationUrl,\n }),\n );\n\n await dependencies.openExternalUrl(verificationUrl).catch(() => {\n promptWriter(formatBrowserOpenFallback());\n });\n\n const tokenResponse = await dependencies.authClient.pollForDeviceTokens({\n clientId,\n deviceCode: deviceAuthorization.device_code,\n ...(deviceAuthorization.expires_in\n ? { expiresInSeconds: deviceAuthorization.expires_in }\n : {}),\n ...(deviceAuthorization.interval\n ? { intervalSeconds: deviceAuthorization.interval }\n : {}),\n });\n const accessTokenClaims = dependencies.authClient.decodeAccessTokenClaims(\n tokenResponse.access_token,\n );\n const [user, organizations] = await Promise.all([\n dependencies.apiClient.fetchUser({\n accessToken: tokenResponse.access_token,\n userId: accessTokenClaims.sub,\n }),\n dependencies.apiClient.fetchOrganizations({\n accessToken: tokenResponse.access_token,\n }),\n ]);\n\n const defaultOrgId = accessTokenClaims.org_id ?? organizations[0]?.id ?? null;\n const nextState: CliState = {\n account: {\n clientId,\n email: user.email,\n userId: user.id,\n },\n defaultOrgId,\n lastUsedOrgId: defaultOrgId,\n organizations,\n };\n\n await Promise.all([\n dependencies.refreshTokenStore.save(\n nextState.account,\n tokenResponse.refresh_token,\n ),\n dependencies.stateStore.save(nextState),\n ]);\n\n const defaultOrganization =\n organizations.find((organization) => organization.id === defaultOrgId) ??\n null;\n\n if (options.json) {\n writeJsonOutput(dependencies.io, nextState);\n return;\n }\n\n dependencies.io.info(\n formatAuthLoginSuccess({\n account: nextState.account,\n defaultOrganization,\n organizationCount: organizations.length,\n }),\n );\n}\n","import type { OperationSpec } from '@magical/mcp-registry';\nimport type { Command } from 'commander';\nimport { MagicalHelp } from './cli-formatting';\n\nexport const rootOperationalGroupDescriptions = new Map<string, string>([\n ['agents', 'Query agents.'],\n ['agent-runs', 'Query agent runs.'],\n ['automations', 'Manage automations.'],\n ['automation-runs', 'Inspect and control automation runs.'],\n ['catalog', 'Inspect available commands, models, and tools.'],\n ['graphql', 'Inspect GraphQL metadata.'],\n]);\n\nexport function configureCommandPresentation(command: Command): Command {\n const originalCreateCommand = command.createCommand.bind(command);\n command.createCommand = (name: string) =>\n configureCommandPresentation(originalCreateCommand(name));\n command.createHelp = () => new MagicalHelp();\n\n return command;\n}\n\nexport function createOperationHelpExamples(\n operationSpec: OperationSpec,\n): string[] {\n const baseCommand = `mgcl ${operationSpec.cli.path.join(' ')}`;\n const requiredOptions = operationSpec.cli.options\n .filter((optionSpec) => optionSpec.required)\n .map((optionSpec) => {\n if (optionSpec.valueType === 'boolean') {\n return `--${optionSpec.flagName}`;\n }\n\n if (optionSpec.valueType === 'number') {\n return `--${optionSpec.flagName} 10`;\n }\n\n if (optionSpec.valueType === 'json') {\n return `--${optionSpec.flagName} '{...}'`;\n }\n\n if (optionSpec.valueType === 'string-array') {\n return `--${optionSpec.flagName} value-a,value-b`;\n }\n\n return `--${optionSpec.flagName} <${optionSpec.flagName}>`;\n });\n const baseInvocation = [baseCommand, ...requiredOptions].join(' ');\n\n return [\n baseInvocation,\n `${baseInvocation} --org <org>`,\n `${baseInvocation} --json`,\n ];\n}\n","import keytar from 'keytar';\nimport type { CliAccount, RefreshTokenStore } from './state';\n\nfunction buildKeychainAccountName(account: CliAccount): string {\n return `${account.clientId}:${account.userId}`;\n}\n\nexport function createKeytarRefreshTokenStore(\n serviceName: string,\n): RefreshTokenStore {\n return {\n async clear(account) {\n await keytar.deletePassword(\n serviceName,\n buildKeychainAccountName(account),\n );\n },\n async load(account) {\n return keytar.getPassword(serviceName, buildKeychainAccountName(account));\n },\n async save(account, refreshToken) {\n await keytar.setPassword(\n serviceName,\n buildKeychainAccountName(account),\n refreshToken,\n );\n },\n };\n}\n","import { spawn } from 'node:child_process';\n\nexport async function openExternalUrl(url: string): Promise<void> {\n const command = resolveOpenCommand(url);\n\n const childProcess = spawn(command.executable, command.args, {\n detached: true,\n stdio: 'ignore',\n });\n\n await new Promise<void>((resolve, reject) => {\n childProcess.on('error', reject);\n childProcess.on('spawn', () => {\n childProcess.unref();\n resolve();\n });\n });\n}\n\nfunction resolveOpenCommand(url: string): {\n args: string[];\n executable: string;\n} {\n if (process.platform === 'darwin') {\n return { executable: 'open', args: [url] };\n }\n\n if (process.platform === 'win32') {\n return { executable: 'cmd', args: ['/c', 'start', '', url] };\n }\n\n return { executable: 'xdg-open', args: [url] };\n}\n","import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { safeJsonParse } from '@magical/common/stdlib/json.util';\nimport { fromThrowable, isErr } from '@magical/common/stdlib/result.util';\nimport { safeUrlConstructor } from '@magical/common/stdlib/url.utils';\nimport { CliError } from './errors';\n\nexport const CLI_PACKAGE_NAME = '@getmagical/cli';\nexport const DEFAULT_CLI_DIST_TAG = 'latest';\nexport const DEFAULT_NPM_REGISTRY_URL = 'https://registry.npmjs.org/';\nexport const MANAGED_NODE_SUBPATH = 'runtime/node';\n\nexport interface SelfUpdateResult {\n installPrefix: string;\n packageSpecifier: string;\n registryUrl: string;\n}\n\nexport interface CliUpdateRequirement {\n installedVersion: string;\n latestVersion: string;\n}\n\ninterface NpmCommand {\n argsPrefix: string[];\n executable: string;\n}\n\ninterface PackageManifestLike {\n name?: unknown;\n version?: unknown;\n}\n\ntype FetchLike = typeof fetch;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nexport function resolveInstalledPackageRoot({\n entryFilePath,\n packageName,\n}: {\n entryFilePath: string;\n packageName: string;\n}): string | null {\n const packagePathSegments = packageName.split('/');\n let currentPath = path.dirname(entryFilePath);\n\n for (;;) {\n const currentPathSegments = currentPath.split(path.sep).filter(Boolean);\n const currentPackageSegments = currentPathSegments.slice(\n -packagePathSegments.length,\n );\n\n if (\n currentPackageSegments.length === packagePathSegments.length &&\n currentPackageSegments.every(\n (segment, index) => segment === packagePathSegments[index],\n )\n ) {\n return currentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n}\n\nexport function resolveInstallPrefixFromPackageRoot(\n packageRootPath: string,\n): string | null {\n let currentPath = packageRootPath;\n\n for (;;) {\n if (path.basename(currentPath) === 'node_modules') {\n const nodeModulesParentPath = path.dirname(currentPath);\n if (path.basename(nodeModulesParentPath) === 'lib') {\n return path.dirname(nodeModulesParentPath);\n }\n\n return nodeModulesParentPath;\n }\n\n const parentPath = path.dirname(currentPath);\n if (parentPath === currentPath) {\n return null;\n }\n\n currentPath = parentPath;\n }\n}\n\nexport function readInstalledPackageVersion({\n packageName,\n packageRootPath,\n}: {\n packageName: string;\n packageRootPath: string;\n}): string {\n const packageManifestPath = path.join(packageRootPath, 'package.json');\n if (!fs.existsSync(packageManifestPath)) {\n throw new CliError(\n `Installed package metadata was not found at ${packageManifestPath}. Reinstall mgcl and try again.`,\n );\n }\n\n const packageManifestResult = safeJsonParse<PackageManifestLike>(\n fs.readFileSync(packageManifestPath, 'utf8'),\n );\n if (isErr(packageManifestResult)) {\n throw new CliError(`Failed to parse ${packageManifestPath}.`, {\n cause: packageManifestResult.error.cause,\n });\n }\n\n const packageManifest = packageManifestResult.value;\n\n if (packageManifest.name !== packageName) {\n throw new CliError(\n `Expected installed package ${packageName} at ${packageManifestPath}. Reinstall mgcl and try again.`,\n );\n }\n\n if (typeof packageManifest.version !== 'string' || !packageManifest.version) {\n throw new CliError(\n `Installed package version is missing from ${packageManifestPath}. Reinstall mgcl and try again.`,\n );\n }\n\n return packageManifest.version;\n}\n\ninterface ParsedVersion {\n prerelease: string[] | null;\n release: number[];\n}\n\nfunction parseVersionSegment(segment: string, version: string): number {\n if (!/^\\d+$/u.test(segment)) {\n throw new CliError(`Invalid CLI version \"${version}\".`);\n }\n\n return Number(segment);\n}\n\nfunction parseSemanticVersion(version: string): ParsedVersion {\n const normalizedVersion = version.trim().replace(/^v/u, '');\n const [versionWithoutBuildMetadata = ''] = normalizedVersion.split('+');\n if (!versionWithoutBuildMetadata) {\n throw new CliError(`Invalid CLI version \"${version}\".`);\n }\n\n const [releasePart, prereleasePart] = versionWithoutBuildMetadata.split('-');\n if (!releasePart) {\n throw new CliError(`Invalid CLI version \"${version}\".`);\n }\n\n return {\n prerelease: prereleasePart ? prereleasePart.split('.') : null,\n release: releasePart\n .split('.')\n .map((segment) => parseVersionSegment(segment, version)),\n };\n}\n\nfunction comparePrereleaseIdentifiers(left: string, right: string): number {\n const leftIsNumeric = /^\\d+$/u.test(left);\n const rightIsNumeric = /^\\d+$/u.test(right);\n\n if (leftIsNumeric && rightIsNumeric) {\n return Number(left) - Number(right);\n }\n\n if (leftIsNumeric) {\n return -1;\n }\n\n if (rightIsNumeric) {\n return 1;\n }\n\n return left.localeCompare(right);\n}\n\nexport function compareSemanticVersions(\n leftVersion: string,\n rightVersion: string,\n): number {\n const left = parseSemanticVersion(leftVersion);\n const right = parseSemanticVersion(rightVersion);\n const releaseLength = Math.max(left.release.length, right.release.length);\n\n for (let index = 0; index < releaseLength; index += 1) {\n const difference = (left.release[index] ?? 0) - (right.release[index] ?? 0);\n if (difference !== 0) {\n return difference;\n }\n }\n\n if (!left.prerelease && !right.prerelease) {\n return 0;\n }\n\n if (!left.prerelease) {\n return 1;\n }\n\n if (!right.prerelease) {\n return -1;\n }\n\n const prereleaseLength = Math.max(\n left.prerelease.length,\n right.prerelease.length,\n );\n for (let index = 0; index < prereleaseLength; index += 1) {\n const leftIdentifier = left.prerelease[index];\n const rightIdentifier = right.prerelease[index];\n\n if (leftIdentifier === undefined) {\n return -1;\n }\n\n if (rightIdentifier === undefined) {\n return 1;\n }\n\n const difference = comparePrereleaseIdentifiers(\n leftIdentifier,\n rightIdentifier,\n );\n if (difference !== 0) {\n return difference;\n }\n }\n\n return 0;\n}\n\nexport async function fetchPublishedPackageVersion({\n distTag,\n fetchFn = fetch,\n packageName,\n registryUrl,\n}: {\n distTag: string;\n fetchFn?: FetchLike;\n packageName: string;\n registryUrl: string;\n}): Promise<string> {\n const distTagUrlResult = safeUrlConstructor(\n `${registryUrl.replace(/\\/?$/u, '/')}-/package/${encodeURIComponent(packageName)}/dist-tags`,\n );\n if (isErr(distTagUrlResult)) {\n throw new CliError(`Invalid npm registry URL \"${registryUrl}\".`);\n }\n\n const response = await fetchFn(distTagUrlResult.value, {\n headers: {\n accept: 'application/json',\n },\n });\n\n if (!response.ok) {\n throw new CliError(\n `Could not check the latest published mgcl version (status ${response.status}).`,\n );\n }\n\n const distTagsResult = safeJsonParse<unknown>(await response.text());\n if (isErr(distTagsResult)) {\n throw new CliError('Could not parse the npm dist-tags response for mgcl.', {\n cause: distTagsResult.error.cause,\n });\n }\n\n if (!isRecord(distTagsResult.value)) {\n throw new CliError('Could not parse the npm dist-tags response for mgcl.');\n }\n\n const distTags = distTagsResult.value;\n const publishedVersion = distTags[distTag];\n if (typeof publishedVersion !== 'string' || publishedVersion.length === 0) {\n throw new CliError(\n `Could not find npm dist-tag \"${distTag}\" for ${packageName}.`,\n );\n }\n\n return publishedVersion;\n}\n\nfunction resolveNpmCommandFromPath(): NpmCommand {\n return {\n argsPrefix: [],\n executable: process.platform === 'win32' ? 'npm.cmd' : 'npm',\n };\n}\n\nfunction resolveManagedNpmCommand(installPrefix: string): NpmCommand | null {\n if (process.platform === 'win32') {\n return null;\n }\n\n const managedNodeExecutable = path.join(\n installPrefix,\n MANAGED_NODE_SUBPATH,\n 'bin',\n 'node',\n );\n const managedNpmCli = path.join(\n installPrefix,\n MANAGED_NODE_SUBPATH,\n 'lib',\n 'node_modules',\n 'npm',\n 'bin',\n 'npm-cli.js',\n );\n\n if (!fs.existsSync(managedNodeExecutable) || !fs.existsSync(managedNpmCli)) {\n return null;\n }\n\n return {\n argsPrefix: [managedNpmCli],\n executable: managedNodeExecutable,\n };\n}\n\nexport async function installPublishedCli({\n distTag,\n installPrefix,\n packageName,\n registryUrl,\n}: {\n distTag: string;\n installPrefix: string;\n packageName: string;\n registryUrl: string;\n}): Promise<SelfUpdateResult> {\n const npmCommand =\n resolveManagedNpmCommand(installPrefix) ?? resolveNpmCommandFromPath();\n const packageSpecifier = `${packageName}@${distTag}`;\n const npmArguments = [\n ...npmCommand.argsPrefix,\n 'install',\n '--global',\n packageSpecifier,\n '--prefix',\n installPrefix,\n '--registry',\n registryUrl,\n ];\n\n await new Promise<void>((resolve, reject) => {\n const childProcess = spawn(npmCommand.executable, npmArguments, {\n stdio: 'inherit',\n });\n\n childProcess.on('error', (error: Error & { code?: string }) => {\n if (error.code === 'ENOENT') {\n reject(\n new CliError(\n 'npm is required to update mgcl. Install npm and rerun the command.',\n { cause: error },\n ),\n );\n return;\n }\n\n reject(error);\n });\n\n childProcess.on('exit', (exitCode) => {\n if (exitCode === 0) {\n resolve();\n return;\n }\n\n reject(\n new CliError(\n `npm install exited with status ${String(exitCode ?? 'unknown')}.`,\n ),\n );\n });\n });\n\n return {\n installPrefix,\n packageSpecifier,\n registryUrl,\n };\n}\n\nexport async function selfUpdateInstalledCli({\n distTag = DEFAULT_CLI_DIST_TAG,\n entryFilePath = fileURLToPath(import.meta.url),\n packageName = CLI_PACKAGE_NAME,\n registryUrl = DEFAULT_NPM_REGISTRY_URL,\n}: {\n distTag?: string;\n entryFilePath?: string;\n packageName?: string;\n registryUrl?: string;\n} = {}): Promise<SelfUpdateResult> {\n const packageRootPath = resolveInstalledPackageRoot({\n entryFilePath,\n packageName,\n });\n if (!packageRootPath) {\n throw new CliError(\n 'Self-update is only available for installed CLIs. Use the install script or \"npm install -g @getmagical/cli\".',\n );\n }\n\n const installPrefix = resolveInstallPrefixFromPackageRoot(packageRootPath);\n if (!installPrefix) {\n throw new CliError(\n 'Could not determine the installed npm prefix for this CLI. Reinstall with the install script and try again.',\n );\n }\n\n return installPublishedCli({\n distTag,\n installPrefix,\n packageName,\n registryUrl,\n });\n}\n\nexport async function getInstalledCliUpdateRequirement({\n distTag = DEFAULT_CLI_DIST_TAG,\n entryFilePath = fileURLToPath(import.meta.url),\n fetchFn = fetch,\n packageName = CLI_PACKAGE_NAME,\n registryUrl = DEFAULT_NPM_REGISTRY_URL,\n}: {\n distTag?: string;\n entryFilePath?: string;\n fetchFn?: FetchLike;\n packageName?: string;\n registryUrl?: string;\n} = {}): Promise<CliUpdateRequirement | null> {\n const packageRootPath = resolveInstalledPackageRoot({\n entryFilePath,\n packageName,\n });\n if (!packageRootPath) {\n return null;\n }\n\n const installedVersion = readInstalledPackageVersion({\n packageName,\n packageRootPath,\n });\n\n const publishedVersionResult = await fromThrowable(\n async () =>\n fetchPublishedPackageVersion({\n distTag,\n fetchFn,\n packageName,\n registryUrl,\n }),\n 'cli-update-check-failed',\n );\n if (isErr(publishedVersionResult)) {\n return null;\n }\n\n const publishedVersion = publishedVersionResult.value;\n\n if (compareSemanticVersions(installedVersion, publishedVersion) >= 0) {\n return null;\n }\n\n return {\n installedVersion,\n latestVersion: publishedVersion,\n };\n}\n","/* eslint-disable no-restricted-syntax */\nimport { Err, Ok, isErr } from './result.util';\nimport type { Result } from './result.util';\n\nexport interface InvalidUrlError {\n type: 'invalid-url';\n message: string;\n url: string;\n}\n\nexport function safeUrlConstructor(url: string): Result<URL, InvalidUrlError> {\n try {\n return Ok(new URL(url));\n } catch {\n return Err({\n type: 'invalid-url',\n message: `Invalid URL`,\n url,\n });\n }\n}\n\nexport function isValidUrl(url: string): boolean {\n try {\n // eslint-disable-next-line no-new -- This is the best way to test for valid URLs\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\n// Adds query parameters to the provided URL and returns the updated URL as a string\nexport function addQueryParamsToUrl(args: {\n url: string;\n params: Record<string, string | number | boolean>;\n}): Result<string, InvalidUrlError> {\n const { url } = args;\n const parsed = safeUrlConstructor(url);\n if (isErr(parsed)) {\n return parsed;\n }\n\n const updatedUrl = parsed.value;\n\n for (const [key, val] of Object.entries(args.params)) {\n updatedUrl.searchParams.set(key, String(val));\n }\n\n return Ok(updatedUrl.toString());\n}\n","import { isErr } from '@magical/common/stdlib/result.util';\nimport { safeUrlConstructor } from '@magical/common/stdlib/url.utils';\nimport { Command, InvalidArgumentError, Option } from 'commander';\nimport { formatExamples } from './cli-formatting';\nimport { configureCommandPresentation } from './command-presentation';\nimport { CliError } from './errors';\nimport type { CliDependencies, CliIo } from './program';\nimport type { CliSettings, SettingsStore } from './settings';\n\ntype JsonCommandOptions = Record<string, unknown> & {\n json?: boolean;\n};\n\ntype SettingsBaseUrlCommandOptions = JsonCommandOptions & {\n reset?: boolean;\n};\n\nfunction writeJsonOutput(io: CliIo, value: unknown): void {\n io.info(JSON.stringify(value, null, 2));\n}\n\nfunction requireSettingsStore(\n settingsStore: SettingsStore | undefined,\n): SettingsStore {\n if (!settingsStore) {\n throw new CliError('CLI settings are not configured for this instance.');\n }\n\n return settingsStore;\n}\n\nfunction parseBaseUrl(value: string): string {\n const parsedUrl = safeUrlConstructor(value);\n if (isErr(parsedUrl)) {\n throw new InvalidArgumentError('Expected a valid URL for base-url.');\n }\n\n return parsedUrl.value.toString().replace(/\\/$/u, '');\n}\n\nasync function clearSavedAuth(dependencies: CliDependencies): Promise<boolean> {\n const state = await dependencies.stateStore.load();\n if (!state) {\n return false;\n }\n\n await dependencies.refreshTokenStore.clear(state.account);\n await dependencies.stateStore.clear();\n\n return true;\n}\n\nasync function handleSettingsEnvBaseUrl(\n dependencies: CliDependencies,\n rawBaseUrl: string | undefined,\n options: SettingsBaseUrlCommandOptions,\n): Promise<void> {\n if (options.reset && rawBaseUrl) {\n throw new CliError('Pass either a base URL or --reset, not both.');\n }\n\n if (!options.reset && !rawBaseUrl) {\n throw new CliError('Provide a base URL or pass --reset.');\n }\n\n const settingsStore = requireSettingsStore(dependencies.settingsStore);\n const currentSettings = await settingsStore.load();\n const { baseUrl: _baseUrl, ...remainingEnvSettings } = currentSettings.env;\n if (options.reset) {\n const nextSettings: CliSettings = {\n ...currentSettings,\n env: remainingEnvSettings,\n };\n await settingsStore.save(nextSettings);\n const authCleared = await clearSavedAuth(dependencies);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n authCleared,\n settings: nextSettings,\n });\n return;\n }\n\n dependencies.io.info(\n authCleared\n ? 'Cleared the persisted base-url override and removed saved auth. Run \"mgcl auth login\" again.'\n : 'Cleared the persisted base-url override.',\n );\n return;\n }\n\n const nextBaseUrl = parseBaseUrl(rawBaseUrl ?? '');\n const nextSettings: CliSettings = {\n ...currentSettings,\n env: {\n ...currentSettings.env,\n baseUrl: nextBaseUrl,\n },\n };\n await settingsStore.save(nextSettings);\n const authCleared = await clearSavedAuth(dependencies);\n\n if (options.json) {\n writeJsonOutput(dependencies.io, {\n authCleared,\n settings: nextSettings,\n });\n return;\n }\n\n dependencies.io.info(\n authCleared\n ? `Saved base-url override ${nextBaseUrl} and removed saved auth. Run \"mgcl auth login\" again.`\n : `Saved base-url override ${nextBaseUrl}.`,\n );\n}\n\nexport function createSettingsCommand(dependencies: CliDependencies): Command {\n const settingsCommand = configureCommandPresentation(\n new Command('settings').description('Manage persisted CLI settings.'),\n )\n .helpGroup('Workspace:')\n .addHelpText(\n 'after',\n `\\n${formatExamples('Examples', [\n 'mgcl settings env base-url http://main.localhost:1355',\n 'mgcl settings env base-url --reset',\n ])}`,\n );\n const settingsEnvCommand = settingsCommand\n .command('env')\n .description('Manage persisted environment overrides.');\n settingsEnvCommand\n .command('base-url [url]')\n .description('Set or clear the persisted Magical API base URL override.')\n .addOption(new Option('--reset', 'Clear the persisted base URL override.'))\n .action(async function (this: Command, baseUrl: string | undefined) {\n await handleSettingsEnvBaseUrl(\n dependencies,\n baseUrl,\n this.optsWithGlobals(),\n );\n });\n\n return settingsCommand;\n}\n","import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport { z } from 'zod';\nimport { CliError } from './errors';\n\nexport const cliAccountSchema = z.object({\n clientId: z.string().min(1),\n email: z.string().nullable(),\n userId: z.string().min(1),\n});\n\nexport const cliOrganizationSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1),\n primaryDomain: z.string().nullable().default(null),\n});\n\nexport const cliStateSchema = z.object({\n account: cliAccountSchema,\n defaultOrgId: z.string().nullable(),\n lastUsedOrgId: z.string().nullable(),\n organizations: z.array(cliOrganizationSchema),\n});\n\nexport type CliAccount = z.infer<typeof cliAccountSchema>;\nexport type CliOrganization = z.infer<typeof cliOrganizationSchema>;\nexport type CliState = z.infer<typeof cliStateSchema>;\n\nexport interface StateStore {\n clear: () => Promise<void>;\n load: () => Promise<CliState | null>;\n save: (state: CliState) => Promise<void>;\n}\n\nexport interface RefreshTokenStore {\n clear: (account: CliAccount) => Promise<void>;\n load: (account: CliAccount) => Promise<string | null>;\n save: (account: CliAccount, refreshToken: string) => Promise<void>;\n}\n\nexport function createFileStateStore(stateFilePath: string): StateStore {\n return {\n async clear() {\n await rm(stateFilePath, { force: true });\n },\n async load() {\n try {\n const fileContents = await readFile(stateFilePath, 'utf8');\n const parsed = cliStateSchema.safeParse(JSON.parse(fileContents));\n if (!parsed.success) {\n throw new CliError('Stored CLI state is invalid.');\n }\n\n return parsed.data;\n } catch (error: unknown) {\n if (\n error instanceof Error &&\n 'code' in error &&\n error.code === 'ENOENT'\n ) {\n return null;\n }\n\n if (error instanceof CliError) {\n throw error;\n }\n\n throw new CliError('Failed to load CLI state.', { cause: error });\n }\n },\n async save(state) {\n await mkdir(path.dirname(stateFilePath), { recursive: true });\n await writeFile(stateFilePath, `${JSON.stringify(state, null, 2)}\\n`);\n },\n };\n}\n\nexport function createMemoryRefreshTokenStore(): RefreshTokenStore {\n const values = new Map<string, string>();\n\n return {\n async clear(account) {\n values.delete(buildRefreshTokenKey(account));\n },\n async load(account) {\n return values.get(buildRefreshTokenKey(account)) ?? null;\n },\n async save(account, refreshToken) {\n values.set(buildRefreshTokenKey(account), refreshToken);\n },\n };\n}\n\nfunction buildRefreshTokenKey(account: CliAccount): string {\n return `${account.clientId}:${account.userId}`;\n}\n","import { z } from 'zod';\nimport { CliError } from './errors';\n\nconst DEFAULT_DEVICE_POLL_INTERVAL_SECONDS = 5;\n\nfunction buildFormHeaders(): Headers {\n const headers = new Headers();\n headers.set('content-type', 'application/x-www-form-urlencoded');\n return headers;\n}\n\nconst deviceAuthorizationSchema = z.object({\n device_code: z.string().min(1),\n expires_in: z.number().int().positive().optional(),\n interval: z.number().int().positive().optional(),\n user_code: z.string().min(1),\n verification_uri: z.url(),\n verification_uri_complete: z.url().optional(),\n});\n\nconst tokenResponseSchema = z.object({\n access_token: z.string().min(1),\n expires_in: z.number().int().positive().optional(),\n refresh_token: z.string().min(1),\n token_type: z.string().optional(),\n});\n\nconst tokenErrorSchema = z.object({\n error: z.string().min(1),\n error_description: z.string().optional(),\n});\n\nconst accessTokenClaimsSchema = z.object({\n org_id: z.string().min(1).optional(),\n sid: z.string().min(1).optional(),\n sub: z.string().min(1),\n});\n\nexport type DeviceAuthorization = z.infer<typeof deviceAuthorizationSchema>;\nexport type TokenResponse = z.infer<typeof tokenResponseSchema>;\nexport type AccessTokenClaims = z.infer<typeof accessTokenClaimsSchema>;\n\nexport interface AuthClient {\n decodeAccessTokenClaims: (accessToken: string) => AccessTokenClaims;\n pollForDeviceTokens: (input: {\n clientId: string;\n deviceCode: string;\n expiresInSeconds?: number;\n intervalSeconds?: number;\n }) => Promise<TokenResponse>;\n refreshTokens: (input: {\n clientId: string;\n organizationId?: string;\n refreshToken: string;\n }) => Promise<TokenResponse>;\n startDeviceAuthorization: (input: {\n clientId: string;\n }) => Promise<DeviceAuthorization>;\n}\n\nexport function createWorkosAuthClient({\n fetchFn = fetch,\n sleep = async (milliseconds): Promise<void> => {\n await new Promise((resolve) => {\n setTimeout(resolve, milliseconds);\n });\n },\n workosApiUrl,\n}: {\n fetchFn?: typeof fetch;\n sleep?: (milliseconds: number) => Promise<void>;\n workosApiUrl: string;\n}): AuthClient {\n async function postForm<TSchema extends z.ZodTypeAny>({\n endpointPath,\n formData,\n responseSchema,\n }: {\n endpointPath: string;\n formData: URLSearchParams;\n responseSchema: TSchema;\n }): Promise<z.infer<TSchema>> {\n const response = await fetchFn(`${workosApiUrl}${endpointPath}`, {\n method: 'POST',\n headers: buildFormHeaders(),\n body: formData,\n });\n\n const responseBody = await response.json();\n if (!response.ok) {\n const parsedError = tokenErrorSchema.safeParse(responseBody);\n if (parsedError.success) {\n throw new CliError(\n parsedError.data.error_description ?? parsedError.data.error,\n );\n }\n\n throw new CliError(\n `WorkOS request failed with status ${response.status}.`,\n );\n }\n\n const parsedResponse = responseSchema.safeParse(responseBody);\n if (!parsedResponse.success) {\n throw new CliError('WorkOS returned an unexpected response payload.');\n }\n\n return parsedResponse.data;\n }\n\n return {\n decodeAccessTokenClaims(accessToken) {\n const [, payloadSegment] = accessToken.split('.');\n if (!payloadSegment) {\n throw new CliError('WorkOS access token is malformed.');\n }\n\n const payload: unknown = JSON.parse(\n Buffer.from(payloadSegment, 'base64url').toString('utf8'),\n );\n const parsedClaims = accessTokenClaimsSchema.safeParse(payload);\n if (!parsedClaims.success) {\n throw new CliError('WorkOS access token is missing required claims.');\n }\n\n return parsedClaims.data;\n },\n\n async pollForDeviceTokens({\n clientId,\n deviceCode,\n expiresInSeconds,\n intervalSeconds,\n }): Promise<TokenResponse> {\n const timeoutAt = Date.now() + (expiresInSeconds ?? 15 * 60) * 1000;\n const initialIntervalMilliseconds =\n (intervalSeconds ?? DEFAULT_DEVICE_POLL_INTERVAL_SECONDS) * 1000;\n\n async function poll(\n nextIntervalMilliseconds: number,\n ): Promise<TokenResponse> {\n if (Date.now() >= timeoutAt) {\n throw new CliError(\n 'WorkOS device authorization expired before completion.',\n );\n }\n\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n formData.set('device_code', deviceCode);\n formData.set(\n 'grant_type',\n 'urn:ietf:params:oauth:grant-type:device_code',\n );\n\n const response = await fetchFn(\n `${workosApiUrl}/user_management/authenticate`,\n {\n method: 'POST',\n headers: buildFormHeaders(),\n body: formData,\n },\n );\n\n const responseBody = await response.json();\n if (response.ok) {\n const parsedTokens = tokenResponseSchema.safeParse(responseBody);\n if (!parsedTokens.success) {\n throw new CliError('WorkOS returned an unexpected token response.');\n }\n\n return parsedTokens.data;\n }\n\n const parsedError = tokenErrorSchema.safeParse(responseBody);\n if (!parsedError.success) {\n throw new CliError(\n `WorkOS device authorization failed with status ${response.status}.`,\n );\n }\n\n if (parsedError.data.error === 'authorization_pending') {\n await sleep(nextIntervalMilliseconds);\n return poll(nextIntervalMilliseconds);\n }\n\n if (parsedError.data.error === 'slow_down') {\n const slowedIntervalMilliseconds = nextIntervalMilliseconds + 5000;\n await sleep(slowedIntervalMilliseconds);\n return poll(slowedIntervalMilliseconds);\n }\n\n throw new CliError(\n parsedError.data.error_description ?? parsedError.data.error,\n );\n }\n\n return poll(initialIntervalMilliseconds);\n },\n\n async refreshTokens({\n clientId,\n organizationId,\n refreshToken,\n }): Promise<TokenResponse> {\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n formData.set('grant_type', 'refresh_token');\n formData.set('refresh_token', refreshToken);\n\n if (organizationId) {\n formData.set('organization_id', organizationId);\n }\n\n return postForm({\n endpointPath: '/user_management/authenticate',\n formData,\n responseSchema: tokenResponseSchema,\n });\n },\n\n async startDeviceAuthorization({ clientId }): Promise<DeviceAuthorization> {\n const formData = new URLSearchParams();\n formData.set('client_id', clientId);\n\n return postForm({\n endpointPath: '/user_management/authorize/device',\n formData,\n responseSchema: deviceAuthorizationSchema,\n });\n },\n };\n}\n","#!/usr/bin/env node\n\nimport { formatCliError } from './cli-formatting';\nimport { getErrorMessage } from './errors';\nimport { buildProgram, createDefaultDependencies } from './program';\n\nconst program = buildProgram(createDefaultDependencies());\n\nprogram.parseAsync(process.argv).catch((error: unknown) => {\n process.stderr.write(`${formatCliError(getErrorMessage(error))}\\n`);\n process.exitCode = 1;\n});\n"],"mappings":"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","names":["UnreachableCaseError","Command","InvalidArgumentError","Option","z","z","path","path","z","Result","z","z","path","spawn","path","DEFAULT_CLI_DIST_TAG","isRecord","path","spawn","writeJsonOutput","nextSettings","authCleared","mkdir","readFile","rm","writeFile","path","z","z","rm","readFile","mkdir","path","writeFile","z","z","InvalidArgumentError","isRecord","writeJsonOutput","program","Option","Command"]}
|