@plumile/router 0.1.179 → 0.1.181
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/esm/ResourcePage.d.ts +3 -1
- package/lib/esm/ResourcePage.d.ts.map +1 -1
- package/lib/esm/ResourcePage.js +7 -1
- package/lib/esm/builder.d.ts +3 -2
- package/lib/esm/builder.d.ts.map +1 -1
- package/lib/esm/builder.js +78 -15
- package/lib/esm/instrumentation/Instrumentation.d.ts +14 -2
- package/lib/esm/instrumentation/Instrumentation.d.ts.map +1 -1
- package/lib/esm/instrumentation/Instrumentation.js +1 -1
- package/lib/esm/routing/Link.d.ts +4 -2
- package/lib/esm/routing/Link.d.ts.map +1 -1
- package/lib/esm/routing/Link.js +15 -9
- package/lib/esm/routing/RouteComponentWrapper.d.ts +2 -1
- package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/esm/routing/RouteComponentWrapper.js +3 -3
- package/lib/esm/routing/RouterRenderer.d.ts +1 -0
- package/lib/esm/routing/RouterRenderer.d.ts.map +1 -1
- package/lib/esm/routing/RouterRenderer.js +159 -39
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +276 -55
- package/lib/esm/routing/createStaticRouter.d.ts.map +1 -1
- package/lib/esm/routing/createStaticRouter.js +28 -1
- package/lib/esm/tools.d.ts +1 -0
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +21 -11
- package/lib/esm/types.d.ts +54 -0
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/values.d.ts +1 -1
- package/lib/esm/values.d.ts.map +1 -1
- package/lib/esm/values.js +2 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/ResourcePage.d.ts +3 -1
- package/lib/types/ResourcePage.d.ts.map +1 -1
- package/lib/types/builder.d.ts +3 -2
- package/lib/types/builder.d.ts.map +1 -1
- package/lib/types/instrumentation/Instrumentation.d.ts +14 -2
- package/lib/types/instrumentation/Instrumentation.d.ts.map +1 -1
- package/lib/types/routing/Link.d.ts +4 -2
- package/lib/types/routing/Link.d.ts.map +1 -1
- package/lib/types/routing/RouteComponentWrapper.d.ts +2 -1
- package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/types/routing/RouterRenderer.d.ts +1 -0
- package/lib/types/routing/RouterRenderer.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/routing/createStaticRouter.d.ts.map +1 -1
- package/lib/types/tools.d.ts +1 -0
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/types.d.ts +54 -0
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/values.d.ts +1 -1
- package/lib/types/values.d.ts.map +1 -1
- package/package.json +3 -3
package/lib/esm/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQXN5bmNSZXNvdXJjZVN0YXR1cyA9ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmVTZWFyY2hCZWhhdmlvciA9ICdhbHdheXMnIHwgJ3BhdGgnO1xuXG5leHBvcnQgdHlwZSBSZWFkYWJsZVJlc291cmNlPFQ+ID0ge1xuICBnZXQ6ICgpID0+IFQgfCB1bmRlZmluZWQ7XG4gIGdldEVycm9yOiAoKSA9PiB1bmtub3duO1xuICBnZXRTdGF0dXM6ICgpID0+IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIGxvYWQ6ICgpID0+IFByb21pc2U8VD47XG4gIHJlYWQ6ICgpID0+IFQ7XG59O1xuXG4vKipcbiAqIElucHV0IHR5cGUgZm9yIGNyZWF0aW5nIGEgRmxhdFJvdXRlIGluc3RhbmNlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXRSb3V0ZUlucHV0PFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcmVkaXJlY3RUbz86IHN0cmluZztcbiAgLyoqIEZ1bmN0aW9uIHRvIG1hdGNoIFVSTCBwYXRocyBhZ2FpbnN0IHRoaXMgcm91dGUgcGF0dGVybiAqL1xuICBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRWYXJpYWJsZXM+O1xuICAvKiogTmVzdGVkIHJvdXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB3aXRoaW4gdGhpcyByb3V0ZSAqL1xuICByb3V0ZXM6IEFueVJvdXRlW107XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtYXRjaGVkIHJvdXRlIHdpdGggZXh0cmFjdGVkIHBhcmFtZXRlcnMgYW5kIG1ldGFkYXRhLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBtYXRjaCByZXN1bHQgZnJvbSBwYXRoLXRvLXJlZ2V4cCAqL1xuICBtYXRjaDogTWF0Y2g8VFZhcmlhYmxlcz47XG4gIC8qKiBFeHRyYWN0ZWQgcGFyYW1ldGVycyBmcm9tIHRoZSBVUkwgcGF0aCAqL1xuICBwYXJhbXM6IFRWYXJpYWJsZXM7XG4gIC8qKiBUaGUgbWF0Y2hlZCBwYXRoIHN0cmluZyAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSByb3V0ZSBjb21wb25lbnQuXG4gKiBAdGVtcGxhdGUgVFByb3BzIC0gVGhlIHByb3BzIHR5cGUgZm9yIHRoZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZWFjdENvbXBvbmVudDxUUHJvcHMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoXG4gIHByb3BzOiBUUHJvcHMsXG4pID0+IEpTWC5FbGVtZW50IHwgbnVsbDtcblxudHlwZSBCaXZhcmlhbnRDYWxsYmFjazxGbiBleHRlbmRzICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duPiA9IHtcbiAgYml2YXJpYW5jZUhhY2s6IEZuO1xufVsnYml2YXJpYW5jZUhhY2snXTtcblxuLyoqXG4gKiBPcHRpb25zIHBhc3NlZCB0byBhIHJvdXRlIHJlbmRlciBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlck9wdHM8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgLyoqIE9wdGlvbmFsIGNvbXBvbmVudCB0byByZW5kZXIgKGZyb20gUmVzb3VyY2VQYWdlKSAqL1xuICBDb21wb25lbnQ/OiBSb3V0ZVJlYWN0Q29tcG9uZW50O1xuICAvKiogRGF0YSBwcmVwYXJlZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uICovXG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIC8qKiBUaGUgcHJlcGFyZWQgc2VnbWVudCB0aGF0IGlzIGJlaW5nIHJlbmRlcmVkICovXG4gIHByZXBhcmVkU2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gICAgVENvbnRleHQsXG4gICAgVFByZXBhcmVkLFxuICAgIFRWYXJpYWJsZXMsXG4gICAgVFF1ZXJ5U2hhcGVcbiAgPjtcbiAgLyoqIEFsaWFzIGtlcHQgZm9yIG1pZ3JhdGlvbiBjb21wYXRpYmlsaXR5ICovXG4gIHByZXBhcmVkUm91dGU6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBUaGUgZnVsbCBwcmVwYXJlZCBjaGFpbiBmb3IgdGhlIGN1cnJlbnQgbWF0Y2ggKi9cbiAgcHJlcGFyZWRTZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEluZGV4IG9mIHRoZSBjdXJyZW50IHNlZ21lbnQgaW4gdGhlIHByZXBhcmVkIGNoYWluICovXG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGxlYWYgc2VnbWVudCBvZiB0aGUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgbGVhZlNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBSb3V0ZXItbGV2ZWwgY29udGV4dCAqL1xuICBjb250ZXh0OiBUQ29udGV4dDtcbiAgLyoqIFJhdyBxdWVyeSBvYmplY3QgKFBoYXNlIDIgZ2VuZXJpYyBwYXJzaW5nKSAqL1xuICByYXdRdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBUeXBlZCBxdWVyeSBvYmplY3QgKFBoYXNlIDMpLiBGYWxscyBiYWNrIHRvIHJhd1F1ZXJ5IGlmIG5vIHNjaGVtYSAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHJlbmRlciBhIHJvdXRlIHdpdGggY3VzdG9tIGxvZ2ljLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgb3B0czogUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPixcbiAgKSA9PlxuICAgIHwgUmVhY3RFbGVtZW50XG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD5cbj47XG5cbi8qKiBBbGlhcyBmb3IgcmVuZGVyIGFyZ3MgKGtlcHQgZm9yIHB1YmxpYyBBUEkgY2xhcml0eSkuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlckFyZ3M8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcblxuLyoqXG4gKiBBIHNpbmdsZSBhY3RpdmUgcHJlcGFyZWQgcm91dGUgc2VnbWVudCB3aXRoaW4gdGhlIGN1cnJlbnQgcm91dGUgY2hhaW4uXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIHJvdXRlIGRlZmluaXRpb24gdGhhdCBwcm9kdWNlZCB0aGlzIHByZXBhcmVkIHNlZ21lbnQgKi9cbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICAvKiogVGhlIHBhdGggdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcm91dGUgcGF0aCBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB3aGVuIGtub3duICovXG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICAvKiogT3JkZXIgb2YgdGhlIHNlZ21lbnQgaW4gdGhlIGFjdGl2ZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIEFzeW5jIHJlc291cmNlIGV4cG9zaW5nIHRoZSByb3V0ZSdzIHByZXBhcmVkIHZhbHVlICovXG4gIHByZXBhcmVkUmVzb3VyY2U/OiBQcmVwYXJlZFZhbHVlUmVzb3VyY2U8VFByZXBhcmVkPjtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogUmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFJlc291cmNlIHBhZ2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHMgKi9cbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgLyoqIElkZW50aWZpZXIgdXNlZCBieSBkZXZlbG9wZXIgdG9vbGluZyB0byBtYXAgcmVuZGVyZWQgRE9NIHJlZ2lvbnMgKi9cbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBxdWVyeSBzY2hlbWEgZGVjbGFyZWQgYnkgdGhlIHJvdXRlIHNlZ21lbnQgKi9cbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWE7XG59O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBrZXB0IGR1cmluZyB0aGUgc2VnbWVudC1vcmllbnRlZCBtaWdyYXRpb24uICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hdGNoUm91dGUgPSBQcmVwYXJlZFJvdXRlU2VnbWVudDtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0ID0gdW5rbm93bj4gPVxuICBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdCA9IHtcbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkUmVzb3VyY2U/OiBQcmVwYXJlZFZhbHVlUmVzb3VyY2U7XG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKlxuICogUmVzdWx0IG9mIHByZXBhcmluZyBhIG1hdGNoZWQgcm91dGUsIGluY2x1ZGluZyB0aGUgb3JkZXJlZCBjaGFpbiBvZiBuZXN0ZWQgYWN0aXZlIHNlZ21lbnRzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVDaGFpbjxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBPcmRlcmVkIGFjdGl2ZSBwcmVwYXJlZCBzZWdtZW50cyBmcm9tIG91dGVybW9zdCB0byBpbm5lcm1vc3QgKi9cbiAgc2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbiAqL1xuICByb3V0ZXM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG59O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBrZXB0IGR1cmluZyB0aGUgc2VnbWVudC1vcmllbnRlZCBtaWdyYXRpb24uICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoUm91dGUgPSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVDaGFpbjxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIHNlZ21lbnRzOiBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuICByb3V0ZXM6IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBSZXNvbHZlZFByZXBhcmVkUm91dGVDaGFpbjxUVmFyaWFibGVzLCBUQ29udGV4dD47XG5cbi8qKlxuICogQ29tcGxldGUgcm91dGUgZW50cnkgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUVudHJ5PFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIHByZXBhcmVkIG1hdGNoIHdpdGggbG9hZGVkIGRhdGEgYW5kIGNvbXBvbmVudHMgKi9cbiAgcHJlcGFyZWRNYXRjaDogUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0IHJlc29sdmVkIGZvciB0aGlzIGVudHJ5ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogQ3VycmVudCBicm93c2VyIGxvY2F0aW9uICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogTGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdW5pZmllZCBmaWx0ZXJzIGhhbmRsZSB0eXBlZCBhY2Nlc3MgKi9cbiAgLy8gdHlwZWRRdWVyeT86IG5ldmVyO1xuICAvKiogUGFyc2VkIGZpbHRlcnMgb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgZGVlcGVzdCBhY3RpdmUgcXVlcnlTY2hlbWEgKGlmIGFueSkgKi9cbiAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIHJlZ2V4IG1hdGNoIHJlc3VsdCAqL1xuICBtYXRjaDogUmVnRXhwRXhlY0FycmF5O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqIE1pbmltYWwgZXJhc2VkIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSBydW50aW1lIGhlbHBlcnMgYW5kIHJlY3Vyc2l2ZSByb3V0ZSB0cmVlcy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlTm9kZSA9IHtcbiAgY2hpbGRyZW4/OiByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW107XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmU/OiAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPGFueSwgYW55LCBhbnk+KSA9PiB1bmtub3duO1xuICBwcmVwYXJlU2VhcmNoQmVoYXZpb3I/OiBSb3V0ZVByZXBhcmVTZWFyY2hCZWhhdmlvcjtcbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWE7XG4gIHJlbmRlcj86IChcbiAgICBvcHRzOiBSb3V0ZVJlbmRlck9wdHM8YW55LCBhbnksIGFueSwgYW55PixcbiAgKSA9PlxuICAgIHwgUmVhY3RFbGVtZW50XG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG59O1xuXG4vKipcbiAqIEJhc2UgdHlwZSBmb3IgZGF0YSBwcmVwYXJlZCBieSByb3V0ZSBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZVJlc3VsdCA9IHVua25vd247XG5cbi8qKlxuICogUGFyYW1ldGVycyBwYXNzZWQgdG8gYSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZVBhcmFtczxcbiAgVENvbnRleHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSB7XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzICovXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz47XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIG1hdGNoZWRSb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBFeHRyYWN0ZWQgVVJMIHBhcmFtZXRlcnMgKi9cbiAgdmFyaWFibGVzOiBUVmFyaWFibGVzO1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0ICovXG4gIHF1ZXJ5OiBUUXVlcnlTaGFwZTtcbn07XG5cbi8qKiBBbGlhcyBmb3IgcHJlcGFyZSBhcmdzIChrZXB0IGZvciBwdWJsaWMgQVBJIGNsYXJpdHkpLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlQXJnczxcbiAgVENvbnRleHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGZvciBhIHJvdXRlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgZGF0YSB0aGlzIGZ1bmN0aW9uIHJldHVybnNcbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmU8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gQml2YXJpYW50Q2FsbGJhY2s8XG4gIChcbiAgICBwYXJhbXM6IFByZXBhcmVQYXJhbXM8VENvbnRleHQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPixcbiAgKSA9PiBNYXliZVByb21pc2U8VFByZXBhcmVkPlxuPjtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSByb3V0ZSBpbiB0aGUgcm91dGVyLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ2hpbGRyZW4gZXh0ZW5kcyByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQgPVxuICAgIHwgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdXG4gICAgfCB1bmRlZmluZWQsXG4+ID0ge1xuICAvKipcbiAgICogTmVzdGVkIGNoaWxkIHJvdXRlcyBvciByZWRpcmVjdHMuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyB1c2VkIHRvIGJlIHR5cGVkIGFzIGAoUm91dGU8YW55LCBQcmVwYXJlUmVzdWx0PiB8IFJlZGlyZWN0KVtdYCB3aGljaFxuICAgKiB3aWRlbmVkIChlcmFzZWQpIHRoZSBnZW5lcmljIHBhcmFtZXRlciB0eXBlcyAobm90YWJseSB0aGUgYFRWYXJpYWJsZXNgIG9mIGVhY2hcbiAgICogY2hpbGQpLiBUaGF0IGNhdXNlZCBUeXBlU2NyaXB0IHRvIHRyZWF0IGV2ZXJ5IGNoaWxkIHJvdXRlJ3MgYHByZXBhcmVgIGNhbGxiYWNrXG4gICAqIGFzIGFjY2VwdGluZyB0aGUgZGVmYXVsdCBgUGFyYW1EYXRhYCBzaGFwZSAoZWZmZWN0aXZlbHkgYFBhcnRpYWw8UmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+PmApLlxuICAgKiBXaGVuIHVzZXIgY29kZSBzcGVjaWZpZWQgYSBtb3JlIHNwZWNpZmljIHBhcmFtZXRlciBvYmplY3QgKGUuZy4gYHsgc2x1Zzogc3RyaW5nIH1gKVxuICAgKiBmb3IgYSBwYXRoIGxpa2UgYDpzbHVnYCwgdGhlIGZ1bmN0aW9uIHR5cGUgYmVjYW1lIG5vbuKAkWFzc2lnbmFibGUgYmVjYXVzZSBpdHNcbiAgICogcGFyYW1ldGVyIHdhcyBzdHJpY3RlciB0aGFuIHRoZSB3aWRlbmVkIHZlcnNpb24uIEJ5IHN3aXRjaGluZyB0byBgQW55Um91dGVgIHdlXG4gICAqIHJldGFpbiBgYW55YCBpbiB0aGUgZXJhc2VkIHBvc2l0aW9uIGluc3RlYWQgb2YgYSBjb25jcmV0ZSBgUGFyYW1EYXRhYCwgd2hpY2hcbiAgICogYWxsb3dzIHN0cmljdGVyIGNoaWxkIGB2YXJpYWJsZXNgIHNoYXBlcyB3aXRob3V0IGNvbmZsaWN0LlxuICAgKlxuICAgKiBVc2luZyBgQW55Um91dGVgIHB1cnBvc2VseSBwcmVzZXJ2ZXMgaW5kZXBlbmRlbmNlIG9mIGVhY2ggcm91dGUncyBnZW5lcmljXG4gICAqIHBhcmFtZXRlcnMgd2hpbGUgc3RpbGwga2VlcGluZyBydW50aW1lIHJlcHJlc2VudGF0aW9uIGlkZW50aWNhbC5cbiAgICovXG4gIGNoaWxkcmVuPzogVENoaWxkcmVuO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGJlZm9yZSByZW5kZXJpbmcgKi9cbiAgcHJlcGFyZT86IFJvdXRlUHJlcGFyZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoaXMgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uIHNob3VsZCBydW4gYWdhaW4gd2hlbiBvbmx5XG4gICAqIHRoZSBVUkwgc2VhcmNoIGNoYW5nZXMuIERlZmF1bHRzIHRvIGBhbHdheXNgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBVbmlmaWVkIHNjaGVtYSAoZmlsdGVyIC8gcXVlcnkpICovXG4gIHF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8qKlxuICogUHJvcHMgcGFzc2VkIHRvIFJvdXRlQ29tcG9uZW50IGluc3RhbmNlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUNvbXBvbmVudFByb3BzPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgKi9cbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudDtcbiAgLyoqIFJvdXRlciBjb250ZXh0IGNvbnRhaW5pbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGUgKi9cbiAgcm91dGVyQ29udGV4dDogUm91dGluZ0NvbnRleHRUeXBlPFRWYXJpYWJsZXMsIFMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFRoZSByb3V0ZSBjb25maWd1cmF0aW9uICovXG4gIHJvdXRlOiBSb3V0ZTx1bmtub3duLCB1bmtub3duLCBQYXJhbURhdGEsIFVua25vd25RdWVyeVNoYXBlLCBTPjtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJvdXRlIGNoYW5nZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgU3Vic2NyaWJlQ2FsbGJhY2s8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSAobmV4dEVudHJ5OiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJlbG9hZFRhcmdldCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJvdXRlciBjb250ZXh0IHR5cGUgdGhhdCBwcm92aWRlcyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogQnJvd3NlciBoaXN0b3J5IGluc3RhbmNlIGZvciBuYXZpZ2F0aW9uICovXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5O1xuICAvKiogR2V0IHRoZSBjdXJyZW50IHJvdXRlIGVudHJ5ICovXG4gIGdldDogKCkgPT4gUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD47XG4gIC8qKiBQcmVsb2FkIGNvZGUgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZENvZGU6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBQcmVsb2FkIGNvZGUgYW5kIGRhdGEgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZDogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzIChzY2hlbWEgZGVyaXZhYmxlLCBub3QgbmVlZGVkIGluIHNpZ25hdHVyZSkgKi9cbiAgc3Vic2NyaWJlOiAoXG4gICAgY2FsbGJhY2s6IFN1YnNjcmliZUNhbGxiYWNrPFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PixcbiAgKSA9PiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgd2l0aCBvcHRpb25hbCBwYXRobmFtZSBhbmQgdHlwZWQvcmF3IHF1ZXJ5IG9iamVjdCAqL1xuICBuYXZpZ2F0ZTogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFRRdWVyeVNoYXBlO1xuICAgIC8qKiBPcHRpb25hbCBmaWx0ZXJzIG9iamVjdCB0byBzZXJpYWxpemUgdXNpbmcgdGhlIGFjdGl2ZSBxdWVyeVNjaGVtYSAqL1xuICAgIGZpbHRlcnM/OiBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBVbmtub3duRmlsdGVycztcbiAgICByZXBsYWNlPzogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHJlc291cmNlIHBhZ2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlUmV0dXJuID1cbiAgfCB7IGRlZmF1bHQ6IENvbXBvbmVudFR5cGU8YW55PiB9XG4gIHwgQ29tcG9uZW50VHlwZTxhbnk+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRoYXQgbG9hZHMgYSByZXNvdXJjZSBwYWdlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlTG9hZGVyID0gKCkgPT4gUHJvbWlzZTxSZXNvdXJjZVBhZ2VSZXR1cm4+O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlZFZhbHVlUmVzb3VyY2U8XG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuPiA9IFJlYWRhYmxlUmVzb3VyY2U8VFByZXBhcmVkPjtcblxuLyoqIFV0aWxpdHk6IGluZmVyIGZpbHRlcnMgdHlwZSBmb3IgYSBnaXZlbiBxdWVyeSBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEluZmVyRmlsdGVyczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkPiA9XG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IHR5cGUgeyBGaWx0ZXJTY2hlbWEgfTtcblxuLyoqIFJlLWV4cG9ydCBoZWxwZXIgZmlsdGVyLXF1ZXJ5IHR5cGUgZm9yIHVzZXIgY29udmVuaWVuY2UgKi9cbmV4cG9ydCB0eXBlIHsgSW5mZXJGaWx0ZXJGaWVsZCBhcyBJbmZlckZpZWxkIH07XG5cbi8qKlxuICogU3Ryb25nbHkgdHlwZWQgZmlsdGVyIGFjdGlvbnMgKFBoYXNlIDEgYmFzZSB0eXBlcykuIEltcGxlbWVudGF0aW9uIHdpbGwgYmUgd2lyZWRcbiAqIGluIGEgbGF0ZXIgcGhhc2Ugd2hlbiBgdXNlRmlsdGVyc2AgYmVjb21lcyBnZW5lcmljLlxuICpcbiAqIFM6IFNjaGVtYSB0eXBlIHBhc3NlZCB0byB0aGUgaG9vay9yb3V0ZS5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZWRGaWx0ZXJBY3Rpb25zPFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWE+ID0ge1xuICAvKiogU2V0IG9yIHVuc2V0ICh2YWx1ZSA9IHVuZGVmaW5lZCkgYSBzcGVjaWZpYyBvcGVyYXRvciB2YWx1ZSBmb3IgYSBmaWVsZCAqL1xuICBzZXQ6IDxcbiAgICBGIGV4dGVuZHMga2V5b2YgUyAmIHN0cmluZyxcbiAgICBPIGV4dGVuZHMga2V5b2YgTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+ICYgc3RyaW5nLFxuICA+KFxuICAgIGZpZWxkOiBGLFxuICAgIG9wZXJhdG9yOiBPLFxuICAgIHZhbHVlOiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT5bT10gfCB1bmRlZmluZWQsXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogUmVtb3ZlIGEgd2hvbGUgZmllbGQgb3IgYSBzcGVjaWZpYyBvcGVyYXRvciAqL1xuICByZW1vdmU6IDxcbiAgICBGIGV4dGVuZHMga2V5b2YgUyAmIHN0cmluZyxcbiAgICBPIGV4dGVuZHMga2V5b2YgTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+ICYgc3RyaW5nLFxuICA+KFxuICAgIGZpZWxkOiBGLFxuICAgIG9wZXJhdG9yPzogTyxcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBNZXJnZSBhIHBhcnRpYWwgZmlsdGVycyBvYmplY3QgKi9cbiAgbWVyZ2U6IChcbiAgICBwYXRjaDogUGFydGlhbDxJbmZlckZpbHRlclJlc3VsdDxTPj4sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogQ2xlYXIgYWxsIGZpbHRlcnMgKi9cbiAgY2xlYXI6IChvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9KSA9PiB2b2lkO1xufTtcblxuLyoqIE1pbmltYWwgcm91dGUgbm9kZSBzaGFwZSB1c2VkIGJ5IHJlY3Vyc2l2ZSB0cmVlIHV0aWxpdGllcy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZU5vZGUgPSBSb3V0ZU5vZGU7XG5cbi8qKlxuICogQ29udmVuaWVuY2UgdW1icmVsbGEgcm91dGUgdHlwZS5cbiAqIFVzZWQgd2hlcmUgd2UganVzdCB3YW50IHRvIGNhcnJ5IGFyYml0cmFyeSByb3V0ZSBnZW5lcmljcyBmb3J3YXJkIHdpdGhvdXQgZXJhc3VyZS5cbiAqL1xuZXhwb3J0IHR5cGUgVW5rbm93blJvdXRlPFRDb250ZXh0ID0gdW5rbm93bj4gPSBSb3V0ZTxUQ29udGV4dCwgdW5rbm93bj47XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIHVtYnJlbGxhIHJvdXRlIHR5cGUuICovXG5leHBvcnQgdHlwZSBBbnlSb3V0ZSA9IFJvdXRlTm9kZTtcblxuLyoqIEV4dHJhY3QgbmVzdGVkIGNoaWxkIHJvdXRlIHVuaW9uIGZyb20gYSByb3V0ZSBkZWZpbml0aW9uLiAqL1xuZXhwb3J0IHR5cGUgQ2hpbGRSb3V0ZU9mPFI+ID0gUiBleHRlbmRzIHsgY2hpbGRyZW4/OiByZWFkb25seSAoaW5mZXIgQylbXSB9XG4gID8gRXh0cmFjdDxDLCBSb3V0ZVRyZWVOb2RlPlxuICA6IG5ldmVyO1xuXG4vKiogUmVjdXJzaXZlbHkgZmxhdHRlbiBhIHJvdXRlIHRyZWUgaW50byBhIHJvdXRlIHVuaW9uLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVUcmVlUm91dGVVbmlvbjxSPiA9IFIgZXh0ZW5kcyBSb3V0ZVRyZWVOb2RlXG4gID8gUiB8IFJvdXRlVHJlZVJvdXRlVW5pb248Q2hpbGRSb3V0ZU9mPFI+PlxuICA6IG5ldmVyO1xuXG4vKiogRmxhdHRlbiBhIHR1cGxlIG9mIHJvdXRlcyBpbnRvIGEgcmVjdXJzaXZlIHJvdXRlIHVuaW9uLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVVbmlvbjxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUm91dGVUcmVlUm91dGVVbmlvbjxcbiAgUm91dGVzW251bWJlcl1cbj47XG5cbi8qKiBFeHRyYWN0IHRoZSBwcmVwYXJlZCB0eXBlIGZyb20gYSBSb3V0ZSAqL1xudHlwZSBSb3V0ZVR5cGVQYXJ0czxSPiA9XG4gIFIgZXh0ZW5kcyBSb3V0ZTxcbiAgICBpbmZlciBUQ29udGV4dCxcbiAgICBpbmZlciBUUHJlcGFyZWQsXG4gICAgaW5mZXIgVFZhcnMsXG4gICAgaW5mZXIgVFF1ZXJ5LFxuICAgIGluZmVyIFRTY2hlbWEsXG4gICAgaW5mZXIgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkXG4gID5cbiAgICA/IHtcbiAgICAgICAgY29udGV4dDogVENvbnRleHQ7XG4gICAgICAgIHByZXBhcmVkOiBUUHJlcGFyZWQ7XG4gICAgICAgIHZhcmlhYmxlczogVFZhcnM7XG4gICAgICAgIHF1ZXJ5OiBUUXVlcnk7XG4gICAgICAgIHNjaGVtYTogVFNjaGVtYTtcbiAgICAgICAgY2hpbGRyZW46IFRDaGlsZHJlbjtcbiAgICAgIH1cbiAgICA6IG5ldmVyO1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkT2Y8Uj4gPSBSb3V0ZVR5cGVQYXJ0czxSPlsncHJlcGFyZWQnXTtcbi8qKiBFeHRyYWN0IHRoZSB2YXJpYWJsZXMgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFZhcmlhYmxlc09mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ZhcmlhYmxlcyddO1xuLyoqIEV4dHJhY3QgdGhlIHF1ZXJ5IHNoYXBlIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBRdWVyeVNoYXBlT2Y8Uj4gPSBSb3V0ZVR5cGVQYXJ0czxSPlsncXVlcnknXTtcblxuLyoqIFBhdGggbGl0ZXJhbCB0eXBlIGlmIHByZXNlbnQgKi9cbmV4cG9ydCB0eXBlIFBhdGhPZjxSPiA9IFIgZXh0ZW5kcyB7IHBhdGg/OiBpbmZlciBQIH1cbiAgPyBQIGV4dGVuZHMgc3RyaW5nXG4gICAgPyBQXG4gICAgOiBuZXZlclxuICA6IG5ldmVyO1xuXG4vKiogVW5pb24gb2YgYWxsIGNvbmNyZXRlIHBhdGggc3RyaW5ncyBmcm9tIGEgdHVwbGUvYXJyYXkgb2Ygcm91dGVzIChyZWN1cnNpdmUpLiAqL1xuZXhwb3J0IHR5cGUgUGF0aHNPZjxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUGF0aE9mPFxuICBSb3V0ZVVuaW9uPFJvdXRlcz5cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBwcmVwYXJlZCB0eXBlIHVuaW9uIChwZXItcm91dGUgcHJlY2lzaW9uIGlzIGludGVudGlvbmFsbHkgZXJhc2VkIGhlcmUpLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgUGF0aHNPZjxSb3V0ZXM+LFxuICBQcmVwYXJlZE9mPFJvdXRlVW5pb248Um91dGVzPj4gfCB1bmRlZmluZWRcbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBvcmRlcmVkIHByZXBhcmVkIHNlZ21lbnQgdHVwbGUgb3IgYXJyYXkgc2hhcGUuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZFNlZ21lbnRzTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnRbXVxuPjtcblxuLyoqIE1hcCBwYXRoIC0+IHF1ZXJ5IHNoYXBlICovXG5leHBvcnQgdHlwZSBRdWVyeVNoYXBlTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUXVlcnlTaGFwZU9mPFJvdXRlVW5pb248Um91dGVzPj5cbj47XG5cbi8qKiBFeHRyYWN0IHNjaGVtYSBmcm9tIGEgcm91dGUgKHVuZGVmaW5lZCBpZiBhYnNlbnQpICovXG5leHBvcnQgdHlwZSBTY2hlbWFPZjxSPiA9IFIgZXh0ZW5kcyB7IHF1ZXJ5U2NoZW1hPzogaW5mZXIgUyB9XG4gID8gUyBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gU1xuICAgIDogdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogRmlsdGVycyBpbmZlcnJlZCBmcm9tIHRoZSByb3V0ZSdzIHNjaGVtYSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc09mPFI+ID1cbiAgU2NoZW1hT2Y8Uj4gZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IEluZmVyRmlsdGVyUmVzdWx0PFNjaGVtYU9mPFI+PlxuICAgIDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG4vKiogTWFwIHBhdGggLT4gaW5mZXJyZWQgZmlsdGVycyB0eXBlICovXG5leHBvcnQgdHlwZSBGaWx0ZXJzTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgRmlsdGVyc09mPFJvdXRlVW5pb248Um91dGVzPj5cbj47XG5cbi8qKiBSdW50aW1lIGhlbHBlciBpbnRlcmZhY2UgYXVnbWVudGF0aW9uIGZvciByb3V0ZXIgY29udGV4dCAoYWRkZWQgaW4gY3JlYXRlUm91dGVyKSAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRBY2Nlc3M8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgbmV2ZXIsXG4gIG5ldmVyXG4+ICYge1xuICAvKiogUmV0cmlldmUgdGhlIHByZXBhcmVkIG9iamVjdCBmb3IgYSBjb25jcmV0ZSBwYXRoIChpZiBjdXJyZW50IG1hdGNoIGluY2x1ZGVzIGl0KSAqL1xuICBnZXRQcmVwYXJlZDogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkO1xuICAvKiogUmV0cmlldmUgdGhlIGZ1bGwgcHJlcGFyZWQgc2VnbWVudCBjaGFpbiBmb3IgYSBjb25jcmV0ZSBwYXRoLiAqL1xuICBnZXRQcmVwYXJlZFNlZ21lbnRzOiAocGF0aDogc3RyaW5nKSA9PiBQcmVwYXJlZFJvdXRlU2VnbWVudFNuYXBzaG90W107XG4gIC8vIGdldFR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdXNlIGZpbHRlcnMvcXVlcnkgZGlyZWN0bHlcbn07XG5cbi8qKiBJbnB1dCBzaGFwZSBmb3IgYSBuYXZpZ2F0aW9uIHRvIGEgc3BlY2lmaWMgcGF0aCAodHlwZWQgcXVlcnkpICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0ge1xuICBwYXRobmFtZTogUGF0aHNPZjxSb3V0ZXM+O1xuICBxdWVyeT86IFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICBmaWx0ZXJzPzogRmlsdGVyc09mPFJvdXRlVW5pb248Um91dGVzPj47XG4gIHJlcGxhY2U/OiBib29sZWFuO1xufTtcblxuLyoqIEZhbGxiYWNrIHVudHlwZWQgbmF2aWdhdGUgaW5wdXQgKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRlSW5wdXRVbnR5cGVkID0ge1xuICBwYXRobmFtZT86IHN0cmluZztcbiAgcXVlcnk/OiBVbmtub3duUXVlcnlTaGFwZTtcbiAgZmlsdGVycz86IFVua25vd25GaWx0ZXJzO1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBPdmVybG9hZGVkIG5hdmlnYXRlIGZ1bmN0aW9uIHR5cGUgKGNvbXBpbGUtdGltZSBvbmx5OyBydW50aW1lIHNpbmdsZSBpbXBsKSAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0ZU92ZXJsb2FkczxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+IHtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRGb3JQYXRoPFJvdXRlcz4pOiB2b2lkO1xuICAob3B0czogTmF2aWdhdGVJbnB1dFVudHlwZWQpOiB2b2lkO1xufVxuIl19
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQXN5bmNSZXNvdXJjZVN0YXR1cyA9ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzID0gQXN5bmNSZXNvdXJjZVN0YXR1cztcblxuZXhwb3J0IHR5cGUgUm91dGVyQWN0aXZlTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNlZ21lbnRMb2FkU3RhdGUgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgY29kZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2VnbWVudHM6IFJvdXRlclNlZ21lbnRMb2FkU3RhdGVbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yID0gJ2Fsd2F5cycgfCAncGF0aCc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlU3VzcGVuc2VCb3VuZGFyeSA9ICdpbmhlcml0JyB8ICdzZWdtZW50JyB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgc2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+O1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFBhcmFtRGF0YT4gfCBudWxsO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlRmFsbGJhY2s8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIHwgUmVhY3ROb2RlXG4gIHwgKChhcmdzOiBSb3V0ZUZhbGxiYWNrQXJnczxUQ29udGV4dD4pID0+IFJlYWN0Tm9kZSk7XG5cbmV4cG9ydCB0eXBlIFJlYWRhYmxlUmVzb3VyY2U8VD4gPSB7XG4gIGdldDogKCkgPT4gVCB8IHVuZGVmaW5lZDtcbiAgZ2V0RXJyb3I6ICgpID0+IHVua25vd247XG4gIGdldFN0YXR1czogKCkgPT4gQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTxUPjtcbiAgcmVhZDogKCkgPT4gVDtcbn07XG5cbi8qKlxuICogSW5wdXQgdHlwZSBmb3IgY3JlYXRpbmcgYSBGbGF0Um91dGUgaW5zdGFuY2UuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgRmxhdFJvdXRlSW5wdXQ8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiBQZXItcmVuZGVyZWQtcm91dGUgbWV0YWRhdGEgYWxpZ25lZCB3aXRoIGByb3V0ZXNgLiAqL1xuICByb3V0ZVNlZ21lbnRzPzogRmxhdFJvdXRlU2VnbWVudFtdO1xuICAvKiogT3B0aW9uYWwgcmVkaXJlY3QgZGVzdGluYXRpb24gaWYgdGhpcyByb3V0ZSBzaG91bGQgcmVkaXJlY3QgKi9cbiAgcmVkaXJlY3RUbz86IHN0cmluZztcbiAgLyoqIEZ1bmN0aW9uIHRvIG1hdGNoIFVSTCBwYXRocyBhZ2FpbnN0IHRoaXMgcm91dGUgcGF0dGVybiAqL1xuICBtYXRjaEZ1bmN0aW9uOiBNYXRjaEZ1bmN0aW9uPFRWYXJpYWJsZXM+O1xuICAvKiogTmVzdGVkIHJvdXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB3aXRoaW4gdGhpcyByb3V0ZSAqL1xuICByb3V0ZXM6IEFueVJvdXRlW107XG59O1xuXG5leHBvcnQgdHlwZSBGbGF0Um91dGVTZWdtZW50ID0ge1xuICAvKiogU3RhYmxlIGtleSBmb3IgdGhlIHJlbmRlcmVkIHNlZ21lbnQgd2l0aGluIGEgZmxhdCByb3V0ZSBjaGFpbi4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBMb2NhbCByb3V0ZSBwYXRoIGNvbmZpZ3VyZWQgb24gdGhlIHJvdXRlIG5vZGUuICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSBwYXRoIHJlcHJlc2VudGVkIGJ5IHRoaXMgc2VnbWVudC4gKi9cbiAgZnVsbFBhdGg6IHN0cmluZztcbiAgLyoqIFBhcmFtcyB0aGF0IG1heSBiZSByZWFkIGJ5IHRoaXMgc2VnbWVudCwgaW5jbHVkaW5nIGFuY2VzdG9yIHBhcmFtcy4gKi9cbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtYXRjaGVkIHJvdXRlIHdpdGggZXh0cmFjdGVkIHBhcmFtZXRlcnMgYW5kIG1ldGFkYXRhLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBtYXRjaCByZXN1bHQgZnJvbSBwYXRoLXRvLXJlZ2V4cCAqL1xuICBtYXRjaDogTWF0Y2g8VFZhcmlhYmxlcz47XG4gIC8qKiBFeHRyYWN0ZWQgcGFyYW1ldGVycyBmcm9tIHRoZSBVUkwgcGF0aCAqL1xuICBwYXJhbXM6IFRWYXJpYWJsZXM7XG4gIC8qKiBUaGUgbWF0Y2hlZCBwYXRoIHN0cmluZyAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSByb3V0ZSBjb21wb25lbnQuXG4gKiBAdGVtcGxhdGUgVFByb3BzIC0gVGhlIHByb3BzIHR5cGUgZm9yIHRoZSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZWFjdENvbXBvbmVudDxUUHJvcHMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoXG4gIHByb3BzOiBUUHJvcHMsXG4pID0+IEpTWC5FbGVtZW50IHwgbnVsbDtcblxudHlwZSBCaXZhcmlhbnRDYWxsYmFjazxGbiBleHRlbmRzICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duPiA9IHtcbiAgYml2YXJpYW5jZUhhY2s6IEZuO1xufVsnYml2YXJpYW5jZUhhY2snXTtcblxuLyoqXG4gKiBPcHRpb25zIHBhc3NlZCB0byBhIHJvdXRlIHJlbmRlciBmdW5jdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlck9wdHM8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgLyoqIE9wdGlvbmFsIGNvbXBvbmVudCB0byByZW5kZXIgKGZyb20gUmVzb3VyY2VQYWdlKSAqL1xuICBDb21wb25lbnQ/OiBSb3V0ZVJlYWN0Q29tcG9uZW50O1xuICAvKiogRGF0YSBwcmVwYXJlZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uICovXG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIC8qKiBUaGUgcHJlcGFyZWQgc2VnbWVudCB0aGF0IGlzIGJlaW5nIHJlbmRlcmVkICovXG4gIHByZXBhcmVkU2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gICAgVENvbnRleHQsXG4gICAgVFByZXBhcmVkLFxuICAgIFRWYXJpYWJsZXMsXG4gICAgVFF1ZXJ5U2hhcGVcbiAgPjtcbiAgLyoqIEFsaWFzIGtlcHQgZm9yIG1pZ3JhdGlvbiBjb21wYXRpYmlsaXR5ICovXG4gIHByZXBhcmVkUm91dGU6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBUaGUgZnVsbCBwcmVwYXJlZCBjaGFpbiBmb3IgdGhlIGN1cnJlbnQgbWF0Y2ggKi9cbiAgcHJlcGFyZWRTZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEluZGV4IG9mIHRoZSBjdXJyZW50IHNlZ21lbnQgaW4gdGhlIHByZXBhcmVkIGNoYWluICovXG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICAvKiogVGhlIGxlYWYgc2VnbWVudCBvZiB0aGUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgbGVhZlNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBSb3V0ZXItbGV2ZWwgY29udGV4dCAqL1xuICBjb250ZXh0OiBUQ29udGV4dDtcbiAgLyoqIFJhdyBxdWVyeSBvYmplY3QgKFBoYXNlIDIgZ2VuZXJpYyBwYXJzaW5nKSAqL1xuICByYXdRdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBUeXBlZCBxdWVyeSBvYmplY3QgKFBoYXNlIDMpLiBGYWxscyBiYWNrIHRvIHJhd1F1ZXJ5IGlmIG5vIHNjaGVtYSAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHJlbmRlciBhIHJvdXRlIHdpdGggY3VzdG9tIGxvZ2ljLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgb3B0czogUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPixcbiAgKSA9PlxuICAgIHwgUmVhY3RFbGVtZW50XG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD5cbj47XG5cbi8qKiBBbGlhcyBmb3IgcmVuZGVyIGFyZ3MgKGtlcHQgZm9yIHB1YmxpYyBBUEkgY2xhcml0eSkuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlckFyZ3M8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcblxuLyoqXG4gKiBBIHNpbmdsZSBhY3RpdmUgcHJlcGFyZWQgcm91dGUgc2VnbWVudCB3aXRoaW4gdGhlIGN1cnJlbnQgcm91dGUgY2hhaW4uXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIHJvdXRlIGRlZmluaXRpb24gdGhhdCBwcm9kdWNlZCB0aGlzIHByZXBhcmVkIHNlZ21lbnQgKi9cbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICAvKiogVGhlIHBhdGggdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcm91dGUgcGF0aCBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB3aGVuIGtub3duICovXG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICAvKiogU3RhYmxlIGtleSB1c2VkIGZvciByb3V0ZSBzZWdtZW50IHJlY29uY2lsaWF0aW9uLiAqL1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIC8qKiBQYXJhbXMgdGhhdCBtYXkgYWZmZWN0IHRoaXMgc2VnbWVudC4gKi9cbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBPcmRlciBvZiB0aGUgc2VnbWVudCBpbiB0aGUgYWN0aXZlIHByZXBhcmVkIGNoYWluICovXG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICAvKiogQXN5bmMgcmVzb3VyY2UgZXhwb3NpbmcgdGhlIHJvdXRlJ3MgcHJlcGFyZWQgdmFsdWUgKi9cbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTxUUHJlcGFyZWQ+O1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBSZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogQ29udHJvbHMgd2hldGhlciB0aGlzIHNlZ21lbnQgb3ducyBhIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5LiAqL1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIC8qKiBGYWxsYmFjayB1c2VkIHdoZW4gdGhpcyBzZWdtZW50J3MgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkgaXMgYWN0aXZlLiAqL1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICAvKiogSWRlbnRpZmllciB1c2VkIGJ5IGRldmVsb3BlciB0b29saW5nIHRvIG1hcCByZW5kZXJlZCBET00gcmVnaW9ucyAqL1xuICBoaWdobGlnaHRJZD86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHF1ZXJ5IHNjaGVtYSBkZWNsYXJlZCBieSB0aGUgcm91dGUgc2VnbWVudCAqL1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2hSb3V0ZSA9IFByZXBhcmVkUm91dGVTZWdtZW50O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudHM8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudFNuYXBzaG90ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgc3VzcGVuc2VCb3VuZGFyeTogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s7XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKlxuICogUmVzdWx0IG9mIHByZXBhcmluZyBhIG1hdGNoZWQgcm91dGUsIGluY2x1ZGluZyB0aGUgb3JkZXJlZCBjaGFpbiBvZiBuZXN0ZWQgYWN0aXZlIHNlZ21lbnRzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVDaGFpbjxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBPcmRlcmVkIGFjdGl2ZSBwcmVwYXJlZCBzZWdtZW50cyBmcm9tIG91dGVybW9zdCB0byBpbm5lcm1vc3QgKi9cbiAgc2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbiAqL1xuICByb3V0ZXM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG59O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBrZXB0IGR1cmluZyB0aGUgc2VnbWVudC1vcmllbnRlZCBtaWdyYXRpb24uICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEtleTogc3RyaW5nO1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgc3VzcGVuc2VCb3VuZGFyeTogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICBoaWdobGlnaHRJZD86IHN0cmluZztcbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWE7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkTWF0Y2hSb3V0ZSA9IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgc2VnbWVudHM6IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG4gIHJvdXRlczogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaDxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuLyoqXG4gKiBDb21wbGV0ZSByb3V0ZSBlbnRyeSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlRW50cnk8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIC8qKiBUaGUgcHJlcGFyZWQgbWF0Y2ggd2l0aCBsb2FkZWQgZGF0YSBhbmQgY29tcG9uZW50cyAqL1xuICBwcmVwYXJlZE1hdGNoOiBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuICAvKiogR2xvYmFsIGxvYWQgc3RhdGUgZm9yIHRoZSBhY3RpdmUgcm91dGUuICovXG4gIGFjdGl2ZUxvYWRTdGF0ZTogUm91dGVyQWN0aXZlTG9hZFN0YXRlO1xuICAvKiogUGVyLXNlZ21lbnQgbG9hZCBzdGF0ZSBkZXRhaWxzIGZvciB0aGUgYWN0aXZlIHJvdXRlLiAqL1xuICBsb2FkU3RhdGU6IFJvdXRlckxvYWRTdGF0ZTtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0IHJlc29sdmVkIGZvciB0aGlzIGVudHJ5ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogQ3VycmVudCBicm93c2VyIGxvY2F0aW9uICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogTGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdW5pZmllZCBmaWx0ZXJzIGhhbmRsZSB0eXBlZCBhY2Nlc3MgKi9cbiAgLy8gdHlwZWRRdWVyeT86IG5ldmVyO1xuICAvKiogUGFyc2VkIGZpbHRlcnMgb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgZGVlcGVzdCBhY3RpdmUgcXVlcnlTY2hlbWEgKGlmIGFueSkgKi9cbiAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIHJlZ2V4IG1hdGNoIHJlc3VsdCAqL1xuICBtYXRjaDogUmVnRXhwRXhlY0FycmF5O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqIE1pbmltYWwgZXJhc2VkIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSBydW50aW1lIGhlbHBlcnMgYW5kIHJlY3Vyc2l2ZSByb3V0ZSB0cmVlcy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlTm9kZSA9IHtcbiAgY2hpbGRyZW4/OiByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW107XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmU/OiAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPGFueSwgYW55LCBhbnk+KSA9PiB1bmtub3duO1xuICBwcmVwYXJlU2VhcmNoQmVoYXZpb3I/OiBSb3V0ZVByZXBhcmVTZWFyY2hCZWhhdmlvcjtcbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWE7XG4gIHJlbmRlcj86IChcbiAgICBvcHRzOiBSb3V0ZVJlbmRlck9wdHM8YW55LCBhbnksIGFueSwgYW55PixcbiAgKSA9PlxuICAgIHwgUmVhY3RFbGVtZW50XG4gICAgfCBudWxsXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIHN1c3BlbnNlQm91bmRhcnk/OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxhbnk+O1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVSZXN1bHQgPSB1bmtub3duO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVQYXJhbXM8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBtYXRjaGVkUm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogRXh0cmFjdGVkIFVSTCBwYXJhbWV0ZXJzICovXG4gIHZhcmlhYmxlczogVFZhcmlhYmxlcztcbiAgLyoqIFR5cGVkIHF1ZXJ5IG9iamVjdCAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKiogQWxpYXMgZm9yIHByZXBhcmUgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZUFyZ3M8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUHJlcGFyZVBhcmFtczxUQ29udGV4dCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHByZXBhcmUgZGF0YSBmb3IgYSByb3V0ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBmdW5jdGlvbiByZXR1cm5zXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgcGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT4gTWF5YmVQcm9taXNlPFRQcmVwYXJlZD5cbj47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgcm91dGUgaW4gdGhlIHJvdXRlci5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkID1cbiAgICB8IHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXVxuICAgIHwgdW5kZWZpbmVkLFxuPiA9IHtcbiAgLyoqXG4gICAqIE5lc3RlZCBjaGlsZCByb3V0ZXMgb3IgcmVkaXJlY3RzLlxuICAgKlxuICAgKiBJTVBPUlRBTlQ6IFRoaXMgdXNlZCB0byBiZSB0eXBlZCBhcyBgKFJvdXRlPGFueSwgUHJlcGFyZVJlc3VsdD4gfCBSZWRpcmVjdClbXWAgd2hpY2hcbiAgICogd2lkZW5lZCAoZXJhc2VkKSB0aGUgZ2VuZXJpYyBwYXJhbWV0ZXIgdHlwZXMgKG5vdGFibHkgdGhlIGBUVmFyaWFibGVzYCBvZiBlYWNoXG4gICAqIGNoaWxkKS4gVGhhdCBjYXVzZWQgVHlwZVNjcmlwdCB0byB0cmVhdCBldmVyeSBjaGlsZCByb3V0ZSdzIGBwcmVwYXJlYCBjYWxsYmFja1xuICAgKiBhcyBhY2NlcHRpbmcgdGhlIGRlZmF1bHQgYFBhcmFtRGF0YWAgc2hhcGUgKGVmZmVjdGl2ZWx5IGBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsc3RyaW5nfHN0cmluZ1tdPj5gKS5cbiAgICogV2hlbiB1c2VyIGNvZGUgc3BlY2lmaWVkIGEgbW9yZSBzcGVjaWZpYyBwYXJhbWV0ZXIgb2JqZWN0IChlLmcuIGB7IHNsdWc6IHN0cmluZyB9YClcbiAgICogZm9yIGEgcGF0aCBsaWtlIGA6c2x1Z2AsIHRoZSBmdW5jdGlvbiB0eXBlIGJlY2FtZSBub27igJFhc3NpZ25hYmxlIGJlY2F1c2UgaXRzXG4gICAqIHBhcmFtZXRlciB3YXMgc3RyaWN0ZXIgdGhhbiB0aGUgd2lkZW5lZCB2ZXJzaW9uLiBCeSBzd2l0Y2hpbmcgdG8gYEFueVJvdXRlYCB3ZVxuICAgKiByZXRhaW4gYGFueWAgaW4gdGhlIGVyYXNlZCBwb3NpdGlvbiBpbnN0ZWFkIG9mIGEgY29uY3JldGUgYFBhcmFtRGF0YWAsIHdoaWNoXG4gICAqIGFsbG93cyBzdHJpY3RlciBjaGlsZCBgdmFyaWFibGVzYCBzaGFwZXMgd2l0aG91dCBjb25mbGljdC5cbiAgICpcbiAgICogVXNpbmcgYEFueVJvdXRlYCBwdXJwb3NlbHkgcHJlc2VydmVzIGluZGVwZW5kZW5jZSBvZiBlYWNoIHJvdXRlJ3MgZ2VuZXJpY1xuICAgKiBwYXJhbWV0ZXJzIHdoaWxlIHN0aWxsIGtlZXBpbmcgcnVudGltZSByZXByZXNlbnRhdGlvbiBpZGVudGljYWwuXG4gICAqL1xuICBjaGlsZHJlbj86IFRDaGlsZHJlbjtcbiAgLyoqIFJlc291cmNlIHBhZ2UgZm9yIGxhenktbG9hZGVkIGNvbXBvbmVudHMgKi9cbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgLyoqIENvbnRyb2xzIHdoZXRoZXIgdGhpcyByb3V0ZSBzZWdtZW50IG93bnMgYSBsb2NhbCBTdXNwZW5zZSBib3VuZGFyeS4gKi9cbiAgc3VzcGVuc2VCb3VuZGFyeT86IFJvdXRlU3VzcGVuc2VCb3VuZGFyeTtcbiAgLyoqIEZhbGxiYWNrIHVzZWQgYnkgdGhpcyByb3V0ZSBzZWdtZW50IHdoZW4gaXRzIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5IGlzIGFjdGl2ZS4gKi9cbiAgZmFsbGJhY2s/OiBSb3V0ZUZhbGxiYWNrPFRDb250ZXh0PjtcbiAgLyoqIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIEZ1bmN0aW9uIHRvIHByZXBhcmUgZGF0YSBiZWZvcmUgcmVuZGVyaW5nICovXG4gIHByZXBhcmU/OiBSb3V0ZVByZXBhcmU8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciB0aGlzIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiBzaG91bGQgcnVuIGFnYWluIHdoZW4gb25seVxuICAgKiB0aGUgVVJMIHNlYXJjaCBjaGFuZ2VzLiBEZWZhdWx0cyB0byBgYWx3YXlzYCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICBwcmVwYXJlU2VhcmNoQmVoYXZpb3I/OiBSb3V0ZVByZXBhcmVTZWFyY2hCZWhhdmlvcjtcbiAgLyoqIEN1c3RvbSByZW5kZXIgZnVuY3Rpb24gZm9yIHRoaXMgcm91dGUgKi9cbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVW5pZmllZCBzY2hlbWEgKGZpbHRlciAvIHF1ZXJ5KSAqL1xuICBxdWVyeVNjaGVtYT86IFM7XG59O1xuXG4vKipcbiAqIFByb3BzIHBhc3NlZCB0byBSb3V0ZUNvbXBvbmVudCBpbnN0YW5jZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVDb21wb25lbnRQcm9wczxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyICovXG4gIGNoaWxkcmVuOiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBSb3V0ZXIgY29udGV4dCBjb250YWluaW5nIG5hdmlnYXRpb24gYW5kIHN0YXRlICovXG4gIHJvdXRlckNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxUVmFyaWFibGVzLCBTLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBUaGUgcm91dGUgY29uZmlndXJhdGlvbiAqL1xuICByb3V0ZTogUm91dGU8dW5rbm93biwgdW5rbm93biwgUGFyYW1EYXRhLCBVbmtub3duUXVlcnlTaGFwZSwgUz47XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciByb3V0ZSBjaGFuZ2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFN1YnNjcmliZUNhbGxiYWNrPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gKG5leHRFbnRyeTogUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByZWxvYWRUYXJnZXQgPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSb3V0ZXIgY29udGV4dCB0eXBlIHRoYXQgcHJvdmlkZXMgbmF2aWdhdGlvbiBhbmQgc3RhdGUgbWFuYWdlbWVudC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0aW5nQ29udGV4dFR5cGU8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIEJyb3dzZXIgaGlzdG9yeSBpbnN0YW5jZSBmb3IgbmF2aWdhdGlvbiAqL1xuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeTtcbiAgLyoqIEdldCB0aGUgY3VycmVudCByb3V0ZSBlbnRyeSAqL1xuICBnZXQ6ICgpID0+IFJvdXRlRW50cnk8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+O1xuICAvKiogUHJlbG9hZCBjb2RlIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWRDb2RlOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogUHJlbG9hZCBjb2RlIGFuZCBkYXRhIGZvciBhIHJvdXRlIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVzdWx0ICovXG4gIHByZWxvYWQ6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyAoc2NoZW1hIGRlcml2YWJsZSwgbm90IG5lZWRlZCBpbiBzaWduYXR1cmUpICovXG4gIHN1YnNjcmliZTogKFxuICAgIGNhbGxiYWNrOiBTdWJzY3JpYmVDYWxsYmFjazxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD4sXG4gICkgPT4gKCkgPT4gdm9pZDtcbiAgLyoqIE5hdmlnYXRlIHdpdGggb3B0aW9uYWwgcGF0aG5hbWUgYW5kIHR5cGVkL3JhdyBxdWVyeSBvYmplY3QgKi9cbiAgbmF2aWdhdGU6IChvcHRzOiB7XG4gICAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gICAgcXVlcnk/OiBUUXVlcnlTaGFwZTtcbiAgICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIHRoZSBhY3RpdmUgcXVlcnlTY2hlbWEgKi9cbiAgICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gICAgcmVwbGFjZT86IGJvb2xlYW47XG4gIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIFJldHVybiB0eXBlIGZvciByZXNvdXJjZSBwYWdlIGxvYWRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZVJldHVybiA9XG4gIHwgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfVxuICB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0gUm91dGVOb2RlO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGUgPSBSb3V0ZU5vZGU7XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hLFxuICAgIGluZmVyIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZFxuICA+XG4gICAgPyB7XG4gICAgICAgIGNvbnRleHQ6IFRDb250ZXh0O1xuICAgICAgICBwcmVwYXJlZDogVFByZXBhcmVkO1xuICAgICAgICB2YXJpYWJsZXM6IFRWYXJzO1xuICAgICAgICBxdWVyeTogVFF1ZXJ5O1xuICAgICAgICBzY2hlbWE6IFRTY2hlbWE7XG4gICAgICAgIGNoaWxkcmVuOiBUQ2hpbGRyZW47XG4gICAgICB9XG4gICAgOiBuZXZlcjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ByZXBhcmVkJ107XG4vKiogRXh0cmFjdCB0aGUgdmFyaWFibGVzIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBWYXJpYWJsZXNPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+Wyd2YXJpYWJsZXMnXTtcbi8qKiBFeHRyYWN0IHRoZSBxdWVyeSBzaGFwZSB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3F1ZXJ5J107XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFBhdGhPZjxcbiAgUm91dGVVbmlvbjxSb3V0ZXM+XG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSB1bmlvbiAocGVyLXJvdXRlIHByZWNpc2lvbiBpcyBpbnRlbnRpb25hbGx5IGVyYXNlZCBoZXJlKS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gb3JkZXJlZCBwcmVwYXJlZCBzZWdtZW50IHR1cGxlIG9yIGFycmF5IHNoYXBlLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRTZWdtZW50c01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkUm91dGVTZWdtZW50W11cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogRXh0cmFjdCBzY2hlbWEgZnJvbSBhIHJvdXRlICh1bmRlZmluZWQgaWYgYWJzZW50KSAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hT2Y8Uj4gPSBSIGV4dGVuZHMgeyBxdWVyeVNjaGVtYT86IGluZmVyIFMgfVxuICA/IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IFNcbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcblxuLyoqIEZpbHRlcnMgaW5mZXJyZWQgZnJvbSB0aGUgcm91dGUncyBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNPZjxSPiA9XG4gIFNjaGVtYU9mPFI+IGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTY2hlbWFPZjxSPj5cbiAgICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqIE1hcCBwYXRoIC0+IGluZmVycmVkIGZpbHRlcnMgdHlwZSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkQWNjZXNzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIG5ldmVyLFxuICBuZXZlclxuPiAmIHtcbiAgLyoqIFJldHJpZXZlIHRoZSBwcmVwYXJlZCBvYmplY3QgZm9yIGEgY29uY3JldGUgcGF0aCAoaWYgY3VycmVudCBtYXRjaCBpbmNsdWRlcyBpdCkgKi9cbiAgZ2V0UHJlcGFyZWQ6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZDtcbiAgLyoqIFJldHJpZXZlIHRoZSBmdWxsIHByZXBhcmVkIHNlZ21lbnQgY2hhaW4gZm9yIGEgY29uY3JldGUgcGF0aC4gKi9cbiAgZ2V0UHJlcGFyZWRTZWdtZW50czogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdFtdO1xuICAvLyBnZXRUeXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVzZSBmaWx0ZXJzL3F1ZXJ5IGRpcmVjdGx5XG59O1xuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgcGF0aG5hbWU6IFBhdGhzT2Y8Um91dGVzPjtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgZmlsdGVycz86IEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXM+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==
|
package/lib/esm/values.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const ROUTER_NAVIGATION_SOURCES: readonly ["link-click", "link-hover", "preload-hover", "programmatic", "popstate-back", "popstate-forward", "popstate-unknown", "external", "normalize"];
|
|
2
2
|
export type RouterNavigationSourceValue = (typeof ROUTER_NAVIGATION_SOURCES)[number];
|
|
3
|
-
export declare const ROUTER_EVENT_KINDS: readonly ["snapshot", "preload", "history", "popstate", "prepare-start", "prepare-complete"];
|
|
3
|
+
export declare const ROUTER_EVENT_KINDS: readonly ["snapshot", "preload", "history", "popstate", "prepare-start", "prepare-complete", "active-load-state"];
|
|
4
4
|
export type RouterEventKindValue = (typeof ROUTER_EVENT_KINDS)[number];
|
|
5
5
|
export declare const ROUTER_PRELOAD_MODES: readonly ["code", "full"];
|
|
6
6
|
export type RouterPreloadModeValue = (typeof ROUTER_PRELOAD_MODES)[number];
|
package/lib/esm/values.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,0JAU5B,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7C,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/values.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,0JAU5B,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7C,eAAO,MAAM,kBAAkB,mHAQrB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,2BAA4B,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E,eAAO,MAAM,sBAAsB,2CAA4C,CAAC;AAEhF,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,eAAO,MAAM,0BAA0B,yCAI7B,CAAC;AAEX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,eAAO,MAAM,uBAAuB,8CAI1B,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAoBhF,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,2BAA2B,CAEtC;AAOD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B;AAOD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,sBAAsB,CAEjC;AAOD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CAEnC;AAOD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAEvC;AAOD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,wBAAwB,CAEnC"}
|
package/lib/esm/values.js
CHANGED
|
@@ -16,6 +16,7 @@ export const ROUTER_EVENT_KINDS = [
|
|
|
16
16
|
'popstate',
|
|
17
17
|
'prepare-start',
|
|
18
18
|
'prepare-complete',
|
|
19
|
+
'active-load-state',
|
|
19
20
|
];
|
|
20
21
|
export const ROUTER_PRELOAD_MODES = ['code', 'full'];
|
|
21
22
|
export const ROUTER_HISTORY_ACTIONS = ['push', 'replace', 'normalize'];
|
|
@@ -50,4 +51,4 @@ export function isRouterPopstateDirection(value) {
|
|
|
50
51
|
export function isRouterPrepareStatus(value) {
|
|
51
52
|
return includesValue(ROUTER_PREPARE_STATUSES, value);
|
|
52
53
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxZQUFZO0lBQ1osWUFBWTtJQUNaLGVBQWU7SUFDZixjQUFjO0lBQ2QsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFdBQVc7Q0FDSCxDQUFDO0FBS1gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsVUFBVTtJQUNWLFNBQVM7SUFDVCxTQUFTO0lBQ1QsVUFBVTtJQUNWLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsbUJBQW1CO0NBQ1gsQ0FBQztBQUlYLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBSTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUloRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxNQUFNO0lBQ04sU0FBUztJQUNULFNBQVM7Q0FDRCxDQUFDO0FBS1gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsU0FBUztJQUNULFVBQVU7SUFDVixVQUFVO0NBQ0YsQ0FBQztBQVVYLFNBQVMsYUFBYSxDQUNwQixNQUFvQixFQUNwQixLQUFjO0lBRWQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFVLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBT0QsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxLQUFjO0lBRWQsT0FBTyxhQUFhLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQU9ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYztJQUVkLE9BQU8sYUFBYSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFPRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEtBQWM7SUFFZCxPQUFPLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBT0QsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxLQUFjO0lBRWQsT0FBTyxhQUFhLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQU9ELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsS0FBYztJQUVkLE9BQU8sYUFBYSxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFPRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQWM7SUFFZCxPQUFPLGFBQWEsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJPVVRFUl9OQVZJR0FUSU9OX1NPVVJDRVMgPSBbXG4gICdsaW5rLWNsaWNrJyxcbiAgJ2xpbmstaG92ZXInLFxuICAncHJlbG9hZC1ob3ZlcicsXG4gICdwcm9ncmFtbWF0aWMnLFxuICAncG9wc3RhdGUtYmFjaycsXG4gICdwb3BzdGF0ZS1mb3J3YXJkJyxcbiAgJ3BvcHN0YXRlLXVua25vd24nLFxuICAnZXh0ZXJuYWwnLFxuICAnbm9ybWFsaXplJyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFJvdXRlck5hdmlnYXRpb25Tb3VyY2VWYWx1ZSA9XG4gICh0eXBlb2YgUk9VVEVSX05BVklHQVRJT05fU09VUkNFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFJPVVRFUl9FVkVOVF9LSU5EUyA9IFtcbiAgJ3NuYXBzaG90JyxcbiAgJ3ByZWxvYWQnLFxuICAnaGlzdG9yeScsXG4gICdwb3BzdGF0ZScsXG4gICdwcmVwYXJlLXN0YXJ0JyxcbiAgJ3ByZXBhcmUtY29tcGxldGUnLFxuICAnYWN0aXZlLWxvYWQtc3RhdGUnLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUm91dGVyRXZlbnRLaW5kVmFsdWUgPSAodHlwZW9mIFJPVVRFUl9FVkVOVF9LSU5EUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFJPVVRFUl9QUkVMT0FEX01PREVTID0gWydjb2RlJywgJ2Z1bGwnXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlbG9hZE1vZGVWYWx1ZSA9ICh0eXBlb2YgUk9VVEVSX1BSRUxPQURfTU9ERVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBST1VURVJfSElTVE9SWV9BQ1RJT05TID0gWydwdXNoJywgJ3JlcGxhY2UnLCAnbm9ybWFsaXplJ10gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFJvdXRlckhpc3RvcnlBY3Rpb25WYWx1ZSA9ICh0eXBlb2YgUk9VVEVSX0hJU1RPUllfQUNUSU9OUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFJPVVRFUl9QT1BTVEFURV9ESVJFQ1RJT05TID0gW1xuICAnYmFjaycsXG4gICdmb3J3YXJkJyxcbiAgJ3Vua25vd24nLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUm91dGVyUG9wc3RhdGVEaXJlY3Rpb25WYWx1ZSA9XG4gICh0eXBlb2YgUk9VVEVSX1BPUFNUQVRFX0RJUkVDVElPTlMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBST1VURVJfUFJFUEFSRV9TVEFUVVNFUyA9IFtcbiAgJ3BlbmRpbmcnLFxuICAncmVzb2x2ZWQnLFxuICAncmVqZWN0ZWQnLFxuXSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUm91dGVyUHJlcGFyZVN0YXR1c1ZhbHVlID0gKHR5cGVvZiBST1VURVJfUFJFUEFSRV9TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBSZXVzYWJsZSBpbmNsdXNpb24gaGVscGVyIGZvciBydW50aW1lIGVudW0tbGlrZSBhcnJheXMuXG4gKlxuICogQHBhcmFtIHZhbHVlcyAtIEFsbG93ZWQgdmFsdWVzLlxuICogQHBhcmFtIHZhbHVlIC0gUnVudGltZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqL1xuZnVuY3Rpb24gaW5jbHVkZXNWYWx1ZTxUIGV4dGVuZHMgc3RyaW5nPihcbiAgdmFsdWVzOiByZWFkb25seSBUW10sXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgVCB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlcy5pbmNsdWRlcyh2YWx1ZSBhcyBUKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgYSBydW50aW1lIHZhbHVlIGlzIGEgcm91dGVyIG5hdmlnYXRpb24gc291cmNlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFJ1bnRpbWUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JvdXRlck5hdmlnYXRpb25Tb3VyY2UoXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgUm91dGVyTmF2aWdhdGlvblNvdXJjZVZhbHVlIHtcbiAgcmV0dXJuIGluY2x1ZGVzVmFsdWUoUk9VVEVSX05BVklHQVRJT05fU09VUkNFUywgdmFsdWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBhIHJ1bnRpbWUgdmFsdWUgaXMgYSByb3V0ZXIgZXZlbnQga2luZC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBSdW50aW1lIHZhbHVlIHRvIHZhbGlkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSb3V0ZXJFdmVudEtpbmQoXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgUm91dGVyRXZlbnRLaW5kVmFsdWUge1xuICByZXR1cm4gaW5jbHVkZXNWYWx1ZShST1VURVJfRVZFTlRfS0lORFMsIHZhbHVlKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgYSBydW50aW1lIHZhbHVlIGlzIGEgc3VwcG9ydGVkIHByZWxvYWQgbW9kZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBSdW50aW1lIHZhbHVlIHRvIHZhbGlkYXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSb3V0ZXJQcmVsb2FkTW9kZShcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyBSb3V0ZXJQcmVsb2FkTW9kZVZhbHVlIHtcbiAgcmV0dXJuIGluY2x1ZGVzVmFsdWUoUk9VVEVSX1BSRUxPQURfTU9ERVMsIHZhbHVlKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgYSBydW50aW1lIHZhbHVlIGlzIGEgaGlzdG9yeSBhY3Rpb24gZW1pdHRlZCBieSB0aGUgcm91dGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFJ1bnRpbWUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JvdXRlckhpc3RvcnlBY3Rpb24oXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgUm91dGVySGlzdG9yeUFjdGlvblZhbHVlIHtcbiAgcmV0dXJuIGluY2x1ZGVzVmFsdWUoUk9VVEVSX0hJU1RPUllfQUNUSU9OUywgdmFsdWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBhIHJ1bnRpbWUgdmFsdWUgaXMgYSBwb3BzdGF0ZSBkaXJlY3Rpb24gZW1pdHRlZCBieSB0aGUgcm91dGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFJ1bnRpbWUgdmFsdWUgdG8gdmFsaWRhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JvdXRlclBvcHN0YXRlRGlyZWN0aW9uKFxuICB2YWx1ZTogdW5rbm93bixcbik6IHZhbHVlIGlzIFJvdXRlclBvcHN0YXRlRGlyZWN0aW9uVmFsdWUge1xuICByZXR1cm4gaW5jbHVkZXNWYWx1ZShST1VURVJfUE9QU1RBVEVfRElSRUNUSU9OUywgdmFsdWUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBhIHJ1bnRpbWUgdmFsdWUgaXMgYSBwcmVwYXJlIGxpZmVjeWNsZSBzdGF0dXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gUnVudGltZSB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm91dGVyUHJlcGFyZVN0YXR1cyhcbiAgdmFsdWU6IHVua25vd24sXG4pOiB2YWx1ZSBpcyBSb3V0ZXJQcmVwYXJlU3RhdHVzVmFsdWUge1xuICByZXR1cm4gaW5jbHVkZXNWYWx1ZShST1VURVJfUFJFUEFSRV9TVEFUVVNFUywgdmFsdWUpO1xufVxuIl19
|