velocious 1.0.702 → 1.0.704

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.
@@ -8,9 +8,9 @@
8
8
  /** @typedef {"queued" | "handed_off"} BackgroundJobActiveStatus */
9
9
  /** @typedef {"cancelled" | "completed" | "failed" | "orphaned"} BackgroundJobTerminalStatus */
10
10
  /** @typedef {BackgroundJobActiveStatus | BackgroundJobTerminalStatus} BackgroundJobStatus */
11
- /** @typedef {"exit" | "process-error" | "ipc-send"} PooledRunnerFailureOrigin */
11
+ /** @typedef {"exit" | "process-error" | "ipc-send" | "child-silence"} PooledRunnerFailureOrigin */
12
12
  /** @typedef {"starting" | "running" | "retiring"} PooledRunnerLifecycleState */
13
- /** @typedef {"parent_retire_drained" | "job_timeout" | "worker_stop" | "signal_sigterm" | "signal_sigint" | "signal_sigkill" | "signal_other" | "ipc_disconnect" | "process_error" | "unexpected_exit"} PooledChildShutdownReason */
13
+ /** @typedef {"parent_retire_drained" | "job_timeout" | "worker_stop" | "child_silence" | "signal_sigterm" | "signal_sigint" | "signal_sigkill" | "signal_other" | "ipc_disconnect" | "process_error" | "unexpected_exit"} PooledChildShutdownReason */
14
14
  /**
15
15
  * @deprecated Use PooledChildShutdownReason for exact shutdown provenance.
16
16
  * @typedef {"unexpected" | "job-timeout" | "worker-shutdown-timeout"} PooledRunnerTerminationReason
@@ -303,4 +303,4 @@
303
303
  * @typedef {BackgroundJobHelloMessage | BackgroundJobGenerationAcceptedMessage | BackgroundJobGenerationRejectedMessage | BackgroundJobReadyMessage | BackgroundJobDrainingMessage | BackgroundJobHeartbeatMessage | BackgroundJobEnqueueMessage | BackgroundJobEnqueuedMessage | BackgroundJobEnqueueErrorMessage | BackgroundJobReplaceScheduledMessage | BackgroundJobScheduleReplacedMessage | BackgroundJobReplaceScheduledErrorMessage | BackgroundJobCancelScheduledMessage | BackgroundJobScheduleCancelledMessage | BackgroundJobCancelScheduledErrorMessage | BackgroundJobGetScheduledMessage | BackgroundJobScheduledMessage | BackgroundJobGetScheduledErrorMessage | BackgroundJobWakeScheduledMessage | BackgroundJobScheduleWokenMessage | BackgroundJobWakeScheduledErrorMessage | BackgroundJobJobMessage | BackgroundJobAcceptedMessage | BackgroundJobCompleteMessage | BackgroundJobFailedMessage | BackgroundJobRescheduleMessage | BackgroundJobUpdatedMessage | BackgroundJobUpdateErrorMessage} BackgroundJobSocketMessage
304
304
  */
305
305
  export const nothing = {};
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2dyb3VuZC1qb2JzL3R5cGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7R0FFRztBQUNILHlGQUF5RjtBQUN6RixpSUFBaUk7QUFDakksNk5BQTZOO0FBQzdOLG1FQUFtRTtBQUNuRSwrRkFBK0Y7QUFDL0YsNkZBQTZGO0FBQzdGLGlGQUFpRjtBQUNqRixnRkFBZ0Y7QUFDaEYscU9BQXFPO0FBQ3JPOzs7R0FHRztBQUNILHdGQUF3RjtBQUN4Rjs7Ozs7Ozs7R0FRRztBQUNIOzs7Ozs7O0dBT0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0g7Ozs7Ozs7Ozs7R0FVRztBQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSDs7Ozs7R0FLRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7O0dBS0c7QUFDSDs7Ozs7OztHQU9HO0FBQ0g7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0g7OztHQUdHO0FBQ0g7Ozs7Ozs7R0FPRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7OztHQU1HO0FBQ0g7Ozs7O0dBS0c7QUFDSDs7Ozs7Ozs7Ozs7R0FXRztBQUNIOzs7Ozs7Ozs7R0FTRztBQUNIOzs7Ozs7O0dBT0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSDs7R0FFRztBQUNIOzs7OztHQUtHO0FBQ0g7O0dBRUc7QUFDSDs7OztHQUlHO0FBQ0g7Ozs7R0FJRztBQUNIOztHQUVHO0FBQ0g7Ozs7R0FJRztBQUNIOzs7Ozs7Ozs7OztHQVdHO0FBQ0g7O0dBRUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBAdHlwZWRlZiB7XCJpbmxpbmVcIiB8IFwiZm9ya2VkXCIgfCBcInBvb2xlZFwiIHwgXCJzcGF3bmVkXCJ9IEJhY2tncm91bmRKb2JFeGVjdXRpb25Nb2RlXG4gKi9cbi8qKiBAdHlwZWRlZiB7XCJjYW5kaWRhdGVcIiB8IFwiYWN0aXZlXCIgfCBcInJldGlyZWRcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uSW5pdGlhbFN0YXRlICovXG4vKiogQHR5cGVkZWYge1wic3RhcnRpbmdcIiB8IFwiY2FuZGlkYXRlXCIgfCBcImFjdGl2ZVwiIHwgXCJyZXRpcmluZ1wiIHwgXCJyZXRpcmVkXCIgfCBcInN0b3BwZWRcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uTGlmZWN5Y2xlU3RhdGUgKi9cbi8qKiBAdHlwZWRlZiB7XCJtaXNzaW5nLWdlbmVyYXRpb25cIiB8IFwidW5leHBlY3RlZC1nZW5lcmF0aW9uXCIgfCBcIm1hbGZvcm1lZC1nZW5lcmF0aW9uXCIgfCBcImdlbmVyYXRpb24tbWlzbWF0Y2hcIiB8IFwid29ya2VyLWFkbWlzc2lvbi1yZXRpcmVkXCIgfCBcIndvcmtlci1oYXMtbm8tcmVjb3ZlcmFibGUtaGFuZG9mZnNcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uUmVqZWN0aW9uUmVhc29uICovXG4vKiogQHR5cGVkZWYge1wicXVldWVkXCIgfCBcImhhbmRlZF9vZmZcIn0gQmFja2dyb3VuZEpvYkFjdGl2ZVN0YXR1cyAqL1xuLyoqIEB0eXBlZGVmIHtcImNhbmNlbGxlZFwiIHwgXCJjb21wbGV0ZWRcIiB8IFwiZmFpbGVkXCIgfCBcIm9ycGhhbmVkXCJ9IEJhY2tncm91bmRKb2JUZXJtaW5hbFN0YXR1cyAqL1xuLyoqIEB0eXBlZGVmIHtCYWNrZ3JvdW5kSm9iQWN0aXZlU3RhdHVzIHwgQmFja2dyb3VuZEpvYlRlcm1pbmFsU3RhdHVzfSBCYWNrZ3JvdW5kSm9iU3RhdHVzICovXG4vKiogQHR5cGVkZWYge1wiZXhpdFwiIHwgXCJwcm9jZXNzLWVycm9yXCIgfCBcImlwYy1zZW5kXCJ9IFBvb2xlZFJ1bm5lckZhaWx1cmVPcmlnaW4gKi9cbi8qKiBAdHlwZWRlZiB7XCJzdGFydGluZ1wiIHwgXCJydW5uaW5nXCIgfCBcInJldGlyaW5nXCJ9IFBvb2xlZFJ1bm5lckxpZmVjeWNsZVN0YXRlICovXG4vKiogQHR5cGVkZWYge1wicGFyZW50X3JldGlyZV9kcmFpbmVkXCIgfCBcImpvYl90aW1lb3V0XCIgfCBcIndvcmtlcl9zdG9wXCIgfCBcInNpZ25hbF9zaWd0ZXJtXCIgfCBcInNpZ25hbF9zaWdpbnRcIiB8IFwic2lnbmFsX3NpZ2tpbGxcIiB8IFwic2lnbmFsX290aGVyXCIgfCBcImlwY19kaXNjb25uZWN0XCIgfCBcInByb2Nlc3NfZXJyb3JcIiB8IFwidW5leHBlY3RlZF9leGl0XCJ9IFBvb2xlZENoaWxkU2h1dGRvd25SZWFzb24gKi9cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIFBvb2xlZENoaWxkU2h1dGRvd25SZWFzb24gZm9yIGV4YWN0IHNodXRkb3duIHByb3ZlbmFuY2UuXG4gKiBAdHlwZWRlZiB7XCJ1bmV4cGVjdGVkXCIgfCBcImpvYi10aW1lb3V0XCIgfCBcIndvcmtlci1zaHV0ZG93bi10aW1lb3V0XCJ9IFBvb2xlZFJ1bm5lclRlcm1pbmF0aW9uUmVhc29uXG4gKi9cbi8qKiBAdHlwZWRlZiB7XCJydW5uaW5nXCIgfCBcInJldGlyaW5nXCIgfCBcInN0b3BwaW5nXCJ9IEJhY2tncm91bmRKb2JzV29ya2VyTGlmZWN5Y2xlU3RhdGUgKi9cbi8qKlxuICogRXhhY3QgZHVyYWJsZSBoYW5kb2ZmIG93bmVyc2hpcCBjYXJyaWVkIGJ5IGFuIGV4ZWN1dGluZyBqb2Igd2hlbiBpdCBwcm9kdWNlc1xuICogZm9sbG93LXVwIHdvcmsuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iUHJvZHVjZXJQcm9vZlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYklkIC0gUHJvZHVjaW5nIGpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBoYW5kb2ZmSWQgLSBQcm9kdWNpbmcgaGFuZG9mZiBsZWFzZSBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB3b3JrZXJJZCAtIFdvcmtlciBpZGVudGl0eSBwZXJzaXN0ZWQgd2l0aCB0aGUgaGFuZG9mZi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoYW5kZWRPZmZBdE1zIC0gRHVyYWJsZSBoYW5kb2ZmIHRpbWVzdGFtcC5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQb29sZWRSdW5uZXJBY3RpdmVKb2JcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gaGFuZG9mZklkIC0gRHVyYWJsZSBoYW5kb2ZmIGxlYXNlIGlkLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBoYW5kZWRPZmZBdE1zIC0gRHVyYWJsZSBoYW5kb2ZmIHRpbWVzdGFtcC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JJZCAtIER1cmFibGUgYmFja2dyb3VuZCBqb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iTmFtZSAtIFJlZ2lzdGVyZWQgam9iIGNsYXNzIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd29ya2VySWQgLSBXb3JrZXIgaWRlbnRpdHkgcGVyc2lzdGVkIHdpdGggdGhlIGhhbmRvZmYuXG4gKi9cbi8qKlxuICogT25lIHByb2Nlc3MtZmFpbHVyZSBzbmFwc2hvdCBzaGFyZWQgYnkgZXZlcnkgam9iIGxvc3Qgd2l0aCBhIHBvb2xlZCBjaGlsZC5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBvb2xlZFJ1bm5lckZhaWx1cmVcbiAqIEBwcm9wZXJ0eSB7UG9vbGVkUnVubmVyQWN0aXZlSm9iW119IGFjdGl2ZUpvYnMgLSBKb2JzIHRoYXQgd2VyZSBpbiBmbGlnaHQgd2hlbiB0aGUgY2hpbGQgZmFpbGVkLCBvcmRlcmVkIGJ5IGpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gY2hpbGRJbnN0YW5jZUlkIC0gU3RhYmxlIHBvb2xlZC1jaGlsZCBpZGVudGl0eSB3aGVuIGl0cyBzdGFydHVwIG9yIHNodXRkb3duIG9ic2VydmF0aW9uIGFycml2ZWQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IGV4aXRDb2RlIC0gQ2hpbGQgZXhpdCBjb2RlLCBvciBudWxsIGZvciBzaWduYWwvcHJvY2VzcyBlcnJvcnMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGdlbmVyYXRpb25JZCAtIFJlbGVhc2UgZ2VuZXJhdGlvbiBpZGVudGl0eSwgb3IgbnVsbCBpbiBsZWdhY3kgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGluZmxpZ2h0Sm9iSWRzIC0gQm91bmRlZCBqb2IgaWRzIGluIGZsaWdodCB3aGVuIGZhaWx1cmUgaGFuZGxpbmcgc3RhcnRlZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBpbmZsaWdodEpvYklkc1RydW5jYXRlZENvdW50IC0gSW4tZmxpZ2h0IGlkcyBvbWl0dGVkIGZyb20gdGhlIGJvdW5kZWQgc25hcHNob3QuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBudWxsfSBvb21LaWxsZWQgLSBGYWxzZSB3aGVuIHRoZSBvYnNlcnZlZCBleGl0IHJ1bGVzIE9PTSBvdXQ7IG51bGwgd2hlbiBhbiB1bmV4cGVjdGVkIFNJR0tJTEwgY2Fubm90IGJlIGRpc3Rpbmd1aXNoZWQgZnJvbSBhbiBPT00ga2lsbCB3aXRob3V0IHN1cGVydmlzb3Iva2VybmVsIGV2aWRlbmNlLlxuICogQHByb3BlcnR5IHtQb29sZWRSdW5uZXJGYWlsdXJlT3JpZ2lufSBvcmlnaW4gLSBXb3JrZXIgb2JzZXJ2YXRpb24gdGhhdCBpbml0aWF0ZWQgZmFpbHVyZSBoYW5kbGluZy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBydW5uZXJBZ2VNcyAtIENoaWxkIGFnZSB3aGVuIGZhaWx1cmUgaGFuZGxpbmcgc3RhcnRlZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBydW5uZXJDcmVhdGVkQXRNcyAtIENoaWxkIGNyZWF0aW9uIHRpbWVzdGFtcC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcnVubmVyRGV0YWNoZWQgLSBXaGV0aGVyIHRoZSBydW5uZXIgb3duZWQgYSBkZXRhY2hlZCBwcm9jZXNzIGdyb3VwLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJ1bm5lckpvYnNSdW4gLSBQcmV2aW91c2x5IGFja25vd2xlZGdlZCBqb2JzIGhhbmRsZWQgYnkgdGhlIGNoaWxkLlxuICogQHByb3BlcnR5IHtQb29sZWRSdW5uZXJMaWZlY3ljbGVTdGF0ZX0gcnVubmVyTGlmZWN5Y2xlIC0gQ2hpbGQgbGlmZWN5Y2xlIGltbWVkaWF0ZWx5IGJlZm9yZSByZWNvdmVyeS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gcnVubmVyUGlkIC0gQ2hpbGQgcHJvY2VzcyBpZCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwibm9kZTpjaGlsZF9wcm9jZXNzXCIpLkNoaWxkUHJvY2Vzc1tcInNpZ25hbENvZGVcIl19IHNpZ25hbCAtIENoaWxkIHRlcm1pbmF0aW9uIHNpZ25hbCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gc2h1dGRvd25PYnNlcnZlZEF0TXMgLSBUaW1lIHRoZSBjaGlsZCBvciBwYXJlbnQgb2JzZXJ2ZWQgc2h1dGRvd24gYmVnaW5uaW5nLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBzaHV0ZG93blJlcXVlc3RlZEF0TXMgLSBFeGFjdCBwYXJlbnQgcmVxdWVzdCB0aW1lc3RhbXAsIG9yIG51bGwgZm9yIGV4dGVybmFsL3VucmVxdWVzdGVkIHNodXRkb3duLlxuICogQHByb3BlcnR5IHtQb29sZWRDaGlsZFNodXRkb3duUmVhc29ufSBzaHV0ZG93blJlYXNvbiAtIEV4YWN0IHJlY29yZGVkIHBhcmVudCByZXF1ZXN0IG9yIG9ic2VydmVkIGNoaWxkIHNodXRkb3duIGNhdXNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCJub2RlOmNoaWxkX3Byb2Nlc3NcIikuQ2hpbGRQcm9jZXNzW1wic2lnbmFsQ29kZVwiXX0gc2h1dGRvd25TaWduYWwgLSBQYXJlbnQtcmVxdWVzdGVkIG9yIGNoaWxkLW9ic2VydmVkIHNodXRkb3duIHNpZ25hbCB3aGVuIGF2YWlsYWJsZS5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkUnVubmVyVGVybWluYXRpb25SZWFzb259IHRlcm1pbmF0aW9uUmVhc29uIC0gRGVwcmVjYXRlZCBjb21wYXRpYmlsaXR5IGNhdGVnb3J5OyB1c2Ugc2h1dGRvd25SZWFzb24gZm9yIGV4YWN0IHByb3ZlbmFuY2UuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IHRpbWVvdXRKb2JJZCAtIEpvYiB3aG9zZSB0aW1lb3V0IGluaXRpYXRlZCBjaGlsZCB0ZXJtaW5hdGlvbiwgb3IgbnVsbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB3b3JrZXJJZCAtIFN0YWJsZSBnZW5lcmF0aW9uLXF1YWxpZmllZCB3b3JrZXIgaWQuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JzV29ya2VyTGlmZWN5Y2xlU3RhdGV9IHdvcmtlckxpZmVjeWNsZSAtIFBhcmVudCB3b3JrZXIgbGlmZWN5Y2xlIGltbWVkaWF0ZWx5IGJlZm9yZSByZWNvdmVyeS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3b3JrZXJQaWQgLSBQYXJlbnQgd29ya2VyIHByb2Nlc3MgaWQuXG4gKi9cbi8qKlxuICogQmVzdC1lZmZvcnQgb2JzZXJ2YXRpb24gc2VudCBiZWZvcmUgYSBwb29sZWQgY2hpbGQgY2xvc2VzIGl0cyByZXNvdXJjZXMuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQb29sZWRDaGlsZFNodXRkb3duT2JzZXJ2YXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGlsZEluc3RhbmNlSWQgLSBTdGFibGUgcG9vbGVkLWNoaWxkIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gaW5mbGlnaHRKb2JJZHMgLSBCb3VuZGVkIGluLWZsaWdodCBkdXJhYmxlIGpvYiBpZHMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5mbGlnaHRKb2JJZHNUcnVuY2F0ZWRDb3VudCAtIEluLWZsaWdodCBpZHMgb21pdHRlZCBmcm9tIHRoZSBib3VuZGVkIHNuYXBzaG90LlxuICogQHByb3BlcnR5IHtQb29sZWRDaGlsZFNodXRkb3duUmVhc29ufSByZWFzb24gLSBTaHV0ZG93biByZWFzb24gb2JzZXJ2ZWQgYnkgdGhlIGNoaWxkLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHNodXRkb3duT2JzZXJ2ZWRBdE1zIC0gQ2hpbGQgb2JzZXJ2YXRpb24gdGltZXN0YW1wLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBzaHV0ZG93blJlcXVlc3RlZEF0TXMgLSBQYXJlbnQgcmVxdWVzdCB0aW1lc3RhbXAgd2hlbiBzdXBwbGllZCBvdmVyIElQQy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwibm9kZTpjaGlsZF9wcm9jZXNzXCIpLkNoaWxkUHJvY2Vzc1tcInNpZ25hbENvZGVcIl19IHNpZ25hbCAtIFJlcXVlc3RlZCBvciBvYnNlcnZlZCBzaWduYWwgd2hlbiBhdmFpbGFibGUuXG4gKi9cbi8qKlxuICogQm91bmRlZCBwb29sZWQtY2hpbGQgbWVtb3J5IG9ic2VydmF0aW9uIHNlbnQgb3ZlciB0aGUgY2hpbGQgSVBDIGNoYW5uZWwuXG4gKiBUaGUgcG9vbGVkIGNoaWxkJ3Mgc3RkaW8gaXMgaWdub3JlZCBieSB0aGUgd29ya2VyIGZvcmssIHNvIHRoaXMgb2JzZXJ2YXRpb25cbiAqIChzZW50IHBlcmlvZGljYWxseSB3aGlsZSBqb2JzIHJ1biwgcGx1cyBvbiBkZW1hbmQpIGlzIGhvdyBhIG1lbW9yeSBwcm9ibGVtXG4gKiBpbiBhIHJ1bm5pbmcgY2hpbGQgbmFtZXMgaXRzZWxmLiBgaGVhcFN0YXRpc3RpY3NgIGFuZCBgbWVtb3J5VXNhZ2VgXG4gKiBkaXN0aW5ndWlzaCBWOC1oZWFwIGdyb3d0aCBmcm9tIGV4dGVybmFsL2FycmF5LWJ1ZmZlciAobmF0aXZlIHJlc291cmNlKVxuICogZ3Jvd3RoOyBgYWN0aXZlSm9iSWRzYCB0aWVzIHRoZSBzYW1wbGUgdG8gdGhlIHdvcmsgdGhhdCB3YXMgaW4gZmxpZ2h0LlxuICogQHR5cGVkZWYge29iamVjdH0gUG9vbGVkQ2hpbGRNZW1vcnlPYnNlcnZhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gYWN0aXZlSm9iSWRzIC0gSW4tZmxpZ2h0IGpvYiBpZHMsIGJvdW5kZWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYWN0aXZlSm9iSWRzVHJ1bmNhdGVkQ291bnQgLSBJbi1mbGlnaHQgam9iIGlkcyBvbWl0dGVkIGJ5IHRoZSBib3VuZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGlsZEluc3RhbmNlSWQgLSBTdGFibGUgaWRlbnRpdHkgcmVwb3J0ZWQgYnkgdGhlIGNoaWxkLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNoaWxkUGlkIC0gQ2hpbGQgcHJvY2VzcyBpZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjaGlsZFVwdGltZU1zIC0gQ2hpbGQgcHJvY2VzcyB1cHRpbWUgaW4gbXMuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIGltcG9ydChcIm5vZGU6djhcIikuZ2V0SGVhcFN0YXRpc3RpY3M+fSBoZWFwU3RhdGlzdGljcyAtIFY4IGhlYXAtc3RhdCBicmVha2Rvd24gYXQgdGhlIHNhbXBsZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqb2JDb3VudCAtIEluLWZsaWdodCBqb2IgY291bnQuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIGltcG9ydChcIm5vZGU6cHJvY2Vzc1wiKS5tZW1vcnlVc2FnZT59IG1lbW9yeVVzYWdlIC0gUHJvY2VzcyBtZW1vcnkgYnJlYWtkb3duIGF0IHRoZSBzYW1wbGUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gb2JzZXJ2ZWRBdE1zIC0gRXBvY2ggbXMgdGhlIGNoaWxkIHNhbXBsZWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcGVha1Jzc0J5dGVzIC0gQ2hpbGQtcmVwb3J0ZWQgcGVhayBSU1MgKGtlcm5lbCBgVm1IV01gIGhpZ2gtd2F0ZXIgbWFyaykgaW4gYnl0ZXMsIG1vbm90b25pYyBmb3IgdGhlIGNoaWxkJ3MgbGlmZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByc3NCeXRlcyAtIFJlc2lkZW50IHNldCBzaXplIGluIGJ5dGVzIGF0IHRoZSBzYW1wbGUuXG4gKiBAcHJvcGVydHkge1wicG9vbGVkLWNoaWxkLW1lbW9yeVwifSB0eXBlIC0gRGlzY3JpbWluYXRvci5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB1cHRpbWVNcyAtIFByb2Nlc3MgdXB0aW1lIGluIG1zLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IExvY2FsQmFja2dyb3VuZEpvYnNDbG9ja1xuICogQHByb3BlcnR5IHsoKSA9PiBudW1iZXJ9IG5vdyAtIEN1cnJlbnQgZXBvY2ggbWlsbGlzZWNvbmRzLlxuICogQHByb3BlcnR5IHsoY2FsbGJhY2s6ICgpID0+IHZvaWQsIGRlbGF5TXM6IG51bWJlcikgPT4gUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXJ9IHNldFRpbWVvdXQgLSBBcm1zIGEgdGltZXIuXG4gKiBAcHJvcGVydHkgeyh0aW1lcklkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bWJlcikgPT4gdm9pZH0gY2xlYXJUaW1lb3V0IC0gQ2xlYXJzIGEgdGltZXIuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gUmVzb2x2ZWRCYWNrZ3JvdW5kSm9iQ29uY3VycmVuY3lcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb25jdXJyZW5jeUtleSAtIER1cmFibGUgY2FwIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG1heENvbmN1cnJlbmN5IC0gUG9zaXRpdmUgY2FwLlxuICogQHByb3BlcnR5IHtib29sZWFufSBxdWV1ZURlcml2ZWQgLSBXaGV0aGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24gb3ducyB0aGUgY2FwLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JDb25jdXJyZW5jeVJlcGFpclxuICogQHByb3BlcnR5IHtudW1iZXJ9IGFjdGl2ZUNvdW50IC0gRXhhY3QgaGFuZGVkLW9mZiBqb2IgY291bnQgcGVyc2lzdGVkIGJ5IHRoZSByZXBhaXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29uY3VycmVuY3lLZXkgLSBEdXJhYmxlIGNhcCBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBwcmV2aW91c0FjdGl2ZUNvdW50IC0gUGVyc2lzdGVkIGNvdW50IHJlcGxhY2VkIGJ5IHRoZSByZXBhaXIuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYkNvbmN1cnJlbmN5UmVjb25jaWxpYXRpb25cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjYW5kaWRhdGVDb3VudCAtIFNuYXBzaG90IG1pc21hdGNoZXMgcmVjaGVja2VkIHVuZGVyIHRoZWlyIGNvdW50ZXIgbG9ja3MuXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2hlY2tlZENvdW50IC0gQWN0aXZlIG9yIG5vbnplcm8gZHVyYWJsZSBjb3VudGVycyBjb21wYXJlZCBpbiB0aGUgaW5pdGlhbCBzbmFwc2hvdC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByZXBhaXJlZENvdW50IC0gQ291bnRlcnMgd2hvc2UgcGVyc2lzdGVkIHZhbHVlcyB3ZXJlIGNoYW5nZWQuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JDb25jdXJyZW5jeVJlcGFpcltdfSByZXBhaXJzIC0gQm91bmRlZCBkZXRlcm1pbmlzdGljIHNhbXBsZSBvZiBhcHBsaWVkIHJlcGFpcnMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcmVwYWlyc1RydW5jYXRlZENvdW50IC0gQXBwbGllZCByZXBhaXJzIG9taXR0ZWQgZnJvbSB0aGUgc2FtcGxlLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFByZXBhcmVkTG9jYWxCYWNrZ3JvdW5kSm9iXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXJnc0RpZ2VzdCAtIEZpeGVkLXdpZHRoIGRpZ2VzdCBvZiB0aGUgc2VyaWFsaXplZCBhcmd1bWVudHMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXJnc0pzb24gLSBTZXJpYWxpemVkIGFyZ3VtZW50cy5cbiAqIEBwcm9wZXJ0eSB7UmVzb2x2ZWRCYWNrZ3JvdW5kSm9iQ29uY3VycmVuY3kgfCBudWxsfSBjb25jdXJyZW5jeSAtIFJlc29sdmVkIGNvbmN1cnJlbmN5LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNyZWF0ZWRBdE1zIC0gQ3JlYXRpb24gdGltZXN0YW1wLlxuICogQHByb3BlcnR5IHtcImlubGluZVwifSBleGVjdXRpb25Nb2RlIC0gTG9jYWwgaW4tcHJvY2VzcyBleGVjdXRpb24gbW9kZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JJZCAtIER1cmFibGUgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iTmFtZSAtIFJlZ2lzdGVyZWQgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBtYXhSZXRyaWVzIC0gUmV0cnkgY2FwLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHF1ZXVlIC0gUXVldWUgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzY2hlZHVsZWRBdE1zIC0gRWxpZ2liaWxpdHkgdGltZXN0YW1wLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JzSGVhbHRoXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHJlYWR5IC0gV2hldGhlciB0aGUgYWRhcHRlciBjYW4gYWNjZXB0IGFuZCBwcm9jZXNzIHdvcmsuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYnNQcm9kdWNlclxuICogQHByb3BlcnR5IHsoYXJnczoge2pvYk5hbWU6IHN0cmluZywgYXJnczogQXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+LCBvcHRpb25zPzogQmFja2dyb3VuZEpvYk9wdGlvbnMsIHByb2R1Y2VySW52b2NhdGlvbklkPzogc3RyaW5nLCBwcm9kdWNlclByb29mPzogQmFja2dyb3VuZEpvYlByb2R1Y2VyUHJvb2Z9KSA9PiBQcm9taXNlPHN0cmluZz59IGVucXVldWUgLSBFbnF1ZXVlcyBhIGpvYi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY2hlZHVsZUtleTogc3RyaW5nLCBqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IEJhY2tncm91bmRKb2JPcHRpb25zfSkgPT4gUHJvbWlzZTxCYWNrZ3JvdW5kSm9iUmVwbGFjZW1lbnRSZXN1bHQ+fSByZXBsYWNlU2NoZWR1bGVkIC0gUmVwbGFjZXMgYSBzdGFibGUgc2NoZWR1bGUuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NoZWR1bGVLZXk6IHN0cmluZ30pID0+IFByb21pc2U8QmFja2dyb3VuZEpvYkNhbmNlbGxhdGlvblJlc3VsdD59IGNhbmNlbFNjaGVkdWxlZCAtIENhbmNlbHMgYSBzdGFibGUgc2NoZWR1bGUuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NoZWR1bGVLZXk6IHN0cmluZywgaW5jbHVkZUxhdGVzdFRlcm1pbmFsPzogYm9vbGVhbn0pID0+IFByb21pc2U8QmFja2dyb3VuZEpvYlNjaGVkdWxlZExvb2t1cFJlc3VsdD59IGdldFNjaGVkdWxlZEpvYiAtIFJlYWRzIHN0YWJsZSBzY2hlZHVsZSBvd25lcnNoaXAgYW5kIGhpc3RvcnkuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NoZWR1bGVLZXk6IHN0cmluZ30pID0+IFByb21pc2U8QmFja2dyb3VuZEpvYldha2VSZXN1bHQ+fSB3YWtlU2NoZWR1bGVkIC0gRXhwZWRpdGVzIGEgc3RhYmxlIHNjaGVkdWxlIG93bmVyLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JIYW5kb2ZmXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaGFuZG9mZklkIC0gVW5pcXVlIGhhbmRvZmYgbGVhc2UgaWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaGFuZGVkT2ZmQXRNcyAtIFRpbWUgaGFuZGVkIHRvIGEgd29ya2VyIGluIG1zLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iUm93fSBbam9iXSAtIEV4YWN0IGNvbW1pdHRlZCBqb2Igc25hcHNob3Qgd2hlbiB0aGUgYWRhcHRlciBjaGFuZ2VzIGRpc3BhdGNoIGRhdGEgZHVyaW5nIHRoZSBjbGFpbS5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iSGFuZG9mZlNuYXBzaG90XG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iSWQgLSBKb2IgaG9sZGluZyB0aGUgbGVhc2UuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaGFuZG9mZklkIC0gRXhhY3QgZHVyYWJsZSBsZWFzZSBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB3b3JrZXJJZCAtIFN0YWJsZSB3b3JrZXIgaWQgdGhhdCByZWNlaXZlZCB0aGUgbGVhc2UuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaGFuZGVkT2ZmQXRNcyAtIFRpbWUgaGFuZGVkIHRvIHRoZSB3b3JrZXIgaW4gbXMuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYkhhbmRvZmZSZXF1ZXN0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iSWQgLSBKb2IgdG8gY2xhaW0uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2hhbmRvZmZJZF0gLSBFeGFjdCBjYWxsZXItc2VsZWN0ZWQgbGVhc2UgaWQuIEFkYXB0ZXJzIG11c3QgcGVyc2lzdCBhbmQgcmV0dXJuIHRoaXMgaWQgd2hlbiBzdXBwbGllZDsgYnVpbHQtaW4gYWRhcHRlcnMgZ2VuZXJhdGUgb25lIHdoZW4gb21pdHRlZCBmb3IgbGVnYWN5IGRpcmVjdCBjYWxsZXJzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt3b3JrZXJJZF0gLSBXb3JrZXIgY2xhaW1pbmcgdGhlIGpvYi5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iT3B0aW9uc1xuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iRXhlY3V0aW9uTW9kZX0gW2V4ZWN1dGlvbk1vZGVdIC0gSG93IHRoZSBqb2Igc2hvdWxkIHJ1bi4gTm9kZSBkZWZhdWx0cyB0byBgXCJwb29sZWRcImAgKGEgd2FybSwgcmV1c2VkIGxvY2FsIHJ1bm5lciBwcm9jZXNzKS4gQnJvd3Nlci9FeHBvIGxvY2FsIGRpc3BhdGNoIGRlZmF1bHRzIHRvIGFuZCBvbmx5IGFjY2VwdHMgYFwiaW5saW5lXCJgLiBgXCJmb3JrZWRcImAgcnVucyBhIE5vZGUgam9iIGluIGEgZnJlc2ggYGNoaWxkX3Byb2Nlc3MuZm9yaygpYCBjaGlsZCwgYW5kIGBcInNwYXduZWRcImAgaW4gYSBkZXRhY2hlZCBDTEkgcnVubmVyLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFttYXhSZXRyaWVzXSAtIE1heCByZXRyaWVzIGZvciBhIGZhaWxlZCBqb2IgYmVmb3JlIGl0IGlzIG1hcmtlZCBmYWlsZWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3F1ZXVlXSAtIFF1ZXVlIG5hbWUuIERlZmF1bHRzIHRvIGBcImRlZmF1bHRcImAuIFdoZW4gdGhlIHF1ZXVlIGhhcyBhIGNvbmZpZ3VyZWQgY2FwIGluIGBiYWNrZ3JvdW5kSm9icy5xdWV1ZXNgLCB0aGF0IGNhcCBpcyBlbmZvcmNlZCBjbHVzdGVyLXdpZGUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NvbmN1cnJlbmN5S2V5XSAtIE9wYXF1ZSBub24tZW1wdHkga2V5IHVzZWQgdG8gc2hhcmUgYSBjb25jdXJyZW5jeSBjYXAuIE92ZXJyaWRlcyBhbnkgcXVldWUtZGVyaXZlZCBjYXAuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW21heENvbmN1cnJlbmN5XSAtIFBvc2l0aXZlIGludGVnZXIgY2FwOyBtdXN0IGJlIHBhaXJlZCB3aXRoIGBjb25jdXJyZW5jeUtleWAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtkZWR1cGxpY2F0ZVdoaWxlUXVldWVkXSAtIFdoZW4gdHJ1ZSwgc2tpcCB0aGUgZW5xdWV1ZSBpZiBhbiBpZGVudGljYWwgc3RpbGwtcXVldWVkIGpvYiAoc2FtZSBqb2IgbmFtZSwgYXJncyBhbmQgcXVldWUpIGlzIHNjaGVkdWxlZCBubyBsYXRlciB0aGFuIHRoaXMgZW5xdWV1ZSwgcmV0dXJuaW5nIHRoZSBlYXJsaWVzdCBtYXRjaGluZyBqb2IncyBpZC4gQSBmdXR1cmUgcmV0cnkgZG9lcyBub3Qgc3VwcHJlc3MgZWFybGllciB3b3JrLiBEZWR1cGxpY2F0aW9uIGlzIGluZGVwZW5kZW50IG9mIGBjb25jdXJyZW5jeUtleWAsIHNvIHRoZSBqb2Iga2VlcHMgaXRzIG5vcm1hbCAoZS5nLiBxdWV1ZS1kZXJpdmVkKSBjb25jdXJyZW5jeSBjYXAuIEtlZXBzIGFuIGludGVydmFsLXNjaGVkdWxlZCByZWN1cnJpbmcgam9iIChlLmcuIHJldGVudGlvbiBwcnVuaW5nKSBmcm9tIHBpbGluZyB1cCByZWR1bmRhbnQgcXVldWVkIHJvd3Mgd2hlbiBpdCBydW5zIHNsb3dlciB0aGFuIGl0cyBpbnRlcnZhbCBvciBubyB3b3JrZXIgaXMgZnJlZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaWRlbXBvdGVuY3lLZXldIC0gRHVyYWJsZSBlbnF1ZXVlIGlkZW50aXR5IHNjb3BlZCB0byB0aGUgcmVzb2x2ZWQgam9iIGNsYXNzIG5hbWUgYW5kIHF1ZXVlLiBFeGFjdCByZXBsYXkgcmV0dXJucyB0aGUgb3JpZ2luYWwgam9iIGlkIGFjcm9zcyBldmVyeSBzdGF0ZSBhbmQgYWZ0ZXIgam9iIHBydW5pbmc7IHJldXNlIHdpdGggZGlmZmVyZW50IGNhbm9uaWNhbCBhcmd1bWVudHMgb3IgYmVoYXZpb3ItYWZmZWN0aW5nIG9wdGlvbnMgZmFpbHMuIE93bmVyc2hpcCBpcyBpbmRlcGVuZGVudCBvZiBgZGVkdXBsaWNhdGVXaGlsZVF1ZXVlZGAgYW5kIGlzIHJldGFpbmVkIHVudGlsIGFuIGV4cGxpY2l0IGZ1dHVyZSByZXRlbnRpb24gcG9saWN5IHJlbW92ZXMgaXQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3NjaGVkdWxlZEF0TXNdIC0gRXBvY2ggdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoZSBqb2IgYmVjb21lcyBlbGlnaWJsZSBmb3IgZGlzcGF0Y2guIERlZmF1bHRzIHRvIGVucXVldWUgdGltZS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbdGltZW91dE1zXSAtIFBlci1qb2Igd2FsbC1jbG9jayB0aW1lb3V0IGZvciBmb3JrZWQgYW5kIHBvb2xlZCBleGVjdXRpb24uIEEgcG9zaXRpdmUgaW50ZWdlciB1cCB0byAyLDE0Nyw0ODMsNjQ3IG92ZXJyaWRlcyB0aGUgd29ya2VyLWxldmVsIGBqb2JUaW1lb3V0TXNgOyBhIG5vbi1wb3NpdGl2ZSBmaW5pdGUgdmFsdWUgZGlzYWJsZXMgdGhlIHRpbWVvdXQgZm9yIHRoaXMgam9iLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JQYXlsb2FkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2lkXSAtIEpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JOYW1lIC0gSm9iIGNsYXNzIG5hbWUuXG4gKiBAcHJvcGVydHkge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW2FyZ3NdIC0gU2VyaWFsaXplZCBqb2IgYXJndW1lbnRzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtoYW5kb2ZmSWRdIC0gVW5pcXVlIGhhbmRvZmYgbGVhc2UgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3dvcmtlcklkXSAtIFdvcmtlciBpZCBoYW5kbGluZyB0aGUgam9iLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtoYW5kZWRPZmZBdE1zXSAtIFRpbWUgaGFuZGVkIHRvIGEgd29ya2VyIGluIG1zLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iT3B0aW9uc30gW29wdGlvbnNdIC0gUnVudGltZSBvcHRpb25zLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JDb250ZXh0XG4gKiBAcHJvcGVydHkge3R5cGVvZiBpbXBvcnQoXCIuL3BsYXRmb3JtLWpvYi5qc1wiKS5kZWZhdWx0fSBqb2JDbGFzcyAtIENvbmNyZXRlIGpvYiBjbGFzcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JOYW1lIC0gUmVnaXN0ZXJlZCBqb2IgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7QXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+fSBhcmdzIC0gU2VyaWFsaXplZCBqb2IgYXJndW1lbnRzLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iT3B0aW9uc30gb3B0aW9ucyAtIFJlc29sdmVkIGVucXVldWUvcnVudGltZSBvcHRpb25zLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iUGF5bG9hZH0gW3BheWxvYWRdIC0gQ29tcGxldGUgcGVyc2lzdGVkIHJ1bm5lciBwYXlsb2FkIHdoZW4gdGhlIGpvYiBpcyBwZXJmb3JtaW5nLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JSb3dcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBpZCAtIEpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JOYW1lIC0gSm9iIGNsYXNzIG5hbWUuXG4gKiBAcHJvcGVydHkge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gYXJncyAtIFNlcmlhbGl6ZWQgam9iIGFyZ3VtZW50cy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYkV4ZWN1dGlvbk1vZGV9IGV4ZWN1dGlvbk1vZGUgLSBIb3cgdGhlIGpvYiBzaG91bGQgcnVuLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHF1ZXVlIC0gUXVldWUgbmFtZSAoZGVmYXVsdHMgdG8gYFwiZGVmYXVsdFwiYCkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IHNjaGVkdWxlS2V5IC0gU3RhYmxlIGxvZ2ljYWwgc2NoZWR1bGUga2V5IHJldGFpbmVkIGZvciBoaXN0b3J5LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBzY2hlZHVsZU9yZGVyIC0gVHJhbnNhY3Rpb24tYXNzaWduZWQgbW9ub3RvbmljIG93bmVyc2hpcCBvcmRlciBmb3IgdGhpcyBzY2hlZHVsZSBrZXk7IE5vZGUgcHJlc2VydmVzIGl0cyBoaWdoLXdhdGVyIG1hcmsgYWNyb3NzIHRlcm1pbmFsLWhpc3RvcnkgcHJ1bmluZy4gTnVsbCBmb3IgbGVnYWN5L25vbi1zY2hlZHVsZWQgcm93cy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYlN0YXR1c30gc3RhdHVzIC0gQ3VycmVudCBqb2Igc3RhdHVzLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBhdHRlbXB0cyAtIEZhaWx1cmUgYXR0ZW1wdHMgY291bnQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IG1heFJldHJpZXMgLSBNYXggcmV0cnkgYXR0ZW1wdHMuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IHNjaGVkdWxlZEF0TXMgLSBOZXh0IHNjaGVkdWxlZCB0aW1lIGluIG1zLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBjcmVhdGVkQXRNcyAtIENyZWF0aW9uIHRpbWUgaW4gbXMuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IGhhbmRlZE9mZkF0TXMgLSBUaW1lIGhhbmRlZCB0byB3b3JrZXIgaW4gbXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGhhbmRvZmZJZCAtIFVuaXF1ZSBsYXRlc3QgaGFuZG9mZiBsZWFzZSBpZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gY29tcGxldGVkQXRNcyAtIENvbXBsZXRpb24gdGltZSBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gZmFpbGVkQXRNcyAtIEZhaWx1cmUgdGltZSBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gb3JwaGFuZWRBdE1zIC0gT3JwaGFuZWQgdGltZSBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gd29ya2VySWQgLSBXb3JrZXIgaWQgaGFuZGxpbmcgdGhlIGpvYi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gbGFzdEVycm9yIC0gTGFzdCBmYWlsdXJlIG1lc3NhZ2UuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGNvbmN1cnJlbmN5S2V5IC0gRHVyYWJsZSBjb25jdXJyZW5jeSBrZXkuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IG1heENvbmN1cnJlbmN5IC0gRHVyYWJsZSBwZXIta2V5IGNhcC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gdGltZW91dE1zIC0gUGVyLWpvYiB3YWxsLWNsb2NrIHRpbWVvdXQgb3ZlcnJpZGUsIG9yIG51bGwgd2hlbiBvbWl0dGVkLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBjaGlsZFJlY2VpdmVkQXRNcyAtIEVwb2NoIG1zIHdoZW4gdGhlIGV4ZWN1dGluZyBwb29sZWQgY2hpbGQncyBldmVudCBsb29wIHByb2Nlc3NlZCB0aGUgam9iIG1lc3NhZ2UsIG9yIG51bGwgd2hlbiBubyBydW5uZXIgYWNjZXB0ZWQgaXQgeWV0LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBjaGlsZFN0YXJ0ZWRBdE1zIC0gRXBvY2ggbXMgd2hlbiB0aGUgam9iJ3MgcGVyZm9ybSBzdGFydGVkIGluIHRoZSBwb29sZWQgY2hpbGQsIG9yIG51bGwgd2hlbiBpdCBuZXZlciBzdGFydGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBjaGlsZEluc3RhbmNlSWQgLSBTdGFibGUgaWRlbnRpdHkgb2YgdGhlIHBvb2xlZCBjaGlsZCBwcm9jZXNzIHRoYXQgYWNjZXB0ZWQgdGhlIGpvYiwgb3IgbnVsbC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gY2hpbGRQaWQgLSBPUyBwaWQgb2YgdGhlIHBvb2xlZCBjaGlsZCBwcm9jZXNzIHRoYXQgYWNjZXB0ZWQgdGhlIGpvYiwgb3IgbnVsbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gcnVubmVySG9zdG5hbWUgLSBIb3N0bmFtZSByZXBvcnRlZCBieSB0aGUgcG9vbGVkIGNoaWxkIHByb2Nlc3MgdGhhdCBhY2NlcHRlZCB0aGUgam9iLCBvciBudWxsLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtcInF1ZXVlZFwiIHwgXCJoYW5kZWRfb2ZmXCIgfCBudWxsfSBCYWNrZ3JvdW5kSm9iUmVwbGFjZW1lbnRQcmV2aW91c1N0YXR1c1xuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JSZXBsYWNlbWVudFJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYklkIC0gTmV3bHkgcXVldWVkIGpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gcHJldmlvdXNKb2JJZCAtIFByZXZpb3VzIGFjdGl2ZSBvd25lcidzIGpvYiBpZC5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYlJlcGxhY2VtZW50UHJldmlvdXNTdGF0dXN9IHByZXZpb3VzU3RhdHVzIC0gUHJldmlvdXMgb3duZXIncyBvYnNlcnZlZCBzdGF0ZS5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7XCJjYW5jZWxsZWRcIiB8IFwiaGFuZGVkX29mZlwiIHwgXCJub3RfZm91bmRcIn0gQmFja2dyb3VuZEpvYkNhbmNlbGxhdGlvbk91dGNvbWVcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iQ2FuY2VsbGF0aW9uUmVzdWx0XG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGpvYklkIC0gRGV0YWNoZWQgb3duZXIncyBqb2IgaWQsIHdoZW4gb25lIHdhcyBhY3RpdmUuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JDYW5jZWxsYXRpb25PdXRjb21lfSBvdXRjb21lIC0gVHJ1dGhmdWwgYmVzdC1lZmZvcnQgb3V0Y29tZS5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVkTG9va3VwUmVzdWx0XG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JSb3cgfCBudWxsfSBjdXJyZW50Sm9iIC0gQ3VycmVudCBxdWV1ZWQgb3IgaGFuZGVkLW9mZiBvd25lci5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYlJvdyB8IG51bGx9IGxhdGVzdFRlcm1pbmFsSm9iIC0gTGF0ZXN0IHRlcm1pbmFsIGhpc3Rvcnkgd2hlbiByZXF1ZXN0ZWQuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge1wid29rZW5cIiB8IFwiYWxyZWFkeV9kdWVcIiB8IFwiaGFuZGVkX29mZlwiIHwgXCJub3RfZm91bmRcIn0gQmFja2dyb3VuZEpvYldha2VPdXRjb21lXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYldha2VSZXN1bHRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gam9iSWQgLSBDdXJyZW50IG93bmVyJ3MgZHVyYWJsZSBqb2IgaWQsIHdoZW4gZm91bmQuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JXYWtlT3V0Y29tZX0gb3V0Y29tZSAtIEV4YWN0IHdha2Ugb3V0Y29tZS5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iRmFpbHVyZUV2ZW50XG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JSb3d9IGpvYiAtIFVwZGF0ZWQgam9iIHJvdyBhZnRlciBmYWlsdXJlIGhhbmRsaW5nLlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gZXJyb3IgLSBGYWlsdXJlIGVycm9yLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBhdHRlbXB0cyAtIFVwZGF0ZWQgZmFpbHVyZSBhdHRlbXB0cyBjb3VudC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdGVybWluYWwgLSBXaGV0aGVyIHRoaXMgZmFpbHVyZSBlbmRlZCB0aGUgam9iLlxuICogQHByb3BlcnR5IHtib29sZWFufSB3aWxsUmV0cnkgLSBXaGV0aGVyIHRoZSBqb2Igd2FzIHJldHVybmVkIHRvIHRoZSBxdWV1ZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgdW5kZWZpbmVkfSBoYW5kb2ZmSWQgLSBIYW5kb2ZmIGxlYXNlIGlkIGZyb20gdGhlIHdvcmtlciByZXBvcnQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IHVuZGVmaW5lZH0gaGFuZGVkT2ZmQXRNcyAtIEhhbmRvZmYgdGltZXN0YW1wIGZyb20gdGhlIHdvcmtlciByZXBvcnQuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gd29ya2VySWQgLSBXb3JrZXIgaWQgZnJvbSB0aGUgd29ya2VyIHJlcG9ydC5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkUnVubmVyRmFpbHVyZSB8IHVuZGVmaW5lZH0gcnVubmVyRmFpbHVyZSAtIFNoYXJlZCBwb29sZWQtY2hpbGQgcHJvY2VzcyBmYWlsdXJlIHByb3ZlbmFuY2UuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge1wid29ya2VyXCIgfCBcImNsaWVudFwiIHwgXCJyZXBvcnRlclwifSBCYWNrZ3JvdW5kSm9iU29ja2V0Um9sZVxuICovXG4vKipcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJoZWxsb1wiLCByb2xlOiBCYWNrZ3JvdW5kSm9iU29ja2V0Um9sZSwgZ2VuZXJhdGlvbklkPzogc3RyaW5nLCBzdXBwb3J0c0hhbmRvZmZJZFJlcG9ydGluZz86IGJvb2xlYW4sIHN1cHBvcnRzSGVhcnRiZWF0PzogYm9vbGVhbiwgc3VwcG9ydHNQb29sZWQ/OiBib29sZWFuLCB3b3JrZXJJZD86IHN0cmluZ319IEJhY2tncm91bmRKb2JIZWxsb01lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJnZW5lcmF0aW9uLWFjY2VwdGVkXCIsIGdlbmVyYXRpb25JZDogc3RyaW5nLCBsaWZlY3ljbGVTdGF0ZTogQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uTGlmZWN5Y2xlU3RhdGV9fSBCYWNrZ3JvdW5kSm9iR2VuZXJhdGlvbkFjY2VwdGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImdlbmVyYXRpb24tcmVqZWN0ZWRcIiwgcmVhc29uOiBCYWNrZ3JvdW5kSm9ic0dlbmVyYXRpb25SZWplY3Rpb25SZWFzb259fSBCYWNrZ3JvdW5kSm9iR2VuZXJhdGlvblJlamVjdGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInJlYWR5XCIsIGFjY2VwdHNGb3JrZWQ/OiBib29sZWFuLCBhY2NlcHRzSW5saW5lPzogYm9vbGVhbiwgYWNjZXB0c1Bvb2xlZD86IGJvb2xlYW4sIGFjY2VwdHNTcGF3bmVkPzogYm9vbGVhbiwgYXZhaWxhYmxlUG9vbGVkU2xvdHM/OiBudW1iZXJ9fSBCYWNrZ3JvdW5kSm9iUmVhZHlNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiZHJhaW5pbmdcIn19IEJhY2tncm91bmRKb2JEcmFpbmluZ01lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJoZWFydGJlYXRcIiwgd29ya2VySWQ/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iSGVhcnRiZWF0TWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImVucXVldWVcIiwgam9iTmFtZTogc3RyaW5nLCBhcmdzPzogQXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+LCBvcHRpb25zPzogQmFja2dyb3VuZEpvYk9wdGlvbnMsIHByb2R1Y2VySW52b2NhdGlvbklkPzogc3RyaW5nLCBwcm9kdWNlclByb29mPzogQmFja2dyb3VuZEpvYlByb2R1Y2VyUHJvb2Z9fSBCYWNrZ3JvdW5kSm9iRW5xdWV1ZU1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJlbnF1ZXVlZFwiLCBqb2JJZDogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkVucXVldWVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImVucXVldWUtZXJyb3JcIiwgZXJyb3I/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iRW5xdWV1ZUVycm9yTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInJlcGxhY2Utc2NoZWR1bGVkXCIsIHNjaGVkdWxlS2V5OiBzdHJpbmcsIGpvYk5hbWU6IHN0cmluZywgYXJncz86IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IEJhY2tncm91bmRKb2JPcHRpb25zfX0gQmFja2dyb3VuZEpvYlJlcGxhY2VTY2hlZHVsZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwic2NoZWR1bGUtcmVwbGFjZWRcIiwgam9iSWQ6IHN0cmluZywgcHJldmlvdXNKb2JJZDogc3RyaW5nIHwgbnVsbCwgcHJldmlvdXNTdGF0dXM6IEJhY2tncm91bmRKb2JSZXBsYWNlbWVudFByZXZpb3VzU3RhdHVzfX0gQmFja2dyb3VuZEpvYlNjaGVkdWxlUmVwbGFjZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwicmVwbGFjZS1zY2hlZHVsZWQtZXJyb3JcIiwgZXJyb3I/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iUmVwbGFjZVNjaGVkdWxlZEVycm9yTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImNhbmNlbC1zY2hlZHVsZWRcIiwgc2NoZWR1bGVLZXk6IHN0cmluZ319IEJhY2tncm91bmRKb2JDYW5jZWxTY2hlZHVsZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwic2NoZWR1bGUtY2FuY2VsbGVkXCIsIGpvYklkOiBzdHJpbmcgfCBudWxsLCBvdXRjb21lOiBCYWNrZ3JvdW5kSm9iQ2FuY2VsbGF0aW9uT3V0Y29tZX19IEJhY2tncm91bmRKb2JTY2hlZHVsZUNhbmNlbGxlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJjYW5jZWwtc2NoZWR1bGVkLWVycm9yXCIsIGVycm9yPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkNhbmNlbFNjaGVkdWxlZEVycm9yTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImdldC1zY2hlZHVsZWQtam9iXCIsIHNjaGVkdWxlS2V5OiBzdHJpbmcsIGluY2x1ZGVMYXRlc3RUZXJtaW5hbD86IGJvb2xlYW59fSBCYWNrZ3JvdW5kSm9iR2V0U2NoZWR1bGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInNjaGVkdWxlZC1qb2JcIiwgY3VycmVudEpvYjogQmFja2dyb3VuZEpvYlJvdyB8IG51bGwsIGxhdGVzdFRlcm1pbmFsSm9iOiBCYWNrZ3JvdW5kSm9iUm93IHwgbnVsbH19IEJhY2tncm91bmRKb2JTY2hlZHVsZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiZ2V0LXNjaGVkdWxlZC1qb2ItZXJyb3JcIiwgZXJyb3I/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iR2V0U2NoZWR1bGVkRXJyb3JNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwid2FrZS1zY2hlZHVsZWRcIiwgc2NoZWR1bGVLZXk6IHN0cmluZ319IEJhY2tncm91bmRKb2JXYWtlU2NoZWR1bGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInNjaGVkdWxlLXdva2VuXCIsIGpvYklkOiBzdHJpbmcgfCBudWxsLCBvdXRjb21lOiBCYWNrZ3JvdW5kSm9iV2FrZU91dGNvbWV9fSBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVXb2tlbk1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJ3YWtlLXNjaGVkdWxlZC1lcnJvclwiLCBlcnJvcj86IHN0cmluZ319IEJhY2tncm91bmRKb2JXYWtlU2NoZWR1bGVkRXJyb3JNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iXCIsIHBheWxvYWQ6IEJhY2tncm91bmRKb2JQYXlsb2FkfX0gQmFja2dyb3VuZEpvYkpvYk1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJqb2ItYWNjZXB0ZWRcIiwgam9iSWQ6IHN0cmluZywgaGFuZG9mZklkPzogc3RyaW5nLCB3b3JrZXJJZD86IHN0cmluZywgaGFuZGVkT2ZmQXRNcz86IG51bWJlciwgcmVjZWl2ZWRBdE1zPzogbnVtYmVyLCBzdGFydGVkQXRNcz86IG51bWJlciwgY2hpbGRJbnN0YW5jZUlkPzogc3RyaW5nLCBjaGlsZFBpZD86IG51bWJlciwgcnVubmVySG9zdG5hbWU/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iQWNjZXB0ZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iLWNvbXBsZXRlXCIsIGpvYklkOiBzdHJpbmcsIGhhbmRvZmZJZD86IHN0cmluZywgd29ya2VySWQ/OiBzdHJpbmcsIGhhbmRlZE9mZkF0TXM/OiBudW1iZXJ9fSBCYWNrZ3JvdW5kSm9iQ29tcGxldGVNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iLWZhaWxlZFwiLCBqb2JJZDogc3RyaW5nLCBlcnJvcj86IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+LCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyLCBydW5uZXJGYWlsdXJlPzogUG9vbGVkUnVubmVyRmFpbHVyZX19IEJhY2tncm91bmRKb2JGYWlsZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iLXJlc2NoZWR1bGVcIiwgam9iSWQ6IHN0cmluZywgZGVsYXlNczogbnVtYmVyLCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyfX0gQmFja2dyb3VuZEpvYlJlc2NoZWR1bGVNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iLXVwZGF0ZWRcIiwgam9iSWQ6IHN0cmluZ319IEJhY2tncm91bmRKb2JVcGRhdGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYi11cGRhdGUtZXJyb3JcIiwgam9iSWQ6IHN0cmluZywgZXJyb3I/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iVXBkYXRlRXJyb3JNZXNzYWdlXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge0JhY2tncm91bmRKb2JIZWxsb01lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iR2VuZXJhdGlvbkFjY2VwdGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JHZW5lcmF0aW9uUmVqZWN0ZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlJlYWR5TWVzc2FnZSB8IEJhY2tncm91bmRKb2JEcmFpbmluZ01lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iSGVhcnRiZWF0TWVzc2FnZSB8IEJhY2tncm91bmRKb2JFbnF1ZXVlTWVzc2FnZSB8IEJhY2tncm91bmRKb2JFbnF1ZXVlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iRW5xdWV1ZUVycm9yTWVzc2FnZSB8IEJhY2tncm91bmRKb2JSZXBsYWNlU2NoZWR1bGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JTY2hlZHVsZVJlcGxhY2VkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JSZXBsYWNlU2NoZWR1bGVkRXJyb3JNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkNhbmNlbFNjaGVkdWxlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVDYW5jZWxsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkNhbmNlbFNjaGVkdWxlZEVycm9yTWVzc2FnZSB8IEJhY2tncm91bmRKb2JHZXRTY2hlZHVsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlNjaGVkdWxlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iR2V0U2NoZWR1bGVkRXJyb3JNZXNzYWdlIHwgQmFja2dyb3VuZEpvYldha2VTY2hlZHVsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlNjaGVkdWxlV29rZW5NZXNzYWdlIHwgQmFja2dyb3VuZEpvYldha2VTY2hlZHVsZWRFcnJvck1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iSm9iTWVzc2FnZSB8IEJhY2tncm91bmRKb2JBY2NlcHRlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iQ29tcGxldGVNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkZhaWxlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iUmVzY2hlZHVsZU1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iVXBkYXRlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iVXBkYXRlRXJyb3JNZXNzYWdlfSBCYWNrZ3JvdW5kSm9iU29ja2V0TWVzc2FnZVxuICovXG5cbmV4cG9ydCBjb25zdCBub3RoaW5nID0ge31cbiJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2dyb3VuZC1qb2JzL3R5cGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWjs7R0FFRztBQUNILHlGQUF5RjtBQUN6RixpSUFBaUk7QUFDakksNk5BQTZOO0FBQzdOLG1FQUFtRTtBQUNuRSwrRkFBK0Y7QUFDL0YsNkZBQTZGO0FBQzdGLG1HQUFtRztBQUNuRyxnRkFBZ0Y7QUFDaEYsdVBBQXVQO0FBQ3ZQOzs7R0FHRztBQUNILHdGQUF3RjtBQUN4Rjs7Ozs7Ozs7R0FRRztBQUNIOzs7Ozs7O0dBT0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0g7Ozs7Ozs7Ozs7R0FVRztBQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSDs7Ozs7R0FLRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7O0dBS0c7QUFDSDs7Ozs7OztHQU9HO0FBQ0g7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0g7OztHQUdHO0FBQ0g7Ozs7Ozs7R0FPRztBQUNIOzs7OztHQUtHO0FBQ0g7Ozs7OztHQU1HO0FBQ0g7Ozs7O0dBS0c7QUFDSDs7Ozs7Ozs7Ozs7R0FXRztBQUNIOzs7Ozs7Ozs7R0FTRztBQUNIOzs7Ozs7O0dBT0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSDs7R0FFRztBQUNIOzs7OztHQUtHO0FBQ0g7O0dBRUc7QUFDSDs7OztHQUlHO0FBQ0g7Ozs7R0FJRztBQUNIOztHQUVHO0FBQ0g7Ozs7R0FJRztBQUNIOzs7Ozs7Ozs7OztHQVdHO0FBQ0g7O0dBRUc7QUFDSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSDs7R0FFRztBQUVILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBAdHlwZWRlZiB7XCJpbmxpbmVcIiB8IFwiZm9ya2VkXCIgfCBcInBvb2xlZFwiIHwgXCJzcGF3bmVkXCJ9IEJhY2tncm91bmRKb2JFeGVjdXRpb25Nb2RlXG4gKi9cbi8qKiBAdHlwZWRlZiB7XCJjYW5kaWRhdGVcIiB8IFwiYWN0aXZlXCIgfCBcInJldGlyZWRcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uSW5pdGlhbFN0YXRlICovXG4vKiogQHR5cGVkZWYge1wic3RhcnRpbmdcIiB8IFwiY2FuZGlkYXRlXCIgfCBcImFjdGl2ZVwiIHwgXCJyZXRpcmluZ1wiIHwgXCJyZXRpcmVkXCIgfCBcInN0b3BwZWRcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uTGlmZWN5Y2xlU3RhdGUgKi9cbi8qKiBAdHlwZWRlZiB7XCJtaXNzaW5nLWdlbmVyYXRpb25cIiB8IFwidW5leHBlY3RlZC1nZW5lcmF0aW9uXCIgfCBcIm1hbGZvcm1lZC1nZW5lcmF0aW9uXCIgfCBcImdlbmVyYXRpb24tbWlzbWF0Y2hcIiB8IFwid29ya2VyLWFkbWlzc2lvbi1yZXRpcmVkXCIgfCBcIndvcmtlci1oYXMtbm8tcmVjb3ZlcmFibGUtaGFuZG9mZnNcIn0gQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uUmVqZWN0aW9uUmVhc29uICovXG4vKiogQHR5cGVkZWYge1wicXVldWVkXCIgfCBcImhhbmRlZF9vZmZcIn0gQmFja2dyb3VuZEpvYkFjdGl2ZVN0YXR1cyAqL1xuLyoqIEB0eXBlZGVmIHtcImNhbmNlbGxlZFwiIHwgXCJjb21wbGV0ZWRcIiB8IFwiZmFpbGVkXCIgfCBcIm9ycGhhbmVkXCJ9IEJhY2tncm91bmRKb2JUZXJtaW5hbFN0YXR1cyAqL1xuLyoqIEB0eXBlZGVmIHtCYWNrZ3JvdW5kSm9iQWN0aXZlU3RhdHVzIHwgQmFja2dyb3VuZEpvYlRlcm1pbmFsU3RhdHVzfSBCYWNrZ3JvdW5kSm9iU3RhdHVzICovXG4vKiogQHR5cGVkZWYge1wiZXhpdFwiIHwgXCJwcm9jZXNzLWVycm9yXCIgfCBcImlwYy1zZW5kXCIgfCBcImNoaWxkLXNpbGVuY2VcIn0gUG9vbGVkUnVubmVyRmFpbHVyZU9yaWdpbiAqL1xuLyoqIEB0eXBlZGVmIHtcInN0YXJ0aW5nXCIgfCBcInJ1bm5pbmdcIiB8IFwicmV0aXJpbmdcIn0gUG9vbGVkUnVubmVyTGlmZWN5Y2xlU3RhdGUgKi9cbi8qKiBAdHlwZWRlZiB7XCJwYXJlbnRfcmV0aXJlX2RyYWluZWRcIiB8IFwiam9iX3RpbWVvdXRcIiB8IFwid29ya2VyX3N0b3BcIiB8IFwiY2hpbGRfc2lsZW5jZVwiIHwgXCJzaWduYWxfc2lndGVybVwiIHwgXCJzaWduYWxfc2lnaW50XCIgfCBcInNpZ25hbF9zaWdraWxsXCIgfCBcInNpZ25hbF9vdGhlclwiIHwgXCJpcGNfZGlzY29ubmVjdFwiIHwgXCJwcm9jZXNzX2Vycm9yXCIgfCBcInVuZXhwZWN0ZWRfZXhpdFwifSBQb29sZWRDaGlsZFNodXRkb3duUmVhc29uICovXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBQb29sZWRDaGlsZFNodXRkb3duUmVhc29uIGZvciBleGFjdCBzaHV0ZG93biBwcm92ZW5hbmNlLlxuICogQHR5cGVkZWYge1widW5leHBlY3RlZFwiIHwgXCJqb2ItdGltZW91dFwiIHwgXCJ3b3JrZXItc2h1dGRvd24tdGltZW91dFwifSBQb29sZWRSdW5uZXJUZXJtaW5hdGlvblJlYXNvblxuICovXG4vKiogQHR5cGVkZWYge1wicnVubmluZ1wiIHwgXCJyZXRpcmluZ1wiIHwgXCJzdG9wcGluZ1wifSBCYWNrZ3JvdW5kSm9ic1dvcmtlckxpZmVjeWNsZVN0YXRlICovXG4vKipcbiAqIEV4YWN0IGR1cmFibGUgaGFuZG9mZiBvd25lcnNoaXAgY2FycmllZCBieSBhbiBleGVjdXRpbmcgam9iIHdoZW4gaXQgcHJvZHVjZXNcbiAqIGZvbGxvdy11cCB3b3JrLlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYlByb2R1Y2VyUHJvb2ZcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JJZCAtIFByb2R1Y2luZyBqb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gaGFuZG9mZklkIC0gUHJvZHVjaW5nIGhhbmRvZmYgbGVhc2UgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd29ya2VySWQgLSBXb3JrZXIgaWRlbnRpdHkgcGVyc2lzdGVkIHdpdGggdGhlIGhhbmRvZmYuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaGFuZGVkT2ZmQXRNcyAtIER1cmFibGUgaGFuZG9mZiB0aW1lc3RhbXAuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gUG9vbGVkUnVubmVyQWN0aXZlSm9iXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGhhbmRvZmZJZCAtIER1cmFibGUgaGFuZG9mZiBsZWFzZSBpZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gaGFuZGVkT2ZmQXRNcyAtIER1cmFibGUgaGFuZG9mZiB0aW1lc3RhbXAuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iSWQgLSBEdXJhYmxlIGJhY2tncm91bmQgam9iIGlkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYk5hbWUgLSBSZWdpc3RlcmVkIGpvYiBjbGFzcyBuYW1lLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHdvcmtlcklkIC0gV29ya2VyIGlkZW50aXR5IHBlcnNpc3RlZCB3aXRoIHRoZSBoYW5kb2ZmLlxuICovXG4vKipcbiAqIE9uZSBwcm9jZXNzLWZhaWx1cmUgc25hcHNob3Qgc2hhcmVkIGJ5IGV2ZXJ5IGpvYiBsb3N0IHdpdGggYSBwb29sZWQgY2hpbGQuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQb29sZWRSdW5uZXJGYWlsdXJlXG4gKiBAcHJvcGVydHkge1Bvb2xlZFJ1bm5lckFjdGl2ZUpvYltdfSBhY3RpdmVKb2JzIC0gSm9icyB0aGF0IHdlcmUgaW4gZmxpZ2h0IHdoZW4gdGhlIGNoaWxkIGZhaWxlZCwgb3JkZXJlZCBieSBqb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGNoaWxkSW5zdGFuY2VJZCAtIFN0YWJsZSBwb29sZWQtY2hpbGQgaWRlbnRpdHkgd2hlbiBpdHMgc3RhcnR1cCBvciBzaHV0ZG93biBvYnNlcnZhdGlvbiBhcnJpdmVkLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBleGl0Q29kZSAtIENoaWxkIGV4aXQgY29kZSwgb3IgbnVsbCBmb3Igc2lnbmFsL3Byb2Nlc3MgZXJyb3JzLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBnZW5lcmF0aW9uSWQgLSBSZWxlYXNlIGdlbmVyYXRpb24gaWRlbnRpdHksIG9yIG51bGwgaW4gbGVnYWN5IG1vZGUuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBpbmZsaWdodEpvYklkcyAtIEJvdW5kZWQgam9iIGlkcyBpbiBmbGlnaHQgd2hlbiBmYWlsdXJlIGhhbmRsaW5nIHN0YXJ0ZWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5mbGlnaHRKb2JJZHNUcnVuY2F0ZWRDb3VudCAtIEluLWZsaWdodCBpZHMgb21pdHRlZCBmcm9tIHRoZSBib3VuZGVkIHNuYXBzaG90LlxuICogQHByb3BlcnR5IHtib29sZWFuIHwgbnVsbH0gb29tS2lsbGVkIC0gRmFsc2Ugd2hlbiB0aGUgb2JzZXJ2ZWQgZXhpdCBydWxlcyBPT00gb3V0OyBudWxsIHdoZW4gYW4gdW5leHBlY3RlZCBTSUdLSUxMIGNhbm5vdCBiZSBkaXN0aW5ndWlzaGVkIGZyb20gYW4gT09NIGtpbGwgd2l0aG91dCBzdXBlcnZpc29yL2tlcm5lbCBldmlkZW5jZS5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkUnVubmVyRmFpbHVyZU9yaWdpbn0gb3JpZ2luIC0gV29ya2VyIG9ic2VydmF0aW9uIHRoYXQgaW5pdGlhdGVkIGZhaWx1cmUgaGFuZGxpbmcuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcnVubmVyQWdlTXMgLSBDaGlsZCBhZ2Ugd2hlbiBmYWlsdXJlIGhhbmRsaW5nIHN0YXJ0ZWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcnVubmVyQ3JlYXRlZEF0TXMgLSBDaGlsZCBjcmVhdGlvbiB0aW1lc3RhbXAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHJ1bm5lckRldGFjaGVkIC0gV2hldGhlciB0aGUgcnVubmVyIG93bmVkIGEgZGV0YWNoZWQgcHJvY2VzcyBncm91cC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBydW5uZXJKb2JzUnVuIC0gUHJldmlvdXNseSBhY2tub3dsZWRnZWQgam9icyBoYW5kbGVkIGJ5IHRoZSBjaGlsZC5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkUnVubmVyTGlmZWN5Y2xlU3RhdGV9IHJ1bm5lckxpZmVjeWNsZSAtIENoaWxkIGxpZmVjeWNsZSBpbW1lZGlhdGVseSBiZWZvcmUgcmVjb3ZlcnkuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IHJ1bm5lclBpZCAtIENoaWxkIHByb2Nlc3MgaWQgd2hlbiBhdmFpbGFibGUuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiKS5DaGlsZFByb2Nlc3NbXCJzaWduYWxDb2RlXCJdfSBzaWduYWwgLSBDaGlsZCB0ZXJtaW5hdGlvbiBzaWduYWwgd2hlbiBhdmFpbGFibGUuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IHNodXRkb3duT2JzZXJ2ZWRBdE1zIC0gVGltZSB0aGUgY2hpbGQgb3IgcGFyZW50IG9ic2VydmVkIHNodXRkb3duIGJlZ2lubmluZy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gc2h1dGRvd25SZXF1ZXN0ZWRBdE1zIC0gRXhhY3QgcGFyZW50IHJlcXVlc3QgdGltZXN0YW1wLCBvciBudWxsIGZvciBleHRlcm5hbC91bnJlcXVlc3RlZCBzaHV0ZG93bi5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkQ2hpbGRTaHV0ZG93blJlYXNvbn0gc2h1dGRvd25SZWFzb24gLSBFeGFjdCByZWNvcmRlZCBwYXJlbnQgcmVxdWVzdCBvciBvYnNlcnZlZCBjaGlsZCBzaHV0ZG93biBjYXVzZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwibm9kZTpjaGlsZF9wcm9jZXNzXCIpLkNoaWxkUHJvY2Vzc1tcInNpZ25hbENvZGVcIl19IHNodXRkb3duU2lnbmFsIC0gUGFyZW50LXJlcXVlc3RlZCBvciBjaGlsZC1vYnNlcnZlZCBzaHV0ZG93biBzaWduYWwgd2hlbiBhdmFpbGFibGUuXG4gKiBAcHJvcGVydHkge1Bvb2xlZFJ1bm5lclRlcm1pbmF0aW9uUmVhc29ufSB0ZXJtaW5hdGlvblJlYXNvbiAtIERlcHJlY2F0ZWQgY29tcGF0aWJpbGl0eSBjYXRlZ29yeTsgdXNlIHNodXRkb3duUmVhc29uIGZvciBleGFjdCBwcm92ZW5hbmNlLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSB0aW1lb3V0Sm9iSWQgLSBKb2Igd2hvc2UgdGltZW91dCBpbml0aWF0ZWQgY2hpbGQgdGVybWluYXRpb24sIG9yIG51bGwuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd29ya2VySWQgLSBTdGFibGUgZ2VuZXJhdGlvbi1xdWFsaWZpZWQgd29ya2VyIGlkLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9ic1dvcmtlckxpZmVjeWNsZVN0YXRlfSB3b3JrZXJMaWZlY3ljbGUgLSBQYXJlbnQgd29ya2VyIGxpZmVjeWNsZSBpbW1lZGlhdGVseSBiZWZvcmUgcmVjb3ZlcnkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gd29ya2VyUGlkIC0gUGFyZW50IHdvcmtlciBwcm9jZXNzIGlkLlxuICovXG4vKipcbiAqIEJlc3QtZWZmb3J0IG9ic2VydmF0aW9uIHNlbnQgYmVmb3JlIGEgcG9vbGVkIGNoaWxkIGNsb3NlcyBpdHMgcmVzb3VyY2VzLlxuICogQHR5cGVkZWYge29iamVjdH0gUG9vbGVkQ2hpbGRTaHV0ZG93bk9ic2VydmF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2hpbGRJbnN0YW5jZUlkIC0gU3RhYmxlIHBvb2xlZC1jaGlsZCBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGluZmxpZ2h0Sm9iSWRzIC0gQm91bmRlZCBpbi1mbGlnaHQgZHVyYWJsZSBqb2IgaWRzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGluZmxpZ2h0Sm9iSWRzVHJ1bmNhdGVkQ291bnQgLSBJbi1mbGlnaHQgaWRzIG9taXR0ZWQgZnJvbSB0aGUgYm91bmRlZCBzbmFwc2hvdC5cbiAqIEBwcm9wZXJ0eSB7UG9vbGVkQ2hpbGRTaHV0ZG93blJlYXNvbn0gcmVhc29uIC0gU2h1dGRvd24gcmVhc29uIG9ic2VydmVkIGJ5IHRoZSBjaGlsZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzaHV0ZG93bk9ic2VydmVkQXRNcyAtIENoaWxkIG9ic2VydmF0aW9uIHRpbWVzdGFtcC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gc2h1dGRvd25SZXF1ZXN0ZWRBdE1zIC0gUGFyZW50IHJlcXVlc3QgdGltZXN0YW1wIHdoZW4gc3VwcGxpZWQgb3ZlciBJUEMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiKS5DaGlsZFByb2Nlc3NbXCJzaWduYWxDb2RlXCJdfSBzaWduYWwgLSBSZXF1ZXN0ZWQgb3Igb2JzZXJ2ZWQgc2lnbmFsIHdoZW4gYXZhaWxhYmxlLlxuICovXG4vKipcbiAqIEJvdW5kZWQgcG9vbGVkLWNoaWxkIG1lbW9yeSBvYnNlcnZhdGlvbiBzZW50IG92ZXIgdGhlIGNoaWxkIElQQyBjaGFubmVsLlxuICogVGhlIHBvb2xlZCBjaGlsZCdzIHN0ZGlvIGlzIGlnbm9yZWQgYnkgdGhlIHdvcmtlciBmb3JrLCBzbyB0aGlzIG9ic2VydmF0aW9uXG4gKiAoc2VudCBwZXJpb2RpY2FsbHkgd2hpbGUgam9icyBydW4sIHBsdXMgb24gZGVtYW5kKSBpcyBob3cgYSBtZW1vcnkgcHJvYmxlbVxuICogaW4gYSBydW5uaW5nIGNoaWxkIG5hbWVzIGl0c2VsZi4gYGhlYXBTdGF0aXN0aWNzYCBhbmQgYG1lbW9yeVVzYWdlYFxuICogZGlzdGluZ3Vpc2ggVjgtaGVhcCBncm93dGggZnJvbSBleHRlcm5hbC9hcnJheS1idWZmZXIgKG5hdGl2ZSByZXNvdXJjZSlcbiAqIGdyb3d0aDsgYGFjdGl2ZUpvYklkc2AgdGllcyB0aGUgc2FtcGxlIHRvIHRoZSB3b3JrIHRoYXQgd2FzIGluIGZsaWdodC5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBvb2xlZENoaWxkTWVtb3J5T2JzZXJ2YXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGFjdGl2ZUpvYklkcyAtIEluLWZsaWdodCBqb2IgaWRzLCBib3VuZGVkLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGFjdGl2ZUpvYklkc1RydW5jYXRlZENvdW50IC0gSW4tZmxpZ2h0IGpvYiBpZHMgb21pdHRlZCBieSB0aGUgYm91bmQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2hpbGRJbnN0YW5jZUlkIC0gU3RhYmxlIGlkZW50aXR5IHJlcG9ydGVkIGJ5IHRoZSBjaGlsZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjaGlsZFBpZCAtIENoaWxkIHByb2Nlc3MgaWQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2hpbGRVcHRpbWVNcyAtIENoaWxkIHByb2Nlc3MgdXB0aW1lIGluIG1zLlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBpbXBvcnQoXCJub2RlOnY4XCIpLmdldEhlYXBTdGF0aXN0aWNzPn0gaGVhcFN0YXRpc3RpY3MgLSBWOCBoZWFwLXN0YXQgYnJlYWtkb3duIGF0IHRoZSBzYW1wbGUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gam9iQ291bnQgLSBJbi1mbGlnaHQgam9iIGNvdW50LlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBpbXBvcnQoXCJub2RlOnByb2Nlc3NcIikubWVtb3J5VXNhZ2U+fSBtZW1vcnlVc2FnZSAtIFByb2Nlc3MgbWVtb3J5IGJyZWFrZG93biBhdCB0aGUgc2FtcGxlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG9ic2VydmVkQXRNcyAtIEVwb2NoIG1zIHRoZSBjaGlsZCBzYW1wbGVkLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHBlYWtSc3NCeXRlcyAtIENoaWxkLXJlcG9ydGVkIHBlYWsgUlNTIChrZXJuZWwgYFZtSFdNYCBoaWdoLXdhdGVyIG1hcmspIGluIGJ5dGVzLCBtb25vdG9uaWMgZm9yIHRoZSBjaGlsZCdzIGxpZmUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcnNzQnl0ZXMgLSBSZXNpZGVudCBzZXQgc2l6ZSBpbiBieXRlcyBhdCB0aGUgc2FtcGxlLlxuICogQHByb3BlcnR5IHtcInBvb2xlZC1jaGlsZC1tZW1vcnlcIn0gdHlwZSAtIERpc2NyaW1pbmF0b3IuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdXB0aW1lTXMgLSBQcm9jZXNzIHVwdGltZSBpbiBtcy5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBMb2NhbEJhY2tncm91bmRKb2JzQ2xvY2tcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gbnVtYmVyfSBub3cgLSBDdXJyZW50IGVwb2NoIG1pbGxpc2Vjb25kcy5cbiAqIEBwcm9wZXJ0eSB7KGNhbGxiYWNrOiAoKSA9PiB2b2lkLCBkZWxheU1zOiBudW1iZXIpID0+IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVtYmVyfSBzZXRUaW1lb3V0IC0gQXJtcyBhIHRpbWVyLlxuICogQHByb3BlcnR5IHsodGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXIpID0+IHZvaWR9IGNsZWFyVGltZW91dCAtIENsZWFycyBhIHRpbWVyLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFJlc29sdmVkQmFja2dyb3VuZEpvYkNvbmN1cnJlbmN5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29uY3VycmVuY3lLZXkgLSBEdXJhYmxlIGNhcCBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBtYXhDb25jdXJyZW5jeSAtIFBvc2l0aXZlIGNhcC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcXVldWVEZXJpdmVkIC0gV2hldGhlciBxdWV1ZSBjb25maWd1cmF0aW9uIG93bnMgdGhlIGNhcC5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iQ29uY3VycmVuY3lSZXBhaXJcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBhY3RpdmVDb3VudCAtIEV4YWN0IGhhbmRlZC1vZmYgam9iIGNvdW50IHBlcnNpc3RlZCBieSB0aGUgcmVwYWlyLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbmN1cnJlbmN5S2V5IC0gRHVyYWJsZSBjYXAgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcHJldmlvdXNBY3RpdmVDb3VudCAtIFBlcnNpc3RlZCBjb3VudCByZXBsYWNlZCBieSB0aGUgcmVwYWlyLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JDb25jdXJyZW5jeVJlY29uY2lsaWF0aW9uXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2FuZGlkYXRlQ291bnQgLSBTbmFwc2hvdCBtaXNtYXRjaGVzIHJlY2hlY2tlZCB1bmRlciB0aGVpciBjb3VudGVyIGxvY2tzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNoZWNrZWRDb3VudCAtIEFjdGl2ZSBvciBub256ZXJvIGR1cmFibGUgY291bnRlcnMgY29tcGFyZWQgaW4gdGhlIGluaXRpYWwgc25hcHNob3QuXG4gKiBAcHJvcGVydHkge251bWJlcn0gcmVwYWlyZWRDb3VudCAtIENvdW50ZXJzIHdob3NlIHBlcnNpc3RlZCB2YWx1ZXMgd2VyZSBjaGFuZ2VkLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iQ29uY3VycmVuY3lSZXBhaXJbXX0gcmVwYWlycyAtIEJvdW5kZWQgZGV0ZXJtaW5pc3RpYyBzYW1wbGUgb2YgYXBwbGllZCByZXBhaXJzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlcGFpcnNUcnVuY2F0ZWRDb3VudCAtIEFwcGxpZWQgcmVwYWlycyBvbWl0dGVkIGZyb20gdGhlIHNhbXBsZS5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQcmVwYXJlZExvY2FsQmFja2dyb3VuZEpvYlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFyZ3NEaWdlc3QgLSBGaXhlZC13aWR0aCBkaWdlc3Qgb2YgdGhlIHNlcmlhbGl6ZWQgYXJndW1lbnRzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFyZ3NKc29uIC0gU2VyaWFsaXplZCBhcmd1bWVudHMuXG4gKiBAcHJvcGVydHkge1Jlc29sdmVkQmFja2dyb3VuZEpvYkNvbmN1cnJlbmN5IHwgbnVsbH0gY29uY3VycmVuY3kgLSBSZXNvbHZlZCBjb25jdXJyZW5jeS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjcmVhdGVkQXRNcyAtIENyZWF0aW9uIHRpbWVzdGFtcC5cbiAqIEBwcm9wZXJ0eSB7XCJpbmxpbmVcIn0gZXhlY3V0aW9uTW9kZSAtIExvY2FsIGluLXByb2Nlc3MgZXhlY3V0aW9uIG1vZGUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iSWQgLSBEdXJhYmxlIGlkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYk5hbWUgLSBSZWdpc3RlcmVkIG5hbWUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWF4UmV0cmllcyAtIFJldHJ5IGNhcC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBxdWV1ZSAtIFF1ZXVlIG5hbWUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gc2NoZWR1bGVkQXRNcyAtIEVsaWdpYmlsaXR5IHRpbWVzdGFtcC5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9ic0hlYWx0aFxuICogQHByb3BlcnR5IHtib29sZWFufSByZWFkeSAtIFdoZXRoZXIgdGhlIGFkYXB0ZXIgY2FuIGFjY2VwdCBhbmQgcHJvY2VzcyB3b3JrLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JzUHJvZHVjZXJcbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IEJhY2tncm91bmRKb2JPcHRpb25zLCBwcm9kdWNlckludm9jYXRpb25JZD86IHN0cmluZywgcHJvZHVjZXJQcm9vZj86IEJhY2tncm91bmRKb2JQcm9kdWNlclByb29mfSkgPT4gUHJvbWlzZTxzdHJpbmc+fSBlbnF1ZXVlIC0gRW5xdWV1ZXMgYSBqb2IuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7c2NoZWR1bGVLZXk6IHN0cmluZywgam9iTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBCYWNrZ3JvdW5kSm9iT3B0aW9uc30pID0+IFByb21pc2U8QmFja2dyb3VuZEpvYlJlcGxhY2VtZW50UmVzdWx0Pn0gcmVwbGFjZVNjaGVkdWxlZCAtIFJlcGxhY2VzIGEgc3RhYmxlIHNjaGVkdWxlLlxuICogQHByb3BlcnR5IHsoYXJnczoge3NjaGVkdWxlS2V5OiBzdHJpbmd9KSA9PiBQcm9taXNlPEJhY2tncm91bmRKb2JDYW5jZWxsYXRpb25SZXN1bHQ+fSBjYW5jZWxTY2hlZHVsZWQgLSBDYW5jZWxzIGEgc3RhYmxlIHNjaGVkdWxlLlxuICogQHByb3BlcnR5IHsoYXJnczoge3NjaGVkdWxlS2V5OiBzdHJpbmcsIGluY2x1ZGVMYXRlc3RUZXJtaW5hbD86IGJvb2xlYW59KSA9PiBQcm9taXNlPEJhY2tncm91bmRKb2JTY2hlZHVsZWRMb29rdXBSZXN1bHQ+fSBnZXRTY2hlZHVsZWRKb2IgLSBSZWFkcyBzdGFibGUgc2NoZWR1bGUgb3duZXJzaGlwIGFuZCBoaXN0b3J5LlxuICogQHByb3BlcnR5IHsoYXJnczoge3NjaGVkdWxlS2V5OiBzdHJpbmd9KSA9PiBQcm9taXNlPEJhY2tncm91bmRKb2JXYWtlUmVzdWx0Pn0gd2FrZVNjaGVkdWxlZCAtIEV4cGVkaXRlcyBhIHN0YWJsZSBzY2hlZHVsZSBvd25lci5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iSGFuZG9mZlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGhhbmRvZmZJZCAtIFVuaXF1ZSBoYW5kb2ZmIGxlYXNlIGlkLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGhhbmRlZE9mZkF0TXMgLSBUaW1lIGhhbmRlZCB0byBhIHdvcmtlciBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYlJvd30gW2pvYl0gLSBFeGFjdCBjb21taXR0ZWQgam9iIHNuYXBzaG90IHdoZW4gdGhlIGFkYXB0ZXIgY2hhbmdlcyBkaXNwYXRjaCBkYXRhIGR1cmluZyB0aGUgY2xhaW0uXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYkhhbmRvZmZTbmFwc2hvdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYklkIC0gSm9iIGhvbGRpbmcgdGhlIGxlYXNlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGhhbmRvZmZJZCAtIEV4YWN0IGR1cmFibGUgbGVhc2UgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd29ya2VySWQgLSBTdGFibGUgd29ya2VyIGlkIHRoYXQgcmVjZWl2ZWQgdGhlIGxlYXNlLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGhhbmRlZE9mZkF0TXMgLSBUaW1lIGhhbmRlZCB0byB0aGUgd29ya2VyIGluIG1zLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JIYW5kb2ZmUmVxdWVzdFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGpvYklkIC0gSm9iIHRvIGNsYWltLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtoYW5kb2ZmSWRdIC0gRXhhY3QgY2FsbGVyLXNlbGVjdGVkIGxlYXNlIGlkLiBBZGFwdGVycyBtdXN0IHBlcnNpc3QgYW5kIHJldHVybiB0aGlzIGlkIHdoZW4gc3VwcGxpZWQ7IGJ1aWx0LWluIGFkYXB0ZXJzIGdlbmVyYXRlIG9uZSB3aGVuIG9taXR0ZWQgZm9yIGxlZ2FjeSBkaXJlY3QgY2FsbGVycy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbd29ya2VySWRdIC0gV29ya2VyIGNsYWltaW5nIHRoZSBqb2IuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYk9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYkV4ZWN1dGlvbk1vZGV9IFtleGVjdXRpb25Nb2RlXSAtIEhvdyB0aGUgam9iIHNob3VsZCBydW4uIE5vZGUgZGVmYXVsdHMgdG8gYFwicG9vbGVkXCJgIChhIHdhcm0sIHJldXNlZCBsb2NhbCBydW5uZXIgcHJvY2VzcykuIEJyb3dzZXIvRXhwbyBsb2NhbCBkaXNwYXRjaCBkZWZhdWx0cyB0byBhbmQgb25seSBhY2NlcHRzIGBcImlubGluZVwiYC4gYFwiZm9ya2VkXCJgIHJ1bnMgYSBOb2RlIGpvYiBpbiBhIGZyZXNoIGBjaGlsZF9wcm9jZXNzLmZvcmsoKWAgY2hpbGQsIGFuZCBgXCJzcGF3bmVkXCJgIGluIGEgZGV0YWNoZWQgQ0xJIHJ1bm5lci5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWF4UmV0cmllc10gLSBNYXggcmV0cmllcyBmb3IgYSBmYWlsZWQgam9iIGJlZm9yZSBpdCBpcyBtYXJrZWQgZmFpbGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtxdWV1ZV0gLSBRdWV1ZSBuYW1lLiBEZWZhdWx0cyB0byBgXCJkZWZhdWx0XCJgLiBXaGVuIHRoZSBxdWV1ZSBoYXMgYSBjb25maWd1cmVkIGNhcCBpbiBgYmFja2dyb3VuZEpvYnMucXVldWVzYCwgdGhhdCBjYXAgaXMgZW5mb3JjZWQgY2x1c3Rlci13aWRlLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjb25jdXJyZW5jeUtleV0gLSBPcGFxdWUgbm9uLWVtcHR5IGtleSB1c2VkIHRvIHNoYXJlIGEgY29uY3VycmVuY3kgY2FwLiBPdmVycmlkZXMgYW55IHF1ZXVlLWRlcml2ZWQgY2FwLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFttYXhDb25jdXJyZW5jeV0gLSBQb3NpdGl2ZSBpbnRlZ2VyIGNhcDsgbXVzdCBiZSBwYWlyZWQgd2l0aCBgY29uY3VycmVuY3lLZXlgLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbZGVkdXBsaWNhdGVXaGlsZVF1ZXVlZF0gLSBXaGVuIHRydWUsIHNraXAgdGhlIGVucXVldWUgaWYgYW4gaWRlbnRpY2FsIHN0aWxsLXF1ZXVlZCBqb2IgKHNhbWUgam9iIG5hbWUsIGFyZ3MgYW5kIHF1ZXVlKSBpcyBzY2hlZHVsZWQgbm8gbGF0ZXIgdGhhbiB0aGlzIGVucXVldWUsIHJldHVybmluZyB0aGUgZWFybGllc3QgbWF0Y2hpbmcgam9iJ3MgaWQuIEEgZnV0dXJlIHJldHJ5IGRvZXMgbm90IHN1cHByZXNzIGVhcmxpZXIgd29yay4gRGVkdXBsaWNhdGlvbiBpcyBpbmRlcGVuZGVudCBvZiBgY29uY3VycmVuY3lLZXlgLCBzbyB0aGUgam9iIGtlZXBzIGl0cyBub3JtYWwgKGUuZy4gcXVldWUtZGVyaXZlZCkgY29uY3VycmVuY3kgY2FwLiBLZWVwcyBhbiBpbnRlcnZhbC1zY2hlZHVsZWQgcmVjdXJyaW5nIGpvYiAoZS5nLiByZXRlbnRpb24gcHJ1bmluZykgZnJvbSBwaWxpbmcgdXAgcmVkdW5kYW50IHF1ZXVlZCByb3dzIHdoZW4gaXQgcnVucyBzbG93ZXIgdGhhbiBpdHMgaW50ZXJ2YWwgb3Igbm8gd29ya2VyIGlzIGZyZWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2lkZW1wb3RlbmN5S2V5XSAtIER1cmFibGUgZW5xdWV1ZSBpZGVudGl0eSBzY29wZWQgdG8gdGhlIHJlc29sdmVkIGpvYiBjbGFzcyBuYW1lIGFuZCBxdWV1ZS4gRXhhY3QgcmVwbGF5IHJldHVybnMgdGhlIG9yaWdpbmFsIGpvYiBpZCBhY3Jvc3MgZXZlcnkgc3RhdGUgYW5kIGFmdGVyIGpvYiBwcnVuaW5nOyByZXVzZSB3aXRoIGRpZmZlcmVudCBjYW5vbmljYWwgYXJndW1lbnRzIG9yIGJlaGF2aW9yLWFmZmVjdGluZyBvcHRpb25zIGZhaWxzLiBPd25lcnNoaXAgaXMgaW5kZXBlbmRlbnQgb2YgYGRlZHVwbGljYXRlV2hpbGVRdWV1ZWRgIGFuZCBpcyByZXRhaW5lZCB1bnRpbCBhbiBleHBsaWNpdCBmdXR1cmUgcmV0ZW50aW9uIHBvbGljeSByZW1vdmVzIGl0LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtzY2hlZHVsZWRBdE1zXSAtIEVwb2NoIHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgam9iIGJlY29tZXMgZWxpZ2libGUgZm9yIGRpc3BhdGNoLiBEZWZhdWx0cyB0byBlbnF1ZXVlIHRpbWUuXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXRNc10gLSBQZXItam9iIHdhbGwtY2xvY2sgdGltZW91dCBmb3IgZm9ya2VkIGFuZCBwb29sZWQgZXhlY3V0aW9uLiBBIHBvc2l0aXZlIGludGVnZXIgdXAgdG8gMiwxNDcsNDgzLDY0NyBvdmVycmlkZXMgdGhlIHdvcmtlci1sZXZlbCBgam9iVGltZW91dE1zYDsgYSBub24tcG9zaXRpdmUgZmluaXRlIHZhbHVlIGRpc2FibGVzIHRoZSB0aW1lb3V0IGZvciB0aGlzIGpvYi5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iUGF5bG9hZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpZF0gLSBKb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iTmFtZSAtIEpvYiBjbGFzcyBuYW1lLlxuICogQHByb3BlcnR5IHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFthcmdzXSAtIFNlcmlhbGl6ZWQgam9iIGFyZ3VtZW50cy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaGFuZG9mZklkXSAtIFVuaXF1ZSBoYW5kb2ZmIGxlYXNlIGlkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt3b3JrZXJJZF0gLSBXb3JrZXIgaWQgaGFuZGxpbmcgdGhlIGpvYi5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbaGFuZGVkT2ZmQXRNc10gLSBUaW1lIGhhbmRlZCB0byBhIHdvcmtlciBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYk9wdGlvbnN9IFtvcHRpb25zXSAtIFJ1bnRpbWUgb3B0aW9ucy5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iQ29udGV4dFxuICogQHByb3BlcnR5IHt0eXBlb2YgaW1wb3J0KFwiLi9wbGF0Zm9ybS1qb2IuanNcIikuZGVmYXVsdH0gam9iQ2xhc3MgLSBDb25jcmV0ZSBqb2IgY2xhc3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iTmFtZSAtIFJlZ2lzdGVyZWQgam9iIG5hbWUuXG4gKiBAcHJvcGVydHkge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gYXJncyAtIFNlcmlhbGl6ZWQgam9iIGFyZ3VtZW50cy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYk9wdGlvbnN9IG9wdGlvbnMgLSBSZXNvbHZlZCBlbnF1ZXVlL3J1bnRpbWUgb3B0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7QmFja2dyb3VuZEpvYlBheWxvYWR9IFtwYXlsb2FkXSAtIENvbXBsZXRlIHBlcnNpc3RlZCBydW5uZXIgcGF5bG9hZCB3aGVuIHRoZSBqb2IgaXMgcGVyZm9ybWluZy5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iUm93XG4gKiBAcHJvcGVydHkge3N0cmluZ30gaWQgLSBKb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gam9iTmFtZSAtIEpvYiBjbGFzcyBuYW1lLlxuICogQHByb3BlcnR5IHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IGFyZ3MgLSBTZXJpYWxpemVkIGpvYiBhcmd1bWVudHMuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JFeGVjdXRpb25Nb2RlfSBleGVjdXRpb25Nb2RlIC0gSG93IHRoZSBqb2Igc2hvdWxkIHJ1bi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBxdWV1ZSAtIFF1ZXVlIG5hbWUgKGRlZmF1bHRzIHRvIGBcImRlZmF1bHRcImApLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBzY2hlZHVsZUtleSAtIFN0YWJsZSBsb2dpY2FsIHNjaGVkdWxlIGtleSByZXRhaW5lZCBmb3IgaGlzdG9yeS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gc2NoZWR1bGVPcmRlciAtIFRyYW5zYWN0aW9uLWFzc2lnbmVkIG1vbm90b25pYyBvd25lcnNoaXAgb3JkZXIgZm9yIHRoaXMgc2NoZWR1bGUga2V5OyBOb2RlIHByZXNlcnZlcyBpdHMgaGlnaC13YXRlciBtYXJrIGFjcm9zcyB0ZXJtaW5hbC1oaXN0b3J5IHBydW5pbmcuIE51bGwgZm9yIGxlZ2FjeS9ub24tc2NoZWR1bGVkIHJvd3MuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JTdGF0dXN9IHN0YXR1cyAtIEN1cnJlbnQgam9iIHN0YXR1cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gYXR0ZW1wdHMgLSBGYWlsdXJlIGF0dGVtcHRzIGNvdW50LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBtYXhSZXRyaWVzIC0gTWF4IHJldHJ5IGF0dGVtcHRzLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBzY2hlZHVsZWRBdE1zIC0gTmV4dCBzY2hlZHVsZWQgdGltZSBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gY3JlYXRlZEF0TXMgLSBDcmVhdGlvbiB0aW1lIGluIG1zLlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBoYW5kZWRPZmZBdE1zIC0gVGltZSBoYW5kZWQgdG8gd29ya2VyIGluIG1zLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBoYW5kb2ZmSWQgLSBVbmlxdWUgbGF0ZXN0IGhhbmRvZmYgbGVhc2UgaWQuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IGNvbXBsZXRlZEF0TXMgLSBDb21wbGV0aW9uIHRpbWUgaW4gbXMuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IGZhaWxlZEF0TXMgLSBGYWlsdXJlIHRpbWUgaW4gbXMuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IG9ycGhhbmVkQXRNcyAtIE9ycGhhbmVkIHRpbWUgaW4gbXMuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IHdvcmtlcklkIC0gV29ya2VyIGlkIGhhbmRsaW5nIHRoZSBqb2IuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGxhc3RFcnJvciAtIExhc3QgZmFpbHVyZSBtZXNzYWdlLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBjb25jdXJyZW5jeUtleSAtIER1cmFibGUgY29uY3VycmVuY3kga2V5LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCBudWxsfSBtYXhDb25jdXJyZW5jeSAtIER1cmFibGUgcGVyLWtleSBjYXAuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IHRpbWVvdXRNcyAtIFBlci1qb2Igd2FsbC1jbG9jayB0aW1lb3V0IG92ZXJyaWRlLCBvciBudWxsIHdoZW4gb21pdHRlZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gY2hpbGRSZWNlaXZlZEF0TXMgLSBFcG9jaCBtcyB3aGVuIHRoZSBleGVjdXRpbmcgcG9vbGVkIGNoaWxkJ3MgZXZlbnQgbG9vcCBwcm9jZXNzZWQgdGhlIGpvYiBtZXNzYWdlLCBvciBudWxsIHdoZW4gbm8gcnVubmVyIGFjY2VwdGVkIGl0IHlldC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gY2hpbGRTdGFydGVkQXRNcyAtIEVwb2NoIG1zIHdoZW4gdGhlIGpvYidzIHBlcmZvcm0gc3RhcnRlZCBpbiB0aGUgcG9vbGVkIGNoaWxkLCBvciBudWxsIHdoZW4gaXQgbmV2ZXIgc3RhcnRlZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gY2hpbGRJbnN0YW5jZUlkIC0gU3RhYmxlIGlkZW50aXR5IG9mIHRoZSBwb29sZWQgY2hpbGQgcHJvY2VzcyB0aGF0IGFjY2VwdGVkIHRoZSBqb2IsIG9yIG51bGwuXG4gKiBAcHJvcGVydHkge251bWJlciB8IG51bGx9IGNoaWxkUGlkIC0gT1MgcGlkIG9mIHRoZSBwb29sZWQgY2hpbGQgcHJvY2VzcyB0aGF0IGFjY2VwdGVkIHRoZSBqb2IsIG9yIG51bGwuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IHJ1bm5lckhvc3RuYW1lIC0gSG9zdG5hbWUgcmVwb3J0ZWQgYnkgdGhlIHBvb2xlZCBjaGlsZCBwcm9jZXNzIHRoYXQgYWNjZXB0ZWQgdGhlIGpvYiwgb3IgbnVsbC5cbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7XCJxdWV1ZWRcIiB8IFwiaGFuZGVkX29mZlwiIHwgbnVsbH0gQmFja2dyb3VuZEpvYlJlcGxhY2VtZW50UHJldmlvdXNTdGF0dXNcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBCYWNrZ3JvdW5kSm9iUmVwbGFjZW1lbnRSZXN1bHRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBqb2JJZCAtIE5ld2x5IHF1ZXVlZCBqb2IgaWQuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IHByZXZpb3VzSm9iSWQgLSBQcmV2aW91cyBhY3RpdmUgb3duZXIncyBqb2IgaWQuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JSZXBsYWNlbWVudFByZXZpb3VzU3RhdHVzfSBwcmV2aW91c1N0YXR1cyAtIFByZXZpb3VzIG93bmVyJ3Mgb2JzZXJ2ZWQgc3RhdGUuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge1wiY2FuY2VsbGVkXCIgfCBcImhhbmRlZF9vZmZcIiB8IFwibm90X2ZvdW5kXCJ9IEJhY2tncm91bmRKb2JDYW5jZWxsYXRpb25PdXRjb21lXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYkNhbmNlbGxhdGlvblJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSBqb2JJZCAtIERldGFjaGVkIG93bmVyJ3Mgam9iIGlkLCB3aGVuIG9uZSB3YXMgYWN0aXZlLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iQ2FuY2VsbGF0aW9uT3V0Y29tZX0gb3V0Y29tZSAtIFRydXRoZnVsIGJlc3QtZWZmb3J0IG91dGNvbWUuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYlNjaGVkdWxlZExvb2t1cFJlc3VsdFxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iUm93IHwgbnVsbH0gY3VycmVudEpvYiAtIEN1cnJlbnQgcXVldWVkIG9yIGhhbmRlZC1vZmYgb3duZXIuXG4gKiBAcHJvcGVydHkge0JhY2tncm91bmRKb2JSb3cgfCBudWxsfSBsYXRlc3RUZXJtaW5hbEpvYiAtIExhdGVzdCB0ZXJtaW5hbCBoaXN0b3J5IHdoZW4gcmVxdWVzdGVkLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtcIndva2VuXCIgfCBcImFscmVhZHlfZHVlXCIgfCBcImhhbmRlZF9vZmZcIiB8IFwibm90X2ZvdW5kXCJ9IEJhY2tncm91bmRKb2JXYWtlT3V0Y29tZVxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IEJhY2tncm91bmRKb2JXYWtlUmVzdWx0XG4gKiBAcHJvcGVydHkge3N0cmluZyB8IG51bGx9IGpvYklkIC0gQ3VycmVudCBvd25lcidzIGR1cmFibGUgam9iIGlkLCB3aGVuIGZvdW5kLlxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iV2FrZU91dGNvbWV9IG91dGNvbWUgLSBFeGFjdCB3YWtlIG91dGNvbWUuXG4gKi9cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gQmFja2dyb3VuZEpvYkZhaWx1cmVFdmVudFxuICogQHByb3BlcnR5IHtCYWNrZ3JvdW5kSm9iUm93fSBqb2IgLSBVcGRhdGVkIGpvYiByb3cgYWZ0ZXIgZmFpbHVyZSBoYW5kbGluZy5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IGVycm9yIC0gRmFpbHVyZSBlcnJvci5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyIHwgbnVsbH0gYXR0ZW1wdHMgLSBVcGRhdGVkIGZhaWx1cmUgYXR0ZW1wdHMgY291bnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHRlcm1pbmFsIC0gV2hldGhlciB0aGlzIGZhaWx1cmUgZW5kZWQgdGhlIGpvYi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gd2lsbFJldHJ5IC0gV2hldGhlciB0aGUgam9iIHdhcyByZXR1cm5lZCB0byB0aGUgcXVldWUuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8IHVuZGVmaW5lZH0gaGFuZG9mZklkIC0gSGFuZG9mZiBsZWFzZSBpZCBmcm9tIHRoZSB3b3JrZXIgcmVwb3J0LlxuICogQHByb3BlcnR5IHtudW1iZXIgfCB1bmRlZmluZWR9IGhhbmRlZE9mZkF0TXMgLSBIYW5kb2ZmIHRpbWVzdGFtcCBmcm9tIHRoZSB3b3JrZXIgcmVwb3J0LlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCB1bmRlZmluZWR9IHdvcmtlcklkIC0gV29ya2VyIGlkIGZyb20gdGhlIHdvcmtlciByZXBvcnQuXG4gKiBAcHJvcGVydHkge1Bvb2xlZFJ1bm5lckZhaWx1cmUgfCB1bmRlZmluZWR9IHJ1bm5lckZhaWx1cmUgLSBTaGFyZWQgcG9vbGVkLWNoaWxkIHByb2Nlc3MgZmFpbHVyZSBwcm92ZW5hbmNlLlxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtcIndvcmtlclwiIHwgXCJjbGllbnRcIiB8IFwicmVwb3J0ZXJcIn0gQmFja2dyb3VuZEpvYlNvY2tldFJvbGVcbiAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiaGVsbG9cIiwgcm9sZTogQmFja2dyb3VuZEpvYlNvY2tldFJvbGUsIGdlbmVyYXRpb25JZD86IHN0cmluZywgc3VwcG9ydHNIYW5kb2ZmSWRSZXBvcnRpbmc/OiBib29sZWFuLCBzdXBwb3J0c0hlYXJ0YmVhdD86IGJvb2xlYW4sIHN1cHBvcnRzUG9vbGVkPzogYm9vbGVhbiwgd29ya2VySWQ/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iSGVsbG9NZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiZ2VuZXJhdGlvbi1hY2NlcHRlZFwiLCBnZW5lcmF0aW9uSWQ6IHN0cmluZywgbGlmZWN5Y2xlU3RhdGU6IEJhY2tncm91bmRKb2JzR2VuZXJhdGlvbkxpZmVjeWNsZVN0YXRlfX0gQmFja2dyb3VuZEpvYkdlbmVyYXRpb25BY2NlcHRlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJnZW5lcmF0aW9uLXJlamVjdGVkXCIsIHJlYXNvbjogQmFja2dyb3VuZEpvYnNHZW5lcmF0aW9uUmVqZWN0aW9uUmVhc29ufX0gQmFja2dyb3VuZEpvYkdlbmVyYXRpb25SZWplY3RlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJyZWFkeVwiLCBhY2NlcHRzRm9ya2VkPzogYm9vbGVhbiwgYWNjZXB0c0lubGluZT86IGJvb2xlYW4sIGFjY2VwdHNQb29sZWQ/OiBib29sZWFuLCBhY2NlcHRzU3Bhd25lZD86IGJvb2xlYW4sIGF2YWlsYWJsZVBvb2xlZFNsb3RzPzogbnVtYmVyfX0gQmFja2dyb3VuZEpvYlJlYWR5TWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImRyYWluaW5nXCJ9fSBCYWNrZ3JvdW5kSm9iRHJhaW5pbmdNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiaGVhcnRiZWF0XCIsIHdvcmtlcklkPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkhlYXJ0YmVhdE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJlbnF1ZXVlXCIsIGpvYk5hbWU6IHN0cmluZywgYXJncz86IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IEJhY2tncm91bmRKb2JPcHRpb25zLCBwcm9kdWNlckludm9jYXRpb25JZD86IHN0cmluZywgcHJvZHVjZXJQcm9vZj86IEJhY2tncm91bmRKb2JQcm9kdWNlclByb29mfX0gQmFja2dyb3VuZEpvYkVucXVldWVNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiZW5xdWV1ZWRcIiwgam9iSWQ6IHN0cmluZ319IEJhY2tncm91bmRKb2JFbnF1ZXVlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJlbnF1ZXVlLWVycm9yXCIsIGVycm9yPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkVucXVldWVFcnJvck1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJyZXBsYWNlLXNjaGVkdWxlZFwiLCBzY2hlZHVsZUtleTogc3RyaW5nLCBqb2JOYW1lOiBzdHJpbmcsIGFyZ3M/OiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBCYWNrZ3JvdW5kSm9iT3B0aW9uc319IEJhY2tncm91bmRKb2JSZXBsYWNlU2NoZWR1bGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInNjaGVkdWxlLXJlcGxhY2VkXCIsIGpvYklkOiBzdHJpbmcsIHByZXZpb3VzSm9iSWQ6IHN0cmluZyB8IG51bGwsIHByZXZpb3VzU3RhdHVzOiBCYWNrZ3JvdW5kSm9iUmVwbGFjZW1lbnRQcmV2aW91c1N0YXR1c319IEJhY2tncm91bmRKb2JTY2hlZHVsZVJlcGxhY2VkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInJlcGxhY2Utc2NoZWR1bGVkLWVycm9yXCIsIGVycm9yPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYlJlcGxhY2VTY2hlZHVsZWRFcnJvck1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJjYW5jZWwtc2NoZWR1bGVkXCIsIHNjaGVkdWxlS2V5OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iQ2FuY2VsU2NoZWR1bGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcInNjaGVkdWxlLWNhbmNlbGxlZFwiLCBqb2JJZDogc3RyaW5nIHwgbnVsbCwgb3V0Y29tZTogQmFja2dyb3VuZEpvYkNhbmNlbGxhdGlvbk91dGNvbWV9fSBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVDYW5jZWxsZWRNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiY2FuY2VsLXNjaGVkdWxlZC1lcnJvclwiLCBlcnJvcj86IHN0cmluZ319IEJhY2tncm91bmRKb2JDYW5jZWxTY2hlZHVsZWRFcnJvck1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJnZXQtc2NoZWR1bGVkLWpvYlwiLCBzY2hlZHVsZUtleTogc3RyaW5nLCBpbmNsdWRlTGF0ZXN0VGVybWluYWw/OiBib29sZWFufX0gQmFja2dyb3VuZEpvYkdldFNjaGVkdWxlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJzY2hlZHVsZWQtam9iXCIsIGN1cnJlbnRKb2I6IEJhY2tncm91bmRKb2JSb3cgfCBudWxsLCBsYXRlc3RUZXJtaW5hbEpvYjogQmFja2dyb3VuZEpvYlJvdyB8IG51bGx9fSBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImdldC1zY2hlZHVsZWQtam9iLWVycm9yXCIsIGVycm9yPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkdldFNjaGVkdWxlZEVycm9yTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcIndha2Utc2NoZWR1bGVkXCIsIHNjaGVkdWxlS2V5OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iV2FrZVNjaGVkdWxlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJzY2hlZHVsZS13b2tlblwiLCBqb2JJZDogc3RyaW5nIHwgbnVsbCwgb3V0Y29tZTogQmFja2dyb3VuZEpvYldha2VPdXRjb21lfX0gQmFja2dyb3VuZEpvYlNjaGVkdWxlV29rZW5NZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwid2FrZS1zY2hlZHVsZWQtZXJyb3JcIiwgZXJyb3I/OiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iV2FrZVNjaGVkdWxlZEVycm9yTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYlwiLCBwYXlsb2FkOiBCYWNrZ3JvdW5kSm9iUGF5bG9hZH19IEJhY2tncm91bmRKb2JKb2JNZXNzYWdlXG4gKiBAdHlwZWRlZiB7e3R5cGU6IFwiam9iLWFjY2VwdGVkXCIsIGpvYklkOiBzdHJpbmcsIGhhbmRvZmZJZD86IHN0cmluZywgd29ya2VySWQ/OiBzdHJpbmcsIGhhbmRlZE9mZkF0TXM/OiBudW1iZXIsIHJlY2VpdmVkQXRNcz86IG51bWJlciwgc3RhcnRlZEF0TXM/OiBudW1iZXIsIGNoaWxkSW5zdGFuY2VJZD86IHN0cmluZywgY2hpbGRQaWQ/OiBudW1iZXIsIHJ1bm5lckhvc3RuYW1lPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYkFjY2VwdGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYi1jb21wbGV0ZVwiLCBqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyfX0gQmFja2dyb3VuZEpvYkNvbXBsZXRlTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYi1mYWlsZWRcIiwgam9iSWQ6IHN0cmluZywgZXJyb3I/OiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPiwgaGFuZG9mZklkPzogc3RyaW5nLCB3b3JrZXJJZD86IHN0cmluZywgaGFuZGVkT2ZmQXRNcz86IG51bWJlciwgcnVubmVyRmFpbHVyZT86IFBvb2xlZFJ1bm5lckZhaWx1cmV9fSBCYWNrZ3JvdW5kSm9iRmFpbGVkTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYi1yZXNjaGVkdWxlXCIsIGpvYklkOiBzdHJpbmcsIGRlbGF5TXM6IG51bWJlciwgaGFuZG9mZklkPzogc3RyaW5nLCB3b3JrZXJJZD86IHN0cmluZywgaGFuZGVkT2ZmQXRNcz86IG51bWJlcn19IEJhY2tncm91bmRKb2JSZXNjaGVkdWxlTWVzc2FnZVxuICogQHR5cGVkZWYge3t0eXBlOiBcImpvYi11cGRhdGVkXCIsIGpvYklkOiBzdHJpbmd9fSBCYWNrZ3JvdW5kSm9iVXBkYXRlZE1lc3NhZ2VcbiAqIEB0eXBlZGVmIHt7dHlwZTogXCJqb2ItdXBkYXRlLWVycm9yXCIsIGpvYklkOiBzdHJpbmcsIGVycm9yPzogc3RyaW5nfX0gQmFja2dyb3VuZEpvYlVwZGF0ZUVycm9yTWVzc2FnZVxuICovXG4vKipcbiAqIEB0eXBlZGVmIHtCYWNrZ3JvdW5kSm9iSGVsbG9NZXNzYWdlIHwgQmFja2dyb3VuZEpvYkdlbmVyYXRpb25BY2NlcHRlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iR2VuZXJhdGlvblJlamVjdGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JSZWFkeU1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iRHJhaW5pbmdNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkhlYXJ0YmVhdE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iRW5xdWV1ZU1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iRW5xdWV1ZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkVucXVldWVFcnJvck1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iUmVwbGFjZVNjaGVkdWxlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iU2NoZWR1bGVSZXBsYWNlZE1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iUmVwbGFjZVNjaGVkdWxlZEVycm9yTWVzc2FnZSB8IEJhY2tncm91bmRKb2JDYW5jZWxTY2hlZHVsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlNjaGVkdWxlQ2FuY2VsbGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JDYW5jZWxTY2hlZHVsZWRFcnJvck1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iR2V0U2NoZWR1bGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JTY2hlZHVsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkdldFNjaGVkdWxlZEVycm9yTWVzc2FnZSB8IEJhY2tncm91bmRKb2JXYWtlU2NoZWR1bGVkTWVzc2FnZSB8IEJhY2tncm91bmRKb2JTY2hlZHVsZVdva2VuTWVzc2FnZSB8IEJhY2tncm91bmRKb2JXYWtlU2NoZWR1bGVkRXJyb3JNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkpvYk1lc3NhZ2UgfCBCYWNrZ3JvdW5kSm9iQWNjZXB0ZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYkNvbXBsZXRlTWVzc2FnZSB8IEJhY2tncm91bmRKb2JGYWlsZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlJlc2NoZWR1bGVNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlVwZGF0ZWRNZXNzYWdlIHwgQmFja2dyb3VuZEpvYlVwZGF0ZUVycm9yTWVzc2FnZX0gQmFja2dyb3VuZEpvYlNvY2tldE1lc3NhZ2VcbiAqL1xuXG5leHBvcnQgY29uc3Qgbm90aGluZyA9IHt9XG4iXX0=
@@ -107,6 +107,18 @@ export type PooledChildState = {
107
107
  * - Job whose timeout initiated termination.
108
108
  */
109
109
  timeoutJobId?: string;
110
+ /**
111
+ * - Last time the worker saw any IPC message from this child, or dispatched to it.
112
+ */
113
+ lastActivityAtMs: number;
114
+ /**
115
+ * - Armed per-child IPC-silence watchdog timer.
116
+ */
117
+ silenceTimer?: ReturnType<typeof setTimeout>;
118
+ /**
119
+ * - Pending SIGKILL for a child the silence watchdog declared wedged.
120
+ */
121
+ silenceSigkillTimer?: ReturnType<typeof setTimeout>;
110
122
  };
111
123
  export default class BackgroundJobsWorker {
112
124
  /**
@@ -161,6 +173,8 @@ export default class BackgroundJobsWorker {
161
173
  pooledRunnerMaxJobs: number;
162
174
  pooledRunnerMaxRssBytes: number;
163
175
  pooledRunnerMaxLifetimeMs: number;
176
+ pooledRunnerSilenceTimeoutMsOverride: number | undefined;
177
+ pooledRunnerSilenceTimeoutMs: number;
164
178
  runnerMaxOldSpaceSizeMb: number;
165
179
  runnerMallocArenaMax: number;
166
180
  /**
@@ -282,13 +296,14 @@ export default class BackgroundJobsWorker {
282
296
  * @param {number} [args.generationHandshakeTimeoutMs] - Maximum time to wait for generation acknowledgement (default: 4000).
283
297
  * @param {number} [args.reconnectDelayMs] - Delay before reconnecting an established worker connection (default: 1000).
284
298
  * @param {number} [args.jobTimeoutMs] - Override the wall-clock timeout for forked and pooled jobs from `configuration.getBackgroundJobsConfig()`. `0` disables it.
299
+ * @param {number} [args.pooledRunnerSilenceTimeoutMs] - Override the per-child IPC-silence bound for pooled children with in-flight jobs from `configuration.getBackgroundJobsConfig()` (default 120000ms). `0` disables the watchdog.
285
300
  * @param {boolean} [args.closeDatabaseConnectionsOnStop] - Whether stop owns closing the configuration's database pools (default true).
286
301
  * @param {() => void | Promise<void>} [args.onStopped] - Lifecycle hook invoked after the worker finishes stopping.
287
302
  * @param {() => void} [args.onGenerationAccepted] - Explicit generation-acceptance observation hook.
288
303
  * @param {() => void} [args.onRetireMessage] - Explicit retire-message observation hook.
289
304
  * @param {(observation: import("./types.js").PooledChildMemoryObservation) => void | Promise<void>} [args.onPooledRunnerMemoryObservation] - Explicit pooled-child memory observation hook. Every validated observation (periodic while a child has in-flight jobs, plus on demand) is forwarded here, in addition to the worker's compact stderr log line, so an application can route memory diagnostics (e.g. to a bug reporter) without parsing logs.
290
305
  */
291
- constructor({ configuration, host, port, generationId, workerInstanceId, maxConcurrentForkedJobs, maxConcurrentInlineJobs, pooledRunnerCount, pooledRunnerConcurrency, pooledRunnerMaxJobs, pooledRunnerMaxRssBytes, pooledRunnerMaxLifetimeMs, runnerMaxOldSpaceSizeMb, runnerMallocArenaMax, forkedChildSigkillGraceMs, heartbeatIntervalMs, generationHandshakeTimeoutMs, reconnectDelayMs, jobTimeoutMs, closeDatabaseConnectionsOnStop, onStopped, onGenerationAccepted, onRetireMessage, onPooledRunnerMemoryObservation }?: {
306
+ constructor({ configuration, host, port, generationId, workerInstanceId, maxConcurrentForkedJobs, maxConcurrentInlineJobs, pooledRunnerCount, pooledRunnerConcurrency, pooledRunnerMaxJobs, pooledRunnerMaxRssBytes, pooledRunnerMaxLifetimeMs, runnerMaxOldSpaceSizeMb, runnerMallocArenaMax, forkedChildSigkillGraceMs, heartbeatIntervalMs, generationHandshakeTimeoutMs, reconnectDelayMs, jobTimeoutMs, pooledRunnerSilenceTimeoutMs, closeDatabaseConnectionsOnStop, onStopped, onGenerationAccepted, onRetireMessage, onPooledRunnerMemoryObservation }?: {
292
307
  configuration?: import("../configuration.js").default;
293
308
  host?: string;
294
309
  port?: number;
@@ -308,6 +323,7 @@ export default class BackgroundJobsWorker {
308
323
  generationHandshakeTimeoutMs?: number;
309
324
  reconnectDelayMs?: number;
310
325
  jobTimeoutMs?: number;
326
+ pooledRunnerSilenceTimeoutMs?: number;
311
327
  closeDatabaseConnectionsOnStop?: boolean;
312
328
  onStopped?: () => void | Promise<void>;
313
329
  onGenerationAccepted?: () => void;
@@ -740,6 +756,79 @@ export default class BackgroundJobsWorker {
740
756
  * @returns {boolean} - True when a replacement child was spawned.
741
757
  */
742
758
  _ensureNonRetiringChild(): boolean;
759
+ /**
760
+ * Records one pooled child's IPC activity and re-arms its silence watchdog while
761
+ * that child still owns in-flight jobs. Every message the child sends — readiness,
762
+ * acceptance, memory observation, shutdown observation, or job outcome — proves its
763
+ * event loop is running, because a healthy child samples itself every 10 seconds
764
+ * while jobs are in flight. Silence past the bound therefore means a wedged child
765
+ * that can no longer prove it is alive, not a busy one.
766
+ * @param {object} args - Activity details.
767
+ * @param {import("node:child_process").ChildProcess} args.child - Pooled child.
768
+ * @param {PooledChildState | undefined} args.state - Child state.
769
+ * @returns {void}
770
+ */
771
+ _notePooledChildActivity({ child, state }: {
772
+ child: import("node:child_process").ChildProcess;
773
+ state: PooledChildState | undefined;
774
+ }): void;
775
+ /**
776
+ * Resolves the effective pooled-child silence bound in ms, or null when disabled.
777
+ * A non-positive or non-finite value disables the watchdog at whichever level
778
+ * supplied it, matching the job-timeout contract.
779
+ * @returns {number | null} - Bound in ms, or null when disabled.
780
+ */
781
+ _resolvePooledChildSilenceTimeoutMs(): number | null;
782
+ /**
783
+ * Re-arms one child's silence watchdog from its last observed activity. Only
784
+ * children with in-flight jobs are watched: a child with nothing in flight cannot
785
+ * strand work, and its periodic sampler is inactive then, so silence is not
786
+ * evidence of a wedge.
787
+ * @param {object} args - Watchdog details.
788
+ * @param {import("node:child_process").ChildProcess} args.child - Pooled child.
789
+ * @param {PooledChildState} args.state - Child state.
790
+ * @returns {void}
791
+ */
792
+ _armPooledChildSilenceTimer({ child, state }: {
793
+ child: import("node:child_process").ChildProcess;
794
+ state: PooledChildState;
795
+ }): void;
796
+ /**
797
+ * Fired when a pooled child with in-flight jobs stays silent past the bound. A
798
+ * wedged child keeps its IPC channel open but stops running its own timers, so the
799
+ * disconnect/exit path never fires and its jobs stay stranded until a human
800
+ * notices. The worker declares the child dead: it requests shutdown under the exact
801
+ * `child_silence` reason, reports the whole in-flight set as failed through the
802
+ * established failure path (so the jobs requeue and capacity is re-advertised), and
803
+ * signals the wedged process — SIGTERM, then SIGKILL after the existing grace — so
804
+ * it actually goes away instead of blocking the event loop forever.
805
+ * @param {object} args - Watchdog details.
806
+ * @param {import("node:child_process").ChildProcess} args.child - Pooled child.
807
+ * @param {PooledChildState} args.state - Child state.
808
+ * @returns {void}
809
+ */
810
+ _onPooledChildSilence({ child, state }: {
811
+ child: import("node:child_process").ChildProcess;
812
+ state: PooledChildState;
813
+ }): void;
814
+ /**
815
+ * Logs one compact JSON line naming a child the silence watchdog declared wedged
816
+ * (the same stderr surface the memory observations use, which reaches the production
817
+ * log), so the recovery is attributable after the fact instead of looking like a
818
+ * random runner exit.
819
+ * @param {object} args - Event details.
820
+ * @param {import("node:child_process").ChildProcess} args.child - Pooled child.
821
+ * @param {PooledChildState} args.state - Child state.
822
+ * @param {number} args.silentMs - Observed silence in ms.
823
+ * @param {number} args.boundMs - Configured bound in ms.
824
+ * @returns {void}
825
+ */
826
+ _logPooledSilenceEvent({ child, state, silentMs, boundMs }: {
827
+ child: import("node:child_process").ChildProcess;
828
+ state: PooledChildState;
829
+ silentMs: number;
830
+ boundMs: number;
831
+ }): void;
743
832
  /**
744
833
  * Logs one compact pooled-capacity event to the worker's own stderr (the
745
834
  * surface that reaches the production log). Used by the bounded liveness
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/worker.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/worker.js"],"names":[],"mappings":"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"}