@bitgo-beta/sdk-core 8.2.1-beta.1544 → 8.2.1-beta.1546

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.
@@ -499,7 +499,7 @@ export interface IBaseCoin {
499
499
  backup: string;
500
500
  bitgo: string;
501
501
  }>;
502
- explainTransaction(options: Record<string, any>): Promise<ITransactionExplanation<any, string | number> | undefined>;
502
+ explainTransaction(options: Record<string, any>, wallet?: IWallet): Promise<ITransactionExplanation<any, string | number> | undefined>;
503
503
  verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
504
504
  verifyAddress(params: VerifyAddressOptions): Promise<boolean>;
505
505
  isWalletAddress(params: VerifyAddressOptions | TssVerifyAddressOptions, wallet?: IWallet): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,UAAU,EAAE,EAAE,oCAAoC,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEpH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,aAAa,CAAC;AAEtD,MAAM,WAAW,MAAO,SAAQ,qBAAqB;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAGpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,eAAe,EAAE,MAAM,CAAC;IAExB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,WAAW,EAAE,GAAG,CAAC;IACjB,QAAQ,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,MAAM;IAC/C,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAC9F;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACf;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CACrD,GACC,CACI;IACE,YAAY,EAAE,KAAK,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CACJ,CAAC;AAEJ,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,kBAAkB,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAChE,kBAAkB;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,oBAAoB,GAAG,uBAAuB,EAChG,MAAM,EAAE,CAAC,GACR,MAAM,IAAI,CAAC,GAAG,uBAAuB,CAOvC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE;QACR,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,GAAG,QAAQ,CAAC;IACjE,YAAY,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC/C,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,OAAO,eAAe,CAAC;CACrC;AAGD,MAAM,WAAW,0BAA0B;IACzC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,UAAU,GAAG,eAAe,GAAG,UAAU,GAAG,SAAS,CAAC;IAChE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,gCAAgC;IAC/C,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,uBAAuB;IACtC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAEhC,2BAA2B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9C,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGF,MAAM,WAAW,sBAAsB;IACrC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,QAAQ,CAAC;IACvB,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,gBAAgB,EAAE,QAAQ,CAAC;CAC5B;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAQ,SAAQ,YAAY;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,CAAC,oBAAoB,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;CACvD;AAED,oBAAY,oBAAoB;IAC9B,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY;IAClD,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,qBAAsB,SAAQ,4BAA4B;IACzE,UAAU,EAAE;QACV,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,iBAAiB,GACzB,4BAA4B,GAC5B,yBAAyB,GACzB,sBAAsB,GACtB,wBAAwB,GACxB,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE;QACV,SAAS,EAAE,SAAS,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,uBAAuB,EAAE,OAAO,CAAC;IACjC,gCAAgC,EAAE,OAAO,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,CACA;IACE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD,CACJ,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG;IAC7D,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,WAAW,+BAA+B;IAC9C,2BAA2B,EAAE,MAAM,CAAC;IACpC,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,SAAS,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;IACvC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,IAAI,QAAQ,CAAC;IACpB,WAAW,IAAI,YAAY,CAAC;IAC5B,SAAS,IAAI,UAAU,CAAC;IACxB,QAAQ,IAAI,SAAS,CAAC;IACtB,gBAAgB,IAAI,iBAAiB,CAAC;IACtC,OAAO,IAAI,QAAQ,CAAC;IACpB,QAAQ,IAAI,MAAM,CAAC;IACnB,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,wBAAwB,IAAI,OAAO,CAAC;IACpC,cAAc,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9E,iBAAiB,IAAI,OAAO,CAAC;IAC7B,sBAAsB,IAAI,OAAO,CAAC;IAClC,2BAA2B,IAAI,OAAO,CAAC;IACvC,wBAAwB,IAAI,qBAAqB,CAAC;IAClD,WAAW,IAAI,OAAO,CAAC;IACvB,gBAAgB,IAAI,OAAO,CAAC;IAC5B,sBAAsB,IAAI,YAAY,GAAG,SAAS,CAAC;IACnD,yBAAyB,IAAI,OAAO,CAAC;IACrC,KAAK,IAAI,OAAO,CAAC;IACjB,cAAc,IAAI,OAAO,CAAC;IAC1B,aAAa,IAAI,MAAM,GAAG,MAAM,CAAC;IACjC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxE,WAAW,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAC/B,aAAa,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACrH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,uBAAuB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5G,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3D,mBAAmB,IAAI,OAAO,CAAC;IAC/B,iBAAiB,IAAI,OAAO,CAAC;IAC7B,sBAAsB,IAAI,OAAO,CAAC;IAClC,wBAAwB,IAAI,OAAO,CAAC;IACpC,wBAAwB,CAAC,YAAY,EAAE,+BAA+B,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnH,sBAAsB,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,mBAAmB,CAAC,gBAAgB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzF,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1F,6BAA6B,CAAC,CAC5B,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE;QAAE,UAAU,EAAE,mBAAmB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1E,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,eAAe,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpD,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,KAAK,CAAC;IACzD,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9E,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5E,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,eAAe,IAAI,YAAY,CAAC;IAEhC,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClF,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAE3D;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,GAAG,4BAA4B,CAAC;IACjG,eAAe,IAAI,IAAI,CAAC;IACxB,oBAAoB,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACvG,6BAA6B,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,oCAAoC,GAAG,IAAI,CAAC;IAE3G;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,cAAc,GAAG,IAAI,CAAC;IACpG,uCAAuC,IAAI,OAAO,CAAC;CACpD"}
1
+ {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,4 @@ var SignTypedDataVersion;
18
18
  SignTypedDataVersion["V3"] = "V3";
19
19
  SignTypedDataVersion["V4"] = "V4";
20
20
  })(SignTypedDataVersion || (exports.SignTypedDataVersion = SignTypedDataVersion = {}));
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUJhc2VDb2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Jhc2VDb2luL2lCYXNlQ29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtTEEsOERBU0M7QUF6S1ksUUFBQSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7Q0FDRixDQUFDO0FBNkpYLFNBQWdCLHlCQUF5QixDQUN2QyxNQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsQ0FDUCxXQUFXLElBQUksTUFBTTtRQUNyQixPQUFPLElBQUksTUFBTTtRQUNqQixTQUFTLElBQUksTUFBTTtRQUNuQixNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQzlFLENBQUM7QUFDSixDQUFDO0FBbUxELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixpQ0FBUyxDQUFBO0lBQ1QsaUNBQVMsQ0FBQTtJQUNULGlDQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9rZW5Db25maWcsIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgSUVudGVycHJpc2VzIH0gZnJvbSAnLi4vZW50ZXJwcmlzZSc7XG5pbXBvcnQgeyBJS2V5Y2hhaW5zLCBLZXljaGFpbiB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IElNYXJrZXRzIH0gZnJvbSAnLi4vbWFya2V0JztcbmltcG9ydCB7IElQZW5kaW5nQXBwcm92YWxzIH0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcbmltcG9ydCB7IEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIH0gZnJvbSAnLi4vcmVjb3ZlcnknO1xuaW1wb3J0IHsgRWNkc2FNUEN2MlV0aWxzLCBFY2RzYVV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvdHNzL2VjZHNhJztcbmltcG9ydCBFZGRzYVV0aWxzLCB7IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucywgVHhSZXF1ZXN0IH0gZnJvbSAnLi4vdXRpbHMvdHNzL2VkZHNhJztcbmltcG9ydCB7IENyZWF0ZUFkZHJlc3NGb3JtYXQsIEN1c3RvbVNpZ25pbmdGdW5jdGlvbiwgSVdhbGxldCwgSVdhbGxldHMsIE1lbW8sIFdhbGxldCwgV2FsbGV0RGF0YSB9IGZyb20gJy4uL3dhbGxldCc7XG5cbmltcG9ydCB7IFRva2VuRW5hYmxlbWVudCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5pbXBvcnQgeyBJSW5zY3JpcHRpb25CdWlsZGVyIH0gZnJvbSAnLi4vaW5zY3JpcHRpb25CdWlsZGVyJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIE1QQ1R4LCBQb3B1bGF0ZWRJbnRlbnQsIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsIFRva2VuVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IElXZWJob29rcyB9IGZyb20gJy4uL3dlYmhvb2svaVdlYmhvb2tzJztcblxuZXhwb3J0IGNvbnN0IG11bHRpc2lnVHlwZXMgPSB7XG4gIG9uY2hhaW46ICdvbmNoYWluJyxcbiAgdHNzOiAndHNzJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE11bHRpc2lnVHlwZSA9IGtleW9mIHR5cGVvZiBtdWx0aXNpZ1R5cGVzO1xuXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dCBleHRlbmRzIElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgLy8gb2YgZm9ybSBjb2luOnRva2VuXG4gIGNvaW5OYW1lPzogc3RyaW5nO1xuICBpc1BheUdvPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBudW1iZXI7XG4gIHdhbGxldD86IHN0cmluZzsgLy8gVHlwZXMuT2JqZWN0SWQ7XG4gIHdhbGxldFYxPzogc3RyaW5nOyAvLyBUeXBlcy5PYmplY3RJZDtcbiAgYmFzZUFkZHJlc3M/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7IC8vIFR5cGVzLk9iamVjdElkO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xuICAvLyBcImNoYW5nZVwiIGlzIGEgdXR4by1zcGVjaWZpYyBjb25jZXB0IGFuZCB0aGlzIHByb3BlcnR5IHNob3VsZFxuICAvLyBiZSByZW1vdmVkIG9uY2UgaXQgaXQncyB1c2FnZSBpcyByZWZhY3RvcmVkIG91dCBvZiBiYXNlIGNvaW4gbG9naWNcbiAgY2hhbmdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSW5wdXQgPSB7XG4gIGRlcml2YXRpb25JbmRleD86IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcjtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgLy8gdGhlIHByb3BlcnRpZXMgYmVsb3cgYXJlIHV0eG8tcmVsYXRlZCBidXQgYXJlIGN1cnJlbnRseSB1c2VkIGluIGFic3RyYWN0QmFzZUNvaW5cbiAgLy8gdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB0aGVpciB1c2FnZSBpcyByZW1vdmVkIGZyb20gdGhlIGJhc2UgY29pbiBjbGFzc1xuICBjaGFpbj86IG51bWJlcjtcbiAgaW5kZXg/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBVbnNpZ25lZFRyYW5zYWN0aW9uID0ge1xuICAvLyB1bnNpZ25lZCB0cmFuc2FjdGlvbiBpbiBicm9hZGNhc3QgZm9ybWF0XG4gIHNlcmlhbGl6ZWRUeEhleDogc3RyaW5nO1xuICAvLyBwb3J0aW9uIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZVxuICBzaWduYWJsZUhleDogc3RyaW5nO1xuICAvLyB0cmFuc2FjdGlvbiBmZWVzXG4gIGZlZUluZm8/OiB7XG4gICAgZmVlOiBudW1iZXIgfCBCaWdOdW1iZXI7XG4gICAgZmVlU3RyaW5nOiBzdHJpbmc7XG4gIH07XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBlbnRyeVZhbHVlczogYW55O1xuICBwYXJzZWRUeDogVW5zaWduZWRQYXJzZWRUcmFuc2FjdGlvbjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwbGFuYXRpb25SZXN1bHQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHNlcXVlbmNlSWQ6IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgb3V0cHV0czogT3V0cHV0W107XG4gIGJsb2NrTnVtYmVyOiBudW1iZXIgfCB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmcgfCBudW1iZXI7XG4gIHRva2VuTmFtZT86IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdG9rZW4gZW5hYmxlbWVudCAoZS5nLiwgY3JlYXRpb24gb2YgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUb2tlbkVuYWJsZW1lbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7IC8vIEFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCBhZGRyZXNzXG4gIHRva2VuTmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB0b2tlbiBiZWluZyBlbmFibGVkXG4gIHRva2VuQWRkcmVzcz86IHN0cmluZzsgLy8gQ29udHJhY3QgYWRkcmVzcyBvZiB0aGUgdG9rZW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25GZWU8VEFtb3VudCA9IHN0cmluZz4ge1xuICBmZWU6IFRBbW91bnQ7XG4gIGZlZVJhdGU/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEF1ZGl0S2V5UGFyYW1zID0geyBwcnY/OiBzdHJpbmc7IGVuY3J5cHRlZFBydj86IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZyB9ICYgKFxuICB8IHsgcHJ2OiBzdHJpbmcgfVxuICB8IHsgZW5jcnlwdGVkUHJ2OiBzdHJpbmc7IHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyB9XG4pICZcbiAgKFxuICAgIHwge1xuICAgICAgICBtdWx0aVNpZ1R5cGU6ICd0c3MnO1xuICAgICAgICBwdWJsaWNLZXk6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgbXVsdGlTaWdUeXBlPzogJ29uY2hhaW4nO1xuICAgICAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCB0eXBlIEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zID0gT21pdDxBdWRpdEtleVBhcmFtcywgJ2VuY3J5cHRlZFBydicgfCAnd2FsbGV0UGFzc3BocmFzZSc+ICYgeyBwcnY6IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPFRGZWUgPSBhbnksIFRBbW91bnQgPSBhbnk+IHtcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGRpc3BsYXlPcmRlcj86IHN0cmluZ1tdO1xuICBpZDogc3RyaW5nO1xuICAvKiogTk9URTogRXh0ZXJuYWwgcmVjaXBpZW50cyAqL1xuICBvdXRwdXRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgLyoqIE5PVEU6IEV4dGVybmFsIGFtb3VudCAqL1xuICBvdXRwdXRBbW91bnQ6IFRBbW91bnQ7XG4gIGNoYW5nZU91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICBjaGFuZ2VBbW91bnQ6IFRBbW91bnQ7XG4gIGZlZTogVEZlZTtcbiAgcHJveHk/OiBzdHJpbmc7XG4gIHByb2R1Y2Vycz86IHN0cmluZ1tdO1xuICAvKiogTk9URTogVG9rZW5zIGJlaW5nIGVuYWJsZWQgZm9yIHRoZSB3YWxsZXQgKi9cbiAgdG9rZW5FbmFibGVtZW50cz86IElUb2tlbkVuYWJsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyIHtcbiAgcHViPzogc3RyaW5nO1xuICBwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmxzS2V5UGFpciBleHRlbmRzIEtleVBhaXIge1xuICBzZWNyZXRTaGFyZXM/OiBzdHJpbmdbXTtcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICBmb3JtYXQ/OiBDcmVhdGVBZGRyZXNzRm9ybWF0O1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFkZHJlc3NUeXBlPzogc3RyaW5nO1xuICBrZXljaGFpbnM/OiB7XG4gICAgcHViOiBzdHJpbmc7XG4gIH1bXTtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYz86IEFkZHJlc3NDb2luU3BlY2lmaWM7XG4gIGltcGxpZWRGb3J3YXJkZXJWZXJzaW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHZlcmlmeWluZyBpZiBhbiBhZGRyZXNzIGJlbG9uZ3MgdG8gYSBUU1MvTVBDIHdhbGxldC5cbiAqIFVzZWQgZm9yIEVkRFNBLWJhc2VkIE1QQyBjb2lucyAoU09MLCBET1QsIFNVSSwgVE9OLCBJT1RBLCBORUFSLCBldGMuKVxuICogdG8gY3J5cHRvZ3JhcGhpY2FsbHkgdmVyaWZ5IGFkZHJlc3MgZGVyaXZhdGlvbiB3aXRob3V0IHRydXN0aW5nIHRoZSBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIC8qKiBUaGUgYWRkcmVzcyB0byB2ZXJpZnkgKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICAvKipcbiAgICogS2V5Y2hhaW5zIGNvbnRhaW5pbmcgdGhlIGNvbW1vbktleWNoYWluIGZvciBIRCBkZXJpdmF0aW9uLlxuICAgKiBGb3IgTVBDIHdhbGxldHMsIHRoZSBjb21tb25LZXljaGFpbiAoY29tYmluZWQgcHVibGljIGtleSBmcm9tIE1QQyBrZXkgZ2VuZXJhdGlvbilcbiAgICogc2hvdWxkIGJlIGlkZW50aWNhbCBhY3Jvc3MgYWxsIGtleWNoYWlucyAodXNlciwgYmFja3VwLCBiaXRnbykuXG4gICAqL1xuICBrZXljaGFpbnM6IFBpY2s8S2V5Y2hhaW4sICdjb21tb25LZXljaGFpbic+W107XG4gIC8qKlxuICAgKiBEZXJpdmF0aW9uIGluZGV4IGZvciB0aGUgYWRkcmVzcy5cbiAgICogVXNlZCB0byBkZXJpdmUgY2hpbGQgYWRkcmVzc2VzIGZyb20gdGhlIHJvb3Qga2V5Y2hhaW4gdmlhIEhEIGRlcml2YXRpb24gcGF0aDogbS97aW5kZXh9XG4gICAqL1xuICBpbmRleDogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUc3NWZXJpZnlBZGRyZXNzT3B0aW9uczxUIGV4dGVuZHMgVmVyaWZ5QWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucz4oXG4gIHBhcmFtczogVFxuKTogcGFyYW1zIGlzIFQgJiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIHJldHVybiAhIShcbiAgICAna2V5Y2hhaW5zJyBpbiBwYXJhbXMgJiZcbiAgICAnaW5kZXgnIGluIHBhcmFtcyAmJlxuICAgICdhZGRyZXNzJyBpbiBwYXJhbXMgJiZcbiAgICBwYXJhbXMua2V5Y2hhaW5zPy5zb21lKChrYykgPT4gJ2NvbW1vbktleWNoYWluJyBpbiBrYyAmJiAhIWtjLmNvbW1vbktleWNoYWluKVxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1ZlcmlmaWNhdGlvbkRhdGEge1xuICBjb2luU3BlY2lmaWM/OiBBZGRyZXNzQ29pblNwZWNpZmljO1xuICBjaGFpbj86IG51bWJlcjtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpY2F0aW9uT3B0aW9ucyB7XG4gIGRpc2FibGVOZXR3b3JraW5nPzogYm9vbGVhbjtcbiAga2V5Y2hhaW5zPzoge1xuICAgIHVzZXI/OiBLZXljaGFpbjtcbiAgICBiYWNrdXA/OiBLZXljaGFpbjtcbiAgICBiaXRnbz86IEtleWNoYWluO1xuICB9O1xuICBhZGRyZXNzZXM/OiB7IFthZGRyZXNzOiBzdHJpbmddOiBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSB9O1xuICBhbGxvd1BheWdvT3V0cHV0PzogYm9vbGVhbjtcbiAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWw/OiBib29sZWFuO1xuICB2ZXJpZnlUb2tlbkVuYWJsZW1lbnQ/OiBib29sZWFuO1xuICAvLyBWZXJpZnkgdHJhbnNhY3Rpb24gaXMgY29uc29saWRhdGluZyB0byB3YWxsZXQncyBiYXNlIGFkZHJlc3NcbiAgY29uc29saWRhdGlvblRvQmFzZUFkZHJlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB2ZXJpZmljYXRpb24/OiBWZXJpZmljYXRpb25PcHRpb25zO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICB3YWxsZXRUeXBlPzogJ29uY2hhaW4nIHwgJ3Rzcyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlciB8IHN0cmluZztcbiAgZWlwMTU1OT86IHtcbiAgICBtYXhGZWVQZXJHYXM6IG51bWJlciB8IHN0cmluZztcbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IG51bWJlciB8IHN0cmluZztcbiAgfTtcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAga2V5cz86IHN0cmluZ1tdO1xuICBrZXlTaWduYXR1cmVzPzoge1xuICAgIGJhY2t1cDogc3RyaW5nO1xuICAgIGJpdGdvOiBzdHJpbmc7XG4gIH07XG4gIHJvb3RQcml2YXRlS2V5Pzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBtdWx0aXNpZ1R5cGU/OiAndHNzJyB8ICdvbmNoYWluJyB8ICdibHNka2cnO1xuICB0eXBlOiAnaG90JyB8ICdjb2xkJyB8ICdjdXN0b2RpYWwnIHwgJ2FkdmFuY2VkJyB8ICd0cmFkaW5nJztcbiAgc3ViVHlwZT86ICdsaWdodG5pbmdDdXN0b2R5JyB8ICdsaWdodG5pbmdTZWxmQ3VzdG9keScgfCAnb25QcmVtJztcbiAgY29pblNwZWNpZmljPzogeyBbY29pbk5hbWU6IHN0cmluZ106IHVua25vd24gfTtcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkPzogc3RyaW5nO1xuICBsaWdodG5pbmdQcm92aWRlcj86ICd2b2x0YWdlJyB8ICdhbWJvc3MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZUVzdGltYXRlT3B0aW9ucyB7XG4gIG51bUJsb2Nrcz86IG51bWJlcjtcbiAgaG9wPzogYm9vbGVhbjtcbiAgcmVjaXBpZW50Pzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBrZXlvZiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ/OiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICB3YWxsZXREYXRhOiBXYWxsZXREYXRhO1xuICB0c3NVdGlsczogRWNkc2FVdGlscyB8IEVjZHNhTVBDdjJVdGlscyB8IEVkZHNhVXRpbHMgfCB1bmRlZmluZWQ7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlY3JlYXRlQml0R29PcHRpb25zIHtcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlSZWNvdmVyeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMge1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKlxuICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGRldGVybWluaW5nIHRoZSBQYXlHbyBmZWUgb2YgYSB0cmFuc2FjdGlvbiB3aGljaCBpcyBvbmx5IHJlbGV2YW50IGZvciBVVFhPIGNvaW5zLlxuICogU29tZSBjb2lucyByZXR1cm4gdmFyaW91cyBvdGhlciBmaWVsZHMgaGVyZSwgYnV0IHRoZXkgYXJlIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSByZXNwZWN0aXZlIGNvaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFRyYW5zYWN0aW9uIHtcbiAgLy8gdGhlIGNhbGxzaXRlIGFzc3VtZXMgdGhhdCB0aGlzIGlzIHRoZSBQYXlHbyBhbW91bnRcbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50PzogbnVtYmVyIHwgYmlnaW50O1xuICAvLyBjb2lucyBtYXkgYWRkIGludGVybmFsIGZpZWxkc1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgdHlwZSBVbnNpZ25lZFBhcnNlZFRyYW5zYWN0aW9uID0ge1xuICBpbnB1dHM6IElucHV0W107XG4gIG1pbmVyRmVlOiBudW1iZXIgfCBzdHJpbmc7XG4gIG91dHB1dHM6IE91dHB1dFtdO1xuICBzcGVuZEFtb3VudDogbnVtYmVyIHwgc3RyaW5nO1xuICBoYXNVbnZhbGlkYXRlZERhdGE/OiBib29sZWFuO1xuICBwYXlHb0ZlZT86IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgc2VxdWVuY2VJZDogbnVtYmVyO1xuICBpZDogc3RyaW5nO1xufTtcblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWdodG5pbmdLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgdXNlckF1dGhLZXljaGFpbjogS2V5Y2hhaW47XG4gIG5vZGVBdXRoS2V5Y2hhaW46IEtleWNoYWluO1xufVxuXG5pbnRlcmZhY2UgQnVpbGRQYXJhbXMge1xuICBwcmV2aWV3PzogYm9vbGVhbjtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xufVxuXG5pbnRlcmZhY2UgQmFzZVNpZ25hYmxlIHtcbiAgd2FsbGV0PzogSVdhbGxldDtcbiAgYnVpbGRQYXJhbXM/OiBCdWlsZFBhcmFtcyAmIFBhcnRpYWw8YW55PjtcbiAgY29uc29saWRhdGVJZD86IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25QcmVidWlsZCBleHRlbmRzIEJhc2VTaWduYWJsZSB7XG4gIHR4QmFzZTY0Pzogc3RyaW5nO1xuICB0eEhleD86IHN0cmluZztcbiAgdHhJbmZvPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIGV4dGVuZHMgQmFzZVNpZ25hYmxlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgbWVzc2FnZVN0YW5kYXJkVHlwZT86IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHNpZ25lckFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVR5cGVQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlVHlwZXMge1xuICBFSVA3MTJEb21haW46IE1lc3NhZ2VUeXBlUHJvcGVydHlbXTtcbiAgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBNZXNzYWdlVHlwZVByb3BlcnR5W107XG59XG5cbmV4cG9ydCBlbnVtIFNpZ25UeXBlZERhdGFWZXJzaW9uIHtcbiAgVjEgPSAnVjEnLFxuICBWMyA9ICdWMycsXG4gIFY0ID0gJ1Y0Jyxcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBtZXNzYWdlIGZvcm1hdCB1c2VkIGZvciBgc2lnblR5cGVEYXRhYCwgZm9yIGFsbCB2ZXJzaW9uc1xuICogZXhjZXB0IGBWMWAuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgY3VzdG9tIHR5cGVzIHVzZWQgYnkgdGhpcyBtZXNzYWdlLlxuICogQHByb3BlcnR5IHR5cGVzIC0gVGhlIGN1c3RvbSB0eXBlcyB1c2VkIGJ5IHRoaXMgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSBwcmltYXJ5VHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLlxuICogQHByb3BlcnR5IGRvbWFpbiAtIFNpZ25pbmcgZG9tYWluIG1ldGFkYXRhLiBUaGUgc2lnbmluZyBkb21haW4gaXMgdGhlIGludGVuZGVkIGNvbnRleHQgZm9yIHRoZVxuICogc2lnbmF0dXJlIChlLmcuIHRoZSBkYXBwLCBwcm90b2NvbCwgZXRjLiB0aGF0IGl0J3MgaW50ZW5kZWQgZm9yKS4gVGhpcyBkYXRhIGlzIHVzZWQgdG9cbiAqIGNvbnN0cnVjdCB0aGUgZG9tYWluIHNlcGVyYXRvciBvZiB0aGUgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSBkb21haW4ubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzaWduaW5nIGRvbWFpbi5cbiAqIEBwcm9wZXJ0eSBkb21haW4udmVyc2lvbiAtIFRoZSBjdXJyZW50IG1ham9yIHZlcnNpb24gb2YgdGhlIHNpZ25pbmcgZG9tYWluLlxuICogQHByb3BlcnR5IGRvbWFpbi5jaGFpbklkIC0gVGhlIGNoYWluIElEIG9mIHRoZSBzaWduaW5nIGRvbWFpbi5cbiAqIEBwcm9wZXJ0eSBkb21haW4udmVyaWZ5aW5nQ29udHJhY3QgLSBUaGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdGhhdCBjYW4gdmVyaWZ5IHRoZSBzaWduYXR1cmUuXG4gKiBAcHJvcGVydHkgZG9tYWluLnNhbHQgLSBBIGRpc2FtYmlndWF0aW5nIHNhbHQgZm9yIHRoZSBwcm90b2NvbC5cbiAqIEBwcm9wZXJ0eSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkTWVzc2FnZTxUIGV4dGVuZHMgTWVzc2FnZVR5cGVzPiB7XG4gIHR5cGVzOiBUO1xuICBwcmltYXJ5VHlwZToga2V5b2YgVDtcbiAgZG9tYWluOiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGNoYWluSWQ/OiBudW1iZXI7XG4gICAgdmVyaWZ5aW5nQ29udHJhY3Q/OiBzdHJpbmc7XG4gICAgc2FsdD86IEFycmF5QnVmZmVyO1xuICB9O1xuICBtZXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlZERhdGEgZXh0ZW5kcyBCYXNlU2lnbmFibGUge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdmVyc2lvbjogU2lnblR5cGVkRGF0YVZlcnNpb247XG4gIHR5cGVkRGF0YUVuY29kZWQ/OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0NvaW5TcGVjaWZpYyB7XG4gIG91dHB1dFNjcmlwdD86IHN0cmluZztcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xuICBiYXNlQWRkcmVzcz86IHN0cmluZztcbiAgcGVuZGluZ0NoYWluSW5pdGlhbGl6YXRpb24/OiBib29sZWFuO1xuICBmb3J3YXJkZXJWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGx5U2lnbmVkVHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nOyAvLyBUcmFuc2FjdGlvbiBpbiBhbnkgZm9ybWF0IHJlcXVpcmVkIGJ5IGVhY2ggY29pbiwgaS5lLiBpbiBUcm9uIGl0IGlzIGEgc3RyaW5naWZ5ZWQgSlNPTlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRBY2NvdW50VHJhbnNhY3Rpb24ge1xuICBoYWxmU2lnbmVkPzoge1xuICAgIHR4SGV4Pzogc3RyaW5nOyAvLyBUcmFuc2FjdGlvbiBpbiBhbnkgZm9ybWF0IHJlcXVpcmVkIGJ5IGVhY2ggY29pbiwgaS5lLiBpbiBUcm9uIGl0IGlzIGEgc3RyaW5naWZ5ZWQgSlNPTlxuICAgIHBheWxvYWQ/OiBzdHJpbmc7XG4gICAgdHhCYXNlNjQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFsZlNpZ25lZFRyYW5zYWN0aW9uIGV4dGVuZHMgSGFsZlNpZ25lZEFjY291bnRUcmFuc2FjdGlvbiB7XG4gIGhhbGZTaWduZWQ6IHtcbiAgICByZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcbiAgICBleHBpcmVUaW1lPzogbnVtYmVyO1xuICAgIGNvbnRyYWN0U2VxdWVuY2VJZD86IG51bWJlcjtcbiAgICBzZXF1ZW5jZUlkPzogbnVtYmVyO1xuICAgIHR4SGV4PzogbmV2ZXI7XG4gICAgaXNCYXRjaD86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0IHtcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVLZXlXaXRoU2VlZE9wdGlvbnMge1xuICBrZXk6IHN0cmluZztcbiAgc2VlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkTW9mTk9wdGlvbnMge1xuICBtPzogbnVtYmVyO1xuICBuPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBTaWduZWRUcmFuc2FjdGlvbiA9XG4gIHwgSGFsZlNpZ25lZEFjY291bnRUcmFuc2FjdGlvblxuICB8IEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb25cbiAgfCBGdWxseVNpZ25lZFRyYW5zYWN0aW9uXG4gIHwgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0XG4gIHwgVHhSZXF1ZXN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lZE1lc3NhZ2Uge1xuICBjb2luPzogc3RyaW5nO1xuICAvLyBAZGVwcmVjYXRlZCAtIHVzZSBgc2lnbmF0dXJlYCBpbnN0ZWFkXG4gIHR4SGFzaDogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgbWVzc2FnZVN0YW5kYXJkVHlwZT86IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHR4UmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyB7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHdhbGxldDogSVdhbGxldDtcbiAgcmVjaXBpZW50OiBzdHJpbmc7XG4gIGJyb2FkY2FzdD86IGJvb2xlYW47XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHBydj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJUb2tlblRyYW5zYWN0aW9uIHtcbiAgaGFsZlNpZ25lZDoge1xuICAgIHJlY2lwaWVudDogUmVjaXBpZW50O1xuICAgIGV4cGlyZVRpbWU6IG51bWJlcjtcbiAgICBjb250cmFjdFNlcXVlbmNlSWQ6IG51bWJlcjtcbiAgICBvcGVyYXRpb25IYXNoOiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgZ2FzTGltaXQ6IG51bWJlcjtcbiAgICBnYXNQcmljZTogbnVtYmVyO1xuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gICAgd2FsbGV0SWQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkVuYWJsZW1lbnRDb25maWcge1xuICByZXF1aXJlc1Rva2VuRW5hYmxlbWVudDogYm9vbGVhbjtcbiAgc3VwcG9ydHNNdWx0aXBsZVRva2VuRW5hYmxlbWVudHM6IGJvb2xlYW47XG4gIHZhbGlkYXRlV2FsbGV0PzogKHdhbGxldFR5cGU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUHJlcCB7XG4gIGVuY29kZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNUENBbGdvcml0aG0gPSAnZWNkc2EnIHwgJ2VkZHNhJztcblxuZXhwb3J0IHR5cGUgTkZUVHJhbnNmZXJPcHRpb25zID0ge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmc7XG59ICYgKFxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkM3MjEnIHwgVG9rZW5UeXBlLkRJR0lUQUxfQVNTRVQ7XG4gICAgICB0b2tlbklkOiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkMxMTU1JztcbiAgICAgIGVudHJpZXM6IHsgdG9rZW5JZDogc3RyaW5nOyBhbW91bnQ6IG51bWJlciB9W107XG4gICAgfVxuKTtcblxuZXhwb3J0IHR5cGUgQnVpbGROZnRUcmFuc2ZlckRhdGFPcHRpb25zID0gTkZUVHJhbnNmZXJPcHRpb25zICYge1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9ucz86IE1QQ1R4W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUJyb2FkY2FzdFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgdHhJZD86IHN0cmluZztcbiAgdHhJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUNvaW4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRva2VuQ29uZmlnPzogQmFzZVRva2VuQ29uZmlnO1xuICBnZXRDb25maWcoKTogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgdXJsKHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nO1xuICB3YWxsZXRzKCk6IElXYWxsZXRzO1xuICBlbnRlcnByaXNlcygpOiBJRW50ZXJwcmlzZXM7XG4gIGtleWNoYWlucygpOiBJS2V5Y2hhaW5zO1xuICB3ZWJob29rcygpOiBJV2ViaG9va3M7XG4gIHBlbmRpbmdBcHByb3ZhbHMoKTogSVBlbmRpbmdBcHByb3ZhbHM7XG4gIG1hcmtldHMoKTogSU1hcmtldHM7XG4gIGdldENoYWluKCk6IHN0cmluZztcbiAgZ2V0RmFtaWx5KCk6IHN0cmluZztcbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nO1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKTogYm9vbGVhbjtcbiAgY2hlY2tSZWNpcGllbnQocmVjaXBpZW50OiB7IGFkZHJlc3M6IHN0cmluZzsgYW1vdW50OiBzdHJpbmcgfCBudW1iZXIgfSk6IHZvaWQ7XG4gIHN3ZWVwV2l0aFNlbmRNYW55KCk6IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uRGF0YUFsbG93ZWQoKTogYm9vbGVhbjtcbiAgYWxsb3dzQWNjb3VudENvbnNvbGlkYXRpb25zKCk6IGJvb2xlYW47XG4gIGdldFRva2VuRW5hYmxlbWVudENvbmZpZygpOiBUb2tlbkVuYWJsZW1lbnRDb25maWc7XG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTXVsdGlzaWcoKTogYm9vbGVhbjtcbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUgfCB1bmRlZmluZWQ7XG4gIHN1cHBvcnRzRGVyaXZlS2V5V2l0aFNlZWQoKTogYm9vbGVhbjtcbiAgaXNFVk0oKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNCbHNEa2coKTogYm9vbGVhbjtcbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIgfCBzdHJpbmc7XG4gIGJhc2VVbml0c1RvQmlnVW5pdHMoYmFzZVVuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmc7XG4gIGJpZ1VuaXRzVG9CYXNlVW5pdHMoYmlnVW5pdHM6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZztcbiAgcHJlcHJvY2Vzc0J1aWxkUGFyYW1zKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHNpZ25NZXNzYWdlKGtleTogeyBwcnY6IHN0cmluZyB9LCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGNyZWF0ZUtleVNpZ25hdHVyZXMoXG4gICAgcHJ2OiBzdHJpbmcsXG4gICAgYmFja3VwS2V5Y2hhaW46IHsgcHViOiBzdHJpbmcgfSxcbiAgICBiaXRnb0tleWNoYWluOiB7IHB1Yjogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTx7XG4gICAgYmFja3VwOiBzdHJpbmc7XG4gICAgYml0Z286IHN0cmluZztcbiAgfT47XG4gIGV4cGxhaW5UcmFuc2FjdGlvbihvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjxhbnksIHN0cmluZyB8IG51bWJlcj4gfCB1bmRlZmluZWQ+O1xuICB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIHZlcmlmeUFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zIHwgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsIHdhbGxldD86IElXYWxsZXQpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBjYW5vbmljYWxBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgZm9ybWF0OiB1bmtub3duKTogc3RyaW5nO1xuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTGlnaHRuaW5nKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTWVzc2FnZVNpZ25pbmcoKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNTaWduaW5nVHlwZWREYXRhKCk6IGJvb2xlYW47XG4gIHN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldCh3YWxsZXRQYXJhbXM6IFN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldE9wdGlvbnMsIGtleWNoYWluczogS2V5Y2hhaW5zVHJpcGxldCk6IFByb21pc2U8YW55PjtcbiAgZ2V0RXh0cmFQcmVidWlsZFBhcmFtcyhidWlsZFBhcmFtczogRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcG9zdFByb2Nlc3NQcmVidWlsZChwcmVidWlsZFJlc3BvbnNlOiBUcmFuc2FjdGlvblByZWJ1aWxkKTogUHJvbWlzZTxUcmFuc2FjdGlvblByZWJ1aWxkPjtcbiAgcHJlc2lnblRyYW5zYWN0aW9uKHBhcmFtczogUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucz47XG4gIHNpZ25XaXRoQ3VzdG9tU2lnbmluZ0Z1bmN0aW9uPyhcbiAgICBjdXN0b21TaWduaW5nRnVuY3Rpb246IEN1c3RvbVNpZ25pbmdGdW5jdGlvbixcbiAgICBzaWduVHJhbnNhY3Rpb25QYXJhbXM6IHsgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDsgcHVicz86IHN0cmluZ1tdIH1cbiAgKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj47XG4gIG5ld1dhbGxldE9iamVjdCh3YWxsZXRQYXJhbXM6IGFueSk6IElXYWxsZXQ7XG4gIGZlZUVzdGltYXRlKHBhcmFtczogRmVlRXN0aW1hdGVPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBkZXJpdmVLZXlXaXRoU2VlZChwYXJhbXM6IERlcml2ZUtleVdpdGhTZWVkT3B0aW9ucyk6IHsga2V5OiBzdHJpbmc7IGRlcml2YXRpb25QYXRoOiBzdHJpbmcgfTtcbiAga2V5SWRzRm9yU2lnbmluZygpOiBudW1iZXJbXTtcbiAgcHJlQ3JlYXRlQml0R28ocGFyYW1zOiBQcmVjcmVhdGVCaXRHb09wdGlvbnMpOiB2b2lkO1xuICBpbml0aWF0ZVJlY292ZXJ5KHBhcmFtczogSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMpOiBuZXZlcjtcbiAgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj47XG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgZ2VuZXJhdGVSb290S2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW47XG4gIGlzVmFsaWRNb2ZOU2V0dXAocGFyYW1zOiBWYWxpZE1vZk5PcHRpb25zKTogYm9vbGVhbjtcbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbjtcbiAgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+O1xuICBnZXRTaWduYWJsZVBheWxvYWQoc2VyaWFsaXplZFR4OiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG07XG4gIC8vIFRPRE8gLSB0aGlzIG9ubHkgYmVsb25ncyBpbiBldGggY29pbnNcbiAgcmVjb3ZlclRva2VuKHBhcmFtczogUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyk6IFByb21pc2U8UmVjb3ZlclRva2VuVHJhbnNhY3Rpb24+O1xuICBnZXRJbnNjcmlwdGlvbkJ1aWxkZXIod2FsbGV0OiBXYWxsZXQpOiBJSW5zY3JpcHRpb25CdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgY2FsbCBkYXRhIGZvciB0cmFuc2ZlcnJpbmcgYSBORlQocykuXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9ucyBzcGVjaWZ5aW5nIHRoZSB0b2tlbiBjb250cmFjdCwgdG9rZW4gcmVjaXBpZW50ICYgdGhlIHRva2VuKHMpIHRvIGJlIHRyYW5zZmVycmVkXG4gICAqIEByZXR1cm4gdGhlIGhleCBzdHJpbmcgZm9yIHRoZSBjb250cmFjdCBjYWxsLlxuICAgKi9cbiAgYnVpbGROZnRUcmFuc2ZlckRhdGEocGFyYW1zOiBCdWlsZE5mdFRyYW5zZmVyRGF0YU9wdGlvbnMpOiBzdHJpbmcgfCBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xuICBnZXRIYXNoRnVuY3Rpb24oKTogSGFzaDtcbiAgYnJvYWRjYXN0VHJhbnNhY3Rpb24ocGFyYW1zOiBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25SZXN1bHQ+O1xuICBzZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChpbnRlbnQ6IFBvcHVsYXRlZEludGVudCwgcGFyYW1zOiBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBdWRpdCBhIGtleSB0byBkZXRlcm1pbmUgaWYgaXQgaXMgdmFsaWQgZm9yIHRoZSBjb2luLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBhdWRpdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnB1YmxpY0tleSAgLSBUaGUgcHVibGljIHBvcnRpb24gb2YgdGhlIGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmVuY3J5cHRlZFBydiAtIFRoZSBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gVGhlIHBhc3NwaHJhc2UgdG8gZGVjcnlwdCB0aGUgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5tdWx0aVNpZ1R5cGUgLSBUaGUgdHlwZSBvZiBtdWx0aXNpZyAoZS5nLiAnb25jaGFpbicgb3IgJ3RzcycpXG4gICAqL1xuICBhc3NlcnRJc1ZhbGlkS2V5KHsgcHVibGljS2V5LCBlbmNyeXB0ZWRQcnYsIHdhbGxldFBhc3NwaHJhc2UsIG11bHRpU2lnVHlwZSB9OiBBdWRpdEtleVBhcmFtcyk6IHZvaWQ7XG4gIHJlcXVpcmVzV2FsbGV0SW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbigpOiBib29sZWFuO1xufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUJhc2VDb2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2Jhc2VDb2luL2lCYXNlQ29pbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtTEEsOERBU0M7QUF6S1ksUUFBQSxhQUFhLEdBQUc7SUFDM0IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7Q0FDRixDQUFDO0FBNkpYLFNBQWdCLHlCQUF5QixDQUN2QyxNQUFTO0lBRVQsT0FBTyxDQUFDLENBQUMsQ0FDUCxXQUFXLElBQUksTUFBTTtRQUNyQixPQUFPLElBQUksTUFBTTtRQUNqQixTQUFTLElBQUksTUFBTTtRQUNuQixNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQzlFLENBQUM7QUFDSixDQUFDO0FBbUxELElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixpQ0FBUyxDQUFBO0lBQ1QsaUNBQVMsQ0FBQTtJQUNULGlDQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFJL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVG9rZW5Db25maWcsIEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgSUVudGVycHJpc2VzIH0gZnJvbSAnLi4vZW50ZXJwcmlzZSc7XG5pbXBvcnQgeyBJS2V5Y2hhaW5zLCBLZXljaGFpbiB9IGZyb20gJy4uL2tleWNoYWluJztcbmltcG9ydCB7IElNYXJrZXRzIH0gZnJvbSAnLi4vbWFya2V0JztcbmltcG9ydCB7IElQZW5kaW5nQXBwcm92YWxzIH0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcbmltcG9ydCB7IEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIH0gZnJvbSAnLi4vcmVjb3ZlcnknO1xuaW1wb3J0IHsgRWNkc2FNUEN2MlV0aWxzLCBFY2RzYVV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvdHNzL2VjZHNhJztcbmltcG9ydCBFZGRzYVV0aWxzLCB7IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucywgVHhSZXF1ZXN0IH0gZnJvbSAnLi4vdXRpbHMvdHNzL2VkZHNhJztcbmltcG9ydCB7IENyZWF0ZUFkZHJlc3NGb3JtYXQsIEN1c3RvbVNpZ25pbmdGdW5jdGlvbiwgSVdhbGxldCwgSVdhbGxldHMsIE1lbW8sIFdhbGxldCwgV2FsbGV0RGF0YSB9IGZyb20gJy4uL3dhbGxldCc7XG5cbmltcG9ydCB7IFRva2VuRW5hYmxlbWVudCB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5pbXBvcnQgeyBJSW5zY3JpcHRpb25CdWlsZGVyIH0gZnJvbSAnLi4vaW5zY3JpcHRpb25CdWlsZGVyJztcbmltcG9ydCB7IE1lc3NhZ2VTdGFuZGFyZFR5cGUsIE1QQ1R4LCBQb3B1bGF0ZWRJbnRlbnQsIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMsIFRva2VuVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IElXZWJob29rcyB9IGZyb20gJy4uL3dlYmhvb2svaVdlYmhvb2tzJztcblxuZXhwb3J0IGNvbnN0IG11bHRpc2lnVHlwZXMgPSB7XG4gIG9uY2hhaW46ICdvbmNoYWluJyxcbiAgdHNzOiAndHNzJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE11bHRpc2lnVHlwZSA9IGtleW9mIHR5cGVvZiBtdWx0aXNpZ1R5cGVzO1xuXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dCBleHRlbmRzIElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgLy8gb2YgZm9ybSBjb2luOnRva2VuXG4gIGNvaW5OYW1lPzogc3RyaW5nO1xuICBpc1BheUdvPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBudW1iZXI7XG4gIHdhbGxldD86IHN0cmluZzsgLy8gVHlwZXMuT2JqZWN0SWQ7XG4gIHdhbGxldFYxPzogc3RyaW5nOyAvLyBUeXBlcy5PYmplY3RJZDtcbiAgYmFzZUFkZHJlc3M/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7IC8vIFR5cGVzLk9iamVjdElkO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xuICAvLyBcImNoYW5nZVwiIGlzIGEgdXR4by1zcGVjaWZpYyBjb25jZXB0IGFuZCB0aGlzIHByb3BlcnR5IHNob3VsZFxuICAvLyBiZSByZW1vdmVkIG9uY2UgaXQgaXQncyB1c2FnZSBpcyByZWZhY3RvcmVkIG91dCBvZiBiYXNlIGNvaW4gbG9naWNcbiAgY2hhbmdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSW5wdXQgPSB7XG4gIGRlcml2YXRpb25JbmRleD86IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcjtcbiAgYWRkcmVzcz86IHN0cmluZztcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgLy8gdGhlIHByb3BlcnRpZXMgYmVsb3cgYXJlIHV0eG8tcmVsYXRlZCBidXQgYXJlIGN1cnJlbnRseSB1c2VkIGluIGFic3RyYWN0QmFzZUNvaW5cbiAgLy8gdGhlc2Ugc2hvdWxkIGJlIHJlbW92ZWQgb25jZSB0aGVpciB1c2FnZSBpcyByZW1vdmVkIGZyb20gdGhlIGJhc2UgY29pbiBjbGFzc1xuICBjaGFpbj86IG51bWJlcjtcbiAgaW5kZXg/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBVbnNpZ25lZFRyYW5zYWN0aW9uID0ge1xuICAvLyB1bnNpZ25lZCB0cmFuc2FjdGlvbiBpbiBicm9hZGNhc3QgZm9ybWF0XG4gIHNlcmlhbGl6ZWRUeEhleDogc3RyaW5nO1xuICAvLyBwb3J0aW9uIG9mIGEgdHJhbnNhY3Rpb24gdXNlZCB0byBnZW5lcmF0ZSBhIHNpZ25hdHVyZVxuICBzaWduYWJsZUhleDogc3RyaW5nO1xuICAvLyB0cmFuc2FjdGlvbiBmZWVzXG4gIGZlZUluZm8/OiB7XG4gICAgZmVlOiBudW1iZXIgfCBCaWdOdW1iZXI7XG4gICAgZmVlU3RyaW5nOiBzdHJpbmc7XG4gIH07XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBlbnRyeVZhbHVlczogYW55O1xuICBwYXJzZWRUeDogVW5zaWduZWRQYXJzZWRUcmFuc2FjdGlvbjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwbGFuYXRpb25SZXN1bHQgZXh0ZW5kcyBJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHNlcXVlbmNlSWQ6IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgb3V0cHV0czogT3V0cHV0W107XG4gIGJsb2NrTnVtYmVyOiBudW1iZXIgfCB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmcgfCBudW1iZXI7XG4gIHRva2VuTmFtZT86IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdG9rZW4gZW5hYmxlbWVudCAoZS5nLiwgY3JlYXRpb24gb2YgYW4gYXNzb2NpYXRlZCB0b2tlbiBhY2NvdW50KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUb2tlbkVuYWJsZW1lbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7IC8vIEFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCBhZGRyZXNzXG4gIHRva2VuTmFtZTogc3RyaW5nOyAvLyBOYW1lIG9mIHRoZSB0b2tlbiBiZWluZyBlbmFibGVkXG4gIHRva2VuQWRkcmVzcz86IHN0cmluZzsgLy8gQ29udHJhY3QgYWRkcmVzcyBvZiB0aGUgdG9rZW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNhY3Rpb25GZWU8VEFtb3VudCA9IHN0cmluZz4ge1xuICBmZWU6IFRBbW91bnQ7XG4gIGZlZVJhdGU/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIEF1ZGl0S2V5UGFyYW1zID0geyBwcnY/OiBzdHJpbmc7IGVuY3J5cHRlZFBydj86IHN0cmluZzsgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZyB9ICYgKFxuICB8IHsgcHJ2OiBzdHJpbmcgfVxuICB8IHsgZW5jcnlwdGVkUHJ2OiBzdHJpbmc7IHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyB9XG4pICZcbiAgKFxuICAgIHwge1xuICAgICAgICBtdWx0aVNpZ1R5cGU6ICd0c3MnO1xuICAgICAgICBwdWJsaWNLZXk6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgbXVsdGlTaWdUeXBlPzogJ29uY2hhaW4nO1xuICAgICAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCB0eXBlIEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zID0gT21pdDxBdWRpdEtleVBhcmFtcywgJ2VuY3J5cHRlZFBydicgfCAnd2FsbGV0UGFzc3BocmFzZSc+ICYgeyBwcnY6IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPFRGZWUgPSBhbnksIFRBbW91bnQgPSBhbnk+IHtcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGRpc3BsYXlPcmRlcj86IHN0cmluZ1tdO1xuICBpZDogc3RyaW5nO1xuICAvKiogTk9URTogRXh0ZXJuYWwgcmVjaXBpZW50cyAqL1xuICBvdXRwdXRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTtcbiAgLyoqIE5PVEU6IEV4dGVybmFsIGFtb3VudCAqL1xuICBvdXRwdXRBbW91bnQ6IFRBbW91bnQ7XG4gIGNoYW5nZU91dHB1dHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICBjaGFuZ2VBbW91bnQ6IFRBbW91bnQ7XG4gIGZlZTogVEZlZTtcbiAgcHJveHk/OiBzdHJpbmc7XG4gIHByb2R1Y2Vycz86IHN0cmluZ1tdO1xuICAvKiogTk9URTogVG9rZW5zIGJlaW5nIGVuYWJsZWQgZm9yIHRoZSB3YWxsZXQgKi9cbiAgdG9rZW5FbmFibGVtZW50cz86IElUb2tlbkVuYWJsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyIHtcbiAgcHViPzogc3RyaW5nO1xuICBwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmxzS2V5UGFpciBleHRlbmRzIEtleVBhaXIge1xuICBzZWNyZXRTaGFyZXM/OiBzdHJpbmdbXTtcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5QWRkcmVzc09wdGlvbnMge1xuICBmb3JtYXQ/OiBDcmVhdGVBZGRyZXNzRm9ybWF0O1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFkZHJlc3NUeXBlPzogc3RyaW5nO1xuICBrZXljaGFpbnM/OiB7XG4gICAgcHViOiBzdHJpbmc7XG4gIH1bXTtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYz86IEFkZHJlc3NDb2luU3BlY2lmaWM7XG4gIGltcGxpZWRGb3J3YXJkZXJWZXJzaW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHZlcmlmeWluZyBpZiBhbiBhZGRyZXNzIGJlbG9uZ3MgdG8gYSBUU1MvTVBDIHdhbGxldC5cbiAqIFVzZWQgZm9yIEVkRFNBLWJhc2VkIE1QQyBjb2lucyAoU09MLCBET1QsIFNVSSwgVE9OLCBJT1RBLCBORUFSLCBldGMuKVxuICogdG8gY3J5cHRvZ3JhcGhpY2FsbHkgdmVyaWZ5IGFkZHJlc3MgZGVyaXZhdGlvbiB3aXRob3V0IHRydXN0aW5nIHRoZSBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIC8qKiBUaGUgYWRkcmVzcyB0byB2ZXJpZnkgKi9cbiAgYWRkcmVzczogc3RyaW5nO1xuICAvKipcbiAgICogS2V5Y2hhaW5zIGNvbnRhaW5pbmcgdGhlIGNvbW1vbktleWNoYWluIGZvciBIRCBkZXJpdmF0aW9uLlxuICAgKiBGb3IgTVBDIHdhbGxldHMsIHRoZSBjb21tb25LZXljaGFpbiAoY29tYmluZWQgcHVibGljIGtleSBmcm9tIE1QQyBrZXkgZ2VuZXJhdGlvbilcbiAgICogc2hvdWxkIGJlIGlkZW50aWNhbCBhY3Jvc3MgYWxsIGtleWNoYWlucyAodXNlciwgYmFja3VwLCBiaXRnbykuXG4gICAqL1xuICBrZXljaGFpbnM6IFBpY2s8S2V5Y2hhaW4sICdjb21tb25LZXljaGFpbic+W107XG4gIC8qKlxuICAgKiBEZXJpdmF0aW9uIGluZGV4IGZvciB0aGUgYWRkcmVzcy5cbiAgICogVXNlZCB0byBkZXJpdmUgY2hpbGQgYWRkcmVzc2VzIGZyb20gdGhlIHJvb3Qga2V5Y2hhaW4gdmlhIEhEIGRlcml2YXRpb24gcGF0aDogbS97aW5kZXh9XG4gICAqL1xuICBpbmRleDogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUc3NWZXJpZnlBZGRyZXNzT3B0aW9uczxUIGV4dGVuZHMgVmVyaWZ5QWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucz4oXG4gIHBhcmFtczogVFxuKTogcGFyYW1zIGlzIFQgJiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9ucyB7XG4gIHJldHVybiAhIShcbiAgICAna2V5Y2hhaW5zJyBpbiBwYXJhbXMgJiZcbiAgICAnaW5kZXgnIGluIHBhcmFtcyAmJlxuICAgICdhZGRyZXNzJyBpbiBwYXJhbXMgJiZcbiAgICBwYXJhbXMua2V5Y2hhaW5zPy5zb21lKChrYykgPT4gJ2NvbW1vbktleWNoYWluJyBpbiBrYyAmJiAhIWtjLmNvbW1vbktleWNoYWluKVxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1ZlcmlmaWNhdGlvbkRhdGEge1xuICBjb2luU3BlY2lmaWM/OiBBZGRyZXNzQ29pblNwZWNpZmljO1xuICBjaGFpbj86IG51bWJlcjtcbiAgaW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZpY2F0aW9uT3B0aW9ucyB7XG4gIGRpc2FibGVOZXR3b3JraW5nPzogYm9vbGVhbjtcbiAga2V5Y2hhaW5zPzoge1xuICAgIHVzZXI/OiBLZXljaGFpbjtcbiAgICBiYWNrdXA/OiBLZXljaGFpbjtcbiAgICBiaXRnbz86IEtleWNoYWluO1xuICB9O1xuICBhZGRyZXNzZXM/OiB7IFthZGRyZXNzOiBzdHJpbmddOiBBZGRyZXNzVmVyaWZpY2F0aW9uRGF0YSB9O1xuICBhbGxvd1BheWdvT3V0cHV0PzogYm9vbGVhbjtcbiAgY29uc2lkZXJNaWdyYXRlZEZyb21BZGRyZXNzSW50ZXJuYWw/OiBib29sZWFuO1xuICB2ZXJpZnlUb2tlbkVuYWJsZW1lbnQ/OiBib29sZWFuO1xuICAvLyBWZXJpZnkgdHJhbnNhY3Rpb24gaXMgY29uc29saWRhdGluZyB0byB3YWxsZXQncyBiYXNlIGFkZHJlc3NcbiAgY29uc29saWRhdGlvblRvQmFzZUFkZHJlc3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ6IFRyYW5zYWN0aW9uUHJlYnVpbGQ7XG4gIHR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcztcbiAgd2FsbGV0OiBJV2FsbGV0O1xuICB2ZXJpZmljYXRpb24/OiBWZXJpZmljYXRpb25PcHRpb25zO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICB3YWxsZXRUeXBlPzogJ29uY2hhaW4nIHwgJ3Rzcyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG0/OiBudW1iZXI7XG4gIG4/OiBudW1iZXI7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIGRpc2FibGVUcmFuc2FjdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICBnYXNQcmljZT86IG51bWJlciB8IHN0cmluZztcbiAgZWlwMTU1OT86IHtcbiAgICBtYXhGZWVQZXJHYXM6IG51bWJlciB8IHN0cmluZztcbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IG51bWJlciB8IHN0cmluZztcbiAgfTtcbiAgd2FsbGV0VmVyc2lvbj86IG51bWJlcjtcbiAga2V5cz86IHN0cmluZ1tdO1xuICBrZXlTaWduYXR1cmVzPzoge1xuICAgIGJhY2t1cDogc3RyaW5nO1xuICAgIGJpdGdvOiBzdHJpbmc7XG4gIH07XG4gIHJvb3RQcml2YXRlS2V5Pzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBtdWx0aXNpZ1R5cGU/OiAndHNzJyB8ICdvbmNoYWluJyB8ICdibHNka2cnO1xuICB0eXBlOiAnaG90JyB8ICdjb2xkJyB8ICdjdXN0b2RpYWwnIHwgJ2FkdmFuY2VkJyB8ICd0cmFkaW5nJztcbiAgc3ViVHlwZT86ICdsaWdodG5pbmdDdXN0b2R5JyB8ICdsaWdodG5pbmdTZWxmQ3VzdG9keScgfCAnb25QcmVtJztcbiAgY29pblNwZWNpZmljPzogeyBbY29pbk5hbWU6IHN0cmluZ106IHVua25vd24gfTtcbiAgZXZtS2V5UmluZ1JlZmVyZW5jZVdhbGxldElkPzogc3RyaW5nO1xuICBsaWdodG5pbmdQcm92aWRlcj86ICd2b2x0YWdlJyB8ICdhbWJvc3MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZUVzdGltYXRlT3B0aW9ucyB7XG4gIG51bUJsb2Nrcz86IG51bWJlcjtcbiAgaG9wPzogYm9vbGVhbjtcbiAgcmVjaXBpZW50Pzogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIHR5cGU/OiBrZXlvZiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIHR4UHJlYnVpbGQ/OiBUcmFuc2FjdGlvblByZWJ1aWxkO1xuICB3YWxsZXREYXRhOiBXYWxsZXREYXRhO1xuICB0c3NVdGlsczogRWNkc2FVdGlscyB8IEVjZHNhTVBDdjJVdGlscyB8IEVkZHNhVXRpbHMgfCB1bmRlZmluZWQ7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUHJlY3JlYXRlQml0R29PcHRpb25zIHtcbiAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vLyBUT0RPIChTREtULTkpOiByZXZlcnNlIGVuZ2luZWVyIGFuZCBhZGQgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlSZWNvdmVyeVRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMge1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKlxuICogVGhpcyBpcyBvbmx5IHVzZWQgZm9yIGRldGVybWluaW5nIHRoZSBQYXlHbyBmZWUgb2YgYSB0cmFuc2FjdGlvbiB3aGljaCBpcyBvbmx5IHJlbGV2YW50IGZvciBVVFhPIGNvaW5zLlxuICogU29tZSBjb2lucyByZXR1cm4gdmFyaW91cyBvdGhlciBmaWVsZHMgaGVyZSwgYnV0IHRoZXkgYXJlIG9ubHkgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSByZXNwZWN0aXZlIGNvaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFRyYW5zYWN0aW9uIHtcbiAgLy8gdGhlIGNhbGxzaXRlIGFzc3VtZXMgdGhhdCB0aGlzIGlzIHRoZSBQYXlHbyBhbW91bnRcbiAgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50PzogbnVtYmVyIHwgYmlnaW50O1xuICAvLyBjb2lucyBtYXkgYWRkIGludGVybmFsIGZpZWxkc1xuICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XG59XG5cbi8vIFRPRE8gKFNES1QtOSk6IHJldmVyc2UgZW5naW5lZXIgYW5kIGFkZCBvcHRpb25zXG5leHBvcnQgdHlwZSBVbnNpZ25lZFBhcnNlZFRyYW5zYWN0aW9uID0ge1xuICBpbnB1dHM6IElucHV0W107XG4gIG1pbmVyRmVlOiBudW1iZXIgfCBzdHJpbmc7XG4gIG91dHB1dHM6IE91dHB1dFtdO1xuICBzcGVuZEFtb3VudDogbnVtYmVyIHwgc3RyaW5nO1xuICBoYXNVbnZhbGlkYXRlZERhdGE/OiBib29sZWFuO1xuICBwYXlHb0ZlZT86IG51bWJlcjtcbiAgdHlwZT86IHN0cmluZztcbiAgc2VxdWVuY2VJZDogbnVtYmVyO1xuICBpZDogc3RyaW5nO1xufTtcblxuLy8gVE9ETyAoU0RLVC05KTogcmV2ZXJzZSBlbmdpbmVlciBhbmQgYWRkIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB7XG4gIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluO1xuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWdodG5pbmdLZXljaGFpbnNUcmlwbGV0IHtcbiAgdXNlcktleWNoYWluOiBLZXljaGFpbjtcbiAgdXNlckF1dGhLZXljaGFpbjogS2V5Y2hhaW47XG4gIG5vZGVBdXRoS2V5Y2hhaW46IEtleWNoYWluO1xufVxuXG5pbnRlcmZhY2UgQnVpbGRQYXJhbXMge1xuICBwcmV2aWV3PzogYm9vbGVhbjtcbiAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xufVxuXG5pbnRlcmZhY2UgQmFzZVNpZ25hYmxlIHtcbiAgd2FsbGV0PzogSVdhbGxldDtcbiAgYnVpbGRQYXJhbXM/OiBCdWlsZFBhcmFtcyAmIFBhcnRpYWw8YW55PjtcbiAgY29uc29saWRhdGVJZD86IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25QcmVidWlsZCBleHRlbmRzIEJhc2VTaWduYWJsZSB7XG4gIHR4QmFzZTY0Pzogc3RyaW5nO1xuICB0eEhleD86IHN0cmluZztcbiAgdHhJbmZvPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIGV4dGVuZHMgQmFzZVNpZ25hYmxlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgbWVzc2FnZVN0YW5kYXJkVHlwZT86IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHNpZ25lckFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVR5cGVQcm9wZXJ0eSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlVHlwZXMge1xuICBFSVA3MTJEb21haW46IE1lc3NhZ2VUeXBlUHJvcGVydHlbXTtcbiAgW2FkZGl0aW9uYWxQcm9wZXJ0aWVzOiBzdHJpbmddOiBNZXNzYWdlVHlwZVByb3BlcnR5W107XG59XG5cbmV4cG9ydCBlbnVtIFNpZ25UeXBlZERhdGFWZXJzaW9uIHtcbiAgVjEgPSAnVjEnLFxuICBWMyA9ICdWMycsXG4gIFY0ID0gJ1Y0Jyxcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBtZXNzYWdlIGZvcm1hdCB1c2VkIGZvciBgc2lnblR5cGVEYXRhYCwgZm9yIGFsbCB2ZXJzaW9uc1xuICogZXhjZXB0IGBWMWAuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgY3VzdG9tIHR5cGVzIHVzZWQgYnkgdGhpcyBtZXNzYWdlLlxuICogQHByb3BlcnR5IHR5cGVzIC0gVGhlIGN1c3RvbSB0eXBlcyB1c2VkIGJ5IHRoaXMgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSBwcmltYXJ5VHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLlxuICogQHByb3BlcnR5IGRvbWFpbiAtIFNpZ25pbmcgZG9tYWluIG1ldGFkYXRhLiBUaGUgc2lnbmluZyBkb21haW4gaXMgdGhlIGludGVuZGVkIGNvbnRleHQgZm9yIHRoZVxuICogc2lnbmF0dXJlIChlLmcuIHRoZSBkYXBwLCBwcm90b2NvbCwgZXRjLiB0aGF0IGl0J3MgaW50ZW5kZWQgZm9yKS4gVGhpcyBkYXRhIGlzIHVzZWQgdG9cbiAqIGNvbnN0cnVjdCB0aGUgZG9tYWluIHNlcGVyYXRvciBvZiB0aGUgbWVzc2FnZS5cbiAqIEBwcm9wZXJ0eSBkb21haW4ubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzaWduaW5nIGRvbWFpbi5cbiAqIEBwcm9wZXJ0eSBkb21haW4udmVyc2lvbiAtIFRoZSBjdXJyZW50IG1ham9yIHZlcnNpb24gb2YgdGhlIHNpZ25pbmcgZG9tYWluLlxuICogQHByb3BlcnR5IGRvbWFpbi5jaGFpbklkIC0gVGhlIGNoYWluIElEIG9mIHRoZSBzaWduaW5nIGRvbWFpbi5cbiAqIEBwcm9wZXJ0eSBkb21haW4udmVyaWZ5aW5nQ29udHJhY3QgLSBUaGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdGhhdCBjYW4gdmVyaWZ5IHRoZSBzaWduYXR1cmUuXG4gKiBAcHJvcGVydHkgZG9tYWluLnNhbHQgLSBBIGRpc2FtYmlndWF0aW5nIHNhbHQgZm9yIHRoZSBwcm90b2NvbC5cbiAqIEBwcm9wZXJ0eSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkTWVzc2FnZTxUIGV4dGVuZHMgTWVzc2FnZVR5cGVzPiB7XG4gIHR5cGVzOiBUO1xuICBwcmltYXJ5VHlwZToga2V5b2YgVDtcbiAgZG9tYWluOiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGNoYWluSWQ/OiBudW1iZXI7XG4gICAgdmVyaWZ5aW5nQ29udHJhY3Q/OiBzdHJpbmc7XG4gICAgc2FsdD86IEFycmF5QnVmZmVyO1xuICB9O1xuICBtZXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlZERhdGEgZXh0ZW5kcyBCYXNlU2lnbmFibGUge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdmVyc2lvbjogU2lnblR5cGVkRGF0YVZlcnNpb247XG4gIHR5cGVkRGF0YUVuY29kZWQ/OiBCdWZmZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc0NvaW5TcGVjaWZpYyB7XG4gIG91dHB1dFNjcmlwdD86IHN0cmluZztcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xuICBiYXNlQWRkcmVzcz86IHN0cmluZztcbiAgcGVuZGluZ0NoYWluSW5pdGlhbGl6YXRpb24/OiBib29sZWFuO1xuICBmb3J3YXJkZXJWZXJzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGx5U2lnbmVkVHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nOyAvLyBUcmFuc2FjdGlvbiBpbiBhbnkgZm9ybWF0IHJlcXVpcmVkIGJ5IGVhY2ggY29pbiwgaS5lLiBpbiBUcm9uIGl0IGlzIGEgc3RyaW5naWZ5ZWQgSlNPTlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb24ge1xuICB0eEhleDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhbGZTaWduZWRBY2NvdW50VHJhbnNhY3Rpb24ge1xuICBoYWxmU2lnbmVkPzoge1xuICAgIHR4SGV4Pzogc3RyaW5nOyAvLyBUcmFuc2FjdGlvbiBpbiBhbnkgZm9ybWF0IHJlcXVpcmVkIGJ5IGVhY2ggY29pbiwgaS5lLiBpbiBUcm9uIGl0IGlzIGEgc3RyaW5naWZ5ZWQgSlNPTlxuICAgIHBheWxvYWQ/OiBzdHJpbmc7XG4gICAgdHhCYXNlNjQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFsZlNpZ25lZFRyYW5zYWN0aW9uIGV4dGVuZHMgSGFsZlNpZ25lZEFjY291bnRUcmFuc2FjdGlvbiB7XG4gIGhhbGZTaWduZWQ6IHtcbiAgICByZWNpcGllbnRzOiBSZWNpcGllbnRbXTtcbiAgICBleHBpcmVUaW1lPzogbnVtYmVyO1xuICAgIGNvbnRyYWN0U2VxdWVuY2VJZD86IG51bWJlcjtcbiAgICBzZXF1ZW5jZUlkPzogbnVtYmVyO1xuICAgIHR4SGV4PzogbmV2ZXI7XG4gICAgaXNCYXRjaD86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0IHtcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXJpdmVLZXlXaXRoU2VlZE9wdGlvbnMge1xuICBrZXk6IHN0cmluZztcbiAgc2VlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkTW9mTk9wdGlvbnMge1xuICBtPzogbnVtYmVyO1xuICBuPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBTaWduZWRUcmFuc2FjdGlvbiA9XG4gIHwgSGFsZlNpZ25lZEFjY291bnRUcmFuc2FjdGlvblxuICB8IEhhbGZTaWduZWRVdHhvVHJhbnNhY3Rpb25cbiAgfCBGdWxseVNpZ25lZFRyYW5zYWN0aW9uXG4gIHwgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0XG4gIHwgVHhSZXF1ZXN0O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lZE1lc3NhZ2Uge1xuICBjb2luPzogc3RyaW5nO1xuICAvLyBAZGVwcmVjYXRlZCAtIHVzZSBgc2lnbmF0dXJlYCBpbnN0ZWFkXG4gIHR4SGFzaDogc3RyaW5nO1xuICBzaWduYXR1cmU6IHN0cmluZztcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgbWVzc2FnZVN0YW5kYXJkVHlwZT86IE1lc3NhZ2VTdGFuZGFyZFR5cGU7XG4gIHR4UmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyB7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHdhbGxldDogSVdhbGxldDtcbiAgcmVjaXBpZW50OiBzdHJpbmc7XG4gIGJyb2FkY2FzdD86IGJvb2xlYW47XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHBydj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNpcGllbnQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBkYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJUb2tlblRyYW5zYWN0aW9uIHtcbiAgaGFsZlNpZ25lZDoge1xuICAgIHJlY2lwaWVudDogUmVjaXBpZW50O1xuICAgIGV4cGlyZVRpbWU6IG51bWJlcjtcbiAgICBjb250cmFjdFNlcXVlbmNlSWQ6IG51bWJlcjtcbiAgICBvcGVyYXRpb25IYXNoOiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlOiBzdHJpbmc7XG4gICAgZ2FzTGltaXQ6IG51bWJlcjtcbiAgICBnYXNQcmljZTogbnVtYmVyO1xuICAgIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gICAgd2FsbGV0SWQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkVuYWJsZW1lbnRDb25maWcge1xuICByZXF1aXJlc1Rva2VuRW5hYmxlbWVudDogYm9vbGVhbjtcbiAgc3VwcG9ydHNNdWx0aXBsZVRva2VuRW5hYmxlbWVudHM6IGJvb2xlYW47XG4gIHZhbGlkYXRlV2FsbGV0PzogKHdhbGxldFR5cGU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUHJlcCB7XG4gIGVuY29kZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNUENBbGdvcml0aG0gPSAnZWNkc2EnIHwgJ2VkZHNhJztcblxuZXhwb3J0IHR5cGUgTkZUVHJhbnNmZXJPcHRpb25zID0ge1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmc7XG59ICYgKFxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkM3MjEnIHwgVG9rZW5UeXBlLkRJR0lUQUxfQVNTRVQ7XG4gICAgICB0b2tlbklkOiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6ICdFUkMxMTU1JztcbiAgICAgIGVudHJpZXM6IHsgdG9rZW5JZDogc3RyaW5nOyBhbW91bnQ6IG51bWJlciB9W107XG4gICAgfVxuKTtcblxuZXhwb3J0IHR5cGUgQnVpbGROZnRUcmFuc2ZlckRhdGFPcHRpb25zID0gTkZUVHJhbnNmZXJPcHRpb25zICYge1xuICBmcm9tQWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9ucz86IE1QQ1R4W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUJyb2FkY2FzdFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgdHhJZD86IHN0cmluZztcbiAgdHhJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUNvaW4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRva2VuQ29uZmlnPzogQmFzZVRva2VuQ29uZmlnO1xuICBnZXRDb25maWcoKTogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgdXJsKHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nO1xuICB3YWxsZXRzKCk6IElXYWxsZXRzO1xuICBlbnRlcnByaXNlcygpOiBJRW50ZXJwcmlzZXM7XG4gIGtleWNoYWlucygpOiBJS2V5Y2hhaW5zO1xuICB3ZWJob29rcygpOiBJV2ViaG9va3M7XG4gIHBlbmRpbmdBcHByb3ZhbHMoKTogSVBlbmRpbmdBcHByb3ZhbHM7XG4gIG1hcmtldHMoKTogSU1hcmtldHM7XG4gIGdldENoYWluKCk6IHN0cmluZztcbiAgZ2V0RmFtaWx5KCk6IHN0cmluZztcbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nO1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKTogYm9vbGVhbjtcbiAgY2hlY2tSZWNpcGllbnQocmVjaXBpZW50OiB7IGFkZHJlc3M6IHN0cmluZzsgYW1vdW50OiBzdHJpbmcgfCBudW1iZXIgfSk6IHZvaWQ7XG4gIHN3ZWVwV2l0aFNlbmRNYW55KCk6IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uRGF0YUFsbG93ZWQoKTogYm9vbGVhbjtcbiAgYWxsb3dzQWNjb3VudENvbnNvbGlkYXRpb25zKCk6IGJvb2xlYW47XG4gIGdldFRva2VuRW5hYmxlbWVudENvbmZpZygpOiBUb2tlbkVuYWJsZW1lbnRDb25maWc7XG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTXVsdGlzaWcoKTogYm9vbGVhbjtcbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUgfCB1bmRlZmluZWQ7XG4gIHN1cHBvcnRzRGVyaXZlS2V5V2l0aFNlZWQoKTogYm9vbGVhbjtcbiAgaXNFVk0oKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNCbHNEa2coKTogYm9vbGVhbjtcbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIgfCBzdHJpbmc7XG4gIGJhc2VVbml0c1RvQmlnVW5pdHMoYmFzZVVuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmc7XG4gIGJpZ1VuaXRzVG9CYXNlVW5pdHMoYmlnVW5pdHM6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZztcbiAgcHJlcHJvY2Vzc0J1aWxkUGFyYW1zKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHNpZ25NZXNzYWdlKGtleTogeyBwcnY6IHN0cmluZyB9LCBtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGNyZWF0ZUtleVNpZ25hdHVyZXMoXG4gICAgcHJ2OiBzdHJpbmcsXG4gICAgYmFja3VwS2V5Y2hhaW46IHsgcHViOiBzdHJpbmcgfSxcbiAgICBiaXRnb0tleWNoYWluOiB7IHB1Yjogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTx7XG4gICAgYmFja3VwOiBzdHJpbmc7XG4gICAgYml0Z286IHN0cmluZztcbiAgfT47XG4gIGV4cGxhaW5UcmFuc2FjdGlvbihcbiAgICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHdhbGxldD86IElXYWxsZXRcbiAgKTogUHJvbWlzZTxJVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjxhbnksIHN0cmluZyB8IG51bWJlcj4gfCB1bmRlZmluZWQ+O1xuICB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIHZlcmlmeUFkZHJlc3MocGFyYW1zOiBWZXJpZnlBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj47XG4gIGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zIHwgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsIHdhbGxldD86IElXYWxsZXQpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBjYW5vbmljYWxBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgZm9ybWF0OiB1bmtub3duKTogc3RyaW5nO1xuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTGlnaHRuaW5nKCk6IGJvb2xlYW47XG4gIHN1cHBvcnRzTWVzc2FnZVNpZ25pbmcoKTogYm9vbGVhbjtcbiAgc3VwcG9ydHNTaWduaW5nVHlwZWREYXRhKCk6IGJvb2xlYW47XG4gIHN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldCh3YWxsZXRQYXJhbXM6IFN1cHBsZW1lbnRHZW5lcmF0ZVdhbGxldE9wdGlvbnMsIGtleWNoYWluczogS2V5Y2hhaW5zVHJpcGxldCk6IFByb21pc2U8YW55PjtcbiAgZ2V0RXh0cmFQcmVidWlsZFBhcmFtcyhidWlsZFBhcmFtczogRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgcG9zdFByb2Nlc3NQcmVidWlsZChwcmVidWlsZFJlc3BvbnNlOiBUcmFuc2FjdGlvblByZWJ1aWxkKTogUHJvbWlzZTxUcmFuc2FjdGlvblByZWJ1aWxkPjtcbiAgcHJlc2lnblRyYW5zYWN0aW9uKHBhcmFtczogUHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UHJlc2lnblRyYW5zYWN0aW9uT3B0aW9ucz47XG4gIHNpZ25XaXRoQ3VzdG9tU2lnbmluZ0Z1bmN0aW9uPyhcbiAgICBjdXN0b21TaWduaW5nRnVuY3Rpb246IEN1c3RvbVNpZ25pbmdGdW5jdGlvbixcbiAgICBzaWduVHJhbnNhY3Rpb25QYXJhbXM6IHsgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDsgcHVicz86IHN0cmluZ1tdIH1cbiAgKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj47XG4gIG5ld1dhbGxldE9iamVjdCh3YWxsZXRQYXJhbXM6IGFueSk6IElXYWxsZXQ7XG4gIGZlZUVzdGltYXRlKHBhcmFtczogRmVlRXN0aW1hdGVPcHRpb25zKTogUHJvbWlzZTxhbnk+O1xuICBkZXJpdmVLZXlXaXRoU2VlZChwYXJhbXM6IERlcml2ZUtleVdpdGhTZWVkT3B0aW9ucyk6IHsga2V5OiBzdHJpbmc7IGRlcml2YXRpb25QYXRoOiBzdHJpbmcgfTtcbiAga2V5SWRzRm9yU2lnbmluZygpOiBudW1iZXJbXTtcbiAgcHJlQ3JlYXRlQml0R28ocGFyYW1zOiBQcmVjcmVhdGVCaXRHb09wdGlvbnMpOiB2b2lkO1xuICBpbml0aWF0ZVJlY292ZXJ5KHBhcmFtczogSW5pdGlhdGVSZWNvdmVyeU9wdGlvbnMpOiBuZXZlcjtcbiAgcGFyc2VUcmFuc2FjdGlvbihwYXJhbXM6IFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj47XG4gIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgZ2VuZXJhdGVSb290S2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpcjtcbiAgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW47XG4gIGlzVmFsaWRNb2ZOU2V0dXAocGFyYW1zOiBWYWxpZE1vZk5PcHRpb25zKTogYm9vbGVhbjtcbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbjtcbiAgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+O1xuICBnZXRTaWduYWJsZVBheWxvYWQoc2VyaWFsaXplZFR4OiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj47XG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG07XG4gIC8vIFRPRE8gLSB0aGlzIG9ubHkgYmVsb25ncyBpbiBldGggY29pbnNcbiAgcmVjb3ZlclRva2VuKHBhcmFtczogUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyk6IFByb21pc2U8UmVjb3ZlclRva2VuVHJhbnNhY3Rpb24+O1xuICBnZXRJbnNjcmlwdGlvbkJ1aWxkZXIod2FsbGV0OiBXYWxsZXQpOiBJSW5zY3JpcHRpb25CdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgY2FsbCBkYXRhIGZvciB0cmFuc2ZlcnJpbmcgYSBORlQocykuXG4gICAqIEBwYXJhbSBwYXJhbXMgT3B0aW9ucyBzcGVjaWZ5aW5nIHRoZSB0b2tlbiBjb250cmFjdCwgdG9rZW4gcmVjaXBpZW50ICYgdGhlIHRva2VuKHMpIHRvIGJlIHRyYW5zZmVycmVkXG4gICAqIEByZXR1cm4gdGhlIGhleCBzdHJpbmcgZm9yIHRoZSBjb250cmFjdCBjYWxsLlxuICAgKi9cbiAgYnVpbGROZnRUcmFuc2ZlckRhdGEocGFyYW1zOiBCdWlsZE5mdFRyYW5zZmVyRGF0YU9wdGlvbnMpOiBzdHJpbmcgfCBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xuICBnZXRIYXNoRnVuY3Rpb24oKTogSGFzaDtcbiAgYnJvYWRjYXN0VHJhbnNhY3Rpb24ocGFyYW1zOiBCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxCYXNlQnJvYWRjYXN0VHJhbnNhY3Rpb25SZXN1bHQ+O1xuICBzZXRDb2luU3BlY2lmaWNGaWVsZHNJbkludGVudChpbnRlbnQ6IFBvcHVsYXRlZEludGVudCwgcGFyYW1zOiBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBdWRpdCBhIGtleSB0byBkZXRlcm1pbmUgaWYgaXQgaXMgdmFsaWQgZm9yIHRoZSBjb2luLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBhdWRpdFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnB1YmxpY0tleSAgLSBUaGUgcHVibGljIHBvcnRpb24gb2YgdGhlIGtleVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmVuY3J5cHRlZFBydiAtIFRoZSBlbmNyeXB0ZWQgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gVGhlIHBhc3NwaHJhc2UgdG8gZGVjcnlwdCB0aGUgcHJpdmF0ZSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5tdWx0aVNpZ1R5cGUgLSBUaGUgdHlwZSBvZiBtdWx0aXNpZyAoZS5nLiAnb25jaGFpbicgb3IgJ3RzcycpXG4gICAqL1xuICBhc3NlcnRJc1ZhbGlkS2V5KHsgcHVibGljS2V5LCBlbmNyeXB0ZWRQcnYsIHdhbGxldFBhc3NwaHJhc2UsIG11bHRpU2lnVHlwZSB9OiBBdWRpdEtleVBhcmFtcyk6IHZvaWQ7XG4gIHJlcXVpcmVzV2FsbGV0SW5pdGlhbGl6YXRpb25UcmFuc2FjdGlvbigpOiBib29sZWFuO1xufVxuIl19
@@ -310,7 +310,7 @@ class StakingWallet {
310
310
  (0, debug_1.default)(`Skipping validation for staking transaction ${transaction.stakingRequestId} - txHex is undefined`);
311
311
  return;
312
312
  }
313
- const explainedTransaction = await coin.explainTransaction(result);
313
+ const explainedTransaction = await coin.explainTransaction(result, this.wallet);
314
314
  const mismatchErrors = [];
315
315
  if (buildParams?.recipients && buildParams.recipients.length > 0) {
316
316
  const userRecipientMap = new Map(buildParams.recipients.map((recipient) => [recipient.address.toLowerCase(), recipient]));
@@ -365,4 +365,4 @@ exports.StakingWallet = StakingWallet;
365
365
  function isStakingTxRequestPrebuildResult(tx) {
366
366
  return tx.txRequestId !== undefined;
367
367
  }
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zdGFraW5nL3N0YWtpbmdXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxpREFBaUQ7QUFDakQsNkRBQXFDO0FBMEJyQyxvQ0FBOEQ7QUFDOUQsb0RBQTRCO0FBQzVCLGdFQUF1RTtBQUN2RSxrREFBMEI7QUFDMUIsbURBQW9EO0FBRXBELE1BQWEsYUFBYTtJQVF4QixZQUFZLE1BQWUsRUFBRSxRQUFpQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUNULE9BQWdHO1FBRWhHLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNE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QixVQUFVLElBQUksQ0FBQyxTQUFTLENBQUUsb0JBQTRCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sWUFBWSxHQUFHLHlEQUF5RCxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUcsSUFBQSxlQUFLLEVBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUEsZUFBSyxFQUNILDBEQUEwRCxXQUFXLENBQUMsZ0JBQWdCLGlDQUFpQyxDQUN4SCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRjtBQXpjRCxzQ0F5Y0M7QUFFRCxTQUFTLGdDQUFnQyxDQUN2QyxFQUE4QztJQUU5QyxPQUFRLEVBQWdELENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQ29pbkZhbWlseSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5pbXBvcnQge1xuICBEZWxlZ2F0aW9uT3B0aW9ucyxcbiAgRGVsZWdhdGlvblJlc3VsdHMsXG4gIElTdGFraW5nV2FsbGV0LFxuICBTdGFrZU9wdGlvbnMsXG4gIFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0LFxuICBTdGFraW5nUmVxdWVzdCxcbiAgU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uLFxuICBTdGFraW5nU2lnbk9wdGlvbnMsXG4gIFN0YWtpbmdUcmFuc2FjdGlvbixcbiAgU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyxcbiAgVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24sXG4gIFVuc3Rha2VPcHRpb25zLFxuICBFdGhVbnN0YWtlT3B0aW9ucyxcbiAgQ2xhaW1SZXdhcmRzT3B0aW9ucyxcbiAgU3Rha2luZ1R4UmVxdWVzdFByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFRyb25TdGFrZU9wdGlvbnMsXG4gIFRhb1N0YWtlT3B0aW9ucyxcbiAgVGFvU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyxcbiAgVmV0U3Rha2VPcHRpb25zLFxuICBTdG9yeVN0YWtlT3B0aW9ucyxcbn0gZnJvbSAnLi9pU3Rha2luZ1dhbGxldCc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSVdhbGxldCwgUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBJVHNzVXRpbHMsIFJlcXVlc3RUcmFjZXIsIFRzc1V0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgdHJhbnNhY3Rpb25SZWNpcGllbnRzTWF0Y2ggfSBmcm9tICcuLi91dGlscy90cmFuc2FjdGlvblV0aWxzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50LWxpYic7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nV2FsbGV0IGltcGxlbWVudHMgSVN0YWtpbmdXYWxsZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgdG9rZW5QYXJlbnRXYWxsZXQ/OiBJV2FsbGV0O1xuICBwcml2YXRlIHJlYWRvbmx5IGlzRXRoVHNzOiBib29sZWFuO1xuXG4gIHB1YmxpYyB3YWxsZXQ6IElXYWxsZXQ7XG4gIHB1YmxpYyB0c3NVdGlsOiBJVHNzVXRpbHM7XG5cbiAgY29uc3RydWN0b3Iod2FsbGV0OiBJV2FsbGV0LCBpc0V0aFRzczogYm9vbGVhbikge1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSB3YWxsZXQuYml0Z287XG4gICAgdGhpcy50c3NVdGlsID0gbmV3IFRzc1V0aWxzKHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmJhc2VDb2luLCB0aGlzLndhbGxldCk7XG4gICAgdGhpcy5pc0V0aFRzcyA9IGlzRXRoVHNzO1xuICB9XG5cbiAgZ2V0IHdhbGxldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmlkKCk7XG4gIH1cblxuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZyA/IHRoaXMud2FsbGV0LmJhc2VDb2luLnRva2VuQ29uZmlnLnR5cGUgOiB0aGlzLndhbGxldC5jb2luKCk7XG4gIH1cblxuICAvKipcbiAgICogU3Rha2UgY29pbnNcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBzdGFrZSBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIHN0YWtlKFxuICAgIG9wdGlvbnM6IFN0YWtlT3B0aW9ucyB8IFRyb25TdGFrZU9wdGlvbnMgfCBUYW9TdGFrZU9wdGlvbnMgfCBWZXRTdGFrZU9wdGlvbnMgfCBTdG9yeVN0YWtlT3B0aW9uc1xuICApOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1NUQUtFJyk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdGFrZSBjb2luc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHVuc3Rha2Ugb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyB1bnN0YWtlKG9wdGlvbnM6IFVuc3Rha2VPcHRpb25zIHwgRXRoVW5zdGFrZU9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1VOU1RBS0UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJtaXQgYSByZXF1ZXN0IHRvIHN3aXRjaCB0aGUgdmFsaWRhdG9yIHVzZWQgZm9yIGEgc3BlY2lmaWMgZGVsZWdhdGlvblxuICAgKiBUaGlzIHdpbGwgY3JlYXRlIGEgbmV3IGRlbGVnYXRpb24gd2l0aCB0aGUgbmV3IHZhbGlkYXRvciBhZGRyZXNzIGFuZCBtYXJrIHRoZSBvbGQgZGVsZWdhdGlvbiBhcyBpbmFjdGl2ZVxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHN3aXRjaCB2YWxpZGF0b3Igb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBzd2l0Y2hWYWxpZGF0b3Iob3B0aW9uczogU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyB8IFRhb1N3aXRjaFZhbGlkYXRvck9wdGlvbnMpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlU3Rha2luZ1JlcXVlc3Qob3B0aW9ucywgJ1NXSVRDSF9WQUxJREFUT1InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJtaXQgYSByZXF1ZXN0IHRvIGNsYWltIHJld2FyZHMgZm9yIGEgc3BlY2lmaWMgZGVsZWdhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGNsYWltIHJld2FyZHMgb3B0aW9uc1xuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBjbGFpbVJld2FyZHMob3B0aW9uczogQ2xhaW1SZXdhcmRzT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnQ0xBSU1fUkVXQVJEUycpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbCBzdGFraW5nIHJlcXVlc3RcbiAgICogQHBhcmFtIHN0YWtpbmdSZXF1ZXN0SWQgLSBpZCBvZiB0aGUgc3Rha2luZyByZXF1ZXN0IHRvIGNhbmNlbFxuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBjYW5jZWxTdGFraW5nUmVxdWVzdChzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZGVsKHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdSZXF1ZXN0SWQpKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggZGVsZWdhdGlvbnMgZm9yIGEgc3BlY2lmaWMgd2FsbGV0XG4gICAqIEBwYXJhbSBvcHRpb25zIC0gdW5zdGFrZSBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGRlbGVnYXRpb25zKG9wdGlvbnM6IERlbGVnYXRpb25PcHRpb25zKTogUHJvbWlzZTxEZWxlZ2F0aW9uUmVzdWx0cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldERlbGVnYXRpb25zKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHN0YWtpbmcgcmVxdWVzdCBieSBJRFxuICAgKiBAcGFyYW0gc3Rha2luZ1JlcXVlc3RJZCAtIGlkIG9mIHRoZSBzdGFraW5nIHJlcXVlc3QgdG8gcmV0cmlldmVcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgZ2V0U3Rha2luZ1JlcXVlc3Qoc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nUmVxdWVzdFVybChzdGFraW5nUmVxdWVzdElkKSkpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbnMgcmVhZHkgdG8gc2lnblxuICAgKiBAcGFyYW0gc3Rha2luZ1JlcXVlc3RJZFxuICAgKiBAcmV0dXJuIFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduXG4gICAqL1xuICBhc3luYyBnZXRUcmFuc2FjdGlvbnNSZWFkeVRvU2lnbihzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduPiB7XG4gICAgY29uc3Qgc3Rha2luZ1JlcXVlc3Q6IFN0YWtpbmdSZXF1ZXN0ID0gYXdhaXQgdGhpcy5nZXRTdGFraW5nUmVxdWVzdChzdGFraW5nUmVxdWVzdElkKTtcbiAgICBjb25zdCByZWFkeVRvU2lnbjogU3Rha2luZ1RyYW5zYWN0aW9uW10gPSBzdGFraW5nUmVxdWVzdC50cmFuc2FjdGlvbnMuZmlsdGVyKFxuICAgICAgKHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pID0+IHRyYW5zYWN0aW9uLnN0YXR1cyA9PT0gYFJFQURZYFxuICAgICk7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb25zOiBTdGFraW5nVHJhbnNhY3Rpb25bXSA9IHN0YWtpbmdSZXF1ZXN0LnRyYW5zYWN0aW9ucy5maWx0ZXIoXG4gICAgICAodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uc3RhdHVzID09PSBgTkVXYFxuICAgICk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGFsbFNpZ25pbmdDb21wbGV0ZTpcbiAgICAgICAgc3Rha2luZ1JlcXVlc3QudHJhbnNhY3Rpb25zLmxlbmd0aCA+IDAgJiYgbmV3VHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCAmJiByZWFkeVRvU2lnbi5sZW5ndGggPT09IDAsXG4gICAgICB0cmFuc2FjdGlvbnM6IHJlYWR5VG9TaWduLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqIElmIFRTUyBkZWxldGUgc2lnbmF0dXJlIHNoYXJlcywgZWxzZSBleHBhbmQgYnVpbGQgcGFyYW1zIGFuZCB0aGVuIGJ1aWxkXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiAtIHN0YWtpbmcgdHJhbnNhY3Rpb24gdG8gYnVpbGRcbiAgICovXG4gIGFzeW5jIGJ1aWxkKHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pOiBQcm9taXNlPFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgaWYgKCh0aGlzLndhbGxldC5tdWx0aXNpZ1R5cGUoKSA9PT0gJ3RzcycgJiYgdGhpcy53YWxsZXQuYmFzZUNvaW4uZ2V0RmFtaWx5KCkgIT09ICdldGgnKSB8fCB0aGlzLmlzRXRoVHNzKSB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHhSZXF1ZXN0SWQgaXMgcmVxdWlyZWQgdG8gc2lnbiBhbmQgc2VuZCcpO1xuICAgICAgfVxuICAgICAgLy8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgYmVmb3JlIHNpZ25pbmcgZm9yIHRyYW5zYWN0aW9uIHJlcXVlc3QgQVBJXG4gICAgICBhd2FpdCB0aGlzLnRzc1V0aWwuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRyYW5zYWN0aW9uOiB0cmFuc2FjdGlvbixcbiAgICAgICAgcmVzdWx0OiB7XG4gICAgICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0SWQsXG4gICAgICAgICAgdHhSZXF1ZXN0SWQ6IHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNhY3Rpb24gPSBhd2FpdCB0aGlzLmV4cGFuZEJ1aWxkUGFyYW1zKHRyYW5zYWN0aW9uKTtcbiAgICAgIGlmICghdHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5pZH0gYnVpbGQgcGFyYW1zIG5vdCBleHBhbmRlZGApO1xuICAgICAgfVxuICAgICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgdGhpcy5leHRyYWN0V2FsbGV0KHRyYW5zYWN0aW9uKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uLFxuICAgICAgICByZXN1bHQ6IGF3YWl0IHdhbGxldC5wcmVidWlsZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uLmJ1aWxkUGFyYW1zKSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBleHRyYWN0V2FsbGV0KHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy5pc0J0Y1VuZGVsZWdhdGUodHJhbnNhY3Rpb24pXG4gICAgICA/IGF3YWl0IHRoaXMuZ2V0RGVzY3JpcHRvcldhbGxldCh0cmFuc2FjdGlvbilcbiAgICAgIDogYXdhaXQgdGhpcy5nZXRXYWxsZXRGb3JCdWlsZGluZ0FuZFNpZ25pbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNCdGNVbmRlbGVnYXRlKHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy53YWxsZXQuYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdidGMnICYmIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpID09PSAndW5kZWxlZ2F0ZV93aXRoZHJhdydcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1N0eCgpIHtcbiAgICByZXR1cm4gdGhpcy53YWxsZXQuYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09ICdzdHgnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RyeFN0YWtpbmcodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3RyeCc7XG4gIH1cblxuICAvKipcbiAgICogU2lnbiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gc2lnbk9wdGlvbnNcbiAgICogQHBhcmFtIHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzaWduKFxuICAgIHNpZ25PcHRpb25zOiBTdGFraW5nU2lnbk9wdGlvbnMsXG4gICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb246IFN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0XG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgcmVxSWQgPSBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIGNvbnN0IGlzQnRjVW5kZWxlZ2F0ZSA9XG4gICAgICB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2J0YycgJiZcbiAgICAgIHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpID09PSAndW5kZWxlZ2F0ZV93aXRoZHJhdyc7XG4gICAgY29uc3Qgd2FsbGV0ID0gaXNCdGNVbmRlbGVnYXRlXG4gICAgICA/IGF3YWl0IHRoaXMuZ2V0RGVzY3JpcHRvcldhbGxldChzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbilcbiAgICAgIDogYXdhaXQgdGhpcy5nZXRXYWxsZXRGb3JCdWlsZGluZ0FuZFNpZ25pbmcoKTtcblxuICAgIGNvbnN0IGtleWNoYWluID0gYXdhaXQgd2FsbGV0LmJhc2VDb2luLmtleWNoYWlucygpLmdldEtleXNGb3JTaWduaW5nKHtcbiAgICAgIHdhbGxldDogdGhpcy53YWxsZXQsXG4gICAgICByZXFJZDogcmVxSWQsXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyYW5zYWN0aW9uOiBzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbixcbiAgICAgIHNpZ25lZDogYXdhaXQgd2FsbGV0LnNpZ25UcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UHJlYnVpbGQ6IHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnJlc3VsdCxcbiAgICAgICAgd2FsbGV0UGFzc3BocmFzZTogc2lnbk9wdGlvbnMud2FsbGV0UGFzc3BocmFzZSxcbiAgICAgICAga2V5Y2hhaW46IGtleWNoYWluWzBdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIHRoZSBzaWduZWQgc3Rha2luZyB0cmFuc2FjdGlvbiBpZiByZXF1aXJlZC4gU2VuZCBjYWxsIGlzIG5vdCByZXF1aXJlZCBpZiBhcGkgdmVyc2lvbiBpcyBmdWxsXG4gICAqIGFuZCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUgc3Rha2luZyB0cmFuc2FjdGlvbiBmcm9tIHRoZSBpbmNvbWluZyBvYmplY3QuXG4gICAqIEBwYXJhbSBzaWduZWRUcmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgc2VuZChzaWduZWRUcmFuc2FjdGlvbjogU3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICBpZiAodGhpcy5pc1NlbmRDYWxsUmVxdWlyZWQoKSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z29cbiAgICAgICAgLnBvc3QodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1RyYW5zYWN0aW9uVVJMKHNpZ25lZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uKSkpXG4gICAgICAgIC5zZW5kKHNpZ25lZFRyYW5zYWN0aW9uLnNpZ25lZClcbiAgICAgICAgLnJlc3VsdCgpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbmVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQERlcHJlY2F0ZWQgdXNlIGJ1aWxkQW5kU2lnblxuICAgKiBCdWlsZCwgc2lnbiBhbmQgc2VuZCB0aGUgdHJhbnNhY3Rpb24uXG4gICAqIEBwYXJhbSBzaWduT3B0aW9uc1xuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIGJ1aWxkU2lnbkFuZFNlbmQoXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uXG4gICk6IFByb21pc2U8U3Rha2luZ1RyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYnVpbGRBbmRTaWduKHNpZ25PcHRpb25zLCB0cmFuc2FjdGlvbikudGhlbigocmVzdWx0OiBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNlbmQocmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgcHJlYnVpbHQgc3Rha2luZyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogZm9yIHRyYW5zYWN0aW9ucyB3aXRoIHR4IHJlcXVlc3QgaWQgKFRTUyB0cmFuc2FjdGlvbnMpLCB3ZSBuZWVkIHRvIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzIGJlZm9yZSBjcmVhdGluZyBwcmVidWlsZCB0cmFuc2FjdGlvblxuICAgKiB3ZSBvbmx5IG5lZWQgdG8gZ2V0IHRyYW5zYWN0aW9uIGJ1aWxkIHBhcmFtcyBpZiB0aGV5IGV4aXN0IHRvIHByZSBidWlsZFxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIHByZWJ1aWxkU2VsZk1hbmFnZWRTdGFraW5nVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdD4ge1xuICAgIGlmICh0cmFuc2FjdGlvbi50eFJlcXVlc3RJZCkge1xuICAgICAgYXdhaXQgdGhpcy50c3NVdGlsLmRlbGV0ZVNpZ25hdHVyZVNoYXJlcyh0cmFuc2FjdGlvbi50eFJlcXVlc3RJZCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkUGFyYW1zID0gKGF3YWl0IHRoaXMuZXhwYW5kQnVpbGRQYXJhbXModHJhbnNhY3Rpb24pKS5idWlsZFBhcmFtcztcbiAgICBjb25zdCBmb3JtYXR0ZWRQYXJhbXMgPSB7XG4gICAgICAuLi5idWlsZFBhcmFtcyxcbiAgICAgIGNvaW46IHRoaXMuY29pbixcbiAgICAgIHdhbGxldElkOiB0aGlzLndhbGxldElkLFxuICAgICAgd2FsbGV0VHlwZTogdGhpcy53YWxsZXQudHlwZSgpLFxuICAgICAgcHJldmlldzogdHJ1ZSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy5nZXRXYWxsZXRGb3JCdWlsZGluZ0FuZFNpZ25pbmcoKSkucHJlYnVpbGRUcmFuc2FjdGlvbihmb3JtYXR0ZWRQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuZCBzaWduIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHNpZ25PcHRpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgYnVpbGRBbmRTaWduKFxuICAgIHNpZ25PcHRpb25zOiBTdGFraW5nU2lnbk9wdGlvbnMsXG4gICAgdHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvblxuICApOiBQcm9taXNlPFN0YWtpbmdTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IGJ1aWx0VHggPSBhd2FpdCB0aGlzLmJ1aWxkKHRyYW5zYWN0aW9uKTtcbiAgICAvLyBkZWZhdWx0IHRvIHZlcmlmeWluZyBhIHRyYW5zYWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IHNraXBwZWRcbiAgICAvLyBza2lwcGluZyB0aGUgdmVyaWZpY2F0aW9uIGZvciBidGMgdW5kZWxlZ2F0ZSBiZWNhdXNlIGl0IGlzIGp1c3Qgc2luZ2xlIHNpZ1xuICAgIC8vIFRPRE86IFNDLTMxODMgKGFkZCB0cnggc3Rha2luZyB2ZXJpZmljYXRpb24pXG4gICAgLy8gVE9ETzogU0MtMzUwOCAoYWRkIFNUWCBzdGFraW5nIHZlcmlmaWNhdGlvbilcbiAgICBjb25zdCBza2lwVmVyaWZpY2F0aW9uID1cbiAgICAgIChzaWduT3B0aW9ucy50cmFuc2FjdGlvblZlcmlmaWNhdGlvbk9wdGlvbnM/LnNraXBUcmFuc2FjdGlvblZlcmlmaWNhdGlvbiB8fFxuICAgICAgICB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbikgfHxcbiAgICAgICAgdGhpcy5pc1RyeFN0YWtpbmcodHJhbnNhY3Rpb24pIHx8XG4gICAgICAgIHRoaXMuaXNTdHgoKSkgPz9cbiAgICAgIGZhbHNlO1xuICAgIGlmICghaXNTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRSZXN1bHQoYnVpbHRUeC5yZXN1bHQpICYmICFza2lwVmVyaWZpY2F0aW9uKSB7XG4gICAgICBhd2FpdCB0aGlzLnZhbGlkYXRlQnVpbHRTdGFraW5nVHJhbnNhY3Rpb24oYnVpbHRUeC50cmFuc2FjdGlvbiwgYnVpbHRUeCk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNpZ24oc2lnbk9wdGlvbnMsIGJ1aWx0VHgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBleHBhbmRCdWlsZFBhcmFtcyhzdGFraW5nVHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8U3Rha2luZ1RyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5nZXQodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1RyYW5zYWN0aW9uVVJMKHN0YWtpbmdUcmFuc2FjdGlvbikpKVxuICAgICAgLnF1ZXJ5KHsgZXhwYW5kQnVpbGRQYXJhbXM6IHRydWUgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3Rha2luZ1JlcXVlc3QoXG4gICAgb3B0aW9uczpcbiAgICAgIHwgU3Rha2VPcHRpb25zXG4gICAgICB8IFVuc3Rha2VPcHRpb25zXG4gICAgICB8IEV0aFVuc3Rha2VPcHRpb25zXG4gICAgICB8IFN3aXRjaFZhbGlkYXRvck9wdGlvbnNcbiAgICAgIHwgQ2xhaW1SZXdhcmRzT3B0aW9uc1xuICAgICAgfCBUcm9uU3Rha2VPcHRpb25zXG4gICAgICB8IFRhb1N0YWtlT3B0aW9uc1xuICAgICAgfCBUYW9Td2l0Y2hWYWxpZGF0b3JPcHRpb25zXG4gICAgICB8IFZldFN0YWtlT3B0aW9uc1xuICAgICAgfCBTdG9yeVN0YWtlT3B0aW9ucyxcbiAgICB0eXBlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nUmVxdWVzdHNVUkwoKSkpXG4gICAgICAuc2VuZCh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFraW5nUmVxdWVzdHNVUkwoKSB7XG4gICAgcmV0dXJuIGAvYXBpL3N0YWtpbmcvdjEvJHt0aGlzLmNvaW59L3dhbGxldHMvJHt0aGlzLndhbGxldElkfS9yZXF1ZXN0c2A7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldERlbGVnYXRpb25zKG9wdGlvbnM6IERlbGVnYXRpb25PcHRpb25zKTogUHJvbWlzZTxEZWxlZ2F0aW9uUmVzdWx0cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nRGVsZWdhdGlvbnNVUkwoKSkpLnF1ZXJ5KG9wdGlvbnMpLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFraW5nRGVsZWdhdGlvbnNVUkwoKSB7XG4gICAgcmV0dXJuIGAvYXBpL3N0YWtpbmcvdjEvJHt0aGlzLmNvaW59L3dhbGxldHMvJHt0aGlzLndhbGxldElkfS9kZWxlZ2F0aW9uc2A7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3Rha2luZ1JlcXVlc3RzVVJMKCl9LyR7c3Rha2luZ1JlcXVlc3RJZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFraW5nVHJhbnNhY3Rpb25VUkwoc3Rha2luZ1RyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdUcmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkKX0vdHJhbnNhY3Rpb25zLyR7c3Rha2luZ1RyYW5zYWN0aW9uLmlkfWA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpOiBQcm9taXNlPElXYWxsZXQ+IHtcbiAgICBpZiAodGhpcy53YWxsZXQuYmFzZUNvaW4udG9rZW5Db25maWcpIHtcbiAgICAgIGlmICghdGhpcy50b2tlblBhcmVudFdhbGxldCkge1xuICAgICAgICB0aGlzLnRva2VuUGFyZW50V2FsbGV0ID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgICAgIC5jb2luKHRoaXMud2FsbGV0LmJhc2VDb2luLnRva2VuQ29uZmlnLmNvaW4pXG4gICAgICAgICAgLndhbGxldHMoKVxuICAgICAgICAgIC5nZXQoeyBpZDogdGhpcy53YWxsZXQuaWQoKSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnRva2VuUGFyZW50V2FsbGV0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMud2FsbGV0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBBUEkgY2FsbCBpcyBvbmx5IHJlcXVpcmVkIGZvciBUU1MgVHhSZXF1ZXN0IGFwaSB2ZXJzaW9uIGxpdGUgb3IgbXVsdGktc2lnIHRyYW5zYWN0aW9ucy5cbiAgICogRm9yIEZ1bGwgYXBpIHZlcnNpb24sIHNpZ24gdHJhbnNhY3Rpb24gbW92ZXMgdGhlIHRyYW5zYWN0aW9uIHRvIGRlbGl2ZXJlZCBzdGF0ZS5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiBzZW5kIEFQSSBjYWxsIHRvIHN0YWtpbmcgc2VydmljZSBpcyByZXF1aXJlZCBlbHNlIGZhbHNlXG4gICAqL1xuICBwcml2YXRlIGlzU2VuZENhbGxSZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy53YWxsZXQuYmFzZUNvaW4uZ2V0RmFtaWx5KCkgPT09IENvaW5GYW1pbHkuRVRIKSB7XG4gICAgICByZXR1cm4gIXRoaXMuaXNFdGhUc3M7XG4gICAgfSBlbHNlIGlmICh0aGlzLndhbGxldC5tdWx0aXNpZ1R5cGUoKSA9PT0gJ3RzcycpIHtcbiAgICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRNUENBbGdvcml0aG0oKSAhPT0gJ2VjZHNhJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXREZXNjcmlwdG9yV2FsbGV0KHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb24pOiBQcm9taXNlPElXYWxsZXQ+IHtcbiAgICBhc3NlcnQodHJhbnNhY3Rpb24uYnVpbGRQYXJhbXM/LnNlbmRlcldhbGxldElkLCAnc2VuZGVyV2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIGJ0YyB1bmRlbGVnYXRlIHRyYW5zYWN0aW9uJyk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2FsbGV0LmJhc2VDb2luLndhbGxldHMoKS5nZXQoeyBpZDogdHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMuc2VuZGVyV2FsbGV0SWQgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlQnVpbHRTdGFraW5nVHJhbnNhY3Rpb24oXG4gICAgdHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbixcbiAgICBwcmVidWlsdFN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHRcbiAgKSB7XG4gICAgY29uc3QgeyBidWlsZFBhcmFtcyB9ID0gdHJhbnNhY3Rpb247XG4gICAgY29uc3QgeyByZXN1bHQgfSA9IHByZWJ1aWx0U3Rha2luZ1RyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGNvaW4gPSB0aGlzLndhbGxldC5iYXNlQ29pbjtcbiAgICBkZWJ1ZyhgVmFsaWRhdGluZyBzdGFraW5nIHRyYW5zYWN0aW9uICR7dHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZH0gd2l0aCBwcmVidWlsdCB0cmFuc2FjdGlvbmApO1xuXG4gICAgaWYgKCEoJ3R4SGV4JyBpbiByZXN1bHQpIHx8ICFyZXN1bHQudHhIZXgpIHtcbiAgICAgIGRlYnVnKGBTa2lwcGluZyB2YWxpZGF0aW9uIGZvciBzdGFraW5nIHRyYW5zYWN0aW9uICR7dHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZH0gLSB0eEhleCBpcyB1bmRlZmluZWRgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleHBsYWluZWRUcmFuc2FjdGlvbiA9IGF3YWl0IGNvaW4uZXhwbGFpblRyYW5zYWN0aW9uKHJlc3VsdCk7XG4gICAgY29uc3QgbWlzbWF0Y2hFcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/LnJlY2lwaWVudHMgJiYgYnVpbGRQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB1c2VyUmVjaXBpZW50TWFwID0gbmV3IE1hcChcbiAgICAgICAgYnVpbGRQYXJhbXMucmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gW3JlY2lwaWVudC5hZGRyZXNzLnRvTG93ZXJDYXNlKCksIHJlY2lwaWVudF0pXG4gICAgICApO1xuICAgICAgY29uc3QgcGxhdGZvcm1SZWNpcGllbnRNYXAgPSBuZXcgTWFwKFxuICAgICAgICAoZXhwbGFpbmVkVHJhbnNhY3Rpb24/Lm91dHB1dHMgPz8gW10pLm1hcCgocmVjaXBpZW50KSA9PiBbcmVjaXBpZW50LmFkZHJlc3MudG9Mb3dlckNhc2UoKSwgcmVjaXBpZW50XSlcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IFthZGRyZXNzXSBvZiBwbGF0Zm9ybVJlY2lwaWVudE1hcCkge1xuICAgICAgICBpZiAoIXVzZXJSZWNpcGllbnRNYXAuaGFzKGFkZHJlc3MpKSB7XG4gICAgICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChgVW5leHBlY3RlZCByZWNpcGllbnQgYWRkcmVzcyBmb3VuZCBpbiBidWlsdCB0cmFuc2FjdGlvbjogJHthZGRyZXNzfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgW2FkZHJlc3MsIHVzZXJSZWNpcGllbnRdIG9mIHVzZXJSZWNpcGllbnRNYXApIHtcbiAgICAgICAgY29uc3QgcGxhdGZvcm1SZWNpcGllbnQgPSBwbGF0Zm9ybVJlY2lwaWVudE1hcC5nZXQoYWRkcmVzcyk7XG4gICAgICAgIGlmICghcGxhdGZvcm1SZWNpcGllbnQpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKGBFeHBlY3RlZCByZWNpcGllbnQgYWRkcmVzcyBub3QgZm91bmQgaW4gYnVpbHQgdHJhbnNhY3Rpb246ICR7YWRkcmVzc31gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gdHJhbnNhY3Rpb25SZWNpcGllbnRzTWF0Y2godXNlclJlY2lwaWVudCwgcGxhdGZvcm1SZWNpcGllbnQpO1xuXG4gICAgICAgIGlmICghbWF0Y2hSZXN1bHQuYW1vdW50TWF0Y2gpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICAgICAgYFJlY2lwaWVudCAke2FkZHJlc3N9IGFtb3VudCBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7dXNlclJlY2lwaWVudC5hbW91bnR9LCBHb3Q6ICR7cGxhdGZvcm1SZWNpcGllbnQuYW1vdW50fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWF0Y2hSZXN1bHQudG9rZW5NYXRjaCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgICBgUmVjaXBpZW50ICR7YWRkcmVzc30gdG9rZW4gbWlzbWF0Y2guIEV4cGVjdGVkOiAke3VzZXJSZWNpcGllbnQudG9rZW5OYW1lID8/ICduYXRpdmUgY29pbid9LCBHb3Q6ICR7XG4gICAgICAgICAgICAgIHBsYXRmb3JtUmVjaXBpZW50LnRva2VuTmFtZSA/PyAnbmF0aXZlIGNvaW4nXG4gICAgICAgICAgICB9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/Lm1lbW8gJiYgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkubWVtbyAhPT0gYnVpbGRQYXJhbXMubWVtbykge1xuICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgYE1lbW8gbWlzbWF0Y2guIEV4cGVjdGVkOiAnJHtKU09OLnN0cmluZ2lmeShidWlsZFBhcmFtcy5tZW1vKX0nLCBHb3Q6ICcke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLm1lbW9cbiAgICAgICAgKX0nYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/Lmdhc0xpbWl0ICYmIFN0cmluZygoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5nYXNMaW1pdCkgIT09IFN0cmluZyhidWlsZFBhcmFtcy5nYXNMaW1pdCkpIHtcbiAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgIGBHYXMgTGltaXQgbWlzbWF0Y2guIEV4cGVjdGVkOiAke2J1aWxkUGFyYW1zLmdhc0xpbWl0fSwgR290OiAkeyhleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLmdhc0xpbWl0fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgYnVpbGRQYXJhbXM/LnR5cGUgJiZcbiAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLnR5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgVHJhbnNhY3Rpb25UeXBlW2J1aWxkUGFyYW1zLnR5cGVdICE9PSAoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlXG4gICAgKSB7XG4gICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICBgVHJhbnNhY3Rpb24gdHlwZSBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICcke2J1aWxkUGFyYW1zLnR5cGV9JywgR290OiAnJHsoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlfSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8uc29sSW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBpZiAoIWlzRXF1YWwoKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkuc29sSW5zdHJ1Y3Rpb25zLCBidWlsZFBhcmFtcy5zb2xJbnN0cnVjdGlvbnMpKSB7XG4gICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgYFNvbGFuYSBpbnN0cnVjdGlvbnMgbWlzbWF0Y2guIEV4cGVjdGVkOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYnVpbGRQYXJhbXMuc29sSW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgKX0sIEdvdDogJHtKU09OLnN0cmluZ2lmeSgoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5zb2xJbnN0cnVjdGlvbnMpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWlzbWF0Y2hFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFN0YWtpbmcgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQgYmVmb3JlIHNpZ25pbmc6ICR7bWlzbWF0Y2hFcnJvcnMuam9pbignOyAnKX1gO1xuICAgICAgZGVidWcoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmICghYnVpbGRQYXJhbXMpIHtcbiAgICAgIGRlYnVnKFxuICAgICAgICBgQ2Fubm90IHBlcmZvcm0gZGVlcCB2YWxpZGF0aW9uIGZvciBzdGFraW5nIHRyYW5zYWN0aW9uICR7dHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZH0gd2l0aG91dCBzcGVjaWZpZWQgYnVpbGQgcGFyYW1zYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRSZXN1bHQoXG4gIHR4OiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFsncmVzdWx0J11cbik6IHR4IGlzIFN0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgcmV0dXJuICh0eCBhcyBTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCkudHhSZXF1ZXN0SWQgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1dhbGxldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zdGFraW5nL3N0YWtpbmdXYWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxpREFBaUQ7QUFDakQsNkRBQXFDO0FBMEJyQyxvQ0FBOEQ7QUFDOUQsb0RBQTRCO0FBQzVCLGdFQUF1RTtBQUN2RSxrREFBMEI7QUFDMUIsbURBQW9EO0FBRXBELE1BQWEsYUFBYTtJQVF4QixZQUFZLE1BQWUsRUFBRSxRQUFpQjtRQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUNULE9BQWdHO1FBRWhHLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNE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LFdBQVcsQ0FBQyxlQUFlLENBQzVCLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBRSxvQkFBNEIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUMzRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxZQUFZLEdBQUcseURBQXlELGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxRyxJQUFBLGVBQUssRUFBQyxZQUFZLENBQUMsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsSUFBQSxlQUFLLEVBQ0gsMERBQTBELFdBQVcsQ0FBQyxnQkFBZ0IsaUNBQWlDLENBQ3hILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBemNELHNDQXljQztBQUVELFNBQVMsZ0NBQWdDLENBQ3ZDLEVBQThDO0lBRTlDLE9BQVEsRUFBZ0QsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5cbmltcG9ydCB7XG4gIERlbGVnYXRpb25PcHRpb25zLFxuICBEZWxlZ2F0aW9uUmVzdWx0cyxcbiAgSVN0YWtpbmdXYWxsZXQsXG4gIFN0YWtlT3B0aW9ucyxcbiAgU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFN0YWtpbmdSZXF1ZXN0LFxuICBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgU3Rha2luZ1RyYW5zYWN0aW9uLFxuICBTd2l0Y2hWYWxpZGF0b3JPcHRpb25zLFxuICBUcmFuc2FjdGlvbnNSZWFkeVRvU2lnbixcbiAgVW5zdGFrZU9wdGlvbnMsXG4gIEV0aFVuc3Rha2VPcHRpb25zLFxuICBDbGFpbVJld2FyZHNPcHRpb25zLFxuICBTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCxcbiAgVHJvblN0YWtlT3B0aW9ucyxcbiAgVGFvU3Rha2VPcHRpb25zLFxuICBUYW9Td2l0Y2hWYWxpZGF0b3JPcHRpb25zLFxuICBWZXRTdGFrZU9wdGlvbnMsXG4gIFN0b3J5U3Rha2VPcHRpb25zLFxufSBmcm9tICcuL2lTdGFraW5nV2FsbGV0JztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0LCBQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IElUc3NVdGlscywgUmVxdWVzdFRyYWNlciwgVHNzVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyB0cmFuc2FjdGlvblJlY2lwaWVudHNNYXRjaCB9IGZyb20gJy4uL3V0aWxzL3RyYW5zYWN0aW9uVXRpbHMnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2FjY291bnQtbGliJztcblxuZXhwb3J0IGNsYXNzIFN0YWtpbmdXYWxsZXQgaW1wbGVtZW50cyBJU3Rha2luZ1dhbGxldCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSB0b2tlblBhcmVudFdhbGxldD86IElXYWxsZXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNFdGhUc3M6IGJvb2xlYW47XG5cbiAgcHVibGljIHdhbGxldDogSVdhbGxldDtcbiAgcHVibGljIHRzc1V0aWw6IElUc3NVdGlscztcblxuICBjb25zdHJ1Y3Rvcih3YWxsZXQ6IElXYWxsZXQsIGlzRXRoVHNzOiBib29sZWFuKSB7XG4gICAgdGhpcy53YWxsZXQgPSB3YWxsZXQ7XG4gICAgdGhpcy5iaXRnbyA9IHdhbGxldC5iaXRnbztcbiAgICB0aGlzLnRzc1V0aWwgPSBuZXcgVHNzVXRpbHModGhpcy5iaXRnbywgdGhpcy53YWxsZXQuYmFzZUNvaW4sIHRoaXMud2FsbGV0KTtcbiAgICB0aGlzLmlzRXRoVHNzID0gaXNFdGhUc3M7XG4gIH1cblxuICBnZXQgd2FsbGV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy53YWxsZXQuaWQoKTtcbiAgfVxuXG4gIGdldCBjb2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLnRva2VuQ29uZmlnID8gdGhpcy53YWxsZXQuYmFzZUNvaW4udG9rZW5Db25maWcudHlwZSA6IHRoaXMud2FsbGV0LmNvaW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFrZSBjb2luc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIHN0YWtlIG9wdGlvbnNcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgc3Rha2UoXG4gICAgb3B0aW9uczogU3Rha2VPcHRpb25zIHwgVHJvblN0YWtlT3B0aW9ucyB8IFRhb1N0YWtlT3B0aW9ucyB8IFZldFN0YWtlT3B0aW9ucyB8IFN0b3J5U3Rha2VPcHRpb25zXG4gICk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnU1RBS0UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN0YWtlIGNvaW5zXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gdW5zdGFrZSBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIHVuc3Rha2Uob3B0aW9uczogVW5zdGFrZU9wdGlvbnMgfCBFdGhVbnN0YWtlT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnVU5TVEFLRScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBhIHJlcXVlc3QgdG8gc3dpdGNoIHRoZSB2YWxpZGF0b3IgdXNlZCBmb3IgYSBzcGVjaWZpYyBkZWxlZ2F0aW9uXG4gICAqIFRoaXMgd2lsbCBjcmVhdGUgYSBuZXcgZGVsZWdhdGlvbiB3aXRoIHRoZSBuZXcgdmFsaWRhdG9yIGFkZHJlc3MgYW5kIG1hcmsgdGhlIG9sZCBkZWxlZ2F0aW9uIGFzIGluYWN0aXZlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gc3dpdGNoIHZhbGlkYXRvciBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIHN3aXRjaFZhbGlkYXRvcihvcHRpb25zOiBTd2l0Y2hWYWxpZGF0b3JPcHRpb25zIHwgVGFvU3dpdGNoVmFsaWRhdG9yT3B0aW9ucyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVTdGFraW5nUmVxdWVzdChvcHRpb25zLCAnU1dJVENIX1ZBTElEQVRPUicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1Ym1pdCBhIHJlcXVlc3QgdG8gY2xhaW0gcmV3YXJkcyBmb3IgYSBzcGVjaWZpYyBkZWxlZ2F0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gY2xhaW0gcmV3YXJkcyBvcHRpb25zXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNsYWltUmV3YXJkcyhvcHRpb25zOiBDbGFpbVJld2FyZHNPcHRpb25zKTogUHJvbWlzZTxTdGFraW5nUmVxdWVzdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZVN0YWtpbmdSZXF1ZXN0KG9wdGlvbnMsICdDTEFJTV9SRVdBUkRTJyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VsIHN0YWtpbmcgcmVxdWVzdFxuICAgKiBAcGFyYW0gc3Rha2luZ1JlcXVlc3RJZCAtIGlkIG9mIHRoZSBzdGFraW5nIHJlcXVlc3QgdG8gY2FuY2VsXG4gICAqIEByZXR1cm4gU3Rha2luZ1JlcXVlc3RcbiAgICovXG4gIGFzeW5jIGNhbmNlbFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U3Rha2luZ1JlcXVlc3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5kZWwodGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKHRoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZCkpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBkZWxlZ2F0aW9ucyBmb3IgYSBzcGVjaWZpYyB3YWxsZXRcbiAgICogQHBhcmFtIG9wdGlvbnMgLSB1bnN0YWtlIG9wdGlvbnNcbiAgICogQHJldHVybiBTdGFraW5nUmVxdWVzdFxuICAgKi9cbiAgYXN5bmMgZGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0RGVsZWdhdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3Rha2luZyByZXF1ZXN0IGJ5IElEXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkIC0gaWQgb2YgdGhlIHN0YWtpbmcgcmVxdWVzdCB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJuIFN0YWtpbmdSZXF1ZXN0XG4gICAqL1xuICBhc3luYyBnZXRTdGFraW5nUmVxdWVzdChzdGFraW5nUmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0VXJsKHN0YWtpbmdSZXF1ZXN0SWQpKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9ucyByZWFkeSB0byBzaWduXG4gICAqIEBwYXJhbSBzdGFraW5nUmVxdWVzdElkXG4gICAqIEByZXR1cm4gVHJhbnNhY3Rpb25zUmVhZHlUb1NpZ25cbiAgICovXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uc1JlYWR5VG9TaWduKHN0YWtpbmdSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zUmVhZHlUb1NpZ24+IHtcbiAgICBjb25zdCBzdGFraW5nUmVxdWVzdDogU3Rha2luZ1JlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFN0YWtpbmdSZXF1ZXN0KHN0YWtpbmdSZXF1ZXN0SWQpO1xuICAgIGNvbnN0IHJlYWR5VG9TaWduOiBTdGFraW5nVHJhbnNhY3Rpb25bXSA9IHN0YWtpbmdSZXF1ZXN0LnRyYW5zYWN0aW9ucy5maWx0ZXIoXG4gICAgICAodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikgPT4gdHJhbnNhY3Rpb24uc3RhdHVzID09PSBgUkVBRFlgXG4gICAgKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbnM6IFN0YWtpbmdUcmFuc2FjdGlvbltdID0gc3Rha2luZ1JlcXVlc3QudHJhbnNhY3Rpb25zLmZpbHRlcihcbiAgICAgICh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSA9PiB0cmFuc2FjdGlvbi5zdGF0dXMgPT09IGBORVdgXG4gICAgKTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgYWxsU2lnbmluZ0NvbXBsZXRlOlxuICAgICAgICBzdGFraW5nUmVxdWVzdC50cmFuc2FjdGlvbnMubGVuZ3RoID4gMCAmJiBuZXdUcmFuc2FjdGlvbnMubGVuZ3RoID09PSAwICYmIHJlYWR5VG9TaWduLmxlbmd0aCA9PT0gMCxcbiAgICAgIHRyYW5zYWN0aW9uczogcmVhZHlUb1NpZ24sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgICogSWYgVFNTIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzLCBlbHNlIGV4cGFuZCBidWlsZCBwYXJhbXMgYW5kIHRoZW4gYnVpbGRcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIC0gc3Rha2luZyB0cmFuc2FjdGlvbiB0byBidWlsZFxuICAgKi9cbiAgYXN5bmMgYnVpbGQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8U3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHQ+IHtcbiAgICBpZiAoKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJyAmJiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSAhPT0gJ2V0aCcpIHx8IHRoaXMuaXNFdGhUc3MpIHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0eFJlcXVlc3RJZCBpcyByZXF1aXJlZCB0byBzaWduIGFuZCBzZW5kJyk7XG4gICAgICB9XG4gICAgICAvLyBkZWxldGUgc2lnbmF0dXJlIHNoYXJlcyBiZWZvcmUgc2lnbmluZyBmb3IgdHJhbnNhY3Rpb24gcmVxdWVzdCBBUElcbiAgICAgIGF3YWl0IHRoaXMudHNzVXRpbC5kZWxldGVTaWduYXR1cmVTaGFyZXModHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJhbnNhY3Rpb246IHRyYW5zYWN0aW9uLFxuICAgICAgICByZXN1bHQ6IHtcbiAgICAgICAgICB3YWxsZXRJZDogdGhpcy53YWxsZXRJZCxcbiAgICAgICAgICB0eFJlcXVlc3RJZDogdHJhbnNhY3Rpb24udHhSZXF1ZXN0SWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2FjdGlvbiA9IGF3YWl0IHRoaXMuZXhwYW5kQnVpbGRQYXJhbXModHJhbnNhY3Rpb24pO1xuICAgICAgaWYgKCF0cmFuc2FjdGlvbi5idWlsZFBhcmFtcykge1xuICAgICAgICB0aHJvdyBFcnJvcihgU3Rha2luZyB0cmFuc2FjdGlvbiAke3RyYW5zYWN0aW9uLmlkfSBidWlsZCBwYXJhbXMgbm90IGV4cGFuZGVkYCk7XG4gICAgICB9XG4gICAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCB0aGlzLmV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb24pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmFuc2FjdGlvbjogdHJhbnNhY3Rpb24sXG4gICAgICAgIHJlc3VsdDogYXdhaXQgd2FsbGV0LnByZWJ1aWxkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uYnVpbGRQYXJhbXMpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4dHJhY3RXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0aGlzLmlzQnRjVW5kZWxlZ2F0ZSh0cmFuc2FjdGlvbilcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0J0Y1VuZGVsZWdhdGUodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ2J0YycgJiYgdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3J1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzU3R4KCkge1xuICAgIHJldHVybiB0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gJ3N0eCc7XG4gIH1cblxuICBwcml2YXRlIGlzVHJ4U3Rha2luZyh0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAndHJ4JztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBzaWduT3B0aW9uc1xuICAgKiBAcGFyYW0gc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25cbiAgICovXG4gIGFzeW5jIHNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICBzdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvbjogU3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb25SZXN1bHRcbiAgKTogUHJvbWlzZTxTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCByZXFJZCA9IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgY29uc3QgaXNCdGNVbmRlbGVnYXRlID1cbiAgICAgIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldEZhbWlseSgpID09PSAnYnRjJyAmJlxuICAgICAgc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICd1bmRlbGVnYXRlX3dpdGhkcmF3JztcbiAgICBjb25zdCB3YWxsZXQgPSBpc0J0Y1VuZGVsZWdhdGVcbiAgICAgID8gYXdhaXQgdGhpcy5nZXREZXNjcmlwdG9yV2FsbGV0KHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uKVxuICAgICAgOiBhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpO1xuXG4gICAgY29uc3Qga2V5Y2hhaW4gPSBhd2FpdCB3YWxsZXQuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0S2V5c0ZvclNpZ25pbmcoe1xuICAgICAgd2FsbGV0OiB0aGlzLndhbGxldCxcbiAgICAgIHJlcUlkOiByZXFJZCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb246IHN0YWtpbmdQcmVidWlsZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uLFxuICAgICAgc2lnbmVkOiBhd2FpdCB3YWxsZXQuc2lnblRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQcmVidWlsZDogc3Rha2luZ1ByZWJ1aWxkVHJhbnNhY3Rpb24ucmVzdWx0LFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiBzaWduT3B0aW9ucy53YWxsZXRQYXNzcGhyYXNlLFxuICAgICAgICBrZXljaGFpbjoga2V5Y2hhaW5bMF0sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgdGhlIHNpZ25lZCBzdGFraW5nIHRyYW5zYWN0aW9uIGlmIHJlcXVpcmVkLiBTZW5kIGNhbGwgaXMgbm90IHJlcXVpcmVkIGlmIGFwaSB2ZXJzaW9uIGlzIGZ1bGxcbiAgICogYW5kIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uIGZyb20gdGhlIGluY29taW5nIG9iamVjdC5cbiAgICogQHBhcmFtIHNpZ25lZFRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBzZW5kKHNpZ25lZFRyYW5zYWN0aW9uOiBTdGFraW5nU2lnbmVkVHJhbnNhY3Rpb24pOiBQcm9taXNlPFN0YWtpbmdUcmFuc2FjdGlvbj4ge1xuICAgIGlmICh0aGlzLmlzU2VuZENhbGxSZXF1aXJlZCgpKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgICAucG9zdCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc2lnbmVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb24pKSlcbiAgICAgICAgLnNlbmQoc2lnbmVkVHJhbnNhY3Rpb24uc2lnbmVkKVxuICAgICAgICAucmVzdWx0KCk7XG4gICAgfVxuICAgIHJldHVybiBzaWduZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBARGVwcmVjYXRlZCB1c2UgYnVpbGRBbmRTaWduXG4gICAqIEJ1aWxkLCBzaWduIGFuZCBzZW5kIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIHNpZ25PcHRpb25zXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgYnVpbGRTaWduQW5kU2VuZChcbiAgICBzaWduT3B0aW9uczogU3Rha2luZ1NpZ25PcHRpb25zLFxuICAgIHRyYW5zYWN0aW9uOiBTdGFraW5nVHJhbnNhY3Rpb25cbiAgKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5idWlsZEFuZFNpZ24oc2lnbk9wdGlvbnMsIHRyYW5zYWN0aW9uKS50aGVuKChyZXN1bHQ6IFN0YWtpbmdTaWduZWRUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2VuZChyZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBwcmVidWlsdCBzdGFraW5nIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBmb3IgdHJhbnNhY3Rpb25zIHdpdGggdHggcmVxdWVzdCBpZCAoVFNTIHRyYW5zYWN0aW9ucyksIHdlIG5lZWQgdG8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgYmVmb3JlIGNyZWF0aW5nIHByZWJ1aWxkIHRyYW5zYWN0aW9uXG4gICAqIHdlIG9ubHkgbmVlZCB0byBnZXQgdHJhbnNhY3Rpb24gYnVpbGQgcGFyYW1zIGlmIHRoZXkgZXhpc3QgdG8gcHJlIGJ1aWxkXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYXN5bmMgcHJlYnVpbGRTZWxmTWFuYWdlZFN0YWtpbmdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0PiB7XG4gICAgaWYgKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKSB7XG4gICAgICBhd2FpdCB0aGlzLnRzc1V0aWwuZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHRyYW5zYWN0aW9uLnR4UmVxdWVzdElkKTtcbiAgICB9XG4gICAgY29uc3QgYnVpbGRQYXJhbXMgPSAoYXdhaXQgdGhpcy5leHBhbmRCdWlsZFBhcmFtcyh0cmFuc2FjdGlvbikpLmJ1aWxkUGFyYW1zO1xuICAgIGNvbnN0IGZvcm1hdHRlZFBhcmFtcyA9IHtcbiAgICAgIC4uLmJ1aWxkUGFyYW1zLFxuICAgICAgY29pbjogdGhpcy5jb2luLFxuICAgICAgd2FsbGV0SWQ6IHRoaXMud2FsbGV0SWQsXG4gICAgICB3YWxsZXRUeXBlOiB0aGlzLndhbGxldC50eXBlKCksXG4gICAgICBwcmV2aWV3OiB0cnVlLFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmdldFdhbGxldEZvckJ1aWxkaW5nQW5kU2lnbmluZygpKS5wcmVidWlsZFRyYW5zYWN0aW9uKGZvcm1hdHRlZFBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW5kIHNpZ24gdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBAcGFyYW0gc2lnbk9wdGlvbnNcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gICAqL1xuICBhc3luYyBidWlsZEFuZFNpZ24oXG4gICAgc2lnbk9wdGlvbnM6IFN0YWtpbmdTaWduT3B0aW9ucyxcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uXG4gICk6IFByb21pc2U8U3Rha2luZ1NpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHRoaXMuYnVpbGQodHJhbnNhY3Rpb24pO1xuICAgIC8vIGRlZmF1bHQgdG8gdmVyaWZ5aW5nIGEgdHJhbnNhY3Rpb24gdW5sZXNzIGV4cGxpY2l0bHkgc2tpcHBlZFxuICAgIC8vIHNraXBwaW5nIHRoZSB2ZXJpZmljYXRpb24gZm9yIGJ0YyB1bmRlbGVnYXRlIGJlY2F1c2UgaXQgaXMganVzdCBzaW5nbGUgc2lnXG4gICAgLy8gVE9ETzogU0MtMzE4MyAoYWRkIHRyeCBzdGFraW5nIHZlcmlmaWNhdGlvbilcbiAgICAvLyBUT0RPOiBTQy0zNTA4IChhZGQgU1RYIHN0YWtpbmcgdmVyaWZpY2F0aW9uKVxuICAgIGNvbnN0IHNraXBWZXJpZmljYXRpb24gPVxuICAgICAgKHNpZ25PcHRpb25zLnRyYW5zYWN0aW9uVmVyaWZpY2F0aW9uT3B0aW9ucz8uc2tpcFRyYW5zYWN0aW9uVmVyaWZpY2F0aW9uIHx8XG4gICAgICAgIHRoaXMuaXNCdGNVbmRlbGVnYXRlKHRyYW5zYWN0aW9uKSB8fFxuICAgICAgICB0aGlzLmlzVHJ4U3Rha2luZyh0cmFuc2FjdGlvbikgfHxcbiAgICAgICAgdGhpcy5pc1N0eCgpKSA/P1xuICAgICAgZmFsc2U7XG4gICAgaWYgKCFpc1N0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFJlc3VsdChidWlsdFR4LnJlc3VsdCkgJiYgIXNraXBWZXJpZmljYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihidWlsdFR4LnRyYW5zYWN0aW9uLCBidWlsdFR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnbihzaWduT3B0aW9ucywgYnVpbHRUeCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4cGFuZEJ1aWxkUGFyYW1zKHN0YWtpbmdUcmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uKTogUHJvbWlzZTxTdGFraW5nVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwodGhpcy5zdGFraW5nVHJhbnNhY3Rpb25VUkwoc3Rha2luZ1RyYW5zYWN0aW9uKSkpXG4gICAgICAucXVlcnkoeyBleHBhbmRCdWlsZFBhcmFtczogdHJ1ZSB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVTdGFraW5nUmVxdWVzdChcbiAgICBvcHRpb25zOlxuICAgICAgfCBTdGFrZU9wdGlvbnNcbiAgICAgIHwgVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgRXRoVW5zdGFrZU9wdGlvbnNcbiAgICAgIHwgU3dpdGNoVmFsaWRhdG9yT3B0aW9uc1xuICAgICAgfCBDbGFpbVJld2FyZHNPcHRpb25zXG4gICAgICB8IFRyb25TdGFrZU9wdGlvbnNcbiAgICAgIHwgVGFvU3Rha2VPcHRpb25zXG4gICAgICB8IFRhb1N3aXRjaFZhbGlkYXRvck9wdGlvbnNcbiAgICAgIHwgVmV0U3Rha2VPcHRpb25zXG4gICAgICB8IFN0b3J5U3Rha2VPcHRpb25zLFxuICAgIHR5cGU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YWtpbmdSZXF1ZXN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdSZXF1ZXN0c1VSTCgpKSlcbiAgICAgIC5zZW5kKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgIH0pXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdSZXF1ZXN0c1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L3JlcXVlc3RzYDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RGVsZWdhdGlvbnMob3B0aW9uczogRGVsZWdhdGlvbk9wdGlvbnMpOiBQcm9taXNlPERlbGVnYXRpb25SZXN1bHRzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCh0aGlzLnN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpKSkucXVlcnkob3B0aW9ucykucmVzdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdEZWxlZ2F0aW9uc1VSTCgpIHtcbiAgICByZXR1cm4gYC9hcGkvc3Rha2luZy92MS8ke3RoaXMuY29pbn0vd2FsbGV0cy8ke3RoaXMud2FsbGV0SWR9L2RlbGVnYXRpb25zYDtcbiAgfVxuXG4gIHByaXZhdGUgc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1JlcXVlc3RJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5zdGFraW5nUmVxdWVzdHNVUkwoKX0vJHtzdGFraW5nUmVxdWVzdElkfWA7XG4gIH1cblxuICBwcml2YXRlIHN0YWtpbmdUcmFuc2FjdGlvblVSTChzdGFraW5nVHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuc3Rha2luZ1JlcXVlc3RVcmwoc3Rha2luZ1RyYW5zYWN0aW9uLnN0YWtpbmdSZXF1ZXN0SWQpfS90cmFuc2FjdGlvbnMvJHtzdGFraW5nVHJhbnNhY3Rpb24uaWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0V2FsbGV0Rm9yQnVpbGRpbmdBbmRTaWduaW5nKCk6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi50b2tlbkNvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLnRva2VuUGFyZW50V2FsbGV0KSB7XG4gICAgICAgIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAgICAgLmNvaW4odGhpcy53YWxsZXQuYmFzZUNvaW4udG9rZW5Db25maWcuY29pbilcbiAgICAgICAgICAud2FsbGV0cygpXG4gICAgICAgICAgLmdldCh7IGlkOiB0aGlzLndhbGxldC5pZCgpIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudG9rZW5QYXJlbnRXYWxsZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy53YWxsZXQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIEFQSSBjYWxsIGlzIG9ubHkgcmVxdWlyZWQgZm9yIFRTUyBUeFJlcXVlc3QgYXBpIHZlcnNpb24gbGl0ZSBvciBtdWx0aS1zaWcgdHJhbnNhY3Rpb25zLlxuICAgKiBGb3IgRnVsbCBhcGkgdmVyc2lvbiwgc2lnbiB0cmFuc2FjdGlvbiBtb3ZlcyB0aGUgdHJhbnNhY3Rpb24gdG8gZGVsaXZlcmVkIHN0YXRlLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHNlbmQgQVBJIGNhbGwgdG8gc3Rha2luZyBzZXJ2aWNlIGlzIHJlcXVpcmVkIGVsc2UgZmFsc2VcbiAgICovXG4gIHByaXZhdGUgaXNTZW5kQ2FsbFJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLndhbGxldC5iYXNlQ29pbi5nZXRGYW1pbHkoKSA9PT0gQ29pbkZhbWlseS5FVEgpIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc0V0aFRzcztcbiAgICB9IGVsc2UgaWYgKHRoaXMud2FsbGV0Lm11bHRpc2lnVHlwZSgpID09PSAndHNzJykge1xuICAgICAgcmV0dXJuIHRoaXMud2FsbGV0LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpICE9PSAnZWNkc2EnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldERlc2NyaXB0b3JXYWxsZXQodHJhbnNhY3Rpb246IFN0YWtpbmdUcmFuc2FjdGlvbik6IFByb21pc2U8SVdhbGxldD4ge1xuICAgIGFzc2VydCh0cmFuc2FjdGlvbi5idWlsZFBhcmFtcz8uc2VuZGVyV2FsbGV0SWQsICdzZW5kZXJXYWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgYnRjIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24nKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy53YWxsZXQuYmFzZUNvaW4ud2FsbGV0cygpLmdldCh7IGlkOiB0cmFuc2FjdGlvbi5idWlsZFBhcmFtcy5zZW5kZXJXYWxsZXRJZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVCdWlsdFN0YWtpbmdUcmFuc2FjdGlvbihcbiAgICB0cmFuc2FjdGlvbjogU3Rha2luZ1RyYW5zYWN0aW9uLFxuICAgIHByZWJ1aWx0U3Rha2luZ1RyYW5zYWN0aW9uOiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFxuICApIHtcbiAgICBjb25zdCB7IGJ1aWxkUGFyYW1zIH0gPSB0cmFuc2FjdGlvbjtcbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gcHJlYnVpbHRTdGFraW5nVHJhbnNhY3Rpb247XG4gICAgY29uc3QgY29pbiA9IHRoaXMud2FsbGV0LmJhc2VDb2luO1xuICAgIGRlYnVnKGBWYWxpZGF0aW5nIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSB3aXRoIHByZWJ1aWx0IHRyYW5zYWN0aW9uYCk7XG5cbiAgICBpZiAoISgndHhIZXgnIGluIHJlc3VsdCkgfHwgIXJlc3VsdC50eEhleCkge1xuICAgICAgZGVidWcoYFNraXBwaW5nIHZhbGlkYXRpb24gZm9yIHN0YWtpbmcgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5zdGFraW5nUmVxdWVzdElkfSAtIHR4SGV4IGlzIHVuZGVmaW5lZGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4cGxhaW5lZFRyYW5zYWN0aW9uID0gYXdhaXQgY29pbi5leHBsYWluVHJhbnNhY3Rpb24ocmVzdWx0LCB0aGlzLndhbGxldCk7XG4gICAgY29uc3QgbWlzbWF0Y2hFcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/LnJlY2lwaWVudHMgJiYgYnVpbGRQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB1c2VyUmVjaXBpZW50TWFwID0gbmV3IE1hcChcbiAgICAgICAgYnVpbGRQYXJhbXMucmVjaXBpZW50cy5tYXAoKHJlY2lwaWVudCkgPT4gW3JlY2lwaWVudC5hZGRyZXNzLnRvTG93ZXJDYXNlKCksIHJlY2lwaWVudF0pXG4gICAgICApO1xuICAgICAgY29uc3QgcGxhdGZvcm1SZWNpcGllbnRNYXAgPSBuZXcgTWFwKFxuICAgICAgICAoZXhwbGFpbmVkVHJhbnNhY3Rpb24/Lm91dHB1dHMgPz8gW10pLm1hcCgocmVjaXBpZW50KSA9PiBbcmVjaXBpZW50LmFkZHJlc3MudG9Mb3dlckNhc2UoKSwgcmVjaXBpZW50XSlcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IFthZGRyZXNzXSBvZiBwbGF0Zm9ybVJlY2lwaWVudE1hcCkge1xuICAgICAgICBpZiAoIXVzZXJSZWNpcGllbnRNYXAuaGFzKGFkZHJlc3MpKSB7XG4gICAgICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChgVW5leHBlY3RlZCByZWNpcGllbnQgYWRkcmVzcyBmb3VuZCBpbiBidWlsdCB0cmFuc2FjdGlvbjogJHthZGRyZXNzfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgW2FkZHJlc3MsIHVzZXJSZWNpcGllbnRdIG9mIHVzZXJSZWNpcGllbnRNYXApIHtcbiAgICAgICAgY29uc3QgcGxhdGZvcm1SZWNpcGllbnQgPSBwbGF0Zm9ybVJlY2lwaWVudE1hcC5nZXQoYWRkcmVzcyk7XG4gICAgICAgIGlmICghcGxhdGZvcm1SZWNpcGllbnQpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKGBFeHBlY3RlZCByZWNpcGllbnQgYWRkcmVzcyBub3QgZm91bmQgaW4gYnVpbHQgdHJhbnNhY3Rpb246ICR7YWRkcmVzc31gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gdHJhbnNhY3Rpb25SZWNpcGllbnRzTWF0Y2godXNlclJlY2lwaWVudCwgcGxhdGZvcm1SZWNpcGllbnQpO1xuXG4gICAgICAgIGlmICghbWF0Y2hSZXN1bHQuYW1vdW50TWF0Y2gpIHtcbiAgICAgICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICAgICAgYFJlY2lwaWVudCAke2FkZHJlc3N9IGFtb3VudCBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICR7dXNlclJlY2lwaWVudC5hbW91bnR9LCBHb3Q6ICR7cGxhdGZvcm1SZWNpcGllbnQuYW1vdW50fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWF0Y2hSZXN1bHQudG9rZW5NYXRjaCkge1xuICAgICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgICBgUmVjaXBpZW50ICR7YWRkcmVzc30gdG9rZW4gbWlzbWF0Y2guIEV4cGVjdGVkOiAke3VzZXJSZWNpcGllbnQudG9rZW5OYW1lID8/ICduYXRpdmUgY29pbid9LCBHb3Q6ICR7XG4gICAgICAgICAgICAgIHBsYXRmb3JtUmVjaXBpZW50LnRva2VuTmFtZSA/PyAnbmF0aXZlIGNvaW4nXG4gICAgICAgICAgICB9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/Lm1lbW8gJiYgKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkubWVtbyAhPT0gYnVpbGRQYXJhbXMubWVtbykge1xuICAgICAgbWlzbWF0Y2hFcnJvcnMucHVzaChcbiAgICAgICAgYE1lbW8gbWlzbWF0Y2guIEV4cGVjdGVkOiAnJHtKU09OLnN0cmluZ2lmeShidWlsZFBhcmFtcy5tZW1vKX0nLCBHb3Q6ICcke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLm1lbW9cbiAgICAgICAgKX0nYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYnVpbGRQYXJhbXM/Lmdhc0xpbWl0ICYmIFN0cmluZygoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5nYXNMaW1pdCkgIT09IFN0cmluZyhidWlsZFBhcmFtcy5nYXNMaW1pdCkpIHtcbiAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgIGBHYXMgTGltaXQgbWlzbWF0Y2guIEV4cGVjdGVkOiAke2J1aWxkUGFyYW1zLmdhc0xpbWl0fSwgR290OiAkeyhleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLmdhc0xpbWl0fWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgYnVpbGRQYXJhbXM/LnR5cGUgJiZcbiAgICAgIChleHBsYWluZWRUcmFuc2FjdGlvbiBhcyBhbnkpLnR5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgVHJhbnNhY3Rpb25UeXBlW2J1aWxkUGFyYW1zLnR5cGVdICE9PSAoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlXG4gICAgKSB7XG4gICAgICBtaXNtYXRjaEVycm9ycy5wdXNoKFxuICAgICAgICBgVHJhbnNhY3Rpb24gdHlwZSBtaXNtYXRjaC4gRXhwZWN0ZWQ6ICcke2J1aWxkUGFyYW1zLnR5cGV9JywgR290OiAnJHsoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS50eXBlfSdgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChidWlsZFBhcmFtcz8uc29sSW5zdHJ1Y3Rpb25zKSB7XG4gICAgICBpZiAoIWlzRXF1YWwoKGV4cGxhaW5lZFRyYW5zYWN0aW9uIGFzIGFueSkuc29sSW5zdHJ1Y3Rpb25zLCBidWlsZFBhcmFtcy5zb2xJbnN0cnVjdGlvbnMpKSB7XG4gICAgICAgIG1pc21hdGNoRXJyb3JzLnB1c2goXG4gICAgICAgICAgYFNvbGFuYSBpbnN0cnVjdGlvbnMgbWlzbWF0Y2guIEV4cGVjdGVkOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgYnVpbGRQYXJhbXMuc29sSW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgKX0sIEdvdDogJHtKU09OLnN0cmluZ2lmeSgoZXhwbGFpbmVkVHJhbnNhY3Rpb24gYXMgYW55KS5zb2xJbnN0cnVjdGlvbnMpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWlzbWF0Y2hFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFN0YWtpbmcgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsZWQgYmVmb3JlIHNpZ25pbmc6ICR7bWlzbWF0Y2hFcnJvcnMuam9pbignOyAnKX1gO1xuICAgICAgZGVidWcoZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmICghYnVpbGRQYXJhbXMpIHtcbiAgICAgIGRlYnVnKFxuICAgICAgICBgQ2Fubm90IHBlcmZvcm0gZGVlcCB2YWxpZGF0aW9uIGZvciBzdGFraW5nIHRyYW5zYWN0aW9uICR7dHJhbnNhY3Rpb24uc3Rha2luZ1JlcXVlc3RJZH0gd2l0aG91dCBzcGVjaWZpZWQgYnVpbGQgcGFyYW1zYFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRSZXN1bHQoXG4gIHR4OiBTdGFraW5nUHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdFsncmVzdWx0J11cbik6IHR4IGlzIFN0YWtpbmdUeFJlcXVlc3RQcmVidWlsZFRyYW5zYWN0aW9uUmVzdWx0IHtcbiAgcmV0dXJuICh0eCBhcyBTdGFraW5nVHhSZXF1ZXN0UHJlYnVpbGRUcmFuc2FjdGlvblJlc3VsdCkudHhSZXF1ZXN0SWQgIT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==