@dbx-tools/shared-core 0.6.222 → 0.6.224

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/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
6
- export const PACKAGE_VERSION = "0.6.222";
6
+ export const PACKAGE_VERSION = "0.6.224";
7
7
  export * as async from "./src/async.ts";
8
8
  export * as brand from "./src/brand.ts";
9
9
  export * as error from "./src/error.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
2
- export declare const PACKAGE_VERSION = "0.6.222";
2
+ export declare const PACKAGE_VERSION = "0.6.224";
3
3
  export * as async from "./src/async.ts";
4
4
  export * as brand from "./src/brand.ts";
5
5
  export * as error from "./src/error.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
5
- export const PACKAGE_VERSION = "0.6.222";
5
+ export const PACKAGE_VERSION = "0.6.224";
6
6
  export * as async from "./src/async.js";
7
7
  export * as brand from "./src/brand.js";
8
8
  export * as error from "./src/error.js";
@@ -20,4 +20,4 @@ export * as string from "./src/string.js";
20
20
  export * as token from "./src/token.js";
21
21
  export { DEFAULT_BRAND_ASSETS, BrandAssetSetSchema, BrandColorsSchema, BrandVoiceSchema, BrandContextSchema, defaultBrandContext } from "./src/brand.js";
22
22
  export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER } from "./src/token.js";
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFZekosT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC42LjIyMlwiO1xuZXhwb3J0ICogYXMgYXN5bmMgZnJvbSBcIi4vc3JjL2FzeW5jLnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZCBmcm9tIFwiLi9zcmMvYnJhbmQudHNcIjtcbmV4cG9ydCAqIGFzIGVycm9yIGZyb20gXCIuL3NyYy9lcnJvci50c1wiO1xuZXhwb3J0ICogYXMgZXhlY3V0aW9uIGZyb20gXCIuL3NyYy9leGVjdXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZ1bmN0aW9uTW9kdWxlIGZyb20gXCIuL3NyYy9mdW5jdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgaGFzaCBmcm9tIFwiLi9zcmMvaGFzaC50c1wiO1xuZXhwb3J0ICogYXMgaHR0cCBmcm9tIFwiLi9zcmMvaHR0cC50c1wiO1xuZXhwb3J0ICogYXMganNvbiBmcm9tIFwiLi9zcmMvanNvbi50c1wiO1xuZXhwb3J0ICogYXMgbG9nIGZyb20gXCIuL3NyYy9sb2cudHNcIjtcbmV4cG9ydCAqIGFzIG5ldCBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgKiBhcyBvYmplY3QgZnJvbSBcIi4vc3JjL29iamVjdC50c1wiO1xuZXhwb3J0ICogYXMgcGF0dGVybiBmcm9tIFwiLi9zcmMvcGF0dGVybi50c1wiO1xuZXhwb3J0ICogYXMgcHJlZGljYXRlIGZyb20gXCIuL3NyYy9wcmVkaWNhdGUudHNcIjtcbmV4cG9ydCAqIGFzIHN0cmluZyBmcm9tIFwiLi9zcmMvc3RyaW5nLnRzXCI7XG5leHBvcnQgKiBhcyB0b2tlbiBmcm9tIFwiLi9zcmMvdG9rZW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgUG9sbENvbnRleHQsIFBvbGxQcm9kdWNlciwgUG9sbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYXN5bmMudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfQlJBTkRfQVNTRVRTLCBCcmFuZEFzc2V0U2V0U2NoZW1hLCBCcmFuZENvbG9yc1NjaGVtYSwgQnJhbmRWb2ljZVNjaGVtYSwgQnJhbmRDb250ZXh0U2NoZW1hLCBkZWZhdWx0QnJhbmRDb250ZXh0IH0gZnJvbSBcIi4vc3JjL2JyYW5kLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJyYW5kQ29udGV4dCwgQnJhbmRDb250ZXh0SW5wdXQsIEJyYW5kQXNzZXRTZXQgfSBmcm9tIFwiLi9zcmMvYnJhbmQudHNcIjtcbmV4cG9ydCB0eXBlIHsgRXJyb3JDb250ZXh0IH0gZnJvbSBcIi4vc3JjL2Vycm9yLnRzXCI7XG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvblJlc3VsdCwgRXhlY3V0b3IsIEV4ZWN1dGlvbkZhaWx1cmUsIFJ1bk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1lbW9pemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2Z1bmN0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IEhlYWRlckxpa2UgfSBmcm9tIFwiLi9zcmMvaHR0cC50c1wiO1xuZXhwb3J0IHR5cGUgeyBMb2dMZXZlbCwgTG9nZ2VyIH0gZnJvbSBcIi4vc3JjL2xvZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVcmxMaWtlLCBJcFZlcnNpb24sIFBhcnNlZElwLCBDaWRyLCBVcmxCdWlsZGVyLCBQYXJzZUVtYWlsc09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlcXVlbmNlLCBDb250YWluZXIsIENvbGxlY3Rpb24sIE9uZU9yTWFueSwgTmFtZUxpa2UsIE5vbkZ1bmN0aW9uS2V5cywgU2VyaWFsaXphYmxlUHJpbWl0aXZlLCBTZXJpYWxpemFibGVWYWx1ZSwgVG9OdW1iZXJPcHRpb25zLCBUb0RhdGVPcHRpb25zLCBUb0R1cmF0aW9uT3B0aW9ucywgRGVlcEVxdWFsQ29tcGFyYXRvciB9IGZyb20gXCIuL3NyYy9vYmplY3QudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0dGVybk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvcGF0dGVybi50c1wiO1xuZXhwb3J0IHR5cGUgeyBQcmVkaWNhdGVGdW5jdGlvbiwgVHlwZVByZWRpY2F0ZUZ1bmN0aW9uLCBQcmVkaWNhdGVJbnB1dCwgUHJlZGljYXRlIH0gZnJvbSBcIi4vc3JjL3ByZWRpY2F0ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBUb2tlbml6ZU9wdGlvbnMsIEtleU9wdGlvbnMsIElkZW50aWZpZXJPcHRpb25zLCBEZXNjcmlwdGlvbiB9IGZyb20gXCIuL3NyYy9zdHJpbmcudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiB9IGZyb20gXCIuL3NyYy90b2tlbi50c1wiO1xuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFZekosT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC42LjIyNFwiO1xuZXhwb3J0ICogYXMgYXN5bmMgZnJvbSBcIi4vc3JjL2FzeW5jLnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZCBmcm9tIFwiLi9zcmMvYnJhbmQudHNcIjtcbmV4cG9ydCAqIGFzIGVycm9yIGZyb20gXCIuL3NyYy9lcnJvci50c1wiO1xuZXhwb3J0ICogYXMgZXhlY3V0aW9uIGZyb20gXCIuL3NyYy9leGVjdXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZ1bmN0aW9uTW9kdWxlIGZyb20gXCIuL3NyYy9mdW5jdGlvbi50c1wiO1xuZXhwb3J0ICogYXMgaGFzaCBmcm9tIFwiLi9zcmMvaGFzaC50c1wiO1xuZXhwb3J0ICogYXMgaHR0cCBmcm9tIFwiLi9zcmMvaHR0cC50c1wiO1xuZXhwb3J0ICogYXMganNvbiBmcm9tIFwiLi9zcmMvanNvbi50c1wiO1xuZXhwb3J0ICogYXMgbG9nIGZyb20gXCIuL3NyYy9sb2cudHNcIjtcbmV4cG9ydCAqIGFzIG5ldCBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgKiBhcyBvYmplY3QgZnJvbSBcIi4vc3JjL29iamVjdC50c1wiO1xuZXhwb3J0ICogYXMgcGF0dGVybiBmcm9tIFwiLi9zcmMvcGF0dGVybi50c1wiO1xuZXhwb3J0ICogYXMgcHJlZGljYXRlIGZyb20gXCIuL3NyYy9wcmVkaWNhdGUudHNcIjtcbmV4cG9ydCAqIGFzIHN0cmluZyBmcm9tIFwiLi9zcmMvc3RyaW5nLnRzXCI7XG5leHBvcnQgKiBhcyB0b2tlbiBmcm9tIFwiLi9zcmMvdG9rZW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgUG9sbENvbnRleHQsIFBvbGxQcm9kdWNlciwgUG9sbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvYXN5bmMudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfQlJBTkRfQVNTRVRTLCBCcmFuZEFzc2V0U2V0U2NoZW1hLCBCcmFuZENvbG9yc1NjaGVtYSwgQnJhbmRWb2ljZVNjaGVtYSwgQnJhbmRDb250ZXh0U2NoZW1hLCBkZWZhdWx0QnJhbmRDb250ZXh0IH0gZnJvbSBcIi4vc3JjL2JyYW5kLnRzXCI7XG5leHBvcnQgdHlwZSB7IEJyYW5kQ29udGV4dCwgQnJhbmRDb250ZXh0SW5wdXQsIEJyYW5kQXNzZXRTZXQgfSBmcm9tIFwiLi9zcmMvYnJhbmQudHNcIjtcbmV4cG9ydCB0eXBlIHsgRXJyb3JDb250ZXh0IH0gZnJvbSBcIi4vc3JjL2Vycm9yLnRzXCI7XG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvblJlc3VsdCwgRXhlY3V0b3IsIEV4ZWN1dGlvbkZhaWx1cmUsIFJ1bk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1lbW9pemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2Z1bmN0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IEhlYWRlckxpa2UgfSBmcm9tIFwiLi9zcmMvaHR0cC50c1wiO1xuZXhwb3J0IHR5cGUgeyBMb2dMZXZlbCwgTG9nZ2VyIH0gZnJvbSBcIi4vc3JjL2xvZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBVcmxMaWtlLCBJcFZlcnNpb24sIFBhcnNlZElwLCBDaWRyLCBVcmxCdWlsZGVyLCBQYXJzZUVtYWlsc09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgdHlwZSB7IFNlcXVlbmNlLCBDb250YWluZXIsIENvbGxlY3Rpb24sIE9uZU9yTWFueSwgTmFtZUxpa2UsIE5vbkZ1bmN0aW9uS2V5cywgU2VyaWFsaXphYmxlUHJpbWl0aXZlLCBTZXJpYWxpemFibGVWYWx1ZSwgVG9OdW1iZXJPcHRpb25zLCBUb0RhdGVPcHRpb25zLCBUb0R1cmF0aW9uT3B0aW9ucywgRGVlcEVxdWFsQ29tcGFyYXRvciB9IGZyb20gXCIuL3NyYy9vYmplY3QudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0dGVybk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvcGF0dGVybi50c1wiO1xuZXhwb3J0IHR5cGUgeyBQcmVkaWNhdGVGdW5jdGlvbiwgVHlwZVByZWRpY2F0ZUZ1bmN0aW9uLCBQcmVkaWNhdGVJbnB1dCwgUHJlZGljYXRlIH0gZnJvbSBcIi4vc3JjL3ByZWRpY2F0ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBUb2tlbml6ZU9wdGlvbnMsIEtleU9wdGlvbnMsIElkZW50aWZpZXJPcHRpb25zLCBEZXNjcmlwdGlvbiB9IGZyb20gXCIuL3NyYy9zdHJpbmcudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiB9IGZyb20gXCIuL3NyYy90b2tlbi50c1wiO1xuIl19
package/lib/src/async.js CHANGED
@@ -134,10 +134,7 @@ export function combineAbortSignals(...signals) {
134
134
  const present = signals.filter((signal) => signal !== undefined);
135
135
  if (present.length <= 1)
136
136
  return present[0];
137
- const combined = new AbortController();
138
- for (const signal of present)
139
- tieAbortSignal(combined, signal);
140
- return combined.signal;
137
+ return AbortSignal.any(present);
141
138
  }
142
139
  /**
143
140
  * Promisified `setTimeout` that wakes up early (and rejects with
@@ -169,4 +166,4 @@ export function sleep(ms, signal) {
169
166
  signal?.addEventListener("abort", onAbort, { once: true });
170
167
  });
171
168
  }
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUUvRSxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE9BQWUsRUFDZixXQUE4Qix1QkFBdUI7SUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUM7QUFDeEUsQ0FBQztBQXNGRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDekIsUUFBNEIsRUFDNUIsT0FBMEI7SUFFMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDekUsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxJQUFJLE1BQU07UUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxtRUFBbUU7SUFDbkUs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TUFBTSxVQUFVLEtBQUssQ0FBQyxFQUFVLEVBQUUsTUFBb0I7SUFDcEQsSUFBSSxNQUFNLEVBQUUsT0FBTztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE9BQU8sR0FBRyxHQUFTLEVBQUU7WUFDekIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxNQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbmNlbGxhdGlvbi1hd2FyZSBhc3luYyBwcmltaXRpdmVzOiBhbiBhYm9ydGFibGUge0BsaW5rIHNsZWVwfSwgYW5cbiAqIHtAbGluayBBYm9ydENvbnRyb2xsZXJ9IGxpbmtlciAoe0BsaW5rIHRpZUFib3J0U2lnbmFsfSksIGFuZCBhIHBlcmlvZGljXG4gKiB7QGxpbmsgcG9sbH0gZ2VuZXJhdG9yLiBEZXBlbmRlbmN5LWZyZWU7IGBwb2xsYCdzIGBcImRpc3RpbmN0XCJgIGZpbHRlclxuICogdXNlcyB0aGUgbG9jYWwge0BsaW5rIGRlZXBFcXVhbH0uXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tIFwiLi9vYmplY3QudHNcIjtcblxuY29uc3QgREVGQVVMVF9SRVRSWV9ERUxBWVNfTVMgPSBbMV8wMDAsIDJfMDAwLCA1XzAwMCwgMTBfMDAwLCAzMF8wMDBdIGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gYm91bmRlZFJldHJ5RGVsYXkoXG4gIGF0dGVtcHQ6IG51bWJlcixcbiAgZGVsYXlzTXM6IHJlYWRvbmx5IG51bWJlcltdID0gREVGQVVMVF9SRVRSWV9ERUxBWVNfTVMsXG4pOiBudW1iZXIge1xuICBpZiAoIWRlbGF5c01zLmxlbmd0aCkgcmV0dXJuIDA7XG4gIHJldHVybiBkZWxheXNNc1tNYXRoLm1pbihNYXRoLm1heCgwLCBhdHRlbXB0KSwgZGVsYXlzTXMubGVuZ3RoIC0gMSldITtcbn1cblxuLyoqXG4gKiBQZXItaXRlcmF0aW9uIGNvbnRleHQgaGFuZGVkIHRvIHtAbGluayBQb2xsUHJvZHVjZXJ9IGFuZCB0aGVcbiAqIHByZWRpY2F0ZSBvbiBlYWNoIHN0ZXAgb2YgYSB7QGxpbmsgcG9sbH0gbG9vcC4gQnVuZGxlcyB0aGVcbiAqIGl0ZXJhdGlvbiBtZXRhZGF0YSBzbyB0aGUgY2FsbCBzaWduYXR1cmVzIHN0YXkgc3RhYmxlIGFzIGBwb2xsYFxuICogZ3Jvd3MgYWRkaXRpb25hbCBmaWVsZHMuXG4gKlxuICogYHNpZ25hbGAgaXMgb3duZWQgYnkgYHBvbGxgOiBpdCB0cmFja3MgdGhlIGV4dGVybmFsXG4gKiBgUG9sbE9wdGlvbnMuc2lnbmFsYCAod2hlbiBzdXBwbGllZCkgYW5kIGFsc28gZmlyZXMgd2hlbiB0aGVcbiAqIGNvbnN1bWVyIGJyZWFrcyBvdXQgb2YgdGhlIGxvb3AsIHNvIHByb2R1Y2VycyBjYW4gZm9yd2FyZCBpdCB0b1xuICogYW55IGluLWZsaWdodCB3b3JrIChgZmV0Y2hgLCBTREsgY2FsbHMsIGV0Yy4pIGFuZCBoYXZlIGEgc2luZ2xlXG4gKiBjYW5jZWxsYXRpb24gc291cmNlIHRlYXIgZG93biBib3RoIHRoZSByZXF1ZXN0IGFuZCB0aGUgbG9vcC5cbiAqXG4gKiBgYXR0cmlidXRlc2AgaXMgYSBtdXRhYmxlIHNjcmF0Y2hwYWQgc2hhcmVkIGFjcm9zcyBldmVyeVxuICogaXRlcmF0aW9uIG9mIGEgc2luZ2xlIGBwb2xsYCBydW4uIFRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2UgaXNcbiAqIHBhc3NlZCBlYWNoIGNhbGwgc28gd3JpdGVzIGZyb20gb25lIGl0ZXJhdGlvbiBhcmUgdmlzaWJsZSB0byB0aGVcbiAqIG5leHQgLSB1c2VmdWwgZm9yIHN0YXNoaW5nIHBlci1sb29wIHN0YXRlIChyZXRyeSBjb3VudGVycywgc3RhcnRcbiAqIHRpbWVzdGFtcHMsIGFueXRoaW5nIHlvdSdkIG90aGVyd2lzZSBjbG9zZSBvdmVyIHZpYSBhIGxldCkuXG4gKiBHZW5lcmljIGBBYCBsZXRzIGNhbGxlcnMgdHlwZSB0aGUgYmFnOyBkZWZhdWx0cyB0b1xuICogYFJlY29yZDxzdHJpbmcsIHVua25vd24+YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsQ29udGV4dDxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgLyoqIFplcm8tYmFzZWQgaXRlcmF0aW9uIGluZGV4IChgMGAgb24gdGhlIGZpcnN0IGNhbGwpLiAqL1xuICBhdHRlbXB0OiBudW1iZXI7XG4gIC8qKiBWYWx1ZSB5aWVsZGVkIG9uIHRoZSBwcmlvciBpdGVyYXRpb247IGB1bmRlZmluZWRgIG9uIHRoZSBmaXJzdC4gKi9cbiAgcHJldmlvdXM6IFQgfCB1bmRlZmluZWQ7XG4gIC8qKiBDYW5jZWxsYXRpb24gaGFuZGxlLiBBbHdheXMgZGVmaW5lZDsgZm9yd2FyZCB0byBpbi1mbGlnaHQgd29yay4gKi9cbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcbiAgLyoqIFBlci1ydW4gbXV0YWJsZSBzY3JhdGNocGFkIHNoYXJlZCBhY3Jvc3MgaXRlcmF0aW9ucy4gKi9cbiAgYXR0cmlidXRlczogQTtcbn1cblxuLyoqIE9uZSBzdGVwIG9mIGEge0BsaW5rIHBvbGx9IGxvb3AuIFNlZSB7QGxpbmsgUG9sbENvbnRleHR9LiAqL1xuZXhwb3J0IHR5cGUgUG9sbFByb2R1Y2VyPFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoXG4gIGN0eDogUG9sbENvbnRleHQ8VCwgQT4sXG4pID0+IFQgfCBQcm9taXNlTGlrZTxUPjtcblxuLyoqXG4gKiBDb250cm9scyBwb2xsIGNhZGVuY2UsIGZpbHRlcmluZywgdGVybWluYXRpb24sIGNhbmNlbGxhdGlvbiwgdGltZW91dCwgYW5kXG4gKiB0aGUgbXV0YWJsZSBwZXItcnVuIGF0dHJpYnV0ZXMgZXhwb3NlZCB0aHJvdWdoIHtAbGluayBQb2xsQ29udGV4dH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9sbE9wdGlvbnM8VCwgQSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIC8qKiBNaWxsaXNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIHBvbGxzLiAqL1xuICBpbnRlcnZhbE1zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBQcmVkaWNhdGUgZXZhbHVhdGVkIGFnYWluc3QgZWFjaCB5aWVsZGVkIHZhbHVlOiByZXR1cm4gYHRydWVgIHRvXG4gICAqIGtlZXAgaXQsIGBmYWxzZWAgdG8gc2tpcCBpdCAod2l0aG91dCBzdG9wcGluZyB0aGUgbG9vcCkuIE1heSBiZVxuICAgKiBzeW5jIG9yIGFzeW5jIC0gYSBgUHJvbWlzZUxpa2U8Ym9vbGVhbj5gIGlzIGF3YWl0ZWQgYmVmb3JlIHRoZVxuICAgKiBkZWNpc2lvbiBpcyBtYWRlLiBSZWNlaXZlcyB0aGUgc2FtZSB7QGxpbmsgUG9sbENvbnRleHR9IGFzIHRoZVxuICAgKiBwcm9kdWNlciAoc2FtZSBgc2lnbmFsYCwgc2FtZSBgYXR0cmlidXRlc2AgYmFnKS4gVGhlIHNwZWNpYWxcbiAgICogdmFsdWUgYFwiZGlzdGluY3RcImAgc2tpcHMgYSB2YWx1ZSB0aGF0IGRlZXAtZXF1YWxzIHRoZSBwcmV2aW91c1xuICAgKiBvbmUuXG4gICAqL1xuICBmaWx0ZXI/OiAoKHZhbHVlOiBULCBjdHg6IFBvbGxDb250ZXh0PFQsIEE+KSA9PiBib29sZWFuIHwgUHJvbWlzZUxpa2U8Ym9vbGVhbj4pIHwgXCJkaXN0aW5jdFwiO1xuICAvKipcbiAgICogUHJlZGljYXRlIGV2YWx1YXRlZCBhZ2FpbnN0IGVhY2ggeWllbGRlZCB2YWx1ZTogcmV0dXJuIGB0cnVlYCB0b1xuICAgKiBrZWVwIHBvbGxpbmcsIGBmYWxzZWAgdG8gc3RvcC4gTWF5IGJlIHN5bmMgb3IgYXN5bmMuIE9taXQgdG8gcG9sbFxuICAgKiBmb3JldmVyICh0aGUgY29uc3VtZXIgc3RvcHMgYnkgYnJlYWtpbmcgb3V0IG9mIHRoZSBsb29wIG9yIGJ5XG4gICAqIGFib3J0aW5nIGBzaWduYWxgKS5cbiAgICovXG4gIHByZWRpY2F0ZT86ICh2YWx1ZTogVCwgY3R4OiBQb2xsQ29udGV4dDxULCBBPikgPT4gYm9vbGVhbiB8IFByb21pc2VMaWtlPGJvb2xlYW4+O1xuICAvKipcbiAgICogRXh0ZXJuYWwgY2FuY2VsbGF0aW9uIGhhbmRsZS4gVGllZCBpbnRvIHRoZSBpbnRlcm5hbCBzaWduYWwgdGhhdFxuICAgKiBgcG9sbGAgaGFuZHMgdG8gYHByb2R1Y2VyYCwgc28gYWJvcnRpbmcgaXQgdGVhcnMgZG93biBib3RoIHRoZVxuICAgKiBpbi1mbGlnaHQgcmVxdWVzdCBhbmQgdGhlIGludGVyLXBvbGwgc2xlZXAuXG4gICAqL1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgLyoqXG4gICAqIEhhcmQgdXBwZXIgYm91bmQgb24gdGhlIHRvdGFsIGxpZmV0aW1lIG9mIHRoZSBwb2xsIGxvb3AsIGluXG4gICAqIG1pbGxpc2Vjb25kcy4gV2hlbiB0aGUgYnVkZ2V0IGVsYXBzZXMsIGBwb2xsYCBhYm9ydHMgaXRzIGludGVybmFsXG4gICAqIHNpZ25hbCBzbyB0aGUgaW4tZmxpZ2h0IHByb2R1Y2VyIGFuZCBpbnRlci1wb2xsIHNsZWVwIGJvdGggdGVhclxuICAgKiBkb3duIHByb21wdGx5LCBhbmQgdGhlIGxvb3AgdGhyb3dzIHRoZSBgVGltZW91dEVycm9yYFxuICAgKiBgRE9NRXhjZXB0aW9uYCBwcm9kdWNlZCBieSBgQWJvcnRTaWduYWwudGltZW91dCh0aW1lb3V0TXMpYC4gVGhlXG4gICAqIGJ1ZGdldCBzdGFydHMgdGlja2luZyB0aGUgbW9tZW50IHRoZSBnZW5lcmF0b3IgaXMgY3JlYXRlZC5cbiAgICovXG4gIHRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEluaXRpYWwgdmFsdWUgZm9yIGBjdHguYXR0cmlidXRlc2AuIERlZmF1bHRzIHRvIGB7fWAuIFRoZSBzYW1lXG4gICAqIG9iamVjdCBpcyByZXVzZWQgYWNyb3NzIGl0ZXJhdGlvbnMsIHNvIGNhbGxlcnMgY2FuIHByZS1wb3B1bGF0ZVxuICAgKiBmaWVsZHMgKHRpbWVycywgcmV0cnkgY291bnRlcnMsIGV0Yy4pIGFuZCB0aGUgcHJvZHVjZXIgL1xuICAgKiBwcmVkaWNhdGUgY2FuIG11dGF0ZSB0aGVtIGluIHBsYWNlLlxuICAgKi9cbiAgYXR0cmlidXRlcz86IEE7XG59XG5cbi8qKlxuICogQXN5bmMgaXRlcmFibGUgdGhhdCBkcml2ZXMgYSBwZXJpb2RpYyBwb2xsLiBFYWNoIGl0ZXJhdGlvbjpcbiAqXG4gKiAgIDEuIEJ1aWxkcyBhIHtAbGluayBQb2xsQ29udGV4dH0gKGBhdHRlbXB0YCwgYHByZXZpb3VzYCwgYHNpZ25hbGAsXG4gKiAgICAgIHNoYXJlZCBgYXR0cmlidXRlc2ApIGFuZCBjYWxscyBgcHJvZHVjZXIoY3R4KWA7IHlpZWxkcyB0aGVcbiAqICAgICAgcmVzb2x2ZWQgdmFsdWUgKHN1YmplY3QgdG8gYGZpbHRlcmApLlxuICogICAyLiBFdmFsdWF0ZXMgYG9wdGlvbnMucHJlZGljYXRlKHZhbHVlLCBjdHgpYDsgc3RvcHMgd2hlbiBpdFxuICogICAgICByZXR1cm5zIChvciByZXNvbHZlcyB0bykgYGZhbHNlYC5cbiAqICAgMy4gU2xlZXBzIGBvcHRpb25zLmludGVydmFsTXNgIGJlZm9yZSB0aGUgbmV4dCBhdHRlbXB0LlxuICpcbiAqIFRoZSBmaXJzdCBjYWxsIHJ1bnMgaW1tZWRpYXRlbHkgKG5vIGxlYWRpbmcgc2xlZXApIHNvIHRoZSBjb25zdW1lclxuICogc2VlcyBhIHZhbHVlIHdpdGhvdXQgd2FpdGluZyBhbiBpbnRlcnZhbC4gRXJyb3JzIHRocm93biBieVxuICogYHByb2R1Y2VyYCBwcm9wYWdhdGUgdGhyb3VnaCB0aGUgZ2VuZXJhdG9yLlxuICpcbiAqIGBwb2xsYCBhbHdheXMgY3JlYXRlcyBhbiBpbnRlcm5hbCBgQWJvcnRDb250cm9sbGVyYCBhbmQgZXhwb3Nlc1xuICogYGludGVybmFsLnNpZ25hbGAgYXMgYGN0eC5zaWduYWxgLCBzbyBwcm9kdWNlcnMgY2FuIHJlbHkgb24gYVxuICogZGVmaW5lZCBzaWduYWwgd2l0aG91dCBhIG51bGxpc2ggY2hlY2suIFRoZSBleHRlcm5hbFxuICogYG9wdGlvbnMuc2lnbmFsYCBpcyB0aWVkIGluLCBhbmQgYSBgdHJ5L2ZpbmFsbHlgIGFib3J0cyB0aGVcbiAqIGludGVybmFsIHNpZ25hbCB3aGVuIHRoZSBjb25zdW1lciBicmVha3Mgb3V0IG9mIHRoZSBgZm9yIGF3YWl0YFxuICogKG9yIHRoZSBsb29wIHRocm93cyksIHNvIGFueSBwcm9kdWNlciB3b3JrIHN0aWxsIGhvbGRpbmcgdGhlXG4gKiBzaWduYWwgc2VlcyB0aGUgY2FuY2VsbGF0aW9uIHRvby5cbiAqXG4gKiBAZXhhbXBsZVxuICogZm9yIGF3YWl0IChjb25zdCBtc2cgb2YgcG9sbChcbiAqICAgYXN5bmMgKHsgc2lnbmFsIH0pID0+XG4gKiAgICAgY2xpZW50LmdlbmllLmdldE1lc3NhZ2UoeyAuLi4gfSwgeyBhYm9ydFNpZ25hbDogc2lnbmFsIH0pLFxuICogICB7XG4gKiAgICAgaW50ZXJ2YWxNczogMjUwLFxuICogICAgIHByZWRpY2F0ZTogKG0pID0+ICFURVJNSU5BTF9TVEFUVVNFUy5oYXMobS5zdGF0dXMpLFxuICogICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gKiAgIH0sXG4gKiApKSB7XG4gKiAgIHJlbmRlcihtc2cpO1xuICogfVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIHBvbGw8VCwgQSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgcHJvZHVjZXI6IFBvbGxQcm9kdWNlcjxULCBBPixcbiAgb3B0aW9uczogUG9sbE9wdGlvbnM8VCwgQT4sXG4pOiBBc3luY0dlbmVyYXRvcjxULCB2b2lkLCB2b2lkPiB7XG4gIGNvbnN0IHsgaW50ZXJ2YWxNcywgcHJlZGljYXRlLCBzaWduYWwsIGF0dHJpYnV0ZXMsIHRpbWVvdXRNcyB9ID0gb3B0aW9ucztcbiAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgaWYgKHNpZ25hbCkgdGllQWJvcnRTaWduYWwoY29udHJvbGxlciwgc2lnbmFsKTtcbiAgaWYgKHRpbWVvdXRNcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGllQWJvcnRTaWduYWwoY29udHJvbGxlciwgQWJvcnRTaWduYWwudGltZW91dCh0aW1lb3V0TXMpKTtcbiAgfVxuICAvLyBTaW5nbGUgc2hhcmVkIGF0dHJpYnV0ZXMgb2JqZWN0IHNvIHdyaXRlcyBmcm9tIG9uZSBpdGVyYXRpb24gYXJlXG4gIC8vIHZpc2libGUgb24gdGhlIG5leHQuIGB7fSBhcyBBYCBpcyBzYWZlIGJlY2F1c2UgZWl0aGVyIHRoZSBjYWxsZXJcbiAgLy8gc3VwcGxpZWQgYGF0dHJpYnV0ZXNgICh0eXBlZCkgb3IgYEFgIGRlZmF1bHRlZCB0byB0aGUgdW5rbm93blxuICAvLyByZWNvcmQgc2hhcGUgKGluIHdoaWNoIGNhc2UgYHt9YCBzYXRpc2ZpZXMgaXQpLlxuICBjb25zdCBzaGFyZWRBdHRyaWJ1dGVzID0gYXR0cmlidXRlcyA/PyAoe30gYXMgQSk7XG4gIHRyeSB7XG4gICAgbGV0IHByZXZpb3VzOiBUIHwgdW5kZWZpbmVkO1xuICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyA7IGF0dGVtcHQrKykge1xuICAgICAgY29udHJvbGxlci5zaWduYWwudGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIGNvbnN0IGN0eDogUG9sbENvbnRleHQ8VCwgQT4gPSB7XG4gICAgICAgIGF0dGVtcHQsXG4gICAgICAgIHByZXZpb3VzLFxuICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBhdHRyaWJ1dGVzOiBzaGFyZWRBdHRyaWJ1dGVzLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvZHVjZXIoY3R4KTtcbiAgICAgIGlmIChvcHRpb25zLmZpbHRlcikge1xuICAgICAgICBpZiAob3B0aW9ucy5maWx0ZXIgPT09IFwiZGlzdGluY3RcIikge1xuICAgICAgICAgIGlmIChkZWVwRXF1YWwocHJldmlvdXMsIHZhbHVlKSkge1xuICAgICAgICAgICAgYXdhaXQgc2xlZXAoaW50ZXJ2YWxNcywgY29udHJvbGxlci5zaWduYWwpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCEoYXdhaXQgb3B0aW9ucy5maWx0ZXIodmFsdWUsIGN0eCkpKSB7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoaW50ZXJ2YWxNcywgY29udHJvbGxlci5zaWduYWwpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgIGlmIChwcmVkaWNhdGUgJiYgIShhd2FpdCBwcmVkaWNhdGUodmFsdWUsIGN0eCkpKSByZXR1cm47XG4gICAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICBwcmV2aW91cyA9IHZhbHVlO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaWUgYSBjaGlsZCBgQWJvcnRDb250cm9sbGVyYCB0byBhIHBhcmVudCBzaWduYWwuIFRoZSBjaGlsZCBhYm9ydHNcbiAqIHdoZW5ldmVyIHRoZSBwYXJlbnQgYWJvcnRzOyBhYm9ydGluZyB0aGUgY2hpbGQgZG9lcyBub3QgYWZmZWN0IHRoZVxuICogcGFyZW50IChzbyBhIGZldGNoLWxldmVsIGNhbmNlbCBkb2Vzbid0IHRlYXIgZG93biB0aGUgbWFpbiBwb2xsIGxvb3ApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGllQWJvcnRTaWduYWwoY2hpbGQ6IEFib3J0Q29udHJvbGxlciwgcGFyZW50PzogQWJvcnRTaWduYWwpOiB2b2lkIHtcbiAgaWYgKCFwYXJlbnQpIHtcbiAgICByZXR1cm47XG4gIH0gZWxzZSBpZiAocGFyZW50LmFib3J0ZWQpIHtcbiAgICBjaGlsZC5hYm9ydChwYXJlbnQucmVhc29uKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCAoKSA9PiBjaGlsZC5hYm9ydChwYXJlbnQucmVhc29uKSwge1xuICAgIG9uY2U6IHRydWUsXG4gIH0pO1xufVxuXG4vKipcbiAqIENvbWJpbmUgc2V2ZXJhbCBvcHRpb25hbCBjYW5jZWxsYXRpb24gc291cmNlcyBpbnRvIG9uZSBzaWduYWwgdGhhdCBhYm9ydHNcbiAqIGFzIHNvb24gYXMgYW55IG9mIHRoZW0gZG9lcy5cbiAqXG4gKiBUaGUgdXN1YWwgY2FsbGVyIGlzIGFuIG9wZXJhdGlvbiB0aGF0IGhhcyB0byBob25vciBtb3JlIHRoYW4gb25lIHNvdXJjZSBhdFxuICogb25jZSAtIGEgY2FsbGVyJ3Mgb3duIHNpZ25hbCAoYSBjbG9zZWQgY29ubmVjdGlvbiwgYW4gYWdlbnQgcnVuIGJlaW5nXG4gKiBjYW5jZWxsZWQpIHBsdXMgb25lIGRlcml2ZWQgZnJvbSBhIHRpbWVvdXQgLSB3aGVyZSB0aGUgYXdhaXRlZCBJL08gYWNjZXB0c1xuICogb25seSBhIHNpbmdsZSBzaWduYWwuIEFic2VudCBzb3VyY2VzIGFyZSBpZ25vcmVkLCBhbmQgYSBsb25lIHNpZ25hbCBpc1xuICogcmV0dXJuZWQgYXMtaXMgc28gdGhlIGNvbW1vbiBwYXRoIGFsbG9jYXRlcyBub3RoaW5nLiBSZXR1cm5zIGB1bmRlZmluZWRgXG4gKiBvbmx5IHdoZW4gZXZlcnkgaW5wdXQgaXMgYWJzZW50LCB3aGljaCBjYWxsZXJzIGNhbiBwYXNzIHN0cmFpZ2h0IHRocm91Z2hcbiAqIHRvIGFuIG9wdGlvbmFsIGBzaWduYWxgIHBhcmFtZXRlci5cbiAqXG4gKiBBYm9ydGluZyBhbiBpbnB1dCBhYm9ydHMgdGhlIHJlc3VsdCAoY2FycnlpbmcgdGhhdCBpbnB1dCdzIGByZWFzb25gKTtcbiAqIG5vdGhpbmcgcHJvcGFnYXRlcyBiYWNrIHRoZSBvdGhlciB3YXkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGF3YWl0IGZldGNoKHVybCwgeyBzaWduYWw6IGNvbWJpbmVBYm9ydFNpZ25hbHMocmVxLnNpZ25hbCwgdGltZW91dC5zaWduYWwpIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUFib3J0U2lnbmFscyhcbiAgLi4uc2lnbmFsczogKEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkKVtdXG4pOiBBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHByZXNlbnQgPSBzaWduYWxzLmZpbHRlcigoc2lnbmFsKTogc2lnbmFsIGlzIEFib3J0U2lnbmFsID0+IHNpZ25hbCAhPT0gdW5kZWZpbmVkKTtcbiAgaWYgKHByZXNlbnQubGVuZ3RoIDw9IDEpIHJldHVybiBwcmVzZW50WzBdO1xuICBjb25zdCBjb21iaW5lZCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgZm9yIChjb25zdCBzaWduYWwgb2YgcHJlc2VudCkgdGllQWJvcnRTaWduYWwoY29tYmluZWQsIHNpZ25hbCk7XG4gIHJldHVybiBjb21iaW5lZC5zaWduYWw7XG59XG5cbi8qKlxuICogUHJvbWlzaWZpZWQgYHNldFRpbWVvdXRgIHRoYXQgd2FrZXMgdXAgZWFybHkgKGFuZCByZWplY3RzIHdpdGhcbiAqIGBzaWduYWwucmVhc29uYCkgd2hlbiBgc2lnbmFsYCBhYm9ydHMgbWlkLXdhaXQuIFNob3J0LWNpcmN1aXRzIHRvIGFcbiAqIHJlamVjdGVkIHByb21pc2Ugd2hlbiB0aGUgc2lnbmFsIGlzIGFscmVhZHkgYWJvcnRlZCBvbiBlbnRyeSwgc28gdGhlXG4gKiBhYm9ydCBwYXRoIGlzIGNvbnNpc3RlbnQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB3YWl0IGFjdHVhbGx5XG4gKiBzdGFydGVkLlxuICpcbiAqIFVzZSBhcyB0aGUgYnVpbGRpbmcgYmxvY2sgZm9yIGFueSBcIndhaXQsIGJ1dCBjYW5jZWwgY2xlYW5seVwiIHBhdHRlcm4gLVxuICogaW50ZXItcG9sbCBiYWNrb2ZmLCBwYWNpbmcgbG9vcHMsIHJldHJ5IHRpbWVycywgbG9uZy1wb2xsIGJ1ZGdldHMgLSBzb1xuICogY2FuY2VsbGF0aW9uIGFsd2F5cyByZWplY3RzIHdpdGggdGhlIGNhbGxlcidzIGBzaWduYWwucmVhc29uYCByYXRoZXJcbiAqIHRoYW4gc2lsZW50bHkgcmVzb2x2aW5nIGFmdGVyIHRoZSB0aW1lciBleHBpcmVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBhd2FpdCBzbGVlcCgyNTAsIHJlcS5zaWduYWwpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlciwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHNpZ25hbD8uYWJvcnRlZCkgcmV0dXJuIFByb21pc2UucmVqZWN0KHNpZ25hbC5yZWFzb24pO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQWJvcnQgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgcmVqZWN0KHNpZ25hbCEucmVhc29uKTtcbiAgICB9O1xuICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9LCBtcyk7XG4gICAgc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICB9KTtcbn1cbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUUvRSxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE9BQWUsRUFDZixXQUE4Qix1QkFBdUI7SUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUM7QUFDeEUsQ0FBQztBQXNGRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDekIsUUFBNEIsRUFDNUIsT0FBMEI7SUFFMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDekUsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxJQUFJLE1BQU07UUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxtRUFBbUU7SUFDbkUs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Q0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLEdBQVMsRUFBRTtZQUN6QixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsTUFBTSxDQUFDLE1BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FuY2VsbGF0aW9uLWF3YXJlIGFzeW5jIHByaW1pdGl2ZXM6IGFuIGFib3J0YWJsZSB7QGxpbmsgc2xlZXB9LCBhblxuICoge0BsaW5rIEFib3J0Q29udHJvbGxlcn0gbGlua2VyICh7QGxpbmsgdGllQWJvcnRTaWduYWx9KSwgYW5kIGEgcGVyaW9kaWNcbiAqIHtAbGluayBwb2xsfSBnZW5lcmF0b3IuIERlcGVuZGVuY3ktZnJlZTsgYHBvbGxgJ3MgYFwiZGlzdGluY3RcImAgZmlsdGVyXG4gKiB1c2VzIHRoZSBsb2NhbCB7QGxpbmsgZGVlcEVxdWFsfS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gXCIuL29iamVjdC50c1wiO1xuXG5jb25zdCBERUZBVUxUX1JFVFJZX0RFTEFZU19NUyA9IFsxXzAwMCwgMl8wMDAsIDVfMDAwLCAxMF8wMDAsIDMwXzAwMF0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBib3VuZGVkUmV0cnlEZWxheShcbiAgYXR0ZW1wdDogbnVtYmVyLFxuICBkZWxheXNNczogcmVhZG9ubHkgbnVtYmVyW10gPSBERUZBVUxUX1JFVFJZX0RFTEFZU19NUyxcbik6IG51bWJlciB7XG4gIGlmICghZGVsYXlzTXMubGVuZ3RoKSByZXR1cm4gMDtcbiAgcmV0dXJuIGRlbGF5c01zW01hdGgubWluKE1hdGgubWF4KDAsIGF0dGVtcHQpLCBkZWxheXNNcy5sZW5ndGggLSAxKV0hO1xufVxuXG4vKipcbiAqIFBlci1pdGVyYXRpb24gY29udGV4dCBoYW5kZWQgdG8ge0BsaW5rIFBvbGxQcm9kdWNlcn0gYW5kIHRoZVxuICogcHJlZGljYXRlIG9uIGVhY2ggc3RlcCBvZiBhIHtAbGluayBwb2xsfSBsb29wLiBCdW5kbGVzIHRoZVxuICogaXRlcmF0aW9uIG1ldGFkYXRhIHNvIHRoZSBjYWxsIHNpZ25hdHVyZXMgc3RheSBzdGFibGUgYXMgYHBvbGxgXG4gKiBncm93cyBhZGRpdGlvbmFsIGZpZWxkcy5cbiAqXG4gKiBgc2lnbmFsYCBpcyBvd25lZCBieSBgcG9sbGA6IGl0IHRyYWNrcyB0aGUgZXh0ZXJuYWxcbiAqIGBQb2xsT3B0aW9ucy5zaWduYWxgICh3aGVuIHN1cHBsaWVkKSBhbmQgYWxzbyBmaXJlcyB3aGVuIHRoZVxuICogY29uc3VtZXIgYnJlYWtzIG91dCBvZiB0aGUgbG9vcCwgc28gcHJvZHVjZXJzIGNhbiBmb3J3YXJkIGl0IHRvXG4gKiBhbnkgaW4tZmxpZ2h0IHdvcmsgKGBmZXRjaGAsIFNESyBjYWxscywgZXRjLikgYW5kIGhhdmUgYSBzaW5nbGVcbiAqIGNhbmNlbGxhdGlvbiBzb3VyY2UgdGVhciBkb3duIGJvdGggdGhlIHJlcXVlc3QgYW5kIHRoZSBsb29wLlxuICpcbiAqIGBhdHRyaWJ1dGVzYCBpcyBhIG11dGFibGUgc2NyYXRjaHBhZCBzaGFyZWQgYWNyb3NzIGV2ZXJ5XG4gKiBpdGVyYXRpb24gb2YgYSBzaW5nbGUgYHBvbGxgIHJ1bi4gVGhlIHNhbWUgb2JqZWN0IHJlZmVyZW5jZSBpc1xuICogcGFzc2VkIGVhY2ggY2FsbCBzbyB3cml0ZXMgZnJvbSBvbmUgaXRlcmF0aW9uIGFyZSB2aXNpYmxlIHRvIHRoZVxuICogbmV4dCAtIHVzZWZ1bCBmb3Igc3Rhc2hpbmcgcGVyLWxvb3Agc3RhdGUgKHJldHJ5IGNvdW50ZXJzLCBzdGFydFxuICogdGltZXN0YW1wcywgYW55dGhpbmcgeW91J2Qgb3RoZXJ3aXNlIGNsb3NlIG92ZXIgdmlhIGEgbGV0KS5cbiAqIEdlbmVyaWMgYEFgIGxldHMgY2FsbGVycyB0eXBlIHRoZSBiYWc7IGRlZmF1bHRzIHRvXG4gKiBgUmVjb3JkPHN0cmluZywgdW5rbm93bj5gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxDb250ZXh0PFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAvKiogWmVyby1iYXNlZCBpdGVyYXRpb24gaW5kZXggKGAwYCBvbiB0aGUgZmlyc3QgY2FsbCkuICovXG4gIGF0dGVtcHQ6IG51bWJlcjtcbiAgLyoqIFZhbHVlIHlpZWxkZWQgb24gdGhlIHByaW9yIGl0ZXJhdGlvbjsgYHVuZGVmaW5lZGAgb24gdGhlIGZpcnN0LiAqL1xuICBwcmV2aW91czogVCB8IHVuZGVmaW5lZDtcbiAgLyoqIENhbmNlbGxhdGlvbiBoYW5kbGUuIEFsd2F5cyBkZWZpbmVkOyBmb3J3YXJkIHRvIGluLWZsaWdodCB3b3JrLiAqL1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xuICAvKiogUGVyLXJ1biBtdXRhYmxlIHNjcmF0Y2hwYWQgc2hhcmVkIGFjcm9zcyBpdGVyYXRpb25zLiAqL1xuICBhdHRyaWJ1dGVzOiBBO1xufVxuXG4vKiogT25lIHN0ZXAgb2YgYSB7QGxpbmsgcG9sbH0gbG9vcC4gU2VlIHtAbGluayBQb2xsQ29udGV4dH0uICovXG5leHBvcnQgdHlwZSBQb2xsUHJvZHVjZXI8VCwgQSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IChcbiAgY3R4OiBQb2xsQ29udGV4dDxULCBBPixcbikgPT4gVCB8IFByb21pc2VMaWtlPFQ+O1xuXG4vKipcbiAqIENvbnRyb2xzIHBvbGwgY2FkZW5jZSwgZmlsdGVyaW5nLCB0ZXJtaW5hdGlvbiwgY2FuY2VsbGF0aW9uLCB0aW1lb3V0LCBhbmRcbiAqIHRoZSBtdXRhYmxlIHBlci1ydW4gYXR0cmlidXRlcyBleHBvc2VkIHRocm91Z2gge0BsaW5rIFBvbGxDb250ZXh0fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsT3B0aW9uczxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgLyoqIE1pbGxpc2Vjb25kcyB0byB3YWl0IGJldHdlZW4gcG9sbHMuICovXG4gIGludGVydmFsTXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSBldmFsdWF0ZWQgYWdhaW5zdCBlYWNoIHlpZWxkZWQgdmFsdWU6IHJldHVybiBgdHJ1ZWAgdG9cbiAgICoga2VlcCBpdCwgYGZhbHNlYCB0byBza2lwIGl0ICh3aXRob3V0IHN0b3BwaW5nIHRoZSBsb29wKS4gTWF5IGJlXG4gICAqIHN5bmMgb3IgYXN5bmMgLSBhIGBQcm9taXNlTGlrZTxib29sZWFuPmAgaXMgYXdhaXRlZCBiZWZvcmUgdGhlXG4gICAqIGRlY2lzaW9uIGlzIG1hZGUuIFJlY2VpdmVzIHRoZSBzYW1lIHtAbGluayBQb2xsQ29udGV4dH0gYXMgdGhlXG4gICAqIHByb2R1Y2VyIChzYW1lIGBzaWduYWxgLCBzYW1lIGBhdHRyaWJ1dGVzYCBiYWcpLiBUaGUgc3BlY2lhbFxuICAgKiB2YWx1ZSBgXCJkaXN0aW5jdFwiYCBza2lwcyBhIHZhbHVlIHRoYXQgZGVlcC1lcXVhbHMgdGhlIHByZXZpb3VzXG4gICAqIG9uZS5cbiAgICovXG4gIGZpbHRlcj86ICgodmFsdWU6IFQsIGN0eDogUG9sbENvbnRleHQ8VCwgQT4pID0+IGJvb2xlYW4gfCBQcm9taXNlTGlrZTxib29sZWFuPikgfCBcImRpc3RpbmN0XCI7XG4gIC8qKlxuICAgKiBQcmVkaWNhdGUgZXZhbHVhdGVkIGFnYWluc3QgZWFjaCB5aWVsZGVkIHZhbHVlOiByZXR1cm4gYHRydWVgIHRvXG4gICAqIGtlZXAgcG9sbGluZywgYGZhbHNlYCB0byBzdG9wLiBNYXkgYmUgc3luYyBvciBhc3luYy4gT21pdCB0byBwb2xsXG4gICAqIGZvcmV2ZXIgKHRoZSBjb25zdW1lciBzdG9wcyBieSBicmVha2luZyBvdXQgb2YgdGhlIGxvb3Agb3IgYnlcbiAgICogYWJvcnRpbmcgYHNpZ25hbGApLlxuICAgKi9cbiAgcHJlZGljYXRlPzogKHZhbHVlOiBULCBjdHg6IFBvbGxDb250ZXh0PFQsIEE+KSA9PiBib29sZWFuIHwgUHJvbWlzZUxpa2U8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBFeHRlcm5hbCBjYW5jZWxsYXRpb24gaGFuZGxlLiBUaWVkIGludG8gdGhlIGludGVybmFsIHNpZ25hbCB0aGF0XG4gICAqIGBwb2xsYCBoYW5kcyB0byBgcHJvZHVjZXJgLCBzbyBhYm9ydGluZyBpdCB0ZWFycyBkb3duIGJvdGggdGhlXG4gICAqIGluLWZsaWdodCByZXF1ZXN0IGFuZCB0aGUgaW50ZXItcG9sbCBzbGVlcC5cbiAgICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAvKipcbiAgICogSGFyZCB1cHBlciBib3VuZCBvbiB0aGUgdG90YWwgbGlmZXRpbWUgb2YgdGhlIHBvbGwgbG9vcCwgaW5cbiAgICogbWlsbGlzZWNvbmRzLiBXaGVuIHRoZSBidWRnZXQgZWxhcHNlcywgYHBvbGxgIGFib3J0cyBpdHMgaW50ZXJuYWxcbiAgICogc2lnbmFsIHNvIHRoZSBpbi1mbGlnaHQgcHJvZHVjZXIgYW5kIGludGVyLXBvbGwgc2xlZXAgYm90aCB0ZWFyXG4gICAqIGRvd24gcHJvbXB0bHksIGFuZCB0aGUgbG9vcCB0aHJvd3MgdGhlIGBUaW1lb3V0RXJyb3JgXG4gICAqIGBET01FeGNlcHRpb25gIHByb2R1Y2VkIGJ5IGBBYm9ydFNpZ25hbC50aW1lb3V0KHRpbWVvdXRNcylgLiBUaGVcbiAgICogYnVkZ2V0IHN0YXJ0cyB0aWNraW5nIHRoZSBtb21lbnQgdGhlIGdlbmVyYXRvciBpcyBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBmb3IgYGN0eC5hdHRyaWJ1dGVzYC4gRGVmYXVsdHMgdG8gYHt9YC4gVGhlIHNhbWVcbiAgICogb2JqZWN0IGlzIHJldXNlZCBhY3Jvc3MgaXRlcmF0aW9ucywgc28gY2FsbGVycyBjYW4gcHJlLXBvcHVsYXRlXG4gICAqIGZpZWxkcyAodGltZXJzLCByZXRyeSBjb3VudGVycywgZXRjLikgYW5kIHRoZSBwcm9kdWNlciAvXG4gICAqIHByZWRpY2F0ZSBjYW4gbXV0YXRlIHRoZW0gaW4gcGxhY2UuXG4gICAqL1xuICBhdHRyaWJ1dGVzPzogQTtcbn1cblxuLyoqXG4gKiBBc3luYyBpdGVyYWJsZSB0aGF0IGRyaXZlcyBhIHBlcmlvZGljIHBvbGwuIEVhY2ggaXRlcmF0aW9uOlxuICpcbiAqICAgMS4gQnVpbGRzIGEge0BsaW5rIFBvbGxDb250ZXh0fSAoYGF0dGVtcHRgLCBgcHJldmlvdXNgLCBgc2lnbmFsYCxcbiAqICAgICAgc2hhcmVkIGBhdHRyaWJ1dGVzYCkgYW5kIGNhbGxzIGBwcm9kdWNlcihjdHgpYDsgeWllbGRzIHRoZVxuICogICAgICByZXNvbHZlZCB2YWx1ZSAoc3ViamVjdCB0byBgZmlsdGVyYCkuXG4gKiAgIDIuIEV2YWx1YXRlcyBgb3B0aW9ucy5wcmVkaWNhdGUodmFsdWUsIGN0eClgOyBzdG9wcyB3aGVuIGl0XG4gKiAgICAgIHJldHVybnMgKG9yIHJlc29sdmVzIHRvKSBgZmFsc2VgLlxuICogICAzLiBTbGVlcHMgYG9wdGlvbnMuaW50ZXJ2YWxNc2AgYmVmb3JlIHRoZSBuZXh0IGF0dGVtcHQuXG4gKlxuICogVGhlIGZpcnN0IGNhbGwgcnVucyBpbW1lZGlhdGVseSAobm8gbGVhZGluZyBzbGVlcCkgc28gdGhlIGNvbnN1bWVyXG4gKiBzZWVzIGEgdmFsdWUgd2l0aG91dCB3YWl0aW5nIGFuIGludGVydmFsLiBFcnJvcnMgdGhyb3duIGJ5XG4gKiBgcHJvZHVjZXJgIHByb3BhZ2F0ZSB0aHJvdWdoIHRoZSBnZW5lcmF0b3IuXG4gKlxuICogYHBvbGxgIGFsd2F5cyBjcmVhdGVzIGFuIGludGVybmFsIGBBYm9ydENvbnRyb2xsZXJgIGFuZCBleHBvc2VzXG4gKiBgaW50ZXJuYWwuc2lnbmFsYCBhcyBgY3R4LnNpZ25hbGAsIHNvIHByb2R1Y2VycyBjYW4gcmVseSBvbiBhXG4gKiBkZWZpbmVkIHNpZ25hbCB3aXRob3V0IGEgbnVsbGlzaCBjaGVjay4gVGhlIGV4dGVybmFsXG4gKiBgb3B0aW9ucy5zaWduYWxgIGlzIHRpZWQgaW4sIGFuZCBhIGB0cnkvZmluYWxseWAgYWJvcnRzIHRoZVxuICogaW50ZXJuYWwgc2lnbmFsIHdoZW4gdGhlIGNvbnN1bWVyIGJyZWFrcyBvdXQgb2YgdGhlIGBmb3IgYXdhaXRgXG4gKiAob3IgdGhlIGxvb3AgdGhyb3dzKSwgc28gYW55IHByb2R1Y2VyIHdvcmsgc3RpbGwgaG9sZGluZyB0aGVcbiAqIHNpZ25hbCBzZWVzIHRoZSBjYW5jZWxsYXRpb24gdG9vLlxuICpcbiAqIEBleGFtcGxlXG4gKiBmb3IgYXdhaXQgKGNvbnN0IG1zZyBvZiBwb2xsKFxuICogICBhc3luYyAoeyBzaWduYWwgfSkgPT5cbiAqICAgICBjbGllbnQuZ2VuaWUuZ2V0TWVzc2FnZSh7IC4uLiB9LCB7IGFib3J0U2lnbmFsOiBzaWduYWwgfSksXG4gKiAgIHtcbiAqICAgICBpbnRlcnZhbE1zOiAyNTAsXG4gKiAgICAgcHJlZGljYXRlOiAobSkgPT4gIVRFUk1JTkFMX1NUQVRVU0VTLmhhcyhtLnN0YXR1cyksXG4gKiAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAqICAgfSxcbiAqICkpIHtcbiAqICAgcmVuZGVyKG1zZyk7XG4gKiB9XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogcG9sbDxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBwcm9kdWNlcjogUG9sbFByb2R1Y2VyPFQsIEE+LFxuICBvcHRpb25zOiBQb2xsT3B0aW9uczxULCBBPixcbik6IEFzeW5jR2VuZXJhdG9yPFQsIHZvaWQsIHZvaWQ+IHtcbiAgY29uc3QgeyBpbnRlcnZhbE1zLCBwcmVkaWNhdGUsIHNpZ25hbCwgYXR0cmlidXRlcywgdGltZW91dE1zIH0gPSBvcHRpb25zO1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBpZiAoc2lnbmFsKSB0aWVBYm9ydFNpZ25hbChjb250cm9sbGVyLCBzaWduYWwpO1xuICBpZiAodGltZW91dE1zICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aWVBYm9ydFNpZ25hbChjb250cm9sbGVyLCBBYm9ydFNpZ25hbC50aW1lb3V0KHRpbWVvdXRNcykpO1xuICB9XG4gIC8vIFNpbmdsZSBzaGFyZWQgYXR0cmlidXRlcyBvYmplY3Qgc28gd3JpdGVzIGZyb20gb25lIGl0ZXJhdGlvbiBhcmVcbiAgLy8gdmlzaWJsZSBvbiB0aGUgbmV4dC4gYHt9IGFzIEFgIGlzIHNhZmUgYmVjYXVzZSBlaXRoZXIgdGhlIGNhbGxlclxuICAvLyBzdXBwbGllZCBgYXR0cmlidXRlc2AgKHR5cGVkKSBvciBgQWAgZGVmYXVsdGVkIHRvIHRoZSB1bmtub3duXG4gIC8vIHJlY29yZCBzaGFwZSAoaW4gd2hpY2ggY2FzZSBge31gIHNhdGlzZmllcyBpdCkuXG4gIGNvbnN0IHNoYXJlZEF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzID8/ICh7fSBhcyBBKTtcbiAgdHJ5IHtcbiAgICBsZXQgcHJldmlvdXM6IFQgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IDsgYXR0ZW1wdCsrKSB7XG4gICAgICBjb250cm9sbGVyLnNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgY29uc3QgY3R4OiBQb2xsQ29udGV4dDxULCBBPiA9IHtcbiAgICAgICAgYXR0ZW1wdCxcbiAgICAgICAgcHJldmlvdXMsXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHNoYXJlZEF0dHJpYnV0ZXMsXG4gICAgICB9O1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwcm9kdWNlcihjdHgpO1xuICAgICAgaWYgKG9wdGlvbnMuZmlsdGVyKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlciA9PT0gXCJkaXN0aW5jdFwiKSB7XG4gICAgICAgICAgaWYgKGRlZXBFcXVhbChwcmV2aW91cywgdmFsdWUpKSB7XG4gICAgICAgICAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIShhd2FpdCBvcHRpb25zLmZpbHRlcih2YWx1ZSwgY3R4KSkpIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgaWYgKHByZWRpY2F0ZSAmJiAhKGF3YWl0IHByZWRpY2F0ZSh2YWx1ZSwgY3R4KSkpIHJldHVybjtcbiAgICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgIHByZXZpb3VzID0gdmFsdWU7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpZSBhIGNoaWxkIGBBYm9ydENvbnRyb2xsZXJgIHRvIGEgcGFyZW50IHNpZ25hbC4gVGhlIGNoaWxkIGFib3J0c1xuICogd2hlbmV2ZXIgdGhlIHBhcmVudCBhYm9ydHM7IGFib3J0aW5nIHRoZSBjaGlsZCBkb2VzIG5vdCBhZmZlY3QgdGhlXG4gKiBwYXJlbnQgKHNvIGEgZmV0Y2gtbGV2ZWwgY2FuY2VsIGRvZXNuJ3QgdGVhciBkb3duIHRoZSBtYWluIHBvbGwgbG9vcCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aWVBYm9ydFNpZ25hbChjaGlsZDogQWJvcnRDb250cm9sbGVyLCBwYXJlbnQ/OiBBYm9ydFNpZ25hbCk6IHZvaWQge1xuICBpZiAoIXBhcmVudCkge1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmIChwYXJlbnQuYWJvcnRlZCkge1xuICAgIGNoaWxkLmFib3J0KHBhcmVudC5yZWFzb24pO1xuICAgIHJldHVybjtcbiAgfVxuICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsICgpID0+IGNoaWxkLmFib3J0KHBhcmVudC5yZWFzb24pLCB7XG4gICAgb25jZTogdHJ1ZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ29tYmluZSBzZXZlcmFsIG9wdGlvbmFsIGNhbmNlbGxhdGlvbiBzb3VyY2VzIGludG8gb25lIHNpZ25hbCB0aGF0IGFib3J0c1xuICogYXMgc29vbiBhcyBhbnkgb2YgdGhlbSBkb2VzLlxuICpcbiAqIFRoZSB1c3VhbCBjYWxsZXIgaXMgYW4gb3BlcmF0aW9uIHRoYXQgaGFzIHRvIGhvbm9yIG1vcmUgdGhhbiBvbmUgc291cmNlIGF0XG4gKiBvbmNlIC0gYSBjYWxsZXIncyBvd24gc2lnbmFsIChhIGNsb3NlZCBjb25uZWN0aW9uLCBhbiBhZ2VudCBydW4gYmVpbmdcbiAqIGNhbmNlbGxlZCkgcGx1cyBvbmUgZGVyaXZlZCBmcm9tIGEgdGltZW91dCAtIHdoZXJlIHRoZSBhd2FpdGVkIEkvTyBhY2NlcHRzXG4gKiBvbmx5IGEgc2luZ2xlIHNpZ25hbC4gQWJzZW50IHNvdXJjZXMgYXJlIGlnbm9yZWQsIGFuZCBhIGxvbmUgc2lnbmFsIGlzXG4gKiByZXR1cm5lZCBhcy1pcyBzbyB0aGUgY29tbW9uIHBhdGggYWxsb2NhdGVzIG5vdGhpbmcuIFJldHVybnMgYHVuZGVmaW5lZGBcbiAqIG9ubHkgd2hlbiBldmVyeSBpbnB1dCBpcyBhYnNlbnQsIHdoaWNoIGNhbGxlcnMgY2FuIHBhc3Mgc3RyYWlnaHQgdGhyb3VnaFxuICogdG8gYW4gb3B0aW9uYWwgYHNpZ25hbGAgcGFyYW1ldGVyLlxuICpcbiAqIEFib3J0aW5nIGFuIGlucHV0IGFib3J0cyB0aGUgcmVzdWx0IChjYXJyeWluZyB0aGF0IGlucHV0J3MgYHJlYXNvbmApO1xuICogbm90aGluZyBwcm9wYWdhdGVzIGJhY2sgdGhlIG90aGVyIHdheS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYXdhaXQgZmV0Y2godXJsLCB7IHNpZ25hbDogY29tYmluZUFib3J0U2lnbmFscyhyZXEuc2lnbmFsLCB0aW1lb3V0LnNpZ25hbCkgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lQWJvcnRTaWduYWxzKFxuICAuLi5zaWduYWxzOiAoQWJvcnRTaWduYWwgfCB1bmRlZmluZWQpW11cbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcHJlc2VudCA9IHNpZ25hbHMuZmlsdGVyKChzaWduYWwpOiBzaWduYWwgaXMgQWJvcnRTaWduYWwgPT4gc2lnbmFsICE9PSB1bmRlZmluZWQpO1xuICBpZiAocHJlc2VudC5sZW5ndGggPD0gMSkgcmV0dXJuIHByZXNlbnRbMF07XG4gIHJldHVybiBBYm9ydFNpZ25hbC5hbnkocHJlc2VudCk7XG59XG5cbi8qKlxuICogUHJvbWlzaWZpZWQgYHNldFRpbWVvdXRgIHRoYXQgd2FrZXMgdXAgZWFybHkgKGFuZCByZWplY3RzIHdpdGhcbiAqIGBzaWduYWwucmVhc29uYCkgd2hlbiBgc2lnbmFsYCBhYm9ydHMgbWlkLXdhaXQuIFNob3J0LWNpcmN1aXRzIHRvIGFcbiAqIHJlamVjdGVkIHByb21pc2Ugd2hlbiB0aGUgc2lnbmFsIGlzIGFscmVhZHkgYWJvcnRlZCBvbiBlbnRyeSwgc28gdGhlXG4gKiBhYm9ydCBwYXRoIGlzIGNvbnNpc3RlbnQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB3YWl0IGFjdHVhbGx5XG4gKiBzdGFydGVkLlxuICpcbiAqIFVzZSBhcyB0aGUgYnVpbGRpbmcgYmxvY2sgZm9yIGFueSBcIndhaXQsIGJ1dCBjYW5jZWwgY2xlYW5seVwiIHBhdHRlcm4gLVxuICogaW50ZXItcG9sbCBiYWNrb2ZmLCBwYWNpbmcgbG9vcHMsIHJldHJ5IHRpbWVycywgbG9uZy1wb2xsIGJ1ZGdldHMgLSBzb1xuICogY2FuY2VsbGF0aW9uIGFsd2F5cyByZWplY3RzIHdpdGggdGhlIGNhbGxlcidzIGBzaWduYWwucmVhc29uYCByYXRoZXJcbiAqIHRoYW4gc2lsZW50bHkgcmVzb2x2aW5nIGFmdGVyIHRoZSB0aW1lciBleHBpcmVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBhd2FpdCBzbGVlcCgyNTAsIHJlcS5zaWduYWwpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlciwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKHNpZ25hbD8uYWJvcnRlZCkgcmV0dXJuIFByb21pc2UucmVqZWN0KHNpZ25hbC5yZWFzb24pO1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQWJvcnQgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgcmVqZWN0KHNpZ25hbCEucmVhc29uKTtcbiAgICB9O1xuICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9LCBtcyk7XG4gICAgc2lnbmFsPy5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICB9KTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -19,7 +19,7 @@
19
19
  "projen": "projen"
20
20
  },
21
21
  "devDependencies": {
22
- "@dbx-tools/test-polyglot": "0.6.222",
22
+ "@dbx-tools/test-polyglot": "0.6.224",
23
23
  "@types/bun": "1.3.14",
24
24
  "@types/node": "^24.6.0",
25
25
  "typescript": "^5.9.3"
@@ -41,7 +41,7 @@
41
41
  "./package.json": "./package.json"
42
42
  }
43
43
  },
44
- "version": "0.6.222",
44
+ "version": "0.6.224",
45
45
  "types": "./lib/index.d.ts",
46
46
  "type": "module",
47
47
  "exports": {
package/src/async.ts CHANGED
@@ -224,9 +224,7 @@ export function combineAbortSignals(
224
224
  ): AbortSignal | undefined {
225
225
  const present = signals.filter((signal): signal is AbortSignal => signal !== undefined);
226
226
  if (present.length <= 1) return present[0];
227
- const combined = new AbortController();
228
- for (const signal of present) tieAbortSignal(combined, signal);
229
- return combined.signal;
227
+ return AbortSignal.any(present);
230
228
  }
231
229
 
232
230
  /**