@horietakehiro/aws-cdk-utul 0.41.30 → 0.41.32

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.
Files changed (35) hide show
  1. package/lib/types/cfn-resource-types/aws-amazonmq-broker.d.ts +119 -50
  2. package/lib/types/cfn-resource-types/aws-amazonmq-broker.js +1 -1
  3. package/lib/types/cfn-resource-types/aws-bedrock-dataautomationproject.d.ts +14 -0
  4. package/lib/types/cfn-resource-types/aws-bedrock-dataautomationproject.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.d.ts +14 -4
  6. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-connect-evaluationform.d.ts +0 -3
  8. package/lib/types/cfn-resource-types/aws-connect-evaluationform.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-ec2-localgatewayvirtualinterface.d.ts +70 -0
  10. package/lib/types/cfn-resource-types/aws-ec2-localgatewayvirtualinterface.js +3 -0
  11. package/lib/types/cfn-resource-types/aws-ec2-localgatewayvirtualinterfacegroup.d.ts +54 -0
  12. package/lib/types/cfn-resource-types/aws-ec2-localgatewayvirtualinterfacegroup.js +3 -0
  13. package/lib/types/cfn-resource-types/aws-ec2-transitgateway.d.ts +6 -6
  14. package/lib/types/cfn-resource-types/aws-ec2-transitgateway.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.d.ts +84 -0
  16. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-entityresolution-idmappingworkflow.d.ts +1 -0
  18. package/lib/types/cfn-resource-types/aws-entityresolution-idmappingworkflow.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.d.ts +2 -2
  20. package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.js +1 -1
  21. package/lib/types/cfn-resource-types/aws-gamelift-fleet.d.ts +2 -2
  22. package/lib/types/cfn-resource-types/aws-gamelift-fleet.js +1 -1
  23. package/lib/types/cfn-resource-types/aws-lambda-version.d.ts +14 -14
  24. package/lib/types/cfn-resource-types/aws-lambda-version.js +1 -1
  25. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.d.ts +2 -0
  26. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +9 -0
  28. package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +8 -0
  30. package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-servicecatalog-portfolioprincipalassociation.d.ts +2 -2
  32. package/lib/types/cfn-resource-types/aws-servicecatalog-portfolioprincipalassociation.js +1 -1
  33. package/lib/types/cfn-resource-types.d.ts +4 -0
  34. package/lib/types/cfn-resource-types.js +27 -23
  35. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWdhbWVsaWZ0LWZsZWV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWdhbWVsaWZ0LWZsZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBMb2NhdGlvbiA9IHN0cmluZ1xuXG4vKipcbiAqIFRoZSBBV1M6OkdhbWVMaWZ0OjpGbGVldCByZXNvdXJjZSBjcmVhdGVzIGFuIEFtYXpvbiBHYW1lTGlmdCAoR2FtZUxpZnQpIGZsZWV0IHRvIGhvc3QgZ2FtZSBzZXJ2ZXJzLiBBIGZsZWV0IGlzIGEgc2V0IG9mIEVDMiBvciBBbnl3aGVyZSBpbnN0YW5jZXMsIGVhY2ggb2Ygd2hpY2ggY2FuIGhvc3QgbXVsdGlwbGUgZ2FtZSBzZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0dBTUVMSUZUX0ZMRUVUIHtcbi8qKlxuICogQSBsaXN0IG9mIHJ1bGVzIHRoYXQgY29udHJvbCBob3cgYSBmbGVldCBpcyBzY2FsZWQuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5TY2FsaW5nUG9saWNpZXM/OiBTY2FsaW5nUG9saWN5W11cbkFueXdoZXJlQ29uZmlndXJhdGlvbj86IEFueXdoZXJlQ29uZmlndXJhdGlvblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZW4gYW5kIGhvdyB0byBhcHBseSBmbGVldCBvciBsb2NhdGlvbiBjYXBhY2l0aWVzLiBBbGxvd2VkIG9wdGlvbnMgYXJlIE9OX1VQREFURSAoZGVmYXVsdCksIE9OX0NSRUFURV9BTkRfVVBEQVRFIGFuZCBPTl9DUkVBVEVfQU5EX1VQREFURV9XSVRIX0FVVE9TQ0FMSU5HLiBJZiB5b3UgY2hvb3NlIE9OX0NSRUFURV9BTkRfVVBEQVRFX1dJVEhfQVVUT1NDQUxJTkcsIE1pblNpemUgYW5kIE1heFNpemUgd2lsbCBzdGlsbCBiZSBhcHBsaWVkIG9uIGNyZWF0aW9uIGFuZCBvbiB1cGRhdGVzLCBidXQgRGVzaXJlZEVDMkluc3RhbmNlcyB3aWxsIG9ubHkgYmUgYXBwbGllZCBvbmNlIG9uIGZsZWV0IGNyZWF0aW9uIGFuZCB3aWxsIGJlIGlnbm9yZWQgZHVyaW5nIHVwZGF0ZXMgdG8gcHJldmVudCBjb25mbGljdHMgd2l0aCBhdXRvLXNjYWxpbmcuIER1cmluZyB1cGRhdGVzIHdpdGggT05fQ1JFQVRFX0FORF9VUERBVEVfV0lUSF9BVVRPU0NBTElORyBjaG9zZW4sIGlmIGN1cnJlbnQgZGVzaXJlZCBpbnN0YW5jZSBpcyBsb3dlciB0aGFuIHRoZSBuZXcgTWluU2l6ZSwgaXQgd2lsbCBiZSBpbmNyZWFzZWQgdG8gdGhlIG5ldyBNaW5TaXplOyBpZiBjdXJyZW50IGRlc2lyZWQgaW5zdGFuY2UgaXMgbGFyZ2VyIHRoYW4gdGhlIG5ldyBNYXhTaXplLCBpdCB3aWxsIGJlIGRlY3JlYXNlZCB0byB0aGUgbmV3IE1heFNpemUuXG4gKi9cbkFwcGx5Q2FwYWNpdHk/OiAoXCJPTl9VUERBVEVcIiB8IFwiT05fQ1JFQVRFX0FORF9VUERBVEVcIiB8IFwiT05fQ1JFQVRFX0FORF9VUERBVEVfV0lUSF9BVVRPU0NBTElOR1wiKVxuQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uPzogQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uXG4vKipcbiAqIENvbXB1dGVUeXBlIHRvIGRpZmZlcmVudGlhdGUgRUMyIGhhcmR3YXJlIG1hbmFnZWQgYnkgR2FtZUxpZnQgYW5kIEFueXdoZXJlIGhhcmR3YXJlIG1hbmFnZWQgYnkgdGhlIGN1c3RvbWVyLlxuICovXG5Db21wdXRlVHlwZT86IChcIkVDMlwiIHwgXCJBTllXSEVSRVwiKVxuLyoqXG4gKiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIGEgZmxlZXQuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbnVtYmVyIG9mIEVDMiBpbnN0YW5jZXMgdGhhdCB5b3Ugd2FudCB0aGlzIGZsZWV0IHRvIGhvc3QuIFdoZW4gY3JlYXRpbmcgYSBuZXcgZmxlZXQsIEdhbWVMaWZ0IGF1dG9tYXRpY2FsbHkgc2V0cyB0aGlzIHZhbHVlIHRvIFwiMVwiIGFuZCBpbml0aWF0ZXMgYSBzaW5nbGUgaW5zdGFuY2UuIE9uY2UgdGhlIGZsZWV0IGlzIGFjdGl2ZSwgdXBkYXRlIHRoaXMgdmFsdWUgdG8gdHJpZ2dlciBHYW1lTGlmdCB0byBhZGQgb3IgcmVtb3ZlIGluc3RhbmNlcyBmcm9tIHRoZSBmbGVldC5cbiAqL1xuRGVzaXJlZEVDMkluc3RhbmNlcz86IG51bWJlclxuLyoqXG4gKiBBIHJhbmdlIG9mIElQIGFkZHJlc3NlcyBhbmQgcG9ydCBzZXR0aW5ncyB0aGF0IGFsbG93IGluYm91bmQgdHJhZmZpYyB0byBjb25uZWN0IHRvIHNlcnZlciBwcm9jZXNzZXMgb24gYW4gQW1hem9uIEdhbWVMaWZ0IHNlcnZlci5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cbkVDMkluYm91bmRQZXJtaXNzaW9ucz86IElwUGVybWlzc2lvbltdXG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEVDMiBpbnN0YW5jZSB0eXBlIHRoYXQgaXMgc3VwcG9ydGVkIGluIEFtYXpvbiBHYW1lTGlmdC4gQSBmbGVldCBpbnN0YW5jZSB0eXBlIGRldGVybWluZXMgdGhlIGNvbXB1dGluZyByZXNvdXJjZXMgb2YgZWFjaCBpbnN0YW5jZSBpbiB0aGUgZmxlZXQsIGluY2x1ZGluZyBDUFUsIG1lbW9yeSwgc3RvcmFnZSwgYW5kIG5ldHdvcmtpbmcgY2FwYWNpdHkuIEFtYXpvbiBHYW1lTGlmdCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEVDMiBpbnN0YW5jZSB0eXBlcy4gU2VlIEFtYXpvbiBFQzIgSW5zdGFuY2UgVHlwZXMgZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9ucy5cbiAqL1xuRUMySW5zdGFuY2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHVzZSBPbi1EZW1hbmQgaW5zdGFuY2VzIG9yIFNwb3QgaW5zdGFuY2VzIGZvciB0aGlzIGZsZWV0LiBJZiBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgT05fREVNQU5ELiBCb3RoIGNhdGVnb3JpZXMgb2YgaW5zdGFuY2VzIHVzZSBpZGVudGljYWwgaGFyZHdhcmUgYW5kIGNvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRoZSBpbnN0YW5jZSB0eXBlIHNlbGVjdGVkIGZvciB0aGlzIGZsZWV0LlxuICovXG5GbGVldFR5cGU/OiAoXCJPTl9ERU1BTkRcIiB8IFwiU1BPVFwiKVxuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhbiBBV1MgSUFNIHJvbGUgdGhhdCBtYW5hZ2VzIGFjY2VzcyB0byB5b3VyIEFXUyBzZXJ2aWNlcy4gV2l0aCBhbiBpbnN0YW5jZSByb2xlIEFSTiBzZXQsIGFueSBhcHBsaWNhdGlvbiB0aGF0IHJ1bnMgb24gYW4gaW5zdGFuY2UgaW4gdGhpcyBmbGVldCBjYW4gYXNzdW1lIHRoZSByb2xlLCBpbmNsdWRpbmcgaW5zdGFsbCBzY3JpcHRzLCBzZXJ2ZXIgcHJvY2Vzc2VzLCBhbmQgZGFlbW9ucyAoYmFja2dyb3VuZCBwcm9jZXNzZXMpLiBDcmVhdGUgYSByb2xlIG9yIGxvb2sgdXAgYSByb2xlJ3MgQVJOIGZyb20gdGhlIElBTSBkYXNoYm9hcmQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUuXG4gKi9cbkluc3RhbmNlUm9sZUFSTj86IHN0cmluZ1xuLyoqXG4gKiBDcmVkZW50aWFscyBwcm92aWRlciBpbXBsZW1lbnRhdGlvbiB0aGF0IGxvYWRzIGNyZWRlbnRpYWxzIGZyb20gdGhlIEFtYXpvbiBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZS5cbiAqL1xuSW5zdGFuY2VSb2xlQ3JlZGVudGlhbHNQcm92aWRlcj86IFwiU0hBUkVEX0NSRURFTlRJQUxfRklMRVwiXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cbkxvY2F0aW9ucz86IExvY2F0aW9uQ29uZmlndXJhdGlvbltdXG4vKipcbiAqIFRoaXMgcGFyYW1ldGVyIGlzIG5vIGxvbmdlciB1c2VkLiBXaGVuIGhvc3RpbmcgYSBjdXN0b20gZ2FtZSBidWlsZCwgc3BlY2lmeSB3aGVyZSBBbWF6b24gR2FtZUxpZnQgc2hvdWxkIHN0b3JlIGxvZyBmaWxlcyB1c2luZyB0aGUgQW1hem9uIEdhbWVMaWZ0IHNlcnZlciBBUEkgY2FsbCBQcm9jZXNzUmVhZHkoKVxuICovXG5Mb2dQYXRocz86IHN0cmluZ1tdXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbWF4aW11bSB2YWx1ZSB0aGF0IGlzIGFsbG93ZWQgZm9yIHRoZSBmbGVldCdzIGluc3RhbmNlIGNvdW50LiBXaGVuIGNyZWF0aW5nIGEgbmV3IGZsZWV0LCBHYW1lTGlmdCBhdXRvbWF0aWNhbGx5IHNldHMgdGhpcyB2YWx1ZSB0byBcIjFcIi4gT25jZSB0aGUgZmxlZXQgaXMgYWN0aXZlLCB5b3UgY2FuIGNoYW5nZSB0aGlzIHZhbHVlLlxuICovXG5NYXhTaXplPzogbnVtYmVyXG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEFtYXpvbiBDbG91ZFdhdGNoIG1ldHJpYyBncm91cC4gQSBtZXRyaWMgZ3JvdXAgYWdncmVnYXRlcyB0aGUgbWV0cmljcyBmb3IgYWxsIGZsZWV0cyBpbiB0aGUgZ3JvdXAuIFNwZWNpZnkgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWV0cmljIGdyb3VwIG5hbWUuIFlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIG5hbWUgb3IgdXNlIGEgbmV3IG5hbWUgdG8gY3JlYXRlIGEgbmV3IG1ldHJpYyBncm91cC4gQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBjYW4gaGF2ZSBvbmx5IG9uZSBzdHJpbmcuXG4gKiBcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbk1ldHJpY0dyb3Vwcz86IHN0cmluZ1tdXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbWluaW11bSB2YWx1ZSBhbGxvd2VkIGZvciB0aGUgZmxlZXQncyBpbnN0YW5jZSBjb3VudC4gV2hlbiBjcmVhdGluZyBhIG5ldyBmbGVldCwgR2FtZUxpZnQgYXV0b21hdGljYWxseSBzZXRzIHRoaXMgdmFsdWUgdG8gXCIwXCIuIEFmdGVyIHRoZSBmbGVldCBpcyBhY3RpdmUsIHlvdSBjYW4gY2hhbmdlIHRoaXMgdmFsdWUuXG4gKi9cbk1pblNpemU/OiBudW1iZXJcbi8qKlxuICogQSBkZXNjcmlwdGl2ZSBsYWJlbCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIGZsZWV0LiBGbGVldCBuYW1lcyBkbyBub3QgbmVlZCB0byBiZSB1bmlxdWUuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBBIGdhbWUgc2Vzc2lvbiBwcm90ZWN0aW9uIHBvbGljeSB0byBhcHBseSB0byBhbGwgZ2FtZSBzZXNzaW9ucyBob3N0ZWQgb24gaW5zdGFuY2VzIGluIHRoaXMgZmxlZXQuIFdoZW4gcHJvdGVjdGVkLCBhY3RpdmUgZ2FtZSBzZXNzaW9ucyBjYW5ub3QgYmUgdGVybWluYXRlZCBkdXJpbmcgYSBzY2FsZS1kb3duIGV2ZW50LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc2V0LCBpbnN0YW5jZXMgaW4gdGhpcyBmbGVldCBkZWZhdWx0IHRvIG5vIHByb3RlY3Rpb24uIFlvdSBjYW4gY2hhbmdlIGEgZmxlZXQncyBwcm90ZWN0aW9uIHBvbGljeSB0byBhZmZlY3QgZnV0dXJlIGdhbWUgc2Vzc2lvbnMgb24gdGhlIGZsZWV0LiBZb3UgY2FuIGFsc28gc2V0IHByb3RlY3Rpb24gZm9yIGluZGl2aWR1YWwgZ2FtZSBzZXNzaW9ucy5cbiAqL1xuTmV3R2FtZVNlc3Npb25Qcm90ZWN0aW9uUG9saWN5PzogKFwiRnVsbFByb3RlY3Rpb25cIiB8IFwiTm9Qcm90ZWN0aW9uXCIpXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBBV1MgYWNjb3VudCB3aXRoIHRoZSBWUEMgdGhhdCB5b3Ugd2FudCB0byBwZWVyIHlvdXIgQW1hem9uIEdhbWVMaWZ0IGZsZWV0IHdpdGguIFlvdSBjYW4gZmluZCB5b3VyIGFjY291bnQgSUQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUgdW5kZXIgYWNjb3VudCBzZXR0aW5ncy5cbiAqL1xuUGVlclZwY0F3c0FjY291bnRJZD86IHN0cmluZ1xuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFZQQyB3aXRoIHJlc291cmNlcyB0byBiZSBhY2Nlc3NlZCBieSB5b3VyIEFtYXpvbiBHYW1lTGlmdCBmbGVldC4gVGhlIFZQQyBtdXN0IGJlIGluIHRoZSBzYW1lIFJlZ2lvbiBhcyB5b3VyIGZsZWV0LiBUbyBsb29rIHVwIGEgVlBDIElELCB1c2UgdGhlIFZQQyBEYXNoYm9hcmQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUuXG4gKi9cblBlZXJWcGNJZD86IHN0cmluZ1xuUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5PzogUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5XG4vKipcbiAqIFVuaXF1ZSBmbGVldCBJRFxuICovXG5GbGVldElkPzogc3RyaW5nXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgYnVpbGQgdG8gYmUgZGVwbG95ZWQgb24gdGhlIG5ldyBmbGVldC4gSWYgeW91IGFyZSBkZXBsb3lpbmcgdGhlIGZsZWV0IHdpdGggYSBjdXN0b20gZ2FtZSBidWlsZCwgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgYnVpbGQgbXVzdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIHRvIEFtYXpvbiBHYW1lTGlmdCBhbmQgYmUgaW4gYSBSRUFEWSBzdGF0dXMuIFRoaXMgZmxlZXQgc2V0dGluZyBjYW5ub3QgYmUgY2hhbmdlZCBvbmNlIHRoZSBmbGVldCBpcyBjcmVhdGVkLlxuICovXG5CdWlsZElkPzogc3RyaW5nXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgUmVhbHRpbWUgc2NyaXB0IHRvIGJlIGRlcGxveWVkIG9uIGEgbmV3IFJlYWx0aW1lIFNlcnZlcnMgZmxlZXQuIFRoZSBzY3JpcHQgbXVzdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIHRvIEFtYXpvbiBHYW1lTGlmdC4gVGhpcyBmbGVldCBzZXR0aW5nIGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgdGhlIGZsZWV0IGlzIGNyZWF0ZWQuXG4gKiBcbiAqIE5vdGU6IEl0IGlzIG5vdCBjdXJyZW50bHkgcG9zc2libGUgdG8gdXNlIHRoZSAhUmVmIGNvbW1hbmQgdG8gcmVmZXJlbmNlIGEgc2NyaXB0IGNyZWF0ZWQgd2l0aCBhIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGUgZmxlZXQgcHJvcGVydHkgU2NyaXB0SWQuIEluc3RlYWQsIHVzZSBGbjo6R2V0QXR0IFNjcmlwdC5Bcm4gb3IgRm46OkdldEF0dCBTY3JpcHQuSWQgdG8gcmV0cmlldmUgZWl0aGVyIG9mIHRoZXNlIHByb3BlcnRpZXMgYXMgaW5wdXQgZm9yIFNjcmlwdElkLiBBbHRlcm5hdGl2ZWx5LCBlbnRlciBhIFNjcmlwdElkIHN0cmluZyBtYW51YWxseS5cbiAqL1xuU2NyaXB0SWQ/OiBzdHJpbmdcblJ1bnRpbWVDb25maWd1cmF0aW9uPzogUnVudGltZUNvbmZpZ3VyYXRpb25cbi8qKlxuICogVGhpcyBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHVzZWQgYnV0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBJbnN0ZWFkLCBzcGVjaWZ5IHNlcnZlciBsYXVuY2ggcGFyYW1ldGVycyBpbiB0aGUgUnVudGltZUNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLiBBIHJlcXVlc3QgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvciB2YWx1ZXMgZm9yIGJvdGggU2VydmVyTGF1bmNoUGFyYW1ldGVycyBhbmQgU2VydmVyTGF1bmNoUGF0aC5cbiAqL1xuU2VydmVyTGF1bmNoUGFyYW1ldGVycz86IHN0cmluZ1xuLyoqXG4gKiBUaGlzIHBhcmFtZXRlciBpcyBubyBsb25nZXIgdXNlZC4gSW5zdGVhZCwgc3BlY2lmeSBhIHNlcnZlciBsYXVuY2ggcGF0aCB1c2luZyB0aGUgUnVudGltZUNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLiBSZXF1ZXN0cyB0aGF0IHNwZWNpZnkgYSBzZXJ2ZXIgbGF1bmNoIHBhdGggYW5kIGxhdW5jaCBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgYSBydW50aW1lIGNvbmZpZ3VyYXRpb24gd2lsbCBjb250aW51ZSB0byB3b3JrLlxuICovXG5TZXJ2ZXJMYXVuY2hQYXRoPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgdGhhdCBpcyBhc3NpZ25lZCB0byBhIEFtYXpvbiBHYW1lTGlmdCBTZXJ2ZXJzIEZsZWV0IHJlc291cmNlIGFuZCB1bmlxdWVseSBpZGVudGlmaWVzIGl0LiBBUk5zIGFyZSB1bmlxdWUgYWNyb3NzIGFsbCBSZWdpb25zLiBJbiBhIEdhbWVMaWZ0IEZsZWV0IEFSTiwgdGhlIHJlc291cmNlIElEIG1hdGNoZXMgdGhlIEZsZWV0SWQgdmFsdWUuXG4gKi9cbkZsZWV0QXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFJ1bGUgdGhhdCBjb250cm9scyBob3cgYSBmbGVldCBpcyBzY2FsZWQuIFNjYWxpbmcgcG9saWNpZXMgYXJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgdGhlIGNvbWJpbmF0aW9uIG9mIG5hbWUgYW5kIGZsZWV0IElELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdQb2xpY3kge1xuLyoqXG4gKiBDb21wYXJpc29uIG9wZXJhdG9yIHRvIHVzZSB3aGVuIG1lYXN1cmluZyBhIG1ldHJpYyBhZ2FpbnN0IHRoZSB0aHJlc2hvbGQgdmFsdWUuXG4gKi9cbkNvbXBhcmlzb25PcGVyYXRvcj86IChcIkdyZWF0ZXJUaGFuT3JFcXVhbFRvVGhyZXNob2xkXCIgfCBcIkdyZWF0ZXJUaGFuVGhyZXNob2xkXCIgfCBcIkxlc3NUaGFuVGhyZXNob2xkXCIgfCBcIkxlc3NUaGFuT3JFcXVhbFRvVGhyZXNob2xkXCIpXG4vKipcbiAqIExlbmd0aCBvZiB0aW1lIChpbiBtaW51dGVzKSB0aGUgbWV0cmljIG11c3QgYmUgYXQgb3IgYmV5b25kIHRoZSB0aHJlc2hvbGQgYmVmb3JlIGEgc2NhbGluZyBldmVudCBpcyB0cmlnZ2VyZWQuXG4gKi9cbkV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG5Mb2NhdGlvbj86IExvY2F0aW9uXG4vKipcbiAqIE5hbWUgb2YgdGhlIEFtYXpvbiBHYW1lTGlmdC1kZWZpbmVkIG1ldHJpYyB0aGF0IGlzIHVzZWQgdG8gdHJpZ2dlciBhIHNjYWxpbmcgYWRqdXN0bWVudC5cbiAqL1xuTWV0cmljTmFtZTogKFwiQWN0aXZhdGluZ0dhbWVTZXNzaW9uc1wiIHwgXCJBY3RpdmVHYW1lU2Vzc2lvbnNcIiB8IFwiQWN0aXZlSW5zdGFuY2VzXCIgfCBcIkF2YWlsYWJsZUdhbWVTZXNzaW9uc1wiIHwgXCJBdmFpbGFibGVQbGF5ZXJTZXNzaW9uc1wiIHwgXCJDdXJyZW50UGxheWVyU2Vzc2lvbnNcIiB8IFwiSWRsZUluc3RhbmNlc1wiIHwgXCJQZXJjZW50QXZhaWxhYmxlR2FtZVNlc3Npb25zXCIgfCBcIlBlcmNlbnRJZGxlSW5zdGFuY2VzXCIgfCBcIlF1ZXVlRGVwdGhcIiB8IFwiV2FpdFRpbWVcIiB8IFwiQ29uY3VycmVudEFjdGl2YXRhYmxlR2FtZVNlc3Npb25zXCIpXG4vKipcbiAqIEEgZGVzY3JpcHRpdmUgbGFiZWwgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBmbGVldCdzIHNjYWxpbmcgcG9saWN5LiBQb2xpY3kgbmFtZXMgZG8gbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICovXG5OYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2NhbGluZyBwb2xpY3kgdG8gY3JlYXRlLiBGb3IgYSB0YXJnZXQtYmFzZWQgcG9saWN5LCBzZXQgdGhlIHBhcmFtZXRlciBNZXRyaWNOYW1lIHRvICdQZXJjZW50QXZhaWxhYmxlR2FtZVNlc3Npb25zJyBhbmQgc3BlY2lmeSBhIFRhcmdldENvbmZpZ3VyYXRpb24uIEZvciBhIHJ1bGUtYmFzZWQgcG9saWN5IHNldCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6IE1ldHJpY05hbWUsIENvbXBhcmlzb25PcGVyYXRvciwgVGhyZXNob2xkLCBFdmFsdWF0aW9uUGVyaW9kcywgU2NhbGluZ0FkanVzdG1lbnRUeXBlLCBhbmQgU2NhbGluZ0FkanVzdG1lbnQuXG4gKi9cblBvbGljeVR5cGU/OiAoXCJSdWxlQmFzZWRcIiB8IFwiVGFyZ2V0QmFzZWRcIilcbi8qKlxuICogQW1vdW50IG9mIGFkanVzdG1lbnQgdG8gbWFrZSwgYmFzZWQgb24gdGhlIHNjYWxpbmcgYWRqdXN0bWVudCB0eXBlLlxuICovXG5TY2FsaW5nQWRqdXN0bWVudD86IG51bWJlclxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhZGp1c3RtZW50IHRvIG1ha2UgdG8gYSBmbGVldCdzIGluc3RhbmNlIGNvdW50LlxuICovXG5TY2FsaW5nQWRqdXN0bWVudFR5cGU/OiAoXCJDaGFuZ2VJbkNhcGFjaXR5XCIgfCBcIkV4YWN0Q2FwYWNpdHlcIiB8IFwiUGVyY2VudENoYW5nZUluQ2FwYWNpdHlcIilcbi8qKlxuICogQ3VycmVudCBzdGF0dXMgb2YgdGhlIHNjYWxpbmcgcG9saWN5LiBUaGUgc2NhbGluZyBwb2xpY3kgY2FuIGJlIGluIGZvcmNlIG9ubHkgd2hlbiBpbiBhbiBBQ1RJVkUgc3RhdHVzLiBTY2FsaW5nIHBvbGljaWVzIGNhbiBiZSBzdXNwZW5kZWQgZm9yIGluZGl2aWR1YWwgZmxlZXRzLiBJZiB0aGUgcG9saWN5IGlzIHN1c3BlbmRlZCBmb3IgYSBmbGVldCwgdGhlIHBvbGljeSBzdGF0dXMgZG9lcyBub3QgY2hhbmdlLlxuICovXG5TdGF0dXM/OiAoXCJBQ1RJVkVcIiB8IFwiVVBEQVRFX1JFUVVFU1RFRFwiIHwgXCJVUERBVElOR1wiIHwgXCJERUxFVEVfUkVRVUVTVEVEXCIgfCBcIkRFTEVUSU5HXCIgfCBcIkRFTEVURURcIiB8IFwiRVJST1JcIilcblRhcmdldENvbmZpZ3VyYXRpb24/OiBUYXJnZXRDb25maWd1cmF0aW9uXG4vKipcbiAqIE1ldHJpYyB2YWx1ZSB1c2VkIHRvIHRyaWdnZXIgYSBzY2FsaW5nIGV2ZW50LlxuICovXG5UaHJlc2hvbGQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBmbGVldCdzIHNjYWxpbmcgcG9saWNpZXMgaW4gYSByZXF1ZXN0ZWQgZmxlZXQgbG9jYXRpb24uIFRoZSBzdGF0dXMgUEVORElOR19VUERBVEUgaW5kaWNhdGVzIHRoYXQgYW4gdXBkYXRlIHdhcyByZXF1ZXN0ZWQgZm9yIHRoZSBmbGVldCBidXQgaGFzIG5vdCB5ZXQgYmVlbiBjb21wbGV0ZWQgZm9yIHRoZSBsb2NhdGlvbi5cbiAqL1xuVXBkYXRlU3RhdHVzPzogXCJQRU5ESU5HX1VQREFURVwiXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHNldHRpbmdzIGZvciBhIHRhcmdldC1iYXNlZCBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRDb25maWd1cmF0aW9uIHtcbi8qKlxuICogRGVzaXJlZCB2YWx1ZSB0byB1c2Ugd2l0aCBhIHRhcmdldC1iYXNlZCBzY2FsaW5nIHBvbGljeS4gVGhlIHZhbHVlIG11c3QgYmUgcmVsZXZhbnQgZm9yIHdoYXRldmVyIG1ldHJpYyB0aGUgc2NhbGluZyBwb2xpY3kgaXMgdXNpbmcuIEZvciBleGFtcGxlLCBpbiBhIHBvbGljeSB1c2luZyB0aGUgbWV0cmljIFBlcmNlbnRBdmFpbGFibGVHYW1lU2Vzc2lvbnMsIHRoZSB0YXJnZXQgdmFsdWUgc2hvdWxkIGJlIHRoZSBwcmVmZXJyZWQgc2l6ZSBvZiB0aGUgZmxlZXQncyBidWZmZXIgKHRoZSBwZXJjZW50IG9mIGNhcGFjaXR5IHRoYXQgc2hvdWxkIGJlIGlkbGUgYW5kIHJlYWR5IGZvciBuZXcgZ2FtZSBzZXNzaW9ucykuXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgQW55d2hlcmUgZmxlZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55d2hlcmVDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQ29zdCBvZiBjb21wdXRlIGNhbiBiZSBzcGVjaWZpZWQgb24gQW55d2hlcmUgRmxlZXRzIHRvIHByaW9yaXRpemUgcGxhY2VtZW50IGFjcm9zcyBRdWV1ZSBkZXN0aW5hdGlvbnMgYmFzZWQgb24gQ29zdC5cbiAqL1xuQ29zdDogc3RyaW5nXG59XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGdlbmVyYXRlIGEgVExTL1NTTCBjZXJ0aWZpY2F0ZSBmb3IgdGhlIG5ldyBmbGVldC4gVExTIGNlcnRpZmljYXRlcyBhcmUgdXNlZCBmb3IgZW5jcnlwdGluZyB0cmFmZmljIGJldHdlZW4gZ2FtZSBjbGllbnRzIGFuZCBnYW1lIHNlcnZlcnMgcnVubmluZyBvbiBHYW1lTGlmdC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNldCwgY2VydGlmaWNhdGUgZ2VuZXJhdGlvbiBpcyBkaXNhYmxlZC4gVGhpcyBmbGVldCBzZXR0aW5nIGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgdGhlIGZsZWV0IGlzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uIHtcbkNlcnRpZmljYXRlVHlwZTogKFwiRElTQUJMRURcIiB8IFwiR0VORVJBVEVEXCIpXG59XG4vKipcbiAqIEEgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIGFuZCBwb3J0IHNldHRpbmdzIHRoYXQgYWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIGNvbm5lY3QgdG8gc2VydmVyIHByb2Nlc3NlcyBvbiBhbiBBbWF6b24gR2FtZUxpZnQgaG9zdGluZyByZXNvdXJjZS4gTmV3IGdhbWUgc2Vzc2lvbnMgdGhhdCBhcmUgc3RhcnRlZCBvbiB0aGUgZmxlZXQgYXJlIGFzc2lnbmVkIGFuIElQIGFkZHJlc3MvcG9ydCBudW1iZXIgY29tYmluYXRpb24sIHdoaWNoIG11c3QgZmFsbCBpbnRvIHRoZSBmbGVldCdzIGFsbG93ZWQgcmFuZ2VzLiBGb3IgZmxlZXRzIGNyZWF0ZWQgd2l0aCBhIGN1c3RvbSBnYW1lIHNlcnZlciwgdGhlIHJhbmdlcyByZWZsZWN0IHRoZSBzZXJ2ZXIncyBnYW1lIHNlc3Npb24gYXNzaWdubWVudHMuIEZvciBSZWFsdGltZSBTZXJ2ZXJzIGZsZWV0cywgQW1hem9uIEdhbWVMaWZ0IGF1dG9tYXRpY2FsbHkgb3BlbnMgdHdvIHBvcnQgcmFuZ2VzLCBvbmUgZm9yIFRDUCBtZXNzYWdpbmcgYW5kIG9uZSBmb3IgVURQLCBmb3IgdXNlIGJ5IHRoZSBSZWFsdGltZSBzZXJ2ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwUGVybWlzc2lvbiB7XG4vKipcbiAqIEEgc3RhcnRpbmcgdmFsdWUgZm9yIGEgcmFuZ2Ugb2YgYWxsb3dlZCBwb3J0IG51bWJlcnMuXG4gKi9cbkZyb21Qb3J0OiBudW1iZXJcbi8qKlxuICogQSByYW5nZSBvZiBhbGxvd2VkIElQIGFkZHJlc3Nlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGV4cHJlc3NlZCBpbiBDSURSIG5vdGF0aW9uLiBFeGFtcGxlOiBcIjAwMC4wMDAuMDAwLjAwMC9bc3VibmV0IG1hc2tdXCIgb3Igb3B0aW9uYWxseSB0aGUgc2hvcnRlbmVkIHZlcnNpb24gXCIwLjAuMC4wL1tzdWJuZXQgbWFza11cIi5cbiAqL1xuSXBSYW5nZTogc3RyaW5nXG4vKipcbiAqIFRoZSBuZXR3b3JrIGNvbW11bmljYXRpb24gcHJvdG9jb2wgdXNlZCBieSB0aGUgZmxlZXQuXG4gKi9cblByb3RvY29sOiAoXCJUQ1BcIiB8IFwiVURQXCIpXG4vKipcbiAqIEFuIGVuZGluZyB2YWx1ZSBmb3IgYSByYW5nZSBvZiBhbGxvd2VkIHBvcnQgbnVtYmVycy4gUG9ydCBudW1iZXJzIGFyZSBlbmQtaW5jbHVzaXZlLiBUaGlzIHZhbHVlIG11c3QgYmUgaGlnaGVyIHRoYW4gRnJvbVBvcnQuXG4gKi9cblRvUG9ydDogbnVtYmVyXG59XG4vKipcbiAqIEEgcmVtb3RlIGxvY2F0aW9uIHdoZXJlIGEgbXVsdGktbG9jYXRpb24gZmxlZXQgY2FuIGRlcGxveSBFQzIgaW5zdGFuY2VzIGZvciBnYW1lIGhvc3RpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25Db25maWd1cmF0aW9uIHtcbkxvY2F0aW9uOiBMb2NhdGlvblxuTG9jYXRpb25DYXBhY2l0eT86IExvY2F0aW9uQ2FwYWNpdHlcbn1cbi8qKlxuICogQ3VycmVudCByZXNvdXJjZSBjYXBhY2l0eSBzZXR0aW5ncyBpbiBhIHNwZWNpZmllZCBmbGVldCBvciBsb2NhdGlvbi4gVGhlIGxvY2F0aW9uIHZhbHVlIG1pZ2h0IHJlZmVyIHRvIGEgZmxlZXQncyByZW1vdGUgbG9jYXRpb24gb3IgaXRzIGhvbWUgUmVnaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQ2FwYWNpdHkge1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIEVDMiBpbnN0YW5jZXMgeW91IHdhbnQgdG8gbWFpbnRhaW4gaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGZhbGwgYmV0d2VlbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBzaXplIGxpbWl0cy5cbiAqL1xuRGVzaXJlZEVDMkluc3RhbmNlczogbnVtYmVyXG4vKipcbiAqIFRoZSBtaW5pbXVtIHZhbHVlIGFsbG93ZWQgZm9yIHRoZSBmbGVldCdzIGluc3RhbmNlIGNvdW50IGZvciBhIGxvY2F0aW9uLiBXaGVuIGNyZWF0aW5nIGEgbmV3IGZsZWV0LCBHYW1lTGlmdCBhdXRvbWF0aWNhbGx5IHNldHMgdGhpcyB2YWx1ZSB0byBcIjBcIi4gQWZ0ZXIgdGhlIGZsZWV0IGlzIGFjdGl2ZSwgeW91IGNhbiBjaGFuZ2UgdGhpcyB2YWx1ZS5cbiAqL1xuTWluU2l6ZTogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIHZhbHVlIHRoYXQgaXMgYWxsb3dlZCBmb3IgdGhlIGZsZWV0J3MgaW5zdGFuY2UgY291bnQgZm9yIGEgbG9jYXRpb24uIFdoZW4gY3JlYXRpbmcgYSBuZXcgZmxlZXQsIEdhbWVMaWZ0IGF1dG9tYXRpY2FsbHkgc2V0cyB0aGlzIHZhbHVlIHRvIFwiMVwiLiBPbmNlIHRoZSBmbGVldCBpcyBhY3RpdmUsIHlvdSBjYW4gY2hhbmdlIHRoaXMgdmFsdWUuXG4gKi9cbk1heFNpemU6IG51bWJlclxufVxuLyoqXG4gKiBBIHBvbGljeSB0aGF0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIGdhbWUgc2Vzc2lvbnMgYW4gaW5kaXZpZHVhbCBwbGF5ZXIgY2FuIGNyZWF0ZSBvdmVyIGEgc3BhbiBvZiB0aW1lIGZvciB0aGlzIGZsZWV0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQ3JlYXRpb25MaW1pdFBvbGljeSB7XG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBnYW1lIHNlc3Npb25zIHRoYXQgYW4gaW5kaXZpZHVhbCBjYW4gY3JlYXRlIGR1cmluZyB0aGUgcG9saWN5IHBlcmlvZC5cbiAqL1xuTmV3R2FtZVNlc3Npb25zUGVyQ3JlYXRvcj86IG51bWJlclxuLyoqXG4gKiBUaGUgdGltZSBzcGFuIHVzZWQgaW4gZXZhbHVhdGluZyB0aGUgcmVzb3VyY2UgY3JlYXRpb24gbGltaXQgcG9saWN5LlxuICovXG5Qb2xpY3lQZXJpb2RJbk1pbnV0ZXM/OiBudW1iZXJcbn1cbi8qKlxuICogSW5zdHJ1Y3Rpb25zIGZvciBsYXVuY2hpbmcgc2VydmVyIHByb2Nlc3NlcyBvbiBlYWNoIGluc3RhbmNlIGluIHRoZSBmbGVldC4gU2VydmVyIHByb2Nlc3NlcyBydW4gZWl0aGVyIGEgY3VzdG9tIGdhbWUgYnVpbGQgZXhlY3V0YWJsZSBvciBhIFJlYWx0aW1lIHNjcmlwdC4gVGhlIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBkZWZpbmVzIHRoZSBzZXJ2ZXIgZXhlY3V0YWJsZXMgb3IgbGF1bmNoIHNjcmlwdCBmaWxlLCBsYXVuY2ggcGFyYW1ldGVycywgYW5kIHRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIHRvIHJ1biBjb25jdXJyZW50bHkgb24gZWFjaCBpbnN0YW5jZS4gV2hlbiBjcmVhdGluZyBhIGZsZWV0LCB0aGUgcnVudGltZSBjb25maWd1cmF0aW9uIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc2VydmVyIHByb2Nlc3MgY29uZmlndXJhdGlvbjsgb3RoZXJ3aXNlIHRoZSByZXF1ZXN0IGZhaWxzIHdpdGggYW4gaW52YWxpZCByZXF1ZXN0IGV4Y2VwdGlvbi5cbiAqIFxuICogVGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdW5sZXNzIHRoZSBwYXJhbWV0ZXJzIFNlcnZlckxhdW5jaFBhdGggYW5kIFNlcnZlckxhdW5jaFBhcmFtZXRlcnMgYXJlIGRlZmluZWQuIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBoYXMgcmVwbGFjZWQgdGhlc2UgcGFyYW1ldGVycywgYnV0IGZsZWV0cyB0aGF0IHVzZSB0aGVtIHdpbGwgY29udGludWUgdG8gd29yay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSB0aGF0IGEgZ2FtZSBzZXNzaW9uIGNhbiByZW1haW4gaW4gc3RhdHVzIEFDVElWQVRJTkcuIElmIHRoZSBnYW1lIHNlc3Npb24gaXMgbm90IGFjdGl2ZSBiZWZvcmUgdGhlIHRpbWVvdXQsIGFjdGl2YXRpb24gaXMgdGVybWluYXRlZCBhbmQgdGhlIGdhbWUgc2Vzc2lvbiBzdGF0dXMgaXMgY2hhbmdlZCB0byBURVJNSU5BVEVELlxuICovXG5HYW1lU2Vzc2lvbkFjdGl2YXRpb25UaW1lb3V0U2Vjb25kcz86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyB3aXRoIHN0YXR1cyBBQ1RJVkFUSU5HIHRvIGFsbG93IG9uIGFuIGluc3RhbmNlIHNpbXVsdGFuZW91c2x5LiBUaGlzIHNldHRpbmcgbGltaXRzIHRoZSBhbW91bnQgb2YgaW5zdGFuY2UgcmVzb3VyY2VzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG5ldyBnYW1lIGFjdGl2YXRpb25zIGF0IGFueSBvbmUgdGltZS5cbiAqL1xuTWF4Q29uY3VycmVudEdhbWVTZXNzaW9uQWN0aXZhdGlvbnM/OiBudW1iZXJcbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHNlcnZlciBwcm9jZXNzIGNvbmZpZ3VyYXRpb25zIHRoYXQgZGVzY3JpYmUgd2hpY2ggc2VydmVyIHByb2Nlc3NlcyB0byBydW4gb24gZWFjaCBpbnN0YW5jZSBpbiBhIGZsZWV0LlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuU2VydmVyUHJvY2Vzc2VzPzogU2VydmVyUHJvY2Vzc1tdXG59XG4vKipcbiAqIEEgc2V0IG9mIGluc3RydWN0aW9ucyBmb3IgbGF1bmNoaW5nIHNlcnZlciBwcm9jZXNzZXMgb24gZWFjaCBpbnN0YW5jZSBpbiBhIGZsZWV0LiBFYWNoIGluc3RydWN0aW9uIHNldCBpZGVudGlmaWVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2VydmVyIGV4ZWN1dGFibGUsIG9wdGlvbmFsIGxhdW5jaCBwYXJhbWV0ZXJzLCBhbmQgdGhlIG51bWJlciBvZiBzZXJ2ZXIgcHJvY2Vzc2VzIHdpdGggdGhpcyBjb25maWd1cmF0aW9uIHRvIG1haW50YWluIGNvbmN1cnJlbnRseSBvbiB0aGUgaW5zdGFuY2UuIFNlcnZlciBwcm9jZXNzIGNvbmZpZ3VyYXRpb25zIG1ha2UgdXAgYSBmbGVldCdzIFJ1bnRpbWVDb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlclByb2Nlc3Mge1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlcnZlciBwcm9jZXNzZXMgdGhhdCB1c2UgdGhpcyBjb25maWd1cmF0aW9uIHRvIHJ1biBjb25jdXJyZW50bHkgb24gYW4gaW5zdGFuY2UuXG4gKi9cbkNvbmN1cnJlbnRFeGVjdXRpb25zOiBudW1iZXJcbi8qKlxuICogVGhlIGxvY2F0aW9uIG9mIHRoZSBzZXJ2ZXIgZXhlY3V0YWJsZSBpbiBhIGN1c3RvbSBnYW1lIGJ1aWxkIG9yIHRoZSBuYW1lIG9mIHRoZSBSZWFsdGltZSBzY3JpcHQgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBJbml0KCkgZnVuY3Rpb24uIEdhbWUgYnVpbGRzIGFuZCBSZWFsdGltZSBzY3JpcHRzIGFyZSBpbnN0YWxsZWQgb24gaW5zdGFuY2VzIGF0IHRoZSByb290OlxuICogXG4gKiBXaW5kb3dzIChmb3IgY3VzdG9tIGdhbWUgYnVpbGRzIG9ubHkpOiBDOlxcZ2FtZS4gRXhhbXBsZTogXCJDOlxcZ2FtZVxcTXlHYW1lXFxzZXJ2ZXIuZXhlXCJcbiAqIFxuICogTGludXg6IC9sb2NhbC9nYW1lLiBFeGFtcGxlczogXCIvbG9jYWwvZ2FtZS9NeUdhbWUvc2VydmVyLmV4ZVwiIG9yIFwiL2xvY2FsL2dhbWUvTXlSZWFsdGltZVNjcmlwdC5qc1wiXG4gKi9cbkxhdW5jaFBhdGg6IHN0cmluZ1xuLyoqXG4gKiBBbiBvcHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMgdG8gcGFzcyB0byB0aGUgc2VydmVyIGV4ZWN1dGFibGUgb3IgUmVhbHRpbWUgc2NyaXB0IG9uIGxhdW5jaC5cbiAqL1xuUGFyYW1ldGVycz86IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRvIGFzc29jaWF0ZSB3aXRoIGEgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDAgdG8gMjU2IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWdhbWVsaWZ0LWZsZWV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWdhbWVsaWZ0LWZsZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBMb2NhdGlvbiA9IHN0cmluZ1xuXG4vKipcbiAqIFRoZSBBV1M6OkdhbWVMaWZ0OjpGbGVldCByZXNvdXJjZSBjcmVhdGVzIGFuIEFtYXpvbiBHYW1lTGlmdCAoR2FtZUxpZnQpIGZsZWV0IHRvIGhvc3QgZ2FtZSBzZXJ2ZXJzLiBBIGZsZWV0IGlzIGEgc2V0IG9mIEVDMiBvciBBbnl3aGVyZSBpbnN0YW5jZXMsIGVhY2ggb2Ygd2hpY2ggY2FuIGhvc3QgbXVsdGlwbGUgZ2FtZSBzZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0dBTUVMSUZUX0ZMRUVUIHtcbi8qKlxuICogQSBsaXN0IG9mIHJ1bGVzIHRoYXQgY29udHJvbCBob3cgYSBmbGVldCBpcyBzY2FsZWQuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5TY2FsaW5nUG9saWNpZXM/OiBTY2FsaW5nUG9saWN5W11cbkFueXdoZXJlQ29uZmlndXJhdGlvbj86IEFueXdoZXJlQ29uZmlndXJhdGlvblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZW4gYW5kIGhvdyB0byBhcHBseSBmbGVldCBvciBsb2NhdGlvbiBjYXBhY2l0aWVzLiBBbGxvd2VkIG9wdGlvbnMgYXJlIE9OX1VQREFURSAoZGVmYXVsdCksIE9OX0NSRUFURV9BTkRfVVBEQVRFIGFuZCBPTl9DUkVBVEVfQU5EX1VQREFURV9XSVRIX0FVVE9TQ0FMSU5HLiBJZiB5b3UgY2hvb3NlIE9OX0NSRUFURV9BTkRfVVBEQVRFX1dJVEhfQVVUT1NDQUxJTkcsIE1pblNpemUgYW5kIE1heFNpemUgd2lsbCBzdGlsbCBiZSBhcHBsaWVkIG9uIGNyZWF0aW9uIGFuZCBvbiB1cGRhdGVzLCBidXQgRGVzaXJlZEVDMkluc3RhbmNlcyB3aWxsIG9ubHkgYmUgYXBwbGllZCBvbmNlIG9uIGZsZWV0IGNyZWF0aW9uIGFuZCB3aWxsIGJlIGlnbm9yZWQgZHVyaW5nIHVwZGF0ZXMgdG8gcHJldmVudCBjb25mbGljdHMgd2l0aCBhdXRvLXNjYWxpbmcuIER1cmluZyB1cGRhdGVzIHdpdGggT05fQ1JFQVRFX0FORF9VUERBVEVfV0lUSF9BVVRPU0NBTElORyBjaG9zZW4sIGlmIGN1cnJlbnQgZGVzaXJlZCBpbnN0YW5jZSBpcyBsb3dlciB0aGFuIHRoZSBuZXcgTWluU2l6ZSwgaXQgd2lsbCBiZSBpbmNyZWFzZWQgdG8gdGhlIG5ldyBNaW5TaXplOyBpZiBjdXJyZW50IGRlc2lyZWQgaW5zdGFuY2UgaXMgbGFyZ2VyIHRoYW4gdGhlIG5ldyBNYXhTaXplLCBpdCB3aWxsIGJlIGRlY3JlYXNlZCB0byB0aGUgbmV3IE1heFNpemUuXG4gKi9cbkFwcGx5Q2FwYWNpdHk/OiAoXCJPTl9VUERBVEVcIiB8IFwiT05fQ1JFQVRFX0FORF9VUERBVEVcIiB8IFwiT05fQ1JFQVRFX0FORF9VUERBVEVfV0lUSF9BVVRPU0NBTElOR1wiKVxuQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uPzogQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uXG4vKipcbiAqIENvbXB1dGVUeXBlIHRvIGRpZmZlcmVudGlhdGUgRUMyIGhhcmR3YXJlIG1hbmFnZWQgYnkgR2FtZUxpZnQgYW5kIEFueXdoZXJlIGhhcmR3YXJlIG1hbmFnZWQgYnkgdGhlIGN1c3RvbWVyLlxuICovXG5Db21wdXRlVHlwZT86IChcIkVDMlwiIHwgXCJBTllXSEVSRVwiKVxuLyoqXG4gKiBBIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIGEgZmxlZXQuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbnVtYmVyIG9mIEVDMiBpbnN0YW5jZXMgdGhhdCB5b3Ugd2FudCB0aGlzIGZsZWV0IHRvIGhvc3QuIFdoZW4gY3JlYXRpbmcgYSBuZXcgZmxlZXQsIEdhbWVMaWZ0IGF1dG9tYXRpY2FsbHkgc2V0cyB0aGlzIHZhbHVlIHRvIFwiMVwiIGFuZCBpbml0aWF0ZXMgYSBzaW5nbGUgaW5zdGFuY2UuIE9uY2UgdGhlIGZsZWV0IGlzIGFjdGl2ZSwgdXBkYXRlIHRoaXMgdmFsdWUgdG8gdHJpZ2dlciBHYW1lTGlmdCB0byBhZGQgb3IgcmVtb3ZlIGluc3RhbmNlcyBmcm9tIHRoZSBmbGVldC5cbiAqL1xuRGVzaXJlZEVDMkluc3RhbmNlcz86IG51bWJlclxuLyoqXG4gKiBBIHJhbmdlIG9mIElQIGFkZHJlc3NlcyBhbmQgcG9ydCBzZXR0aW5ncyB0aGF0IGFsbG93IGluYm91bmQgdHJhZmZpYyB0byBjb25uZWN0IHRvIHNlcnZlciBwcm9jZXNzZXMgb24gYW4gQW1hem9uIEdhbWVMaWZ0IHNlcnZlci5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cbkVDMkluYm91bmRQZXJtaXNzaW9ucz86IElwUGVybWlzc2lvbltdXG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEVDMiBpbnN0YW5jZSB0eXBlIHRoYXQgaXMgc3VwcG9ydGVkIGluIEFtYXpvbiBHYW1lTGlmdC4gQSBmbGVldCBpbnN0YW5jZSB0eXBlIGRldGVybWluZXMgdGhlIGNvbXB1dGluZyByZXNvdXJjZXMgb2YgZWFjaCBpbnN0YW5jZSBpbiB0aGUgZmxlZXQsIGluY2x1ZGluZyBDUFUsIG1lbW9yeSwgc3RvcmFnZSwgYW5kIG5ldHdvcmtpbmcgY2FwYWNpdHkuIEFtYXpvbiBHYW1lTGlmdCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEVDMiBpbnN0YW5jZSB0eXBlcy4gU2VlIEFtYXpvbiBFQzIgSW5zdGFuY2UgVHlwZXMgZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9ucy5cbiAqL1xuRUMySW5zdGFuY2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHVzZSBPbi1EZW1hbmQgaW5zdGFuY2VzIG9yIFNwb3QgaW5zdGFuY2VzIGZvciB0aGlzIGZsZWV0LiBJZiBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgT05fREVNQU5ELiBCb3RoIGNhdGVnb3JpZXMgb2YgaW5zdGFuY2VzIHVzZSBpZGVudGljYWwgaGFyZHdhcmUgYW5kIGNvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRoZSBpbnN0YW5jZSB0eXBlIHNlbGVjdGVkIGZvciB0aGlzIGZsZWV0LlxuICovXG5GbGVldFR5cGU/OiAoXCJPTl9ERU1BTkRcIiB8IFwiU1BPVFwiKVxuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhbiBBV1MgSUFNIHJvbGUgdGhhdCBtYW5hZ2VzIGFjY2VzcyB0byB5b3VyIEFXUyBzZXJ2aWNlcy4gV2l0aCBhbiBpbnN0YW5jZSByb2xlIEFSTiBzZXQsIGFueSBhcHBsaWNhdGlvbiB0aGF0IHJ1bnMgb24gYW4gaW5zdGFuY2UgaW4gdGhpcyBmbGVldCBjYW4gYXNzdW1lIHRoZSByb2xlLCBpbmNsdWRpbmcgaW5zdGFsbCBzY3JpcHRzLCBzZXJ2ZXIgcHJvY2Vzc2VzLCBhbmQgZGFlbW9ucyAoYmFja2dyb3VuZCBwcm9jZXNzZXMpLiBDcmVhdGUgYSByb2xlIG9yIGxvb2sgdXAgYSByb2xlJ3MgQVJOIGZyb20gdGhlIElBTSBkYXNoYm9hcmQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUuXG4gKi9cbkluc3RhbmNlUm9sZUFSTj86IHN0cmluZ1xuLyoqXG4gKiBDcmVkZW50aWFscyBwcm92aWRlciBpbXBsZW1lbnRhdGlvbiB0aGF0IGxvYWRzIGNyZWRlbnRpYWxzIGZyb20gdGhlIEFtYXpvbiBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZS5cbiAqL1xuSW5zdGFuY2VSb2xlQ3JlZGVudGlhbHNQcm92aWRlcj86IFwiU0hBUkVEX0NSRURFTlRJQUxfRklMRVwiXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cbkxvY2F0aW9ucz86IExvY2F0aW9uQ29uZmlndXJhdGlvbltdXG4vKipcbiAqIFRoaXMgcGFyYW1ldGVyIGlzIG5vIGxvbmdlciB1c2VkLiBXaGVuIGhvc3RpbmcgYSBjdXN0b20gZ2FtZSBidWlsZCwgc3BlY2lmeSB3aGVyZSBBbWF6b24gR2FtZUxpZnQgc2hvdWxkIHN0b3JlIGxvZyBmaWxlcyB1c2luZyB0aGUgQW1hem9uIEdhbWVMaWZ0IHNlcnZlciBBUEkgY2FsbCBQcm9jZXNzUmVhZHkoKVxuICovXG5Mb2dQYXRocz86IHN0cmluZ1tdXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbWF4aW11bSB2YWx1ZSB0aGF0IGlzIGFsbG93ZWQgZm9yIHRoZSBmbGVldCdzIGluc3RhbmNlIGNvdW50LiBXaGVuIGNyZWF0aW5nIGEgbmV3IGZsZWV0LCBHYW1lTGlmdCBhdXRvbWF0aWNhbGx5IHNldHMgdGhpcyB2YWx1ZSB0byBcIjFcIi4gT25jZSB0aGUgZmxlZXQgaXMgYWN0aXZlLCB5b3UgY2FuIGNoYW5nZSB0aGlzIHZhbHVlLlxuICovXG5NYXhTaXplPzogbnVtYmVyXG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEFtYXpvbiBDbG91ZFdhdGNoIG1ldHJpYyBncm91cC4gQSBtZXRyaWMgZ3JvdXAgYWdncmVnYXRlcyB0aGUgbWV0cmljcyBmb3IgYWxsIGZsZWV0cyBpbiB0aGUgZ3JvdXAuIFNwZWNpZnkgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWV0cmljIGdyb3VwIG5hbWUuIFlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIG5hbWUgb3IgdXNlIGEgbmV3IG5hbWUgdG8gY3JlYXRlIGEgbmV3IG1ldHJpYyBncm91cC4gQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBjYW4gaGF2ZSBvbmx5IG9uZSBzdHJpbmcuXG4gKiBcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbk1ldHJpY0dyb3Vwcz86IHN0cmluZ1tdXG4vKipcbiAqIFtERVBSRUNBVEVEXSBUaGUgbWluaW11bSB2YWx1ZSBhbGxvd2VkIGZvciB0aGUgZmxlZXQncyBpbnN0YW5jZSBjb3VudC4gV2hlbiBjcmVhdGluZyBhIG5ldyBmbGVldCwgR2FtZUxpZnQgYXV0b21hdGljYWxseSBzZXRzIHRoaXMgdmFsdWUgdG8gXCIwXCIuIEFmdGVyIHRoZSBmbGVldCBpcyBhY3RpdmUsIHlvdSBjYW4gY2hhbmdlIHRoaXMgdmFsdWUuXG4gKi9cbk1pblNpemU/OiBudW1iZXJcbi8qKlxuICogQSBkZXNjcmlwdGl2ZSBsYWJlbCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIGZsZWV0LiBGbGVldCBuYW1lcyBkbyBub3QgbmVlZCB0byBiZSB1bmlxdWUuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBBIGdhbWUgc2Vzc2lvbiBwcm90ZWN0aW9uIHBvbGljeSB0byBhcHBseSB0byBhbGwgZ2FtZSBzZXNzaW9ucyBob3N0ZWQgb24gaW5zdGFuY2VzIGluIHRoaXMgZmxlZXQuIFdoZW4gcHJvdGVjdGVkLCBhY3RpdmUgZ2FtZSBzZXNzaW9ucyBjYW5ub3QgYmUgdGVybWluYXRlZCBkdXJpbmcgYSBzY2FsZS1kb3duIGV2ZW50LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc2V0LCBpbnN0YW5jZXMgaW4gdGhpcyBmbGVldCBkZWZhdWx0IHRvIG5vIHByb3RlY3Rpb24uIFlvdSBjYW4gY2hhbmdlIGEgZmxlZXQncyBwcm90ZWN0aW9uIHBvbGljeSB0byBhZmZlY3QgZnV0dXJlIGdhbWUgc2Vzc2lvbnMgb24gdGhlIGZsZWV0LiBZb3UgY2FuIGFsc28gc2V0IHByb3RlY3Rpb24gZm9yIGluZGl2aWR1YWwgZ2FtZSBzZXNzaW9ucy5cbiAqL1xuTmV3R2FtZVNlc3Npb25Qcm90ZWN0aW9uUG9saWN5PzogKFwiRnVsbFByb3RlY3Rpb25cIiB8IFwiTm9Qcm90ZWN0aW9uXCIpXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBBV1MgYWNjb3VudCB3aXRoIHRoZSBWUEMgdGhhdCB5b3Ugd2FudCB0byBwZWVyIHlvdXIgQW1hem9uIEdhbWVMaWZ0IGZsZWV0IHdpdGguIFlvdSBjYW4gZmluZCB5b3VyIGFjY291bnQgSUQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUgdW5kZXIgYWNjb3VudCBzZXR0aW5ncy5cbiAqL1xuUGVlclZwY0F3c0FjY291bnRJZD86IHN0cmluZ1xuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFZQQyB3aXRoIHJlc291cmNlcyB0byBiZSBhY2Nlc3NlZCBieSB5b3VyIEFtYXpvbiBHYW1lTGlmdCBmbGVldC4gVGhlIFZQQyBtdXN0IGJlIGluIHRoZSBzYW1lIFJlZ2lvbiBhcyB5b3VyIGZsZWV0LiBUbyBsb29rIHVwIGEgVlBDIElELCB1c2UgdGhlIFZQQyBEYXNoYm9hcmQgaW4gdGhlIEFXUyBNYW5hZ2VtZW50IENvbnNvbGUuXG4gKi9cblBlZXJWcGNJZD86IHN0cmluZ1xuUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5PzogUmVzb3VyY2VDcmVhdGlvbkxpbWl0UG9saWN5XG4vKipcbiAqIFVuaXF1ZSBmbGVldCBJRFxuICovXG5GbGVldElkPzogc3RyaW5nXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgYnVpbGQgdG8gYmUgZGVwbG95ZWQgb24gdGhlIG5ldyBmbGVldC4gSWYgeW91IGFyZSBkZXBsb3lpbmcgdGhlIGZsZWV0IHdpdGggYSBjdXN0b20gZ2FtZSBidWlsZCwgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgYnVpbGQgbXVzdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIHRvIEFtYXpvbiBHYW1lTGlmdCBhbmQgYmUgaW4gYSBSRUFEWSBzdGF0dXMuIFRoaXMgZmxlZXQgc2V0dGluZyBjYW5ub3QgYmUgY2hhbmdlZCBvbmNlIHRoZSBmbGVldCBpcyBjcmVhdGVkLlxuICovXG5CdWlsZElkPzogc3RyaW5nXG4vKipcbiAqIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgUmVhbHRpbWUgc2NyaXB0IHRvIGJlIGRlcGxveWVkIG9uIGEgbmV3IFJlYWx0aW1lIFNlcnZlcnMgZmxlZXQuIFRoZSBzY3JpcHQgbXVzdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIHRvIEFtYXpvbiBHYW1lTGlmdC4gVGhpcyBmbGVldCBzZXR0aW5nIGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgdGhlIGZsZWV0IGlzIGNyZWF0ZWQuXG4gKiBcbiAqIE5vdGU6IEl0IGlzIG5vdCBjdXJyZW50bHkgcG9zc2libGUgdG8gdXNlIHRoZSAhUmVmIGNvbW1hbmQgdG8gcmVmZXJlbmNlIGEgc2NyaXB0IGNyZWF0ZWQgd2l0aCBhIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGZvciB0aGUgZmxlZXQgcHJvcGVydHkgU2NyaXB0SWQuIEluc3RlYWQsIHVzZSBGbjo6R2V0QXR0IFNjcmlwdC5Bcm4gb3IgRm46OkdldEF0dCBTY3JpcHQuSWQgdG8gcmV0cmlldmUgZWl0aGVyIG9mIHRoZXNlIHByb3BlcnRpZXMgYXMgaW5wdXQgZm9yIFNjcmlwdElkLiBBbHRlcm5hdGl2ZWx5LCBlbnRlciBhIFNjcmlwdElkIHN0cmluZyBtYW51YWxseS5cbiAqL1xuU2NyaXB0SWQ/OiBzdHJpbmdcblJ1bnRpbWVDb25maWd1cmF0aW9uPzogUnVudGltZUNvbmZpZ3VyYXRpb25cbi8qKlxuICogVGhpcyBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHVzZWQgYnV0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBJbnN0ZWFkLCBzcGVjaWZ5IHNlcnZlciBsYXVuY2ggcGFyYW1ldGVycyBpbiB0aGUgUnVudGltZUNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLiBBIHJlcXVlc3QgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvciB2YWx1ZXMgZm9yIGJvdGggU2VydmVyTGF1bmNoUGFyYW1ldGVycyBhbmQgU2VydmVyTGF1bmNoUGF0aC5cbiAqL1xuU2VydmVyTGF1bmNoUGFyYW1ldGVycz86IHN0cmluZ1xuLyoqXG4gKiBUaGlzIHBhcmFtZXRlciBpcyBubyBsb25nZXIgdXNlZC4gSW5zdGVhZCwgc3BlY2lmeSBhIHNlcnZlciBsYXVuY2ggcGF0aCB1c2luZyB0aGUgUnVudGltZUNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLiBSZXF1ZXN0cyB0aGF0IHNwZWNpZnkgYSBzZXJ2ZXIgbGF1bmNoIHBhdGggYW5kIGxhdW5jaCBwYXJhbWV0ZXJzIGluc3RlYWQgb2YgYSBydW50aW1lIGNvbmZpZ3VyYXRpb24gd2lsbCBjb250aW51ZSB0byB3b3JrLlxuICovXG5TZXJ2ZXJMYXVuY2hQYXRoPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgdGhhdCBpcyBhc3NpZ25lZCB0byBhIEFtYXpvbiBHYW1lTGlmdCBTZXJ2ZXJzIEZsZWV0IHJlc291cmNlIGFuZCB1bmlxdWVseSBpZGVudGlmaWVzIGl0LiBBUk5zIGFyZSB1bmlxdWUgYWNyb3NzIGFsbCBSZWdpb25zLiBJbiBhIEdhbWVMaWZ0IEZsZWV0IEFSTiwgdGhlIHJlc291cmNlIElEIG1hdGNoZXMgdGhlIEZsZWV0SWQgdmFsdWUuXG4gKi9cbkZsZWV0QXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFJ1bGUgdGhhdCBjb250cm9scyBob3cgYSBmbGVldCBpcyBzY2FsZWQuIFNjYWxpbmcgcG9saWNpZXMgYXJlIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgdGhlIGNvbWJpbmF0aW9uIG9mIG5hbWUgYW5kIGZsZWV0IElELlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdQb2xpY3kge1xuLyoqXG4gKiBDb21wYXJpc29uIG9wZXJhdG9yIHRvIHVzZSB3aGVuIG1lYXN1cmluZyBhIG1ldHJpYyBhZ2FpbnN0IHRoZSB0aHJlc2hvbGQgdmFsdWUuXG4gKi9cbkNvbXBhcmlzb25PcGVyYXRvcj86IChcIkdyZWF0ZXJUaGFuT3JFcXVhbFRvVGhyZXNob2xkXCIgfCBcIkdyZWF0ZXJUaGFuVGhyZXNob2xkXCIgfCBcIkxlc3NUaGFuVGhyZXNob2xkXCIgfCBcIkxlc3NUaGFuT3JFcXVhbFRvVGhyZXNob2xkXCIpXG4vKipcbiAqIExlbmd0aCBvZiB0aW1lIChpbiBtaW51dGVzKSB0aGUgbWV0cmljIG11c3QgYmUgYXQgb3IgYmV5b25kIHRoZSB0aHJlc2hvbGQgYmVmb3JlIGEgc2NhbGluZyBldmVudCBpcyB0cmlnZ2VyZWQuXG4gKi9cbkV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG5Mb2NhdGlvbj86IExvY2F0aW9uXG4vKipcbiAqIE5hbWUgb2YgdGhlIEFtYXpvbiBHYW1lTGlmdC1kZWZpbmVkIG1ldHJpYyB0aGF0IGlzIHVzZWQgdG8gdHJpZ2dlciBhIHNjYWxpbmcgYWRqdXN0bWVudC5cbiAqL1xuTWV0cmljTmFtZTogKFwiQWN0aXZhdGluZ0dhbWVTZXNzaW9uc1wiIHwgXCJBY3RpdmVHYW1lU2Vzc2lvbnNcIiB8IFwiQWN0aXZlSW5zdGFuY2VzXCIgfCBcIkF2YWlsYWJsZUdhbWVTZXNzaW9uc1wiIHwgXCJBdmFpbGFibGVQbGF5ZXJTZXNzaW9uc1wiIHwgXCJDdXJyZW50UGxheWVyU2Vzc2lvbnNcIiB8IFwiSWRsZUluc3RhbmNlc1wiIHwgXCJQZXJjZW50QXZhaWxhYmxlR2FtZVNlc3Npb25zXCIgfCBcIlBlcmNlbnRJZGxlSW5zdGFuY2VzXCIgfCBcIlF1ZXVlRGVwdGhcIiB8IFwiV2FpdFRpbWVcIiB8IFwiQ29uY3VycmVudEFjdGl2YXRhYmxlR2FtZVNlc3Npb25zXCIpXG4vKipcbiAqIEEgZGVzY3JpcHRpdmUgbGFiZWwgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBmbGVldCdzIHNjYWxpbmcgcG9saWN5LiBQb2xpY3kgbmFtZXMgZG8gbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICovXG5OYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2NhbGluZyBwb2xpY3kgdG8gY3JlYXRlLiBGb3IgYSB0YXJnZXQtYmFzZWQgcG9saWN5LCBzZXQgdGhlIHBhcmFtZXRlciBNZXRyaWNOYW1lIHRvICdQZXJjZW50QXZhaWxhYmxlR2FtZVNlc3Npb25zJyBhbmQgc3BlY2lmeSBhIFRhcmdldENvbmZpZ3VyYXRpb24uIEZvciBhIHJ1bGUtYmFzZWQgcG9saWN5IHNldCB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6IE1ldHJpY05hbWUsIENvbXBhcmlzb25PcGVyYXRvciwgVGhyZXNob2xkLCBFdmFsdWF0aW9uUGVyaW9kcywgU2NhbGluZ0FkanVzdG1lbnRUeXBlLCBhbmQgU2NhbGluZ0FkanVzdG1lbnQuXG4gKi9cblBvbGljeVR5cGU/OiAoXCJSdWxlQmFzZWRcIiB8IFwiVGFyZ2V0QmFzZWRcIilcbi8qKlxuICogQW1vdW50IG9mIGFkanVzdG1lbnQgdG8gbWFrZSwgYmFzZWQgb24gdGhlIHNjYWxpbmcgYWRqdXN0bWVudCB0eXBlLlxuICovXG5TY2FsaW5nQWRqdXN0bWVudD86IG51bWJlclxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhZGp1c3RtZW50IHRvIG1ha2UgdG8gYSBmbGVldCdzIGluc3RhbmNlIGNvdW50LlxuICovXG5TY2FsaW5nQWRqdXN0bWVudFR5cGU/OiAoXCJDaGFuZ2VJbkNhcGFjaXR5XCIgfCBcIkV4YWN0Q2FwYWNpdHlcIiB8IFwiUGVyY2VudENoYW5nZUluQ2FwYWNpdHlcIilcbi8qKlxuICogQ3VycmVudCBzdGF0dXMgb2YgdGhlIHNjYWxpbmcgcG9saWN5LiBUaGUgc2NhbGluZyBwb2xpY3kgY2FuIGJlIGluIGZvcmNlIG9ubHkgd2hlbiBpbiBhbiBBQ1RJVkUgc3RhdHVzLiBTY2FsaW5nIHBvbGljaWVzIGNhbiBiZSBzdXNwZW5kZWQgZm9yIGluZGl2aWR1YWwgZmxlZXRzLiBJZiB0aGUgcG9saWN5IGlzIHN1c3BlbmRlZCBmb3IgYSBmbGVldCwgdGhlIHBvbGljeSBzdGF0dXMgZG9lcyBub3QgY2hhbmdlLlxuICovXG5TdGF0dXM/OiAoXCJBQ1RJVkVcIiB8IFwiVVBEQVRFX1JFUVVFU1RFRFwiIHwgXCJVUERBVElOR1wiIHwgXCJERUxFVEVfUkVRVUVTVEVEXCIgfCBcIkRFTEVUSU5HXCIgfCBcIkRFTEVURURcIiB8IFwiRVJST1JcIilcblRhcmdldENvbmZpZ3VyYXRpb24/OiBUYXJnZXRDb25maWd1cmF0aW9uXG4vKipcbiAqIE1ldHJpYyB2YWx1ZSB1c2VkIHRvIHRyaWdnZXIgYSBzY2FsaW5nIGV2ZW50LlxuICovXG5UaHJlc2hvbGQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBmbGVldCdzIHNjYWxpbmcgcG9saWNpZXMgaW4gYSByZXF1ZXN0ZWQgZmxlZXQgbG9jYXRpb24uIFRoZSBzdGF0dXMgUEVORElOR19VUERBVEUgaW5kaWNhdGVzIHRoYXQgYW4gdXBkYXRlIHdhcyByZXF1ZXN0ZWQgZm9yIHRoZSBmbGVldCBidXQgaGFzIG5vdCB5ZXQgYmVlbiBjb21wbGV0ZWQgZm9yIHRoZSBsb2NhdGlvbi5cbiAqL1xuVXBkYXRlU3RhdHVzPzogXCJQRU5ESU5HX1VQREFURVwiXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIHNldHRpbmdzIGZvciBhIHRhcmdldC1iYXNlZCBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRDb25maWd1cmF0aW9uIHtcbi8qKlxuICogRGVzaXJlZCB2YWx1ZSB0byB1c2Ugd2l0aCBhIHRhcmdldC1iYXNlZCBzY2FsaW5nIHBvbGljeS4gVGhlIHZhbHVlIG11c3QgYmUgcmVsZXZhbnQgZm9yIHdoYXRldmVyIG1ldHJpYyB0aGUgc2NhbGluZyBwb2xpY3kgaXMgdXNpbmcuIEZvciBleGFtcGxlLCBpbiBhIHBvbGljeSB1c2luZyB0aGUgbWV0cmljIFBlcmNlbnRBdmFpbGFibGVHYW1lU2Vzc2lvbnMsIHRoZSB0YXJnZXQgdmFsdWUgc2hvdWxkIGJlIHRoZSBwcmVmZXJyZWQgc2l6ZSBvZiB0aGUgZmxlZXQncyBidWZmZXIgKHRoZSBwZXJjZW50IG9mIGNhcGFjaXR5IHRoYXQgc2hvdWxkIGJlIGlkbGUgYW5kIHJlYWR5IGZvciBuZXcgZ2FtZSBzZXNzaW9ucykuXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgQW55d2hlcmUgZmxlZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55d2hlcmVDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQ29zdCBvZiBjb21wdXRlIGNhbiBiZSBzcGVjaWZpZWQgb24gQW55d2hlcmUgRmxlZXRzIHRvIHByaW9yaXRpemUgcGxhY2VtZW50IGFjcm9zcyBRdWV1ZSBkZXN0aW5hdGlvbnMgYmFzZWQgb24gQ29zdC5cbiAqL1xuQ29zdDogc3RyaW5nXG59XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGdlbmVyYXRlIGEgVExTL1NTTCBjZXJ0aWZpY2F0ZSBmb3IgdGhlIG5ldyBmbGVldC4gVExTIGNlcnRpZmljYXRlcyBhcmUgdXNlZCBmb3IgZW5jcnlwdGluZyB0cmFmZmljIGJldHdlZW4gZ2FtZSBjbGllbnRzIGFuZCBnYW1lIHNlcnZlcnMgcnVubmluZyBvbiBHYW1lTGlmdC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNldCwgY2VydGlmaWNhdGUgZ2VuZXJhdGlvbiBpcyBkaXNhYmxlZC4gVGhpcyBmbGVldCBzZXR0aW5nIGNhbm5vdCBiZSBjaGFuZ2VkIG9uY2UgdGhlIGZsZWV0IGlzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGlmaWNhdGVDb25maWd1cmF0aW9uIHtcbkNlcnRpZmljYXRlVHlwZTogKFwiRElTQUJMRURcIiB8IFwiR0VORVJBVEVEXCIpXG59XG4vKipcbiAqIEEgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIGFuZCBwb3J0IHNldHRpbmdzIHRoYXQgYWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIGNvbm5lY3QgdG8gc2VydmVyIHByb2Nlc3NlcyBvbiBhbiBBbWF6b24gR2FtZUxpZnQgaG9zdGluZyByZXNvdXJjZS4gTmV3IGdhbWUgc2Vzc2lvbnMgdGhhdCBhcmUgc3RhcnRlZCBvbiB0aGUgZmxlZXQgYXJlIGFzc2lnbmVkIGFuIElQIGFkZHJlc3MvcG9ydCBudW1iZXIgY29tYmluYXRpb24sIHdoaWNoIG11c3QgZmFsbCBpbnRvIHRoZSBmbGVldCdzIGFsbG93ZWQgcmFuZ2VzLiBGb3IgZmxlZXRzIGNyZWF0ZWQgd2l0aCBhIGN1c3RvbSBnYW1lIHNlcnZlciwgdGhlIHJhbmdlcyByZWZsZWN0IHRoZSBzZXJ2ZXIncyBnYW1lIHNlc3Npb24gYXNzaWdubWVudHMuIEZvciBSZWFsdGltZSBTZXJ2ZXJzIGZsZWV0cywgQW1hem9uIEdhbWVMaWZ0IGF1dG9tYXRpY2FsbHkgb3BlbnMgdHdvIHBvcnQgcmFuZ2VzLCBvbmUgZm9yIFRDUCBtZXNzYWdpbmcgYW5kIG9uZSBmb3IgVURQLCBmb3IgdXNlIGJ5IHRoZSBSZWFsdGltZSBzZXJ2ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwUGVybWlzc2lvbiB7XG4vKipcbiAqIEEgc3RhcnRpbmcgdmFsdWUgZm9yIGEgcmFuZ2Ugb2YgYWxsb3dlZCBwb3J0IG51bWJlcnMuXG4gKi9cbkZyb21Qb3J0OiBudW1iZXJcbi8qKlxuICogQSByYW5nZSBvZiBhbGxvd2VkIElQIGFkZHJlc3Nlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGV4cHJlc3NlZCBpbiBDSURSIG5vdGF0aW9uLiBFeGFtcGxlOiBcIjAwMC4wMDAuMDAwLjAwMC9bc3VibmV0IG1hc2tdXCIgb3Igb3B0aW9uYWxseSB0aGUgc2hvcnRlbmVkIHZlcnNpb24gXCIwLjAuMC4wL1tzdWJuZXQgbWFza11cIi5cbiAqL1xuSXBSYW5nZTogc3RyaW5nXG4vKipcbiAqIFRoZSBuZXR3b3JrIGNvbW11bmljYXRpb24gcHJvdG9jb2wgdXNlZCBieSB0aGUgZmxlZXQuXG4gKi9cblByb3RvY29sOiAoXCJUQ1BcIiB8IFwiVURQXCIpXG4vKipcbiAqIEFuIGVuZGluZyB2YWx1ZSBmb3IgYSByYW5nZSBvZiBhbGxvd2VkIHBvcnQgbnVtYmVycy4gUG9ydCBudW1iZXJzIGFyZSBlbmQtaW5jbHVzaXZlLiBUaGlzIHZhbHVlIG11c3QgYmUgaGlnaGVyIHRoYW4gRnJvbVBvcnQuXG4gKi9cblRvUG9ydDogbnVtYmVyXG59XG4vKipcbiAqIEEgcmVtb3RlIGxvY2F0aW9uIHdoZXJlIGEgbXVsdGktbG9jYXRpb24gZmxlZXQgY2FuIGRlcGxveSBFQzIgaW5zdGFuY2VzIGZvciBnYW1lIGhvc3RpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25Db25maWd1cmF0aW9uIHtcbkxvY2F0aW9uOiBMb2NhdGlvblxuTG9jYXRpb25DYXBhY2l0eT86IExvY2F0aW9uQ2FwYWNpdHlcbn1cbi8qKlxuICogQ3VycmVudCByZXNvdXJjZSBjYXBhY2l0eSBzZXR0aW5ncyBpbiBhIHNwZWNpZmllZCBmbGVldCBvciBsb2NhdGlvbi4gVGhlIGxvY2F0aW9uIHZhbHVlIG1pZ2h0IHJlZmVyIHRvIGEgZmxlZXQncyByZW1vdGUgbG9jYXRpb24gb3IgaXRzIGhvbWUgUmVnaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQ2FwYWNpdHkge1xuLyoqXG4gKiBEZWZhdWx0cyB0byBNaW5TaXplIGlmIG5vdCBkZWZpbmVkLiBUaGUgbnVtYmVyIG9mIEVDMiBpbnN0YW5jZXMgeW91IHdhbnQgdG8gbWFpbnRhaW4gaW4gdGhlIHNwZWNpZmllZCBmbGVldCBsb2NhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGZhbGwgYmV0d2VlbiB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBzaXplIGxpbWl0cy5cbiAqL1xuRGVzaXJlZEVDMkluc3RhbmNlcz86IG51bWJlclxuLyoqXG4gKiBUaGUgbWluaW11bSB2YWx1ZSBhbGxvd2VkIGZvciB0aGUgZmxlZXQncyBpbnN0YW5jZSBjb3VudCBmb3IgYSBsb2NhdGlvbi4gV2hlbiBjcmVhdGluZyBhIG5ldyBmbGVldCwgR2FtZUxpZnQgYXV0b21hdGljYWxseSBzZXRzIHRoaXMgdmFsdWUgdG8gXCIwXCIuIEFmdGVyIHRoZSBmbGVldCBpcyBhY3RpdmUsIHlvdSBjYW4gY2hhbmdlIHRoaXMgdmFsdWUuXG4gKi9cbk1pblNpemU6IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSB2YWx1ZSB0aGF0IGlzIGFsbG93ZWQgZm9yIHRoZSBmbGVldCdzIGluc3RhbmNlIGNvdW50IGZvciBhIGxvY2F0aW9uLiBXaGVuIGNyZWF0aW5nIGEgbmV3IGZsZWV0LCBHYW1lTGlmdCBhdXRvbWF0aWNhbGx5IHNldHMgdGhpcyB2YWx1ZSB0byBcIjFcIi4gT25jZSB0aGUgZmxlZXQgaXMgYWN0aXZlLCB5b3UgY2FuIGNoYW5nZSB0aGlzIHZhbHVlLlxuICovXG5NYXhTaXplOiBudW1iZXJcbn1cbi8qKlxuICogQSBwb2xpY3kgdGhhdCBsaW1pdHMgdGhlIG51bWJlciBvZiBnYW1lIHNlc3Npb25zIGFuIGluZGl2aWR1YWwgcGxheWVyIGNhbiBjcmVhdGUgb3ZlciBhIHNwYW4gb2YgdGltZSBmb3IgdGhpcyBmbGVldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNyZWF0aW9uTGltaXRQb2xpY3kge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzZXNzaW9ucyB0aGF0IGFuIGluZGl2aWR1YWwgY2FuIGNyZWF0ZSBkdXJpbmcgdGhlIHBvbGljeSBwZXJpb2QuXG4gKi9cbk5ld0dhbWVTZXNzaW9uc1BlckNyZWF0b3I/OiBudW1iZXJcbi8qKlxuICogVGhlIHRpbWUgc3BhbiB1c2VkIGluIGV2YWx1YXRpbmcgdGhlIHJlc291cmNlIGNyZWF0aW9uIGxpbWl0IHBvbGljeS5cbiAqL1xuUG9saWN5UGVyaW9kSW5NaW51dGVzPzogbnVtYmVyXG59XG4vKipcbiAqIEluc3RydWN0aW9ucyBmb3IgbGF1bmNoaW5nIHNlcnZlciBwcm9jZXNzZXMgb24gZWFjaCBpbnN0YW5jZSBpbiB0aGUgZmxlZXQuIFNlcnZlciBwcm9jZXNzZXMgcnVuIGVpdGhlciBhIGN1c3RvbSBnYW1lIGJ1aWxkIGV4ZWN1dGFibGUgb3IgYSBSZWFsdGltZSBzY3JpcHQuIFRoZSBydW50aW1lIGNvbmZpZ3VyYXRpb24gZGVmaW5lcyB0aGUgc2VydmVyIGV4ZWN1dGFibGVzIG9yIGxhdW5jaCBzY3JpcHQgZmlsZSwgbGF1bmNoIHBhcmFtZXRlcnMsIGFuZCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyB0byBydW4gY29uY3VycmVudGx5IG9uIGVhY2ggaW5zdGFuY2UuIFdoZW4gY3JlYXRpbmcgYSBmbGVldCwgdGhlIHJ1bnRpbWUgY29uZmlndXJhdGlvbiBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHNlcnZlciBwcm9jZXNzIGNvbmZpZ3VyYXRpb247IG90aGVyd2lzZSB0aGUgcmVxdWVzdCBmYWlscyB3aXRoIGFuIGludmFsaWQgcmVxdWVzdCBleGNlcHRpb24uXG4gKiBcbiAqIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHVubGVzcyB0aGUgcGFyYW1ldGVycyBTZXJ2ZXJMYXVuY2hQYXRoIGFuZCBTZXJ2ZXJMYXVuY2hQYXJhbWV0ZXJzIGFyZSBkZWZpbmVkLiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gaGFzIHJlcGxhY2VkIHRoZXNlIHBhcmFtZXRlcnMsIGJ1dCBmbGVldHMgdGhhdCB1c2UgdGhlbSB3aWxsIGNvbnRpbnVlIHRvIHdvcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gc2Vjb25kcykgdGhhdCBhIGdhbWUgc2Vzc2lvbiBjYW4gcmVtYWluIGluIHN0YXR1cyBBQ1RJVkFUSU5HLiBJZiB0aGUgZ2FtZSBzZXNzaW9uIGlzIG5vdCBhY3RpdmUgYmVmb3JlIHRoZSB0aW1lb3V0LCBhY3RpdmF0aW9uIGlzIHRlcm1pbmF0ZWQgYW5kIHRoZSBnYW1lIHNlc3Npb24gc3RhdHVzIGlzIGNoYW5nZWQgdG8gVEVSTUlOQVRFRC5cbiAqL1xuR2FtZVNlc3Npb25BY3RpdmF0aW9uVGltZW91dFNlY29uZHM/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGdhbWUgc2Vzc2lvbnMgd2l0aCBzdGF0dXMgQUNUSVZBVElORyB0byBhbGxvdyBvbiBhbiBpbnN0YW5jZSBzaW11bHRhbmVvdXNseS4gVGhpcyBzZXR0aW5nIGxpbWl0cyB0aGUgYW1vdW50IG9mIGluc3RhbmNlIHJlc291cmNlcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBuZXcgZ2FtZSBhY3RpdmF0aW9ucyBhdCBhbnkgb25lIHRpbWUuXG4gKi9cbk1heENvbmN1cnJlbnRHYW1lU2Vzc2lvbkFjdGl2YXRpb25zPzogbnVtYmVyXG4vKipcbiAqIEEgY29sbGVjdGlvbiBvZiBzZXJ2ZXIgcHJvY2VzcyBjb25maWd1cmF0aW9ucyB0aGF0IGRlc2NyaWJlIHdoaWNoIHNlcnZlciBwcm9jZXNzZXMgdG8gcnVuIG9uIGVhY2ggaW5zdGFuY2UgaW4gYSBmbGVldC5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblNlcnZlclByb2Nlc3Nlcz86IFNlcnZlclByb2Nlc3NbXVxufVxuLyoqXG4gKiBBIHNldCBvZiBpbnN0cnVjdGlvbnMgZm9yIGxhdW5jaGluZyBzZXJ2ZXIgcHJvY2Vzc2VzIG9uIGVhY2ggaW5zdGFuY2UgaW4gYSBmbGVldC4gRWFjaCBpbnN0cnVjdGlvbiBzZXQgaWRlbnRpZmllcyB0aGUgbG9jYXRpb24gb2YgdGhlIHNlcnZlciBleGVjdXRhYmxlLCBvcHRpb25hbCBsYXVuY2ggcGFyYW1ldGVycywgYW5kIHRoZSBudW1iZXIgb2Ygc2VydmVyIHByb2Nlc3NlcyB3aXRoIHRoaXMgY29uZmlndXJhdGlvbiB0byBtYWludGFpbiBjb25jdXJyZW50bHkgb24gdGhlIGluc3RhbmNlLiBTZXJ2ZXIgcHJvY2VzcyBjb25maWd1cmF0aW9ucyBtYWtlIHVwIGEgZmxlZXQncyBSdW50aW1lQ29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJQcm9jZXNzIHtcbi8qKlxuICogVGhlIG51bWJlciBvZiBzZXJ2ZXIgcHJvY2Vzc2VzIHRoYXQgdXNlIHRoaXMgY29uZmlndXJhdGlvbiB0byBydW4gY29uY3VycmVudGx5IG9uIGFuIGluc3RhbmNlLlxuICovXG5Db25jdXJyZW50RXhlY3V0aW9uczogbnVtYmVyXG4vKipcbiAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgc2VydmVyIGV4ZWN1dGFibGUgaW4gYSBjdXN0b20gZ2FtZSBidWlsZCBvciB0aGUgbmFtZSBvZiB0aGUgUmVhbHRpbWUgc2NyaXB0IGZpbGUgdGhhdCBjb250YWlucyB0aGUgSW5pdCgpIGZ1bmN0aW9uLiBHYW1lIGJ1aWxkcyBhbmQgUmVhbHRpbWUgc2NyaXB0cyBhcmUgaW5zdGFsbGVkIG9uIGluc3RhbmNlcyBhdCB0aGUgcm9vdDpcbiAqIFxuICogV2luZG93cyAoZm9yIGN1c3RvbSBnYW1lIGJ1aWxkcyBvbmx5KTogQzpcXGdhbWUuIEV4YW1wbGU6IFwiQzpcXGdhbWVcXE15R2FtZVxcc2VydmVyLmV4ZVwiXG4gKiBcbiAqIExpbnV4OiAvbG9jYWwvZ2FtZS4gRXhhbXBsZXM6IFwiL2xvY2FsL2dhbWUvTXlHYW1lL3NlcnZlci5leGVcIiBvciBcIi9sb2NhbC9nYW1lL015UmVhbHRpbWVTY3JpcHQuanNcIlxuICovXG5MYXVuY2hQYXRoOiBzdHJpbmdcbi8qKlxuICogQW4gb3B0aW9uYWwgbGlzdCBvZiBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHNlcnZlciBleGVjdXRhYmxlIG9yIFJlYWx0aW1lIHNjcmlwdCBvbiBsYXVuY2guXG4gKi9cblBhcmFtZXRlcnM/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICovXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
@@ -7,23 +7,23 @@ export interface _AWS_LAMBDA_VERSION {
7
7
  */
8
8
  FunctionArn?: string;
9
9
  /**
10
- * The version number.
11
- */
12
- Version?: string;
13
- /**
14
- * Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. Updates are not supported for this property.
10
+ * The name of the Lambda function.
15
11
  */
16
- CodeSha256?: string;
12
+ FunctionName: string;
13
+ ProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfiguration;
17
14
  /**
18
15
  * A description for the version to override the description in the function configuration. Updates are not supported for this property.
19
16
  */
20
17
  Description?: string;
18
+ RuntimePolicy?: RuntimePolicy;
21
19
  /**
22
- * The name of the Lambda function.
20
+ * The version number.
23
21
  */
24
- FunctionName: string;
25
- ProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfiguration;
26
- RuntimePolicy?: RuntimePolicy;
22
+ Version?: string;
23
+ /**
24
+ * Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. Updates are not supported for this property.
25
+ */
26
+ CodeSha256?: string;
27
27
  }
28
28
  /**
29
29
  * Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property.
@@ -38,12 +38,12 @@ export interface ProvisionedConcurrencyConfiguration {
38
38
  * Specifies the runtime management configuration of a function. Displays runtimeVersionArn only for Manual.
39
39
  */
40
40
  export interface RuntimePolicy {
41
- /**
42
- * The ARN of the runtime the function is configured to use. If the runtime update mode is manual, the ARN is returned, otherwise null is returned.
43
- */
44
- RuntimeVersionArn?: string;
45
41
  /**
46
42
  * The runtime update mode.
47
43
  */
48
44
  UpdateRuntimeOn: string;
45
+ /**
46
+ * The ARN of the runtime the function is configured to use. If the runtime update mode is manual, the ARN is returned, otherwise null is returned.
47
+ */
48
+ RuntimeVersionArn?: string;
49
49
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpMYW1iZGE6OlZlcnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0xBTUJEQV9WRVJTSU9OIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgdmVyc2lvbi5cbiAqL1xuRnVuY3Rpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyLlxuICovXG5WZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIE9ubHkgcHVibGlzaCBhIHZlcnNpb24gaWYgdGhlIGhhc2ggdmFsdWUgbWF0Y2hlcyB0aGUgdmFsdWUgdGhhdCdzIHNwZWNpZmllZC4gVXNlIHRoaXMgb3B0aW9uIHRvIGF2b2lkIHB1Ymxpc2hpbmcgYSB2ZXJzaW9uIGlmIHRoZSBmdW5jdGlvbiBjb2RlIGhhcyBjaGFuZ2VkIHNpbmNlIHlvdSBsYXN0IHVwZGF0ZWQgaXQuIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG4gKi9cbkNvZGVTaGEyNTY/OiBzdHJpbmdcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBmb3IgdGhlIHZlcnNpb24gdG8gb3ZlcnJpZGUgdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBmdW5jdGlvbiBjb25maWd1cmF0aW9uLiBVcGRhdGVzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIHByb3BlcnR5LlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICovXG5GdW5jdGlvbk5hbWU6IHN0cmluZ1xuUHJvdmlzaW9uZWRDb25jdXJyZW5jeUNvbmZpZz86IFByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWd1cmF0aW9uXG5SdW50aW1lUG9saWN5PzogUnVudGltZVBvbGljeVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBjb25maWd1cmF0aW9uIGZvciBhIGZ1bmN0aW9uJ3MgdmVyc2lvbi4gVXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBhbW91bnQgb2YgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgdG8gYWxsb2NhdGUgZm9yIHRoZSB2ZXJzaW9uLlxuICovXG5Qcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zOiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBydW50aW1lIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBvZiBhIGZ1bmN0aW9uLiBEaXNwbGF5cyBydW50aW1lVmVyc2lvbkFybiBvbmx5IGZvciBNYW51YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVBvbGljeSB7XG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIHJ1bnRpbWUgdGhlIGZ1bmN0aW9uIGlzIGNvbmZpZ3VyZWQgdG8gdXNlLiBJZiB0aGUgcnVudGltZSB1cGRhdGUgbW9kZSBpcyBtYW51YWwsIHRoZSBBUk4gaXMgcmV0dXJuZWQsIG90aGVyd2lzZSBudWxsIGlzIHJldHVybmVkLlxuICovXG5SdW50aW1lVmVyc2lvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcnVudGltZSB1cGRhdGUgbW9kZS5cbiAqL1xuVXBkYXRlUnVudGltZU9uOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWxhbWJkYS12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpMYW1iZGE6OlZlcnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0xBTUJEQV9WRVJTSU9OIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgdmVyc2lvbi5cbiAqL1xuRnVuY3Rpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAqL1xuRnVuY3Rpb25OYW1lOiBzdHJpbmdcblByb3Zpc2lvbmVkQ29uY3VycmVuY3lDb25maWc/OiBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvblxuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgdmVyc2lvbiB0byBvdmVycmlkZSB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24uIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgcHJvcGVydHkuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5SdW50aW1lUG9saWN5PzogUnVudGltZVBvbGljeVxuLyoqXG4gKiBUaGUgdmVyc2lvbiBudW1iZXIuXG4gKi9cblZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogT25seSBwdWJsaXNoIGEgdmVyc2lvbiBpZiB0aGUgaGFzaCB2YWx1ZSBtYXRjaGVzIHRoZSB2YWx1ZSB0aGF0J3Mgc3BlY2lmaWVkLiBVc2UgdGhpcyBvcHRpb24gdG8gYXZvaWQgcHVibGlzaGluZyBhIHZlcnNpb24gaWYgdGhlIGZ1bmN0aW9uIGNvZGUgaGFzIGNoYW5nZWQgc2luY2UgeW91IGxhc3QgdXBkYXRlZCBpdC4gVXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAqL1xuQ29kZVNoYTI1Nj86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBjb25maWd1cmF0aW9uIGZvciBhIGZ1bmN0aW9uJ3MgdmVyc2lvbi4gVXBkYXRlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBhbW91bnQgb2YgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgdG8gYWxsb2NhdGUgZm9yIHRoZSB2ZXJzaW9uLlxuICovXG5Qcm92aXNpb25lZENvbmN1cnJlbnRFeGVjdXRpb25zOiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBydW50aW1lIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbiBvZiBhIGZ1bmN0aW9uLiBEaXNwbGF5cyBydW50aW1lVmVyc2lvbkFybiBvbmx5IGZvciBNYW51YWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVBvbGljeSB7XG4vKipcbiAqIFRoZSBydW50aW1lIHVwZGF0ZSBtb2RlLlxuICovXG5VcGRhdGVSdW50aW1lT246IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIHRoZSBmdW5jdGlvbiBpcyBjb25maWd1cmVkIHRvIHVzZS4gSWYgdGhlIHJ1bnRpbWUgdXBkYXRlIG1vZGUgaXMgbWFudWFsLCB0aGUgQVJOIGlzIHJldHVybmVkLCBvdGhlcndpc2UgbnVsbCBpcyByZXR1cm5lZC5cbiAqL1xuUnVudGltZVZlcnNpb25Bcm4/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -37,6 +37,8 @@ export interface Capabilities {
37
37
  ExportToCsvInScheduledReports?: CapabilityState;
38
38
  ExportToExcelInScheduledReports?: CapabilityState;
39
39
  IncludeContentInScheduledReportsEmail?: CapabilityState;
40
+ Dashboard?: CapabilityState;
41
+ Analysis?: CapabilityState;
40
42
  }
41
43
  /**
42
44
  * <p>The key or keys of the key-value pairs for the resource tag or tags assigned to the
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtY3VzdG9tcGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcXVpY2tzaWdodC1jdXN0b21wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FwYWJpbGl0eVN0YXRlID0gXCJERU5ZXCJcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIHRoZSBBV1M6OlF1aWNrU2lnaHQ6OkN1c3RvbVBlcm1pc3Npb25zIFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0NVU1RPTVBFUk1JU1NJT05TIHtcbkFybj86IHN0cmluZ1xuQXdzQWNjb3VudElkOiBzdHJpbmdcbkNhcGFiaWxpdGllcz86IENhcGFiaWxpdGllc1xuQ3VzdG9tUGVybWlzc2lvbnNOYW1lOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIENhcGFiaWxpdGllcyB7XG5FeHBvcnRUb0Nzdj86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9FeGNlbD86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9QZGY/OiBDYXBhYmlsaXR5U3RhdGVcblByaW50UmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlVGhlbWVzPzogQ2FwYWJpbGl0eVN0YXRlXG5BZGRPclJ1bkFub21hbHlEZXRlY3Rpb25Gb3JBbmFseXNlcz86IENhcGFiaWxpdHlTdGF0ZVxuU2hhcmVBbmFseXNlcz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGF0YXNldHM/OiBDYXBhYmlsaXR5U3RhdGVcblNoYXJlRGF0YXNldHM/OiBDYXBhYmlsaXR5U3RhdGVcblN1YnNjcmliZURhc2hib2FyZEVtYWlsUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGFzaGJvYXJkRW1haWxSZXBvcnRzPzogQ2FwYWJpbGl0eVN0YXRlXG5TaGFyZURhc2hib2FyZHM/OiBDYXBhYmlsaXR5U3RhdGVcbkNyZWF0ZUFuZFVwZGF0ZVRocmVzaG9sZEFsZXJ0cz86IENhcGFiaWxpdHlTdGF0ZVxuUmVuYW1lU2hhcmVkRm9sZGVycz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU2hhcmVkRm9sZGVycz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGF0YVNvdXJjZXM/OiBDYXBhYmlsaXR5U3RhdGVcblNoYXJlRGF0YVNvdXJjZXM/OiBDYXBhYmlsaXR5U3RhdGVcblZpZXdBY2NvdW50U1BJQ0VDYXBhY2l0eT86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU1BJQ0VEYXRhc2V0PzogQ2FwYWJpbGl0eVN0YXRlXG5FeHBvcnRUb1BkZkluU2NoZWR1bGVkUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9Dc3ZJblNjaGVkdWxlZFJlcG9ydHM/OiBDYXBhYmlsaXR5U3RhdGVcbkV4cG9ydFRvRXhjZWxJblNjaGVkdWxlZFJlcG9ydHM/OiBDYXBhYmlsaXR5U3RhdGVcbkluY2x1ZGVDb250ZW50SW5TY2hlZHVsZWRSZXBvcnRzRW1haWw/OiBDYXBhYmlsaXR5U3RhdGVcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcga2V5LjwvcD5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogPHA+VGFnIHZhbHVlLjwvcD5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtY3VzdG9tcGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcXVpY2tzaWdodC1jdXN0b21wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FwYWJpbGl0eVN0YXRlID0gXCJERU5ZXCJcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIHRoZSBBV1M6OlF1aWNrU2lnaHQ6OkN1c3RvbVBlcm1pc3Npb25zIFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0NVU1RPTVBFUk1JU1NJT05TIHtcbkFybj86IHN0cmluZ1xuQXdzQWNjb3VudElkOiBzdHJpbmdcbkNhcGFiaWxpdGllcz86IENhcGFiaWxpdGllc1xuQ3VzdG9tUGVybWlzc2lvbnNOYW1lOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIENhcGFiaWxpdGllcyB7XG5FeHBvcnRUb0Nzdj86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9FeGNlbD86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9QZGY/OiBDYXBhYmlsaXR5U3RhdGVcblByaW50UmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlVGhlbWVzPzogQ2FwYWJpbGl0eVN0YXRlXG5BZGRPclJ1bkFub21hbHlEZXRlY3Rpb25Gb3JBbmFseXNlcz86IENhcGFiaWxpdHlTdGF0ZVxuU2hhcmVBbmFseXNlcz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGF0YXNldHM/OiBDYXBhYmlsaXR5U3RhdGVcblNoYXJlRGF0YXNldHM/OiBDYXBhYmlsaXR5U3RhdGVcblN1YnNjcmliZURhc2hib2FyZEVtYWlsUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGFzaGJvYXJkRW1haWxSZXBvcnRzPzogQ2FwYWJpbGl0eVN0YXRlXG5TaGFyZURhc2hib2FyZHM/OiBDYXBhYmlsaXR5U3RhdGVcbkNyZWF0ZUFuZFVwZGF0ZVRocmVzaG9sZEFsZXJ0cz86IENhcGFiaWxpdHlTdGF0ZVxuUmVuYW1lU2hhcmVkRm9sZGVycz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU2hhcmVkRm9sZGVycz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGF0YVNvdXJjZXM/OiBDYXBhYmlsaXR5U3RhdGVcblNoYXJlRGF0YVNvdXJjZXM/OiBDYXBhYmlsaXR5U3RhdGVcblZpZXdBY2NvdW50U1BJQ0VDYXBhY2l0eT86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU1BJQ0VEYXRhc2V0PzogQ2FwYWJpbGl0eVN0YXRlXG5FeHBvcnRUb1BkZkluU2NoZWR1bGVkUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9Dc3ZJblNjaGVkdWxlZFJlcG9ydHM/OiBDYXBhYmlsaXR5U3RhdGVcbkV4cG9ydFRvRXhjZWxJblNjaGVkdWxlZFJlcG9ydHM/OiBDYXBhYmlsaXR5U3RhdGVcbkluY2x1ZGVDb250ZW50SW5TY2hlZHVsZWRSZXBvcnRzRW1haWw/OiBDYXBhYmlsaXR5U3RhdGVcbkRhc2hib2FyZD86IENhcGFiaWxpdHlTdGF0ZVxuQW5hbHlzaXM/OiBDYXBhYmlsaXR5U3RhdGVcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcga2V5LjwvcD5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogPHA+VGFnIHZhbHVlLjwvcD5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
@@ -270,6 +270,15 @@ export interface _AWS_RDS_DBCLUSTER {
270
270
  * Valid for: Aurora DB clusters and Multi-AZ DB clusters
271
271
  */
272
272
  KmsKeyId?: string;
273
+ /**
274
+ * Specifies the authentication type for the master user. With IAM master user authentication, you can configure the master DB user with IAM database authentication when you create a DB cluster.
275
+ * You can specify one of the following values:
276
+ * + ``password`` - Use standard database authentication with a password.
277
+ * + ``iam-db-auth`` - Use IAM database authentication for the master user.
278
+ *
279
+ * Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
280
+ * This option is only valid for RDS for MySQL, RDS for MariaDB, RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL engines.
281
+ */
273
282
  MasterUserAuthenticationType?: string;
274
283
  /**
275
284
  * The name of the master user for the DB cluster.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmNsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcmRzLWRiY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OlJEUzo6REJDbHVzdGVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXIgb3IgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjcmVhdGluZyBhbiBBdXJvcmEgREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuQ3JlYXRlSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgTXVsdGktQVogREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhIE11bHRpLUFaIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIFlvdSBjYW4gb25seSBjcmVhdGUgdGhpcyByZXNvdXJjZSBpbiBBV1MgUmVnaW9ucyB3aGVyZSBBbWF6b24gQXVyb3JhIG9yIE11bHRpLUFaIERCIGNsdXN0ZXJzIGFyZSBzdXBwb3J0ZWQuXG4gKiAgICAqVXBkYXRpbmcgREIgY2x1c3RlcnMqIFxuICogIFdoZW4gcHJvcGVydGllcyBsYWJlbGVkIFwiKlVwZGF0ZSByZXF1aXJlczoqW1JlcGxhY2VtZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtcmVwbGFjZW1lbnQpXCIgYXJlIHVwZGF0ZWQsIEFXUyBDbG91ZEZvcm1hdGlvbiBmaXJzdCBjcmVhdGVzIGEgcmVwbGFjZW1lbnQgREIgY2x1c3RlciwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBjbHVzdGVyLCBhbmQgZmluYWxseSBkZWxldGVzIHRoZSBvbGQgREIgY2x1c3Rlci5cbiAqICAgV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSB0YWtlIGEgc25hcHNob3Qgb2YgdGhlIGRhdGFiYXNlIGJlZm9yZSB1cGRhdGluZyB0aGUgc3RhY2suIElmIHlvdSBkb24ndCwgeW91IGxvc2UgdGhlIGRhdGEgd2hlbiBBV1MgQ2xvdWRGb3JtYXRpb24gcmVwbGFjZXMgeW91ciBEQiBjbHVzdGVyLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGNsdXN0ZXIgc28gdGhhdCB0aGVyZSdzIG5vIGFjdGl2aXR5IG9uIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gIENyZWF0ZSBhIHNuYXBzaG90IG9mIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDcmVhdGluZyBhIERCIGNsdXN0ZXIgc25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Q2x1c3Rlci5odG1sKS5cbiAqICAgMS4gIElmIHlvdSB3YW50IHRvIHJlc3RvcmUgeW91ciBEQiBjbHVzdGVyIHVzaW5nIGEgREIgY2x1c3RlciBzbmFwc2hvdCwgbW9kaWZ5IHRoZSB1cGRhdGVkIHRlbXBsYXRlIHdpdGggeW91ciBEQiBjbHVzdGVyIGNoYW5nZXMgYW5kIGFkZCB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSB3aXRoIHRoZSBJRCBvZiB0aGUgREIgY2x1c3RlciBzbmFwc2hvdCB0aGF0IHlvdSB3YW50IHRvIHVzZS5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgd2l0aCBhIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBmb3IgYW55IGZ1dHVyZSB1cGRhdGVzIHRvIHRoZSBEQiBjbHVzdGVyLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIGZyb20gdGhlIERCIGNsdXN0ZXIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbiBlbXB0eSBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLlxuICogICAxLiAgVXBkYXRlIHRoZSBzdGFjay5cbiAqICAgXG4gKiAgIEN1cnJlbnRseSwgd2hlbiB5b3UgYXJlIHVwZGF0aW5nIHRoZSBzdGFjayBmb3IgYW4gQXVyb3JhIFNlcnZlcmxlc3MgREIgY2x1c3RlciwgeW91IGNhbid0IGluY2x1ZGUgY2hhbmdlcyB0byBhbnkgb3RoZXIgcHJvcGVydGllcyB3aGVuIHlvdSBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IGBgUHJlZmVycmVkQmFja3VwV2luZG93YGAsIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCwgYW5kIGBgUG9ydGBgLiBUaGlzIGxpbWl0YXRpb24gZG9lc24ndCBhcHBseSB0byBwcm92aXNpb25lZCBEQiBjbHVzdGVycy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoaXMgcmVzb3VyY2UsIHNlZSBgYE1vZGlmeURCQ2x1c3RlcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBzdGFja3MsIHNlZSBbQ2xvdWRGb3JtYXRpb24gU3RhY2tzIFVwZGF0ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MuaHRtbCkuXG4gKiAgICpEZWxldGluZyBEQiBjbHVzdGVycyogXG4gKiAgVGhlIGRlZmF1bHQgYGBEZWxldGlvblBvbGljeWBgIGZvciBgYEFXUzo6UkRTOjpEQkNsdXN0ZXJgYCByZXNvdXJjZXMgaXMgYGBTbmFwc2hvdGBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgcmVzb3VyY2VzLCBzZWUgW0RlbGV0aW9uUG9saWN5IEF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLWF0dHJpYnV0ZS1kZWxldGlvbnBvbGljeS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQkNMVVNURVIge1xuRW5kcG9pbnQ/OiBFbmRwb2ludFxuUmVhZEVuZHBvaW50PzogUmVhZEVuZHBvaW50XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYWxsb2NhdGUgdG8gZWFjaCBEQiBpbnN0YW5jZSBpbiB0aGUgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXJcbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgY2x1c3Rlci4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFtYXpvbiBXZWIgU2VydmljZXMgb24geW91ciBiZWhhbGYuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkFzc29jaWF0ZWRSb2xlcz86IERCQ2x1c3RlclJvbGVbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIHdoZXJlIGluc3RhbmNlcyBpbiB0aGUgREIgY2x1c3RlciBjYW4gYmUgY3JlYXRlZC4gRm9yIGluZm9ybWF0aW9uIG9uIEFXUyBSZWdpb25zIGFuZCBBdmFpbGFiaWxpdHkgWm9uZXMsIHNlZSBbQ2hvb3NpbmcgdGhlIFJlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgREIgY2x1c3RlciBkdXJpbmcgdGhlIG1haW50ZW5hbmNlIHdpbmRvdy4gQnkgZGVmYXVsdCwgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF1dG9tYXRpYyBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVzLCBzZWUgW0F1dG9tYXRpY2FsbHkgdXBncmFkaW5nIHRoZSBtaW5vciBlbmdpbmUgdmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuVXBncmFkaW5nLmh0bWwjVVNFUl9VcGdyYWRlREJJbnN0YW5jZS5VcGdyYWRpbmcuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVzKS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YXJnZXQgYmFja3RyYWNrIHdpbmRvdywgaW4gc2Vjb25kcy4gVG8gZGlzYWJsZSBiYWNrdHJhY2tpbmcsIHNldCB0aGlzIHZhbHVlIHRvIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBNeVNRTCBEQiBjbHVzdGVycyBvbmx5XG4gKiAgRGVmYXVsdDogYGAwYGBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgSWYgc3BlY2lmaWVkLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IHRvIGEgbnVtYmVyIGZyb20gMCB0byAyNTksMjAwICg3MiBob3VycykuXG4gKi9cbkJhY2t0cmFja1dpbmRvdz86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGRheXMgZm9yIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSByZXRhaW5lZC5cbiAqICBEZWZhdWx0OiAxXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYSB2YWx1ZSBmcm9tIDEgdG8gMzVcbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkJhY2t1cFJldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHNjYWxhYmlsaXR5IG1vZGUgb2YgdGhlIEF1cm9yYSBEQiBjbHVzdGVyLiBXaGVuIHNldCB0byBgYGxpbWl0bGVzc2BgLCB0aGUgY2x1c3RlciBvcGVyYXRlcyBhcyBhbiBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlLCBhbGxvd2luZyB5b3UgdG8gY3JlYXRlIGEgREIgc2hhcmQgZ3JvdXAgZm9yIGhvcml6b250YWwgc2NhbGluZyAoc2hhcmRpbmcpIGNhcGFiaWxpdGllcy4gV2hlbiBzZXQgdG8gYGBzdGFuZGFyZGBgICh0aGUgZGVmYXVsdCksIHRoZSBjbHVzdGVyIHVzZXMgbm9ybWFsIERCIGluc3RhbmNlIGNyZWF0aW9uLlxuICogICpJbXBvcnRhbnQ6KiBBdXRvbWF0ZWQgYmFja3VwIHJldGVudGlvbiBpc24ndCBzdXBwb3J0ZWQgd2l0aCBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlIGNsdXN0ZXJzLiBJZiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYGBsaW1pdGxlc3NgYCwgeW91IGNhbm5vdCBzZXQgYGBEZWxldGVBdXRvbWF0ZWRCYWNrdXBzYGAgdG8gYGBmYWxzZWBgLiBUbyBjcmVhdGUgYSBiYWNrdXAsIHVzZSBtYW51YWwgc25hcHNob3RzIGluc3RlYWQuXG4gKi9cbkNsdXN0ZXJTY2FsYWJpbGl0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvcHkgYWxsIHRhZ3MgZnJvbSB0aGUgREIgY2x1c3RlciB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIG5vdCB0byBjb3B5IHRoZW0uXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkNvcHlUYWdzVG9TbmFwc2hvdD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgY2x1c3Rlci5cbiAqICBJZiB5b3Ugc2V0IHRoaXMgdmFsdWUgdG8gYGBhZHZhbmNlZGBgLCB5b3UgbXVzdCBhbHNvIHNldCB0aGUgYGBQZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZGBgIHBhcmFtZXRlciB0byBgYHRydWVgYCBhbmQgdGhlIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlciB0byA0NjUuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZUluc2lnaHRzTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB5b3VyIGRhdGFiYXNlLiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIG5hbWUsIHRoZW4gQW1hem9uIFJEUyB3b24ndCBjcmVhdGUgYSBkYXRhYmFzZSBpbiB0aGlzIERCIGNsdXN0ZXIuIEZvciBuYW1pbmcgY29uc3RyYWludHMsIHNlZSBbTmFtaW5nIENvbnN0cmFpbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZU5hbWU/OiBzdHJpbmdcbkRCQ2x1c3RlckFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY29tcHV0ZSBhbmQgbWVtb3J5IGNhcGFjaXR5IG9mIGVhY2ggREIgaW5zdGFuY2UgaW4gdGhlIE11bHRpLUFaIERCIGNsdXN0ZXIsIGZvciBleGFtcGxlIGBgZGIubTZnZC54bGFyZ2VgYC4gTm90IGFsbCBEQiBpbnN0YW5jZSBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIEFXUy1SZWdpb25zLCBvciBmb3IgYWxsIGRhdGFiYXNlIGVuZ2luZXMuXG4gKiAgRm9yIHRoZSBmdWxsIGxpc3Qgb2YgREIgaW5zdGFuY2UgY2xhc3NlcyBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLkRCSW5zdGFuY2VDbGFzcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICovXG5EQkNsdXN0ZXJJbnN0YW5jZUNsYXNzPzogc3RyaW5nXG5EQkNsdXN0ZXJSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXBwbHkgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICAgV2hlbiB5b3UgYXBwbHkgYSBwYXJhbWV0ZXIgZ3JvdXAgdXNpbmcgdGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciwgdGhlIERCIGNsdXN0ZXIgaXNuJ3QgcmVib290ZWQgYXV0b21hdGljYWxseS4gQWxzbywgcGFyYW1ldGVyIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkgcmF0aGVyIHRoYW4gZHVyaW5nIHRoZSBuZXh0IG1haW50ZW5hbmNlIHdpbmRvdy5cbiAqICAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZXhpc3RpbmcgbmFtZSBzZXR0aW5nXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbXVzdCBiZSBpbiB0aGUgc2FtZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgZmFtaWx5IGFzIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgKyAgVGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciBpcyB2YWxpZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBgYEFsbG93TWFqb3JWZXJzaW9uVXBncmFkZWBgIHBhcmFtZXRlciBmb3IgYSBtYWpvciB2ZXJzaW9uIHVwZ3JhZGUgb25seS5cbiAqL1xuREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cbiAqL1xuREJTeXN0ZW1JZD86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3UgYXJlIGNvbmZpZ3VyaW5nIGFuIEF1cm9yYSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciBhbmQgd2FudCB5b3VyIEF1cm9yYSBEQiBjbHVzdGVyIHRvIGJlIGEgc2Vjb25kYXJ5IG1lbWJlciBpbiB0aGUgZ2xvYmFsIGRhdGFiYXNlIGNsdXN0ZXIsIHNwZWNpZnkgdGhlIGdsb2JhbCBjbHVzdGVyIElEIG9mIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3Rlci4gVG8gZGVmaW5lIHRoZSBwcmltYXJ5IGRhdGFiYXNlIGNsdXN0ZXIgb2YgdGhlIGdsb2JhbCBjbHVzdGVyLCB1c2UgdGhlIFtBV1M6OlJEUzo6R2xvYmFsQ2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1nbG9iYWxjbHVzdGVyLmh0bWwpIHJlc291cmNlLiBcbiAqICAgSWYgeW91IGFyZW4ndCBjb25maWd1cmluZyBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFxuICogICBUbyByZW1vdmUgdGhlIERCIGNsdXN0ZXIgZnJvbSBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBzcGVjaWZ5IGFuIGVtcHR5IHZhbHVlIGZvciB0aGUgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LlxuICogICBGb3IgaW5mb3JtYXRpb24gYWJvdXQgQXVyb3JhIGdsb2JhbCBkYXRhYmFzZXMsIHNlZSBbV29ya2luZyB3aXRoIEFtYXpvbiBBdXJvcmEgR2xvYmFsIERhdGFiYXNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1nbG9iYWwtZGF0YWJhc2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuR2xvYmFsQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIERCIGNsdXN0ZXIgaWRlbnRpZmllci4gVGhpcyBwYXJhbWV0ZXIgaXMgc3RvcmVkIGFzIGEgbG93ZXJjYXNlIHN0cmluZy5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIGZyb20gMSB0byA2MyBsZXR0ZXJzLCBudW1iZXJzLCBvciBoeXBoZW5zLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgZW5kIHdpdGggYSBoeXBoZW4gb3IgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucy5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGBteS1jbHVzdGVyMWBgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgSWYgeW91IGFwcGx5IGEgcGFyYW1ldGVyIGdyb3VwIHRvIGFuIGV4aXN0aW5nIERCIGNsdXN0ZXIsIHRoZW4gaXRzIERCIGluc3RhbmNlcyBtaWdodCBuZWVkIHRvIHJlYm9vdC4gVGhpcyBjYW4gcmVzdWx0IGluIGFuIG91dGFnZSB3aGlsZSB0aGUgREIgaW5zdGFuY2VzIGFyZSByZWJvb3RpbmcuXG4gKiAgSWYgeW91IGFwcGx5IGEgY2hhbmdlIHRvIHBhcmFtZXRlciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBzdG9wcGVkIERCIGNsdXN0ZXIsIHRoZW4gdGhlIHVwZGF0ZSBzdGFjayB3YWl0cyB1bnRpbCB0aGUgREIgY2x1c3RlciBpcyBzdGFydGVkLlxuICogICBUbyBsaXN0IGFsbCBvZiB0aGUgYXZhaWxhYmxlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIG5hbWVzLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItY2x1c3Rlci1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNbXS5EQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIiAtLW91dHB1dCB0ZXh0YGAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci4gXG4gKiAgSWYgeW91IGFyZSByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSB3aXRoIGBgUmVzdG9yZVR5cGVgYCBzZXQgdG8gYGBjb3B5LW9uLXdyaXRlYGAsIGFuZCBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwIG5hbWUsIHRoZW4gdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2l0aCBhIGRlZmF1bHQgREIgc3VibmV0IGdyb3VwLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC4gVGhpcyBwYXJhbWV0ZXIgaXNuJ3QgY2FzZS1zZW5zaXRpdmUuIFRoZSBkZWZhdWx0IGlzIHRvIHJlbW92ZSBhdXRvbWF0ZWQgYmFja3VwcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgREIgY2x1c3RlciBpcyBkZWxldGVkLCB1bmxlc3MgdGhlIEFXUyBCYWNrdXAgcG9saWN5IHNwZWNpZmllcyBhIHBvaW50LWluLXRpbWUgcmVzdG9yZSBydWxlLlxuICovXG5EZWxldGVBdXRvbWF0ZWRCYWNrdXBzPzogYm9vbGVhblxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaGFzIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC4gVGhlIGRhdGFiYXNlIGNhbid0IGJlIGRlbGV0ZWQgd2hlbiBkZWxldGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQuIEJ5IGRlZmF1bHQsIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSBkaXJlY3RvcnkgSUQgb2YgdGhlIEFjdGl2ZSBEaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJzLCBBbWF6b24gUkRTIGNhbiB1c2UgS2VyYmVyb3MgYXV0aGVudGljYXRpb24gdG8gYXV0aGVudGljYXRlIHVzZXJzIHRoYXQgY29ubmVjdCB0byB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtLZXJiZXJvcyBhdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2tlcmJlcm9zLWF1dGhlbnRpY2F0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIElBTSByb2xlIHRvIHVzZSB3aGVuIG1ha2luZyBBUEkgY2FsbHMgdG8gdGhlIERpcmVjdG9yeSBTZXJ2aWNlLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG8gQ2xvdWRXYXRjaCBMb2dzLiBUaGUgdmFsdWVzIGluIHRoZSBsaXN0IGRlcGVuZCBvbiB0aGUgREIgZW5naW5lIGJlaW5nIHVzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1B1Ymxpc2hpbmcgRGF0YWJhc2UgTG9ncyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvVVNFUl9Mb2dBY2Nlc3MuaHRtbCNVU0VSX0xvZ0FjY2Vzcy5Qcm9jZWR1cmFsLlVwbG9hZHRvQ2xvdWRXYXRjaCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYXVkaXRgYCwgYGBlcnJvcmBgLCBgYGdlbmVyYWxgYCwgYGBzbG93cXVlcnlgYFxuICogICAqQXVyb3JhIFBvc3RncmVTUUwqIFxuICogIFZhbGlkIHZhbHVlczogYGBwb3N0Z3Jlc3FsYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoaXMgREIgY2x1c3RlciB0byBmb3J3YXJkIHdyaXRlIG9wZXJhdGlvbnMgdG8gdGhlIHByaW1hcnkgY2x1c3RlciBvZiBhIGdsb2JhbCBjbHVzdGVyIChBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlKS4gQnkgZGVmYXVsdCwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgb24gQXVyb3JhIERCIGNsdXN0ZXJzIHRoYXQgYXJlIHNlY29uZGFyeSBjbHVzdGVycyBpbiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLlxuICogIFlvdSBjYW4gc2V0IHRoaXMgdmFsdWUgb25seSBvbiBBdXJvcmEgREIgY2x1c3RlcnMgdGhhdCBhcmUgbWVtYmVycyBvZiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLiBXaXRoIHRoaXMgcGFyYW1ldGVyIGVuYWJsZWQsIGEgc2Vjb25kYXJ5IGNsdXN0ZXIgY2FuIGZvcndhcmQgd3JpdGVzIHRvIHRoZSBjdXJyZW50IHByaW1hcnkgY2x1c3RlciwgYW5kIHRoZSByZXN1bHRpbmcgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBiYWNrIHRvIHRoaXMgY2x1c3Rlci4gRm9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgb2YgYW4gQXVyb3JhIGdsb2JhbCBkYXRhYmFzZSwgdGhpcyB2YWx1ZSBpcyB1c2VkIGltbWVkaWF0ZWx5IGlmIHRoZSBwcmltYXJ5IGlzIGRlbW90ZWQgYnkgYSBnbG9iYWwgY2x1c3RlciBBUEkgb3BlcmF0aW9uLCBidXQgaXQgZG9lcyBub3RoaW5nIHVudGlsIHRoZW4uXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlR2xvYmFsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgdGhlIEhUVFAgZW5kcG9pbnQgZm9yIHRoZSBEQiBjbHVzdGVyLiBCeSBkZWZhdWx0LCB0aGUgSFRUUCBlbmRwb2ludCBpc24ndCBlbmFibGVkLlxuICogIFdoZW4gZW5hYmxlZCwgdGhlIEhUVFAgZW5kcG9pbnQgcHJvdmlkZXMgYSBjb25uZWN0aW9ubGVzcyB3ZWIgc2VydmljZSBBUEkgKFJEUyBEYXRhIEFQSSkgZm9yIHJ1bm5pbmcgU1FMIHF1ZXJpZXMgb24gdGhlIERCIGNsdXN0ZXIuIFlvdSBjYW4gYWxzbyBxdWVyeSB5b3VyIGRhdGFiYXNlIGZyb20gaW5zaWRlIHRoZSBSRFMgY29uc29sZSB3aXRoIHRoZSBSRFMgcXVlcnkgZWRpdG9yLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIFJEUyBEYXRhIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2RhdGEtYXBpLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5FbmFibGVIdHRwRW5kcG9pbnQ/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgbWFwcGluZyBvZiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzLiBCeSBkZWZhdWx0LCBtYXBwaW5nIGlzIGRpc2FibGVkLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0lBTSBEYXRhYmFzZSBBdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5JQU1EQkF1dGguaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgcmVhZCByZXBsaWNhcyBjYW4gZm9yd2FyZCB3cml0ZSBvcGVyYXRpb25zIHRvIHRoZSB3cml0ZXIgREIgaW5zdGFuY2UgaW4gdGhlIERCIGNsdXN0ZXIuIEJ5IGRlZmF1bHQsIHdyaXRlIG9wZXJhdGlvbnMgYXJlbid0IGFsbG93ZWQgb24gcmVhZGVyIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuYWJsZUxvY2FsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgZW5naW5lIHRvIGJlIHVzZWQgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgICBgYGF1cm9yYS1teXNxbGBgIFxuICogICArICAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIFxuICogICArICAgYGBteXNxbGBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydGBgLCB3aGljaCBlbnJvbGxzIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gQXQgdGhlIGVuZCBvZiBzdGFuZGFyZCBzdXBwb3J0LCB5b3UgY2FuIGF2b2lkIGNoYXJnZXMgZm9yIEV4dGVuZGVkIFN1cHBvcnQgYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydC1kaXNhYmxlZGBgLiBJbiB0aGlzIGNhc2UsIGNyZWF0aW5nIHRoZSBEQiBjbHVzdGVyIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBZb3UgY2FuIHVzZSB0aGlzIHNldHRpbmcgdG8gZW5yb2xsIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gV2l0aCBSRFMgRXh0ZW5kZWQgU3VwcG9ydCwgeW91IGNhbiBydW4gdGhlIHNlbGVjdGVkIG1ham9yIGVuZ2luZSB2ZXJzaW9uIG9uIHlvdXIgREIgY2x1c3RlciBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zOlxuICogICArICBBbWF6b24gQXVyb3JhIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBBdXJvcmFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKlxuICogICArICBBbWF6b24gUkRTIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKlxuICogICBcbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0IHwgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnQtZGlzYWJsZWRgYFxuICogIERlZmF1bHQ6IGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYFxuICovXG5FbmdpbmVMaWZlY3ljbGVTdXBwb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBEQiBlbmdpbmUgbW9kZSBvZiB0aGUgREIgY2x1c3RlciwgZWl0aGVyIGBgcHJvdmlzaW9uZWRgYCBvciBgYHNlcnZlcmxlc3NgYC5cbiAqICBUaGUgYGBzZXJ2ZXJsZXNzYGAgZW5naW5lIG1vZGUgb25seSBhcHBsaWVzIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVycy4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgY2x1c3RlcnMgdXNlIHRoZSBgYHByb3Zpc2lvbmVkYGAgZW5naW5lIG1vZGUuXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGxpbWl0YXRpb25zIGFuZCByZXF1aXJlbWVudHMgZm9yIFNlcnZlcmxlc3MgREIgY2x1c3RlcnMsIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKjpcbiAqICAgKyAgIFtMaW1pdGF0aW9ucyBvZiBBdXJvcmEgU2VydmVybGVzcyB2MV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MubGltaXRhdGlvbnMpIFxuICogICArICAgW1JlcXVpcmVtZW50cyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5yZXF1aXJlbWVudHMuaHRtbCkgXG4gKiAgIFxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuZ2luZU1vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gdXNlLlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyICg1LjctY29tcGF0aWJsZSkgYW5kIHZlcnNpb24gMyAoOC4wLWNvbXBhdGlibGUpLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIGF1cm9yYS1teXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFlvdSBjYW4gc3VwcGx5IGVpdGhlciBgYDUuN2BgIG9yIGBgOC4wYGAgdG8gdXNlIHRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyIG9yIHZlcnNpb24gMywgcmVzcGVjdGl2ZWx5LlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBhdXJvcmEtcG9zdGdyZXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBSRFMgZm9yIE15U1FMLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIG15c3FsIC0tcXVlcnkgXCJEQkVuZ2luZVZlcnNpb25zW10uRW5naW5lVmVyc2lvblwiYGAgXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBlbmdpbmUgdmVyc2lvbnMgZm9yIFJEUyBmb3IgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBwb3N0Z3JlcyAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbRGF0YWJhc2UgZW5naW5lIHVwZGF0ZXMgZm9yIEFtYXpvbiBBdXJvcmEgTXlTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFNeVNRTC5VcGRhdGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICAgKkF1cm9yYSBQb3N0Z3JlU1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMIHJlbGVhc2VzIGFuZCBlbmdpbmUgdmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFQb3N0Z3JlU1FMLlVwZGF0ZXMuMjAxODAzMDUuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqTXlTUUwqIFxuICogIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gUkRTIGZvciBNeVNRTF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgRm9yIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgZm9yIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkVuZ2luZVZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIGFuZCBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiBQcm92aXNpb25lZCBJT1BTIChpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucyBwZXIgc2Vjb25kKSB0byBiZSBpbml0aWFsbHkgYWxsb2NhdGVkIGZvciBlYWNoIERCIGluc3RhbmNlIGluIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCB2YWxpZCBJT1BTIHZhbHVlcywgc2VlIFtQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1N0b3JhZ2UuaHRtbCNVU0VSX1BJT1BTKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGEgbXVsdGlwbGUgYmV0d2VlbiAuNSBhbmQgNTAgb2YgdGhlIHN0b3JhZ2UgYW1vdW50IGZvciB0aGUgREIgY2x1c3Rlci5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFXUyBLTVMga2V5IHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhYmFzZSBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIsIHN1Y2ggYXMgYGBhcm46YXdzOmttczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTEwOmtleS9hYmNkMTIzNC1hMTIzLTQ1NmEtYTEyYi1hMTIzYjRjZDU2ZWZgYC4gSWYgeW91IGVuYWJsZSB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgYnV0IGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkLiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzZXQgdGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHRvIGBgdHJ1ZWBgLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LCBhbmQgaWYgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBjcmVhdGUgYSByZWFkIHJlcGxpY2Egb2YgYW4gZW5jcnlwdGVkIERCIGNsdXN0ZXIgaW4gYW5vdGhlciBBV1MgUmVnaW9uLCBtYWtlIHN1cmUgdG8gc2V0IGBgS21zS2V5SWRgYCB0byBhIEtNUyBrZXkgaWRlbnRpZmllciB0aGF0IGlzIHZhbGlkIGluIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBUaGlzIEtNUyBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSByZWFkIHJlcGxpY2EgaW4gdGhhdCBBV1MgUmVnaW9uLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuTWFzdGVyVXNlckF1dGhlbnRpY2F0aW9uVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWFzdGVyIHVzZXIgZm9yIHRoZSBEQiBjbHVzdGVyLlxuICogICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAsIGBgU25hcHNob3RJZGVudGlmaWVyYGAsIG9yIGBgR2xvYmFsQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eSwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNvdXJjZSBEQiBjbHVzdGVyLCB0aGUgc25hcHNob3QsIG9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgZm9yIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciwgcmVzcGVjdGl2ZWx5LlxuICogICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuTWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1hc3RlciBwYXNzd29yZCBmb3IgdGhlIERCIGluc3RhbmNlLlxuICogICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAsIGBgU25hcHNob3RJZGVudGlmaWVyYGAsIG9yIGBgR2xvYmFsQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eSwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNvdXJjZSBEQiBjbHVzdGVyLCB0aGUgc25hcHNob3QsIG9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgZm9yIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciwgcmVzcGVjdGl2ZWx5LlxuICogICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuTWFzdGVyVXNlclBhc3N3b3JkPzogc3RyaW5nXG5NYXN0ZXJVc2VyU2VjcmV0PzogTWFzdGVyVXNlclNlY3JldFxuLyoqXG4gKiBUaGUgaW50ZXJ2YWwsIGluIHNlY29uZHMsIGJldHdlZW4gcG9pbnRzIHdoZW4gRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIGFyZSBjb2xsZWN0ZWQgZm9yIHRoZSBEQiBjbHVzdGVyLiBUbyB0dXJuIG9mZiBjb2xsZWN0aW5nIEVuaGFuY2VkIE1vbml0b3JpbmcgbWV0cmljcywgc3BlY2lmeSBgYDBgYC5cbiAqICBJZiBgYE1vbml0b3JpbmdSb2xlQXJuYGAgaXMgc3BlY2lmaWVkLCBhbHNvIHNldCBgYE1vbml0b3JpbmdJbnRlcnZhbGBgIHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYC5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOiBgYDAgfCAxIHwgNSB8IDEwIHwgMTUgfCAzMCB8IDYwYGBcbiAqICBEZWZhdWx0OiBgYDBgYFxuICovXG5Nb25pdG9yaW5nSW50ZXJ2YWw/OiBudW1iZXJcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIGZvciB0aGUgSUFNIHJvbGUgdGhhdCBwZXJtaXRzIFJEUyB0byBzZW5kIEVuaGFuY2VkIE1vbml0b3JpbmcgbWV0cmljcyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzLiBBbiBleGFtcGxlIGlzIGBgYXJuOmF3czppYW06MTIzNDU2Nzg5MDEyOnJvbGUvZW1hY2Nlc3NgYC4gRm9yIGluZm9ybWF0aW9uIG9uIGNyZWF0aW5nIGEgbW9uaXRvcmluZyByb2xlLCBzZWUgW1NldHRpbmcgdXAgYW5kIGVuYWJsaW5nIEVuaGFuY2VkIE1vbml0b3JpbmddKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX01vbml0b3JpbmcuT1MuaHRtbCNVU0VSX01vbml0b3JpbmcuT1MuRW5hYmxpbmcpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBJZiBgYE1vbml0b3JpbmdJbnRlcnZhbGBgIGlzIHNldCB0byBhIHZhbHVlIG90aGVyIHRoYW4gYGAwYGAsIHN1cHBseSBhIGBgTW9uaXRvcmluZ1JvbGVBcm5gYCB2YWx1ZS5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbk1vbml0b3JpbmdSb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuZXR3b3JrIHR5cGUgb2YgdGhlIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgdmFsdWVzOlxuICogICArICAgYGBJUFY0YGAgXG4gKiAgICsgICBgYERVQUxgYCBcbiAqICAgXG4gKiAgVGhlIG5ldHdvcmsgdHlwZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBgYERCU3VibmV0R3JvdXBgYCBzcGVjaWZpZWQgZm9yIHRoZSBEQiBjbHVzdGVyLiBBIGBgREJTdWJuZXRHcm91cGBgIGNhbiBzdXBwb3J0IG9ubHkgdGhlIElQdjQgcHJvdG9jb2wgb3IgdGhlIElQdjQgYW5kIElQdjYgcHJvdG9jb2xzIChgYERVQUxgYCkuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbV29ya2luZyB3aXRoIGEgREIgaW5zdGFuY2UgaW4gYSBWUENdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1ZQQy5Xb3JraW5nV2l0aFJEU0luc3RhbmNlaW5hVlBDLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbk5ldHdvcmtUeXBlPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIHR1cm4gb24gUGVyZm9ybWFuY2UgSW5zaWdodHMgZm9yIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIEFtYXpvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfUGVyZkluc2lnaHRzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblBlcmZvcm1hbmNlSW5zaWdodHNFbmFibGVkPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgQVdTIEtNUyBrZXkgaWRlbnRpZmllciBmb3IgZW5jcnlwdGlvbiBvZiBQZXJmb3JtYW5jZSBJbnNpZ2h0cyBkYXRhLlxuICogIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIGlzIHRoZSBrZXkgQVJOLCBrZXkgSUQsIGFsaWFzIEFSTiwgb3IgYWxpYXMgbmFtZSBmb3IgdGhlIEtNUyBrZXkuXG4gKiAgSWYgeW91IGRvbid0IHNwZWNpZnkgYSB2YWx1ZSBmb3IgYGBQZXJmb3JtYW5jZUluc2lnaHRzS01TS2V5SWRgYCwgdGhlbiBBbWF6b24gUkRTIHVzZXMgeW91ciBkZWZhdWx0IEtNUyBrZXkuIFRoZXJlIGlzIGEgZGVmYXVsdCBLTVMga2V5IGZvciB5b3VyIEFXUy1hY2NvdW50LiBZb3VyIEFXUy1hY2NvdW50IGhhcyBhIGRpZmZlcmVudCBkZWZhdWx0IEtNUyBrZXkgZm9yIGVhY2ggQVdTLVJlZ2lvbi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblBlcmZvcm1hbmNlSW5zaWdodHNLbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGRheXMgdG8gcmV0YWluIFBlcmZvcm1hbmNlIEluc2lnaHRzIGRhdGEuIFdoZW4gY3JlYXRpbmcgYSBEQiBjbHVzdGVyIHdpdGhvdXQgZW5hYmxpbmcgUGVyZm9ybWFuY2UgSW5zaWdodHMsIHlvdSBjYW4ndCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXIgYGBQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kYGAuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogIFZhbGlkIFZhbHVlczpcbiAqICAgKyAgIGBgN2BgIFxuICogICArICAqbW9udGgqICogMzEsIHdoZXJlICptb250aCogaXMgYSBudW1iZXIgb2YgbW9udGhzIGZyb20gMS0yMy4gRXhhbXBsZXM6IGBgOTNgYCAoMyBtb250aHMgKiAzMSksIGBgMzQxYGAgKDExIG1vbnRocyAqIDMxKSwgYGA1ODlgYCAoMTkgbW9udGhzICogMzEpXG4gKiAgICsgICBgYDczMWBgIFxuICogICBcbiAqICBEZWZhdWx0OiBgYDdgYCBkYXlzXG4gKiAgSWYgeW91IHNwZWNpZnkgYSByZXRlbnRpb24gcGVyaW9kIHRoYXQgaXNuJ3QgdmFsaWQsIHN1Y2ggYXMgYGA5NGBgLCBBbWF6b24gUkRTIGlzc3VlcyBhbiBlcnJvci5cbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBUaGUgcG9ydCBudW1iZXIgb24gd2hpY2ggdGhlIERCIGluc3RhbmNlcyBpbiB0aGUgREIgY2x1c3RlciBhY2NlcHQgY29ubmVjdGlvbnMuXG4gKiAgRGVmYXVsdDpcbiAqICAgKyAgV2hlbiBgYEVuZ2luZU1vZGVgYCBpcyBgYHByb3Zpc2lvbmVkYGAsIGBgMzMwNmBgIChmb3IgYm90aCBBdXJvcmEgTXlTUUwgYW5kIEF1cm9yYSBQb3N0Z3JlU1FMKVxuICogICArICBXaGVuIGBgRW5naW5lTW9kZWBgIGlzIGBgc2VydmVybGVzc2BgOlxuICogICArICBgYDMzMDZgYCB3aGVuIGBgRW5naW5lYGAgaXMgYGBhdXJvcmFgYCBvciBgYGF1cm9yYS1teXNxbGBgXG4gKiAgICsgIGBgNTQzMmBgIHdoZW4gYGBFbmdpbmVgYCBpcyBgYGF1cm9yYS1wb3N0Z3Jlc3FsYGBcbiAqICAgXG4gKiAgIFxuICogICBUaGUgYGBObyBpbnRlcnJ1cHRpb25gYCBvbiB1cGRhdGUgYmVoYXZpb3Igb25seSBhcHBsaWVzIHRvIERCIGNsdXN0ZXJzLiBJZiB5b3UgYXJlIHVwZGF0aW5nIGEgREIgaW5zdGFuY2UsIHNlZSBbUG9ydF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmRzLWRhdGFiYXNlLWluc3RhbmNlLmh0bWwjY2ZuLXJkcy1kYmluc3RhbmNlLXBvcnQpIGZvciB0aGUgQVdTOjpSRFM6OkRCSW5zdGFuY2UgcmVzb3VyY2UuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5Qb3J0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBkYWlseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBhdXRvbWF0ZWQgYmFja3VwcyBhcmUgY3JlYXRlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQmFja3VwIFdpbmRvd10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0F1cm9yYS5NYW5hZ2luZy5CYWNrdXBzLmh0bWwjQXVyb3JhLk1hbmFnaW5nLkJhY2t1cHMuQmFja3VwV2luZG93KSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZS4qXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgaW4gdGhlIGZvcm1hdCBgYGhoMjQ6bWktaGgyNDptaWBgLlxuICogICArICBNdXN0IGJlIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogICArICBNdXN0IG5vdCBjb25mbGljdCB3aXRoIHRoZSBwcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93LlxuICogICArICBNdXN0IGJlIGF0IGxlYXN0IDMwIG1pbnV0ZXMuXG4gKiAgIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5QcmVmZXJyZWRCYWNrdXBXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogVGhlIHdlZWtseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBzeXN0ZW0gbWFpbnRlbmFuY2UgY2FuIG9jY3VyLCBpbiBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKS5cbiAqICBGb3JtYXQ6IGBgZGRkOmhoMjQ6bWktZGRkOmhoMjQ6bWlgYFxuICogIFRoZSBkZWZhdWx0IGlzIGEgMzAtbWludXRlIHdpbmRvdyBzZWxlY3RlZCBhdCByYW5kb20gZnJvbSBhbiA4LWhvdXIgYmxvY2sgb2YgdGltZSBmb3IgZWFjaCBBV1MgUmVnaW9uLCBvY2N1cnJpbmcgb24gYSByYW5kb20gZGF5IG9mIHRoZSB3ZWVrLiBUbyBzZWUgdGhlIHRpbWUgYmxvY2tzIGF2YWlsYWJsZSwgc2VlIFtNYWludGFpbmluZyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1VwZ3JhZGVEQkluc3RhbmNlLk1haW50ZW5hbmNlLmh0bWwjQWRqdXN0aW5nVGhlTWFpbnRlbmFuY2VXaW5kb3cuQXVyb3JhKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZS4qXG4gKiAgVmFsaWQgRGF5czogTW9uLCBUdWUsIFdlZCwgVGh1LCBGcmksIFNhdCwgU3VuLlxuICogIENvbnN0cmFpbnRzOiBNaW5pbXVtIDMwLW1pbnV0ZSB3aW5kb3cuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBjbHVzdGVyIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUuXG4gKiAgV2hlbiB0aGUgREIgY2x1c3RlciBpcyBwdWJsaWNseSBhY2Nlc3NpYmxlIGFuZCB5b3UgY29ubmVjdCBmcm9tIG91dHNpZGUgb2YgdGhlIERCIGNsdXN0ZXIncyB2aXJ0dWFsIHByaXZhdGUgY2xvdWQgKFZQQyksIGl0cyBEb21haW4gTmFtZSBTeXN0ZW0gKEROUykgZW5kcG9pbnQgcmVzb2x2ZXMgdG8gdGhlIHB1YmxpYyBJUCBhZGRyZXNzLiBXaGVuIHlvdSBjb25uZWN0IGZyb20gd2l0aGluIHRoZSBzYW1lIFZQQyBhcyB0aGUgREIgY2x1c3RlciwgdGhlIGVuZHBvaW50IHJlc29sdmVzIHRvIHRoZSBwcml2YXRlIElQIGFkZHJlc3MuIEFjY2VzcyB0byB0aGUgREIgY2x1c3RlciBpcyB1bHRpbWF0ZWx5IGNvbnRyb2xsZWQgYnkgdGhlIHNlY3VyaXR5IGdyb3VwIGl0IHVzZXMuIFRoYXQgcHVibGljIGFjY2VzcyBpc24ndCBwZXJtaXR0ZWQgaWYgdGhlIHNlY3VyaXR5IGdyb3VwIGFzc2lnbmVkIHRvIHRoZSBEQiBjbHVzdGVyIGRvZXNuJ3QgcGVybWl0IGl0LlxuICogIFdoZW4gdGhlIERCIGNsdXN0ZXIgaXNuJ3QgcHVibGljbHkgYWNjZXNzaWJsZSwgaXQgaXMgYW4gaW50ZXJuYWwgREIgY2x1c3RlciB3aXRoIGEgRE5TIG5hbWUgdGhhdCByZXNvbHZlcyB0byBhIHByaXZhdGUgSVAgYWRkcmVzcy5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgRGVmYXVsdDogVGhlIGRlZmF1bHQgYmVoYXZpb3IgdmFyaWVzIGRlcGVuZGluZyBvbiB3aGV0aGVyIGBgREJTdWJuZXRHcm91cE5hbWVgYCBpcyBzcGVjaWZpZWQuXG4gKiAgSWYgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgIGlzbid0IHNwZWNpZmllZCwgYW5kIGBgUHVibGljbHlBY2Nlc3NpYmxlYGAgaXNuJ3Qgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nIGFwcGxpZXM6XG4gKiAgICsgIElmIHRoZSBkZWZhdWx0IFZQQyBpbiB0aGUgdGFyZ2V0IFJlZ2lvbiBkb2VzbuKAmXQgaGF2ZSBhbiBpbnRlcm5ldCBnYXRld2F5IGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgY2x1c3RlciBpcyBwcml2YXRlLlxuICogICArICBJZiB0aGUgZGVmYXVsdCBWUEMgaW4gdGhlIHRhcmdldCBSZWdpb24gaGFzIGFuIGludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgdG8gaXQsIHRoZSBEQiBjbHVzdGVyIGlzIHB1YmxpYy5cbiAqICAgXG4gKiAgSWYgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgIGlzIHNwZWNpZmllZCwgYW5kIGBgUHVibGljbHlBY2Nlc3NpYmxlYGAgaXNuJ3Qgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nIGFwcGxpZXM6XG4gKiAgICsgIElmIHRoZSBzdWJuZXRzIGFyZSBwYXJ0IG9mIGEgVlBDIHRoYXQgZG9lc27igJl0IGhhdmUgYW4gaW50ZXJuZXQgZ2F0ZXdheSBhdHRhY2hlZCB0byBpdCwgdGhlIERCIGNsdXN0ZXIgaXMgcHJpdmF0ZS5cbiAqICAgKyAgSWYgdGhlIHN1Ym5ldHMgYXJlIHBhcnQgb2YgYSBWUEMgdGhhdCBoYXMgYW4gaW50ZXJuZXQgZ2F0ZXdheSBhdHRhY2hlZCB0byBpdCwgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljLlxuICovXG5QdWJsaWNseUFjY2Vzc2libGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc291cmNlIERCIGluc3RhbmNlIG9yIERCIGNsdXN0ZXIgaWYgdGhpcyBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQgYXMgYSByZWFkIHJlcGxpY2EuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5SZXBsaWNhdGlvblNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRhdGUgYW5kIHRpbWUgdG8gcmVzdG9yZSB0aGUgREIgY2x1c3RlciB0by5cbiAqICBWYWxpZCBWYWx1ZXM6IFZhbHVlIG11c3QgYmUgYSB0aW1lIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpIGZvcm1hdFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGJlZm9yZSB0aGUgbGF0ZXN0IHJlc3RvcmFibGUgdGltZSBmb3IgdGhlIERCIGluc3RhbmNlXG4gKiAgICsgIE11c3QgYmUgc3BlY2lmaWVkIGlmIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBwYXJhbWV0ZXIgaXNuJ3QgcHJvdmlkZWRcbiAqICAgKyAgQ2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBgYFVzZUxhdGVzdFJlc3RvcmFibGVUaW1lYGAgcGFyYW1ldGVyIGlzIGVuYWJsZWRcbiAqICAgKyAgQ2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBgYFJlc3RvcmVUeXBlYGAgcGFyYW1ldGVyIGlzIGBgY29weS1vbi13cml0ZWBgXG4gKiAgIFxuICogIFRoaXMgcHJvcGVydHkgbXVzdCBiZSB1c2VkIHdpdGggYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHkuIFRoZSByZXN1bHRpbmcgY2x1c3RlciB3aWxsIGhhdmUgdGhlIGlkZW50aWZpZXIgdGhhdCBtYXRjaGVzIHRoZSB2YWx1ZSBvZiB0aGUgYGBEQmNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHkuXG4gKiAgRXhhbXBsZTogYGAyMDE1LTAzLTA3VDIzOjQ1OjAwWmBgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblJlc3RvcmVUb1RpbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzdG9yZSB0byBiZSBwZXJmb3JtZWQuIFlvdSBjYW4gc3BlY2lmeSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gKiAgICsgIGBgZnVsbC1jb3B5YGAgLSBUaGUgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgYXMgYSBmdWxsIGNvcHkgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyLlxuICogICArICBgYGNvcHktb24td3JpdGVgYCAtIFRoZSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBhcyBhIGNsb25lIG9mIHRoZSBzb3VyY2UgREIgY2x1c3Rlci5cbiAqICAgXG4gKiAgSWYgeW91IGRvbid0IHNwZWNpZnkgYSBgYFJlc3RvcmVUeXBlYGAgdmFsdWUsIHRoZW4gdGhlIG5ldyBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIGFzIGEgZnVsbCBjb3B5IG9mIHRoZSBzb3VyY2UgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUmVzdG9yZVR5cGU/OiBzdHJpbmdcblNlcnZlcmxlc3NWMlNjYWxpbmdDb25maWd1cmF0aW9uPzogU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb25cblNjYWxpbmdDb25maWd1cmF0aW9uPzogU2NhbGluZ0NvbmZpZ3VyYXRpb25cbi8qKlxuICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBEQiBzbmFwc2hvdCBvciBEQiBjbHVzdGVyIHNuYXBzaG90IHRvIHJlc3RvcmUgZnJvbS5cbiAqICBZb3UgY2FuIHVzZSBlaXRoZXIgdGhlIG5hbWUgb3IgdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIHRvIHNwZWNpZnkgYSBEQiBjbHVzdGVyIHNuYXBzaG90LiBIb3dldmVyLCB5b3UgY2FuIHVzZSBvbmx5IHRoZSBBUk4gdG8gc3BlY2lmeSBhIERCIHNuYXBzaG90LlxuICogIEFmdGVyIHlvdSByZXN0b3JlIGEgREIgY2x1c3RlciB3aXRoIGEgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgeW91IG11c3Qgc3BlY2lmeSB0aGUgc2FtZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IGZvciBhbnkgZnV0dXJlIHVwZGF0ZXMgdG8gdGhlIERCIGNsdXN0ZXIuIFdoZW4geW91IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSBmb3IgYW4gdXBkYXRlLCB0aGUgREIgY2x1c3RlciBpcyBub3QgcmVzdG9yZWQgZnJvbSB0aGUgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbiBlbXB0eSBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IHRvIHJlc3RvcmUgYSBEQiBjbHVzdGVyIChhcyBvcHBvc2VkIHRvIHNwZWNpZnlpbmcgaXQgZm9yIERCIGNsdXN0ZXIgdXBkYXRlcyksIHRoZW4gZG9uJ3Qgc3BlY2lmeSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKiAgICsgICBgYEdsb2JhbENsdXN0ZXJJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYE1hc3RlclVzZXJuYW1lYGAgXG4gKiAgICsgICBgYE1hc3RlclVzZXJQYXNzd29yZGBgIFxuICogICArICAgYGBSZXBsaWNhdGlvblNvdXJjZUlkZW50aWZpZXJgYCBcbiAqICAgKyAgIGBgUmVzdG9yZVR5cGVgYCBcbiAqICAgKyAgIGBgU291cmNlREJDbHVzdGVySWRlbnRpZmllcmBgIFxuICogICArICAgYGBTb3VyY2VSZWdpb25gYCBcbiAqICAgKyAgYGBTdG9yYWdlRW5jcnlwdGVkYGAgKGZvciBhbiBlbmNyeXB0ZWQgc25hcHNob3QpXG4gKiAgICsgICBgYFVzZUxhdGVzdFJlc3RvcmFibGVUaW1lYGAgXG4gKiAgIFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IG1hdGNoIHRoZSBpZGVudGlmaWVyIG9mIGFuIGV4aXN0aW5nIFNuYXBzaG90LlxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuU25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nXG4vKipcbiAqIFdoZW4gcmVzdG9yaW5nIGEgREIgY2x1c3RlciB0byBhIHBvaW50IGluIHRpbWUsIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBzb3VyY2UgREIgY2x1c3RlciBmcm9tIHdoaWNoIHRvIHJlc3RvcmUuXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgbWF0Y2ggdGhlIGlkZW50aWZpZXIgb2YgYW4gZXhpc3RpbmcgREJDbHVzdGVyLlxuICogICArICBDYW5ub3QgYmUgc3BlY2lmaWVkIGlmIGBgU291cmNlRGJDbHVzdGVyUmVzb3VyY2VJZGBgIGlzIHNwZWNpZmllZC4gWW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgb3IgYGBTb3VyY2VEYkNsdXN0ZXJSZXNvdXJjZUlkYGAsIGJ1dCBub3QgYm90aC5cbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIHJlc291cmNlIElEIG9mIHRoZSBzb3VyY2UgREIgY2x1c3RlciBmcm9tIHdoaWNoIHRvIHJlc3RvcmUuXG4gKi9cblNvdXJjZURiQ2x1c3RlclJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBSZWdpb24gd2hpY2ggY29udGFpbnMgdGhlIHNvdXJjZSBEQiBjbHVzdGVyIHdoZW4gcmVwbGljYXRpbmcgYSBEQiBjbHVzdGVyLiBGb3IgZXhhbXBsZSwgYGB1cy1lYXN0LTFgYC4gXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5Tb3VyY2VSZWdpb24/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYEttc0tleUlkYGAgcHJvcGVydHksIHRoZW4geW91IG11c3QgZW5hYmxlIGVuY3J5cHRpb24uXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU291cmNlREJDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIGFuZCBpZiB0aGUgREIgY2x1c3RlciBpcyBlbmNyeXB0ZWQsIHRoZSBzcGVjaWZpZWQgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGlzIHVzZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgYW5kIHRoZSBzcGVjaWZpZWQgc25hcHNob3QgaXMgZW5jcnlwdGVkLCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc25hcHNob3QsIGFuZCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIGFuZCB0aGUgc3BlY2lmaWVkIHNuYXBzaG90IGlzbid0IGVuY3J5cHRlZCwgeW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBzcGVjaWZ5IHRoYXQgdGhlIHJlc3RvcmVkIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLiBTcGVjaWZ5IHRoZSBgYEttc0tleUlkYGAgcHJvcGVydHkgZm9yIHRoZSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gSWYgeW91IGRvbid0IHdhbnQgdGhlIHJlc3RvcmVkIERCIGNsdXN0ZXIgdG8gYmUgZW5jcnlwdGVkLCB0aGVuIGRvbid0IHNldCB0aGlzIHByb3BlcnR5IG9yIHNldCBpdCB0byBgYGZhbHNlYGAuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGJvdGggdGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIGFuZCBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnRpZXMgd2l0aG91dCBzcGVjaWZ5aW5nIHRoZSBgYEttc0tleUlkYGAgcHJvcGVydHksIHRoZW4gdGhlIHJlc3RvcmVkIERCIGNsdXN0ZXIgaW5oZXJpdHMgdGhlIGVuY3J5cHRpb24gc2V0dGluZ3MgZnJvbSB0aGUgREIgc25hcHNob3QgdGhhdCBwcm92aWRlLlxuICogICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuU3RvcmFnZUVuY3J5cHRlZD86IGJvb2xlYW5cblN0b3JhZ2VUaHJvdWdocHV0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzdG9yYWdlIHR5cGUgdG8gYXNzb2NpYXRlIHdpdGggdGhlIERCIGNsdXN0ZXIuXG4gKiAgRm9yIGluZm9ybWF0aW9uIG9uIHN0b3JhZ2UgdHlwZXMgZm9yIEF1cm9yYSBEQiBjbHVzdGVycywgc2VlIFtTdG9yYWdlIGNvbmZpZ3VyYXRpb25zIGZvciBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLk92ZXJ2aWV3LlN0b3JhZ2VSZWxpYWJpbGl0eS5odG1sI2F1cm9yYS1zdG9yYWdlLXR5cGUpLiBGb3IgaW5mb3JtYXRpb24gb24gc3RvcmFnZSB0eXBlcyBmb3IgTXVsdGktQVogREIgY2x1c3RlcnMsIHNlZSBbU2V0dGluZ3MgZm9yIGNyZWF0aW5nIE11bHRpLUFaIERCIGNsdXN0ZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvY3JlYXRlLW11bHRpLWF6LWRiLWNsdXN0ZXIuaHRtbCNjcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci1zZXR0aW5ncykuXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgV2hlbiBzcGVjaWZpZWQgZm9yIGEgTXVsdGktQVogREIgY2x1c3RlciwgYSB2YWx1ZSBmb3IgdGhlIGBgSW9wc2BgIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICBBdXJvcmEgREIgY2x1c3RlcnMgLSBgYGF1cm9yYSB8IGF1cm9yYS1pb3B0MWBgXG4gKiAgICsgIE11bHRpLUFaIERCIGNsdXN0ZXJzIC0gYGBpbzEgfCBpbzIgfCBncDNgYFxuICogICBcbiAqICBEZWZhdWx0OlxuICogICArICBBdXJvcmEgREIgY2x1c3RlcnMgLSBgYGF1cm9yYWBgXG4gKiAgICsgIE11bHRpLUFaIERCIGNsdXN0ZXJzIC0gYGBpbzFgYFxuICogICBcbiAqICAgV2hlbiB5b3UgY3JlYXRlIGFuIEF1cm9yYSBEQiBjbHVzdGVyIHdpdGggdGhlIHN0b3JhZ2UgdHlwZSBzZXQgdG8gYGBhdXJvcmEtaW9wdDFgYCwgdGhlIHN0b3JhZ2UgdHlwZSBpcyByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UuIFRoZSBzdG9yYWdlIHR5cGUgaXNuJ3QgcmV0dXJuZWQgd2hlbiB5b3Ugc2V0IGl0IHRvIGBgYXVyb3JhYGAuXG4gKi9cblN0b3JhZ2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRhZ3MgdG8gYXNzaWduIHRvIHRoZSBEQiBjbHVzdGVyLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVzdG9yZSB0aGUgREIgY2x1c3RlciB0byB0aGUgbGF0ZXN0IHJlc3RvcmFibGUgYmFja3VwIHRpbWUuIEJ5IGRlZmF1bHQsIHRoZSBEQiBjbHVzdGVyIGlzIG5vdCByZXN0b3JlZCB0byB0aGUgbGF0ZXN0IHJlc3RvcmFibGUgYmFja3VwIHRpbWUuIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5Vc2VMYXRlc3RSZXN0b3JhYmxlVGltZT86IGJvb2xlYW5cbi8qKlxuICogQSBsaXN0IG9mIEVDMiBWUEMgc2VjdXJpdHkgZ3JvdXBzIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci5cbiAqICBJZiB5b3UgcGxhbiB0byB1cGRhdGUgdGhlIHJlc291cmNlLCBkb24ndCBzcGVjaWZ5IFZQQyBzZWN1cml0eSBncm91cHMgaW4gYSBzaGFyZWQgVlBDLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5WcGNTZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnQge1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGNvbm5lY3Rpb24gZW5kcG9pbnQgZm9yIHRoZSBwcmltYXJ5IGluc3RhbmNlIG9mIHRoZSBEQiBjbHVzdGVyLlxuICovXG5BZGRyZXNzPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgcG9ydCB0aGF0IHRoZSBkYXRhYmFzZSBlbmdpbmUgaXMgbGlzdGVuaW5nIG9uLlxuICovXG5Qb3J0Pzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFJlYWRFbmRwb2ludCB7XG4vKipcbiAqIFRoZSBob3N0IGFkZHJlc3Mgb2YgdGhlIHJlYWRlciBlbmRwb2ludC5cbiAqL1xuQWRkcmVzcz86IHN0cmluZ1xufVxuLyoqXG4gKiBEZXNjcmliZXMgYW4gQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgREIgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEQkNsdXN0ZXJSb2xlIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGZlYXR1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGUuIElBTSByb2xlcyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggYSBEQiBjbHVzdGVyIGdyYW50IHBlcm1pc3Npb24gZm9yIHRoZSBEQiBjbHVzdGVyIHRvIGFjY2VzcyBvdGhlciBBV1Mgc2VydmljZXMgb24geW91ciBiZWhhbGYuIEZvciB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZmVhdHVyZSBuYW1lcywgc2VlIHRoZSBgYFN1cHBvcnRlZEZlYXR1cmVOYW1lc2BgIGRlc2NyaXB0aW9uIGluIFtEQkVuZ2luZVZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfREJFbmdpbmVWZXJzaW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuRmVhdHVyZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgY2x1c3Rlci5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzZWNyZXQgbWFuYWdlZCBieSBSRFMgaW4gQVdTIFNlY3JldHMgTWFuYWdlciBmb3IgdGhlIG1hc3RlciB1c2VyIHBhc3N3b3JkLlxuICogICBXaGVuIHlvdSByZXN0b3JlIGEgREIgY2x1c3RlciBmcm9tIGEgc25hcHNob3QsIEFtYXpvbiBSRFMgZ2VuZXJhdGVzIGEgbmV3IHNlY3JldCBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIHNlY3JldCBzcGVjaWZpZWQgaW4gdGhlIGBgU2VjcmV0QXJuYGAgcHJvcGVydHkuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSByZXN0b3JlZCBEQiBjbHVzdGVyIGlzIHNlY3VyZWx5IG1hbmFnZWQgd2l0aCBhIGRlZGljYXRlZCBzZWNyZXQuIFRvIG1haW50YWluIGNvbnNpc3RlbnQgaW50ZWdyYXRpb24gd2l0aCB5b3VyIGFwcGxpY2F0aW9uLCB5b3UgbWlnaHQgbmVlZCB0byB1cGRhdGUgcmVzb3VyY2UgY29uZmlndXJhdGlvbnMgdG8gcmVmZXJlbmNlIHRoZSBuZXdseSBjcmVhdGVkIHNlY3JldC5cbiAqICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIGFuZCBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlclVzZXJTZWNyZXQge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgaXMgYSByZXR1cm4gdmFsdWUgdGhhdCB5b3UgY2FuIHJldHJpZXZlIHVzaW5nIHRoZSBgYEZuOjpHZXRBdHRgYCBpbnRyaW5zaWMgZnVuY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1JldHVybiB2YWx1ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1yZHMtZGJjbHVzdGVyLmh0bWwjYXdzLXJlc291cmNlLXJkcy1kYmNsdXN0ZXItcmV0dXJuLXZhbHVlcykuXG4gKi9cblNlY3JldEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVdTIEtNUyBrZXkgaWRlbnRpZmllciB0aGF0IGlzIHVzZWQgdG8gZW5jcnlwdCB0aGUgc2VjcmV0LlxuICovXG5LbXNLZXlJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIG9mIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIFYyIERCIGNsdXN0ZXIuIFxuICogIFRoaXMgcHJvcGVydHkgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyLiBGb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjEsIFVzZSB0aGUgYGBTY2FsaW5nQ29uZmlndXJhdGlvbmBgIHByb3BlcnR5LlxuICogIFZhbGlkIGZvcjogQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgY2x1c3RlcnMgb25seVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlcmxlc3NWMlNjYWxpbmdDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIEF1cm9yYSBjYXBhY2l0eSB1bml0cyAoQUNVcykgZm9yIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgY2x1c3Rlci4gWW91IGNhbiBzcGVjaWZ5IEFDVSB2YWx1ZXMgaW4gaGFsZi1zdGVwIGluY3JlbWVudHMsIHN1Y2ggYXMgOCwgOC41LCA5LCBhbmQgc28gb24uIEZvciBBdXJvcmEgdmVyc2lvbnMgdGhhdCBzdXBwb3J0IHRoZSBBdXJvcmEgU2VydmVybGVzcyB2MiBhdXRvLXBhdXNlIGZlYXR1cmUsIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IHlvdSBjYW4gdXNlIGlzIDAuIEZvciB2ZXJzaW9ucyB0aGF0IGRvbid0IHN1cHBvcnQgQXVyb3JhIFNlcnZlcmxlc3MgdjIgYXV0by1wYXVzZSwgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgeW91IGNhbiB1c2UgaXMgMC41LlxuICovXG5NaW5DYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgQXVyb3JhIGNhcGFjaXR5IHVuaXRzIChBQ1VzKSBmb3IgYSBEQiBpbnN0YW5jZSBpbiBhbiBBdXJvcmEgU2VydmVybGVzcyB2MiBjbHVzdGVyLiBZb3UgY2FuIHNwZWNpZnkgQUNVIHZhbHVlcyBpbiBoYWxmLXN0ZXAgaW5jcmVtZW50cywgc3VjaCBhcyA0MCwgNDAuNSwgNDEsIGFuZCBzbyBvbi4gVGhlIGxhcmdlc3QgdmFsdWUgdGhhdCB5b3UgY2FuIHVzZSBpcyAxMjguXG4gKiAgVGhlIG1heGltdW0gY2FwYWNpdHkgbXVzdCBiZSBoaWdoZXIgdGhhbiAwLjUgQUNVcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ2hvb3NpbmcgdGhlIG1heGltdW0gQXVyb3JhIFNlcnZlcmxlc3MgdjIgY2FwYWNpdHkgc2V0dGluZyBmb3IgYSBjbHVzdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvYXVyb3JhLXNlcnZlcmxlc3MtdjIuc2V0dGluZy1jYXBhY2l0eS5odG1sI2F1cm9yYS1zZXJ2ZXJsZXNzLXYyLm1heF9jYXBhY2l0eV9jb25zaWRlcmF0aW9ucykgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIEF1cm9yYSBhdXRvbWF0aWNhbGx5IHNldHMgY2VydGFpbiBwYXJhbWV0ZXJzIGZvciBBdXJvcmEgU2VydmVybGVzcyBWMiBEQiBpbnN0YW5jZXMgdG8gdmFsdWVzIHRoYXQgZGVwZW5kIG9uIHRoZSBtYXhpbXVtIEFDVSB2YWx1ZSBpbiB0aGUgY2FwYWNpdHkgcmFuZ2UuIFdoZW4geW91IHVwZGF0ZSB0aGUgbWF4aW11bSBjYXBhY2l0eSB2YWx1ZSwgdGhlIGBgUGFyYW1ldGVyQXBwbHlTdGF0dXNgYCB2YWx1ZSBmb3IgdGhlIERCIGluc3RhbmNlIGNoYW5nZXMgdG8gYGBwZW5kaW5nLXJlYm9vdGBgLiBZb3UgY2FuIHVwZGF0ZSB0aGUgcGFyYW1ldGVyIHZhbHVlcyBieSByZWJvb3RpbmcgdGhlIERCIGluc3RhbmNlIGFmdGVyIGNoYW5naW5nIHRoZSBjYXBhY2l0eSByYW5nZS5cbiAqL1xuTWF4Q2FwYWNpdHk/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBhbiBBdXJvcmEgU2VydmVybGVzcyB2MiBEQiBpbnN0YW5jZSBtdXN0IGJlIGlkbGUgYmVmb3JlIEF1cm9yYSBhdHRlbXB0cyB0byBhdXRvbWF0aWNhbGx5IHBhdXNlIGl0LiBcbiAqICBTcGVjaWZ5IGEgdmFsdWUgYmV0d2VlbiAzMDAgc2Vjb25kcyAoZml2ZSBtaW51dGVzKSBhbmQgODYsNDAwIHNlY29uZHMgKG9uZSBkYXkpLiBUaGUgZGVmYXVsdCBpcyAzMDAgc2Vjb25kcy5cbiAqL1xuU2Vjb25kc1VudGlsQXV0b1BhdXNlPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gb2YgYW4gQXVyb3JhIFNlcnZlcmxlc3MgdjEgREIgY2x1c3Rlci5cbiAqICBUaGlzIHByb3BlcnR5IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MS4gRm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyLCBVc2UgdGhlIGBgU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb25gYCBwcm9wZXJ0eS5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBTZXJ2ZXJsZXNzIHYxIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FsaW5nQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGFsbG93IG9yIGRpc2FsbG93IGF1dG9tYXRpYyBwYXVzZSBmb3IgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgREIgZW5naW5lIG1vZGUuIEEgREIgY2x1c3RlciBjYW4gYmUgcGF1c2VkIG9ubHkgd2hlbiBpdCdzIGlkbGUgKGl0IGhhcyBubyBjb25uZWN0aW9ucykuXG4gKiAgIElmIGEgREIgY2x1c3RlciBpcyBwYXVzZWQgZm9yIG1vcmUgdGhhbiBzZXZlbiBkYXlzLCB0aGUgREIgY2x1c3RlciBtaWdodCBiZSBiYWNrZWQgdXAgd2l0aCBhIHNuYXBzaG90LiBJbiB0aGlzIGNhc2UsIHRoZSBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIHdoZW4gdGhlcmUgaXMgYSByZXF1ZXN0IHRvIGNvbm5lY3QgdG8gaXQuXG4gKi9cbkF1dG9QYXVzZT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1heGltdW0gY2FwYWNpdHkgZm9yIGFuIEF1cm9yYSBEQiBjbHVzdGVyIGluIGBgc2VydmVybGVzc2BgIERCIGVuZ2luZSBtb2RlLlxuICogIEZvciBBdXJvcmEgTXlTUUwsIHZhbGlkIGNhcGFjaXR5IHZhbHVlcyBhcmUgYGAxYGAsIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTI4YGAsIGFuZCBgYDI1NmBgLlxuICogIEZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDJgYCwgYGA0YGAsIGBgOGBgLCBgYDE2YGAsIGBgMzJgYCwgYGA2NGBgLCBgYDE5MmBgLCBhbmQgYGAzODRgYC5cbiAqICBUaGUgbWF4aW11bSBjYXBhY2l0eSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bSBjYXBhY2l0eS5cbiAqL1xuTWF4Q2FwYWNpdHk/OiBudW1iZXJcbi8qKlxuICogVGhlIG1pbmltdW0gY2FwYWNpdHkgZm9yIGFuIEF1cm9yYSBEQiBjbHVzdGVyIGluIGBgc2VydmVybGVzc2BgIERCIGVuZ2luZSBtb2RlLlxuICogIEZvciBBdXJvcmEgTXlTUUwsIHZhbGlkIGNhcGFjaXR5IHZhbHVlcyBhcmUgYGAxYGAsIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTI4YGAsIGFuZCBgYDI1NmBgLlxuICogIEZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDJgYCwgYGA0YGAsIGBgOGBgLCBgYDE2YGAsIGBgMzJgYCwgYGA2NGBgLCBgYDE5MmBgLCBhbmQgYGAzODRgYC5cbiAqICBUaGUgbWluaW11bSBjYXBhY2l0eSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbWF4aW11bSBjYXBhY2l0eS5cbiAqL1xuTWluQ2FwYWNpdHk/OiBudW1iZXJcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IEF1cm9yYSBTZXJ2ZXJsZXNzIHYxIHRyaWVzIHRvIGZpbmQgYSBzY2FsaW5nIHBvaW50IHRvIHBlcmZvcm0gc2VhbWxlc3Mgc2NhbGluZyBiZWZvcmUgZW5mb3JjaW5nIHRoZSB0aW1lb3V0IGFjdGlvbi4gVGhlIGRlZmF1bHQgaXMgMzAwLlxuICogIFNwZWNpZnkgYSB2YWx1ZSBiZXR3ZWVuIDYwIGFuZCA2MDAgc2Vjb25kcy5cbiAqL1xuU2Vjb25kc0JlZm9yZVRpbWVvdXQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHRpbWUsIGluIHNlY29uZHMsIGJlZm9yZSBhbiBBdXJvcmEgREIgY2x1c3RlciBpbiBgYHNlcnZlcmxlc3NgYCBtb2RlIGlzIHBhdXNlZC5cbiAqICBTcGVjaWZ5IGEgdmFsdWUgYmV0d2VlbiAzMDAgYW5kIDg2LDQwMCBzZWNvbmRzLlxuICovXG5TZWNvbmRzVW50aWxBdXRvUGF1c2U/OiBudW1iZXJcbi8qKlxuICogVGhlIGFjdGlvbiB0byB0YWtlIHdoZW4gdGhlIHRpbWVvdXQgaXMgcmVhY2hlZCwgZWl0aGVyIGBgRm9yY2VBcHBseUNhcGFjaXR5Q2hhbmdlYGAgb3IgYGBSb2xsYmFja0NhcGFjaXR5Q2hhbmdlYGAuXG4gKiAgYGBGb3JjZUFwcGx5Q2FwYWNpdHlDaGFuZ2VgYCBzZXRzIHRoZSBjYXBhY2l0eSB0byB0aGUgc3BlY2lmaWVkIHZhbHVlIGFzIHNvb24gYXMgcG9zc2libGUuXG4gKiAgYGBSb2xsYmFja0NhcGFjaXR5Q2hhbmdlYGAsIHRoZSBkZWZhdWx0LCBpZ25vcmVzIHRoZSBjYXBhY2l0eSBjaGFuZ2UgaWYgYSBzY2FsaW5nIHBvaW50IGlzbid0IGZvdW5kIGluIHRoZSB0aW1lb3V0IHBlcmlvZC5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBGb3JjZUFwcGx5Q2FwYWNpdHlDaGFuZ2VgYCwgY29ubmVjdGlvbnMgdGhhdCBwcmV2ZW50IEF1cm9yYSBTZXJ2ZXJsZXNzIHYxIGZyb20gZmluZGluZyBhIHNjYWxpbmcgcG9pbnQgbWlnaHQgYmUgZHJvcHBlZC5cbiAqICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQXV0b3NjYWxpbmcgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYxXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvYXVyb3JhLXNlcnZlcmxlc3MuaG93LWl0LXdvcmtzLmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MuaG93LWl0LXdvcmtzLmF1dG8tc2NhbGluZykgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5UaW1lb3V0QWN0aW9uPzogc3RyaW5nXG59XG4vKipcbiAqIE1ldGFkYXRhIGFzc2lnbmVkIHRvIGFuIEFtYXpvbiBSRFMgcmVzb3VyY2UgY29uc2lzdGluZyBvZiBhIGtleS12YWx1ZSBwYWlyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RhZ2dpbmcgQW1hem9uIFJEUyByZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIG9yIFtUYWdnaW5nIEFtYXpvbiBBdXJvcmEgYW5kIEFtYXpvbiBSRFMgcmVzb3VyY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvVVNFUl9UYWdnaW5nLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBBIGtleSBpcyB0aGUgcmVxdWlyZWQgbmFtZSBvZiB0aGUgdGFnLiBUaGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBmcm9tIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbid0IGJlIHByZWZpeGVkIHdpdGggYGBhd3M6YGAgb3IgYGByZHM6YGAuIFRoZSBzdHJpbmcgY2FuIG9ubHkgY29udGFpbiBvbmx5IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlLXNwYWNlLCAnXycsICcuJywgJzonLCAnLycsICc9JywgJysnLCAnLScsICdAJyAoSmF2YSByZWdleDogXCJeKFtcXFxccHtMfVxcXFxwe1p9XFxcXHB7Tn1fLjovPStcXFxcLUBdKikkXCIpLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBBIHZhbHVlIGlzIHRoZSBvcHRpb25hbCB2YWx1ZSBvZiB0aGUgdGFnLiBUaGUgc3RyaW5nIHZhbHVlIGNhbiBiZSBmcm9tIDEgdG8gMjU2IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbid0IGJlIHByZWZpeGVkIHdpdGggYGBhd3M6YGAgb3IgYGByZHM6YGAuIFRoZSBzdHJpbmcgY2FuIG9ubHkgY29udGFpbiBvbmx5IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlLXNwYWNlLCAnXycsICcuJywgJzonLCAnLycsICc9JywgJysnLCAnLScsICdAJyAoSmF2YSByZWdleDogXCJeKFtcXFxccHtMfVxcXFxwe1p9XFxcXHB7Tn1fLjovPStcXFxcLUBdKikkXCIpLlxuICovXG5WYWx1ZT86IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmNsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcmRzLWRiY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OlJEUzo6REJDbHVzdGVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXIgb3IgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjcmVhdGluZyBhbiBBdXJvcmEgREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuQ3JlYXRlSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgTXVsdGktQVogREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhIE11bHRpLUFaIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIFlvdSBjYW4gb25seSBjcmVhdGUgdGhpcyByZXNvdXJjZSBpbiBBV1MgUmVnaW9ucyB3aGVyZSBBbWF6b24gQXVyb3JhIG9yIE11bHRpLUFaIERCIGNsdXN0ZXJzIGFyZSBzdXBwb3J0ZWQuXG4gKiAgICAqVXBkYXRpbmcgREIgY2x1c3RlcnMqIFxuICogIFdoZW4gcHJvcGVydGllcyBsYWJlbGVkIFwiKlVwZGF0ZSByZXF1aXJlczoqW1JlcGxhY2VtZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtcmVwbGFjZW1lbnQpXCIgYXJlIHVwZGF0ZWQsIEFXUyBDbG91ZEZvcm1hdGlvbiBmaXJzdCBjcmVhdGVzIGEgcmVwbGFjZW1lbnQgREIgY2x1c3RlciwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBjbHVzdGVyLCBhbmQgZmluYWxseSBkZWxldGVzIHRoZSBvbGQgREIgY2x1c3Rlci5cbiAqICAgV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSB0YWtlIGEgc25hcHNob3Qgb2YgdGhlIGRhdGFiYXNlIGJlZm9yZSB1cGRhdGluZyB0aGUgc3RhY2suIElmIHlvdSBkb24ndCwgeW91IGxvc2UgdGhlIGRhdGEgd2hlbiBBV1MgQ2xvdWRGb3JtYXRpb24gcmVwbGFjZXMgeW91ciBEQiBjbHVzdGVyLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGNsdXN0ZXIgc28gdGhhdCB0aGVyZSdzIG5vIGFjdGl2aXR5IG9uIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gIENyZWF0ZSBhIHNuYXBzaG90IG9mIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDcmVhdGluZyBhIERCIGNsdXN0ZXIgc25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Q2x1c3Rlci5odG1sKS5cbiAqICAgMS4gIElmIHlvdSB3YW50IHRvIHJlc3RvcmUgeW91ciBEQiBjbHVzdGVyIHVzaW5nIGEgREIgY2x1c3RlciBzbmFwc2hvdCwgbW9kaWZ5IHRoZSB1cGRhdGVkIHRlbXBsYXRlIHdpdGggeW91ciBEQiBjbHVzdGVyIGNoYW5nZXMgYW5kIGFkZCB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSB3aXRoIHRoZSBJRCBvZiB0aGUgREIgY2x1c3RlciBzbmFwc2hvdCB0aGF0IHlvdSB3YW50IHRvIHVzZS5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgd2l0aCBhIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBmb3IgYW55IGZ1dHVyZSB1cGRhdGVzIHRvIHRoZSBEQiBjbHVzdGVyLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIGZyb20gdGhlIERCIGNsdXN0ZXIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbiBlbXB0eSBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLlxuICogICAxLiAgVXBkYXRlIHRoZSBzdGFjay5cbiAqICAgXG4gKiAgIEN1cnJlbnRseSwgd2hlbiB5b3UgYXJlIHVwZGF0aW5nIHRoZSBzdGFjayBmb3IgYW4gQXVyb3JhIFNlcnZlcmxlc3MgREIgY2x1c3RlciwgeW91IGNhbid0IGluY2x1ZGUgY2hhbmdlcyB0byBhbnkgb3RoZXIgcHJvcGVydGllcyB3aGVuIHlvdSBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IGBgUHJlZmVycmVkQmFja3VwV2luZG93YGAsIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCwgYW5kIGBgUG9ydGBgLiBUaGlzIGxpbWl0YXRpb24gZG9lc24ndCBhcHBseSB0byBwcm92aXNpb25lZCBEQiBjbHVzdGVycy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoaXMgcmVzb3VyY2UsIHNlZSBgYE1vZGlmeURCQ2x1c3RlcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBzdGFja3MsIHNlZSBbQ2xvdWRGb3JtYXRpb24gU3RhY2tzIFVwZGF0ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MuaHRtbCkuXG4gKiAgICpEZWxldGluZyBEQiBjbHVzdGVycyogXG4gKiAgVGhlIGRlZmF1bHQgYGBEZWxldGlvblBvbGljeWBgIGZvciBgYEFXUzo6UkRTOjpEQkNsdXN0ZXJgYCByZXNvdXJjZXMgaXMgYGBTbmFwc2hvdGBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgcmVzb3VyY2VzLCBzZWUgW0RlbGV0aW9uUG9saWN5IEF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLWF0dHJpYnV0ZS1kZWxldGlvbnBvbGljeS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQkNMVVNURVIge1xuRW5kcG9pbnQ/OiBFbmRwb2ludFxuUmVhZEVuZHBvaW50PzogUmVhZEVuZHBvaW50XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYWxsb2NhdGUgdG8gZWFjaCBEQiBpbnN0YW5jZSBpbiB0aGUgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXJcbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgY2x1c3Rlci4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFtYXpvbiBXZWIgU2VydmljZXMgb24geW91ciBiZWhhbGYuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkFzc29jaWF0ZWRSb2xlcz86IERCQ2x1c3RlclJvbGVbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIHdoZXJlIGluc3RhbmNlcyBpbiB0aGUgREIgY2x1c3RlciBjYW4gYmUgY3JlYXRlZC4gRm9yIGluZm9ybWF0aW9uIG9uIEFXUyBSZWdpb25zIGFuZCBBdmFpbGFiaWxpdHkgWm9uZXMsIHNlZSBbQ2hvb3NpbmcgdGhlIFJlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgREIgY2x1c3RlciBkdXJpbmcgdGhlIG1haW50ZW5hbmNlIHdpbmRvdy4gQnkgZGVmYXVsdCwgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF1dG9tYXRpYyBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVzLCBzZWUgW0F1dG9tYXRpY2FsbHkgdXBncmFkaW5nIHRoZSBtaW5vciBlbmdpbmUgdmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuVXBncmFkaW5nLmh0bWwjVVNFUl9VcGdyYWRlREJJbnN0YW5jZS5VcGdyYWRpbmcuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVzKS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YXJnZXQgYmFja3RyYWNrIHdpbmRvdywgaW4gc2Vjb25kcy4gVG8gZGlzYWJsZSBiYWNrdHJhY2tpbmcsIHNldCB0aGlzIHZhbHVlIHRvIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBNeVNRTCBEQiBjbHVzdGVycyBvbmx5XG4gKiAgRGVmYXVsdDogYGAwYGBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgSWYgc3BlY2lmaWVkLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IHRvIGEgbnVtYmVyIGZyb20gMCB0byAyNTksMjAwICg3MiBob3VycykuXG4gKi9cbkJhY2t0cmFja1dpbmRvdz86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGRheXMgZm9yIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSByZXRhaW5lZC5cbiAqICBEZWZhdWx0OiAxXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYSB2YWx1ZSBmcm9tIDEgdG8gMzVcbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkJhY2t1cFJldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHNjYWxhYmlsaXR5IG1vZGUgb2YgdGhlIEF1cm9yYSBEQiBjbHVzdGVyLiBXaGVuIHNldCB0byBgYGxpbWl0bGVzc2BgLCB0aGUgY2x1c3RlciBvcGVyYXRlcyBhcyBhbiBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlLCBhbGxvd2luZyB5b3UgdG8gY3JlYXRlIGEgREIgc2hhcmQgZ3JvdXAgZm9yIGhvcml6b250YWwgc2NhbGluZyAoc2hhcmRpbmcpIGNhcGFiaWxpdGllcy4gV2hlbiBzZXQgdG8gYGBzdGFuZGFyZGBgICh0aGUgZGVmYXVsdCksIHRoZSBjbHVzdGVyIHVzZXMgbm9ybWFsIERCIGluc3RhbmNlIGNyZWF0aW9uLlxuICogICpJbXBvcnRhbnQ6KiBBdXRvbWF0ZWQgYmFja3VwIHJldGVudGlvbiBpc24ndCBzdXBwb3J0ZWQgd2l0aCBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlIGNsdXN0ZXJzLiBJZiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYGBsaW1pdGxlc3NgYCwgeW91IGNhbm5vdCBzZXQgYGBEZWxldGVBdXRvbWF0ZWRCYWNrdXBzYGAgdG8gYGBmYWxzZWBgLiBUbyBjcmVhdGUgYSBiYWNrdXAsIHVzZSBtYW51YWwgc25hcHNob3RzIGluc3RlYWQuXG4gKi9cbkNsdXN0ZXJTY2FsYWJpbGl0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvcHkgYWxsIHRhZ3MgZnJvbSB0aGUgREIgY2x1c3RlciB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIG5vdCB0byBjb3B5IHRoZW0uXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkNvcHlUYWdzVG9TbmFwc2hvdD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgY2x1c3Rlci5cbiAqICBJZiB5b3Ugc2V0IHRoaXMgdmFsdWUgdG8gYGBhZHZhbmNlZGBgLCB5b3UgbXVzdCBhbHNvIHNldCB0aGUgYGBQZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZGBgIHBhcmFtZXRlciB0byBgYHRydWVgYCBhbmQgdGhlIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlciB0byA0NjUuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZUluc2lnaHRzTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB5b3VyIGRhdGFiYXNlLiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIG5hbWUsIHRoZW4gQW1hem9uIFJEUyB3b24ndCBjcmVhdGUgYSBkYXRhYmFzZSBpbiB0aGlzIERCIGNsdXN0ZXIuIEZvciBuYW1pbmcgY29uc3RyYWludHMsIHNlZSBbTmFtaW5nIENvbnN0cmFpbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZU5hbWU/OiBzdHJpbmdcbkRCQ2x1c3RlckFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY29tcHV0ZSBhbmQgbWVtb3J5IGNhcGFjaXR5IG9mIGVhY2ggREIgaW5zdGFuY2UgaW4gdGhlIE11bHRpLUFaIERCIGNsdXN0ZXIsIGZvciBleGFtcGxlIGBgZGIubTZnZC54bGFyZ2VgYC4gTm90IGFsbCBEQiBpbnN0YW5jZSBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIEFXUy1SZWdpb25zLCBvciBmb3IgYWxsIGRhdGFiYXNlIGVuZ2luZXMuXG4gKiAgRm9yIHRoZSBmdWxsIGxpc3Qgb2YgREIgaW5zdGFuY2UgY2xhc3NlcyBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLkRCSW5zdGFuY2VDbGFzcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICovXG5EQkNsdXN0ZXJJbnN0YW5jZUNsYXNzPzogc3RyaW5nXG5EQkNsdXN0ZXJSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXBwbHkgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICAgV2hlbiB5b3UgYXBwbHkgYSBwYXJhbWV0ZXIgZ3JvdXAgdXNpbmcgdGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciwgdGhlIERCIGNsdXN0ZXIgaXNuJ3QgcmVib290ZWQgYXV0b21hdGljYWxseS4gQWxzbywgcGFyYW1ldGVyIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkgcmF0aGVyIHRoYW4gZHVyaW5nIHRoZSBuZXh0IG1haW50ZW5hbmNlIHdpbmRvdy5cbiAqICAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZXhpc3RpbmcgbmFtZSBzZXR0aW5nXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbXVzdCBiZSBpbiB0aGUgc2FtZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgZmFtaWx5IGFzIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgKyAgVGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciBpcyB2YWxpZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBgYEFsbG93TWFqb3JWZXJzaW9uVXBncmFkZWBgIHBhcmFtZXRlciBmb3IgYSBtYWpvciB2ZXJzaW9uIHVwZ3JhZGUgb25seS5cbiAqL1xuREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cbiAqL1xuREJTeXN0ZW1JZD86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3UgYXJlIGNvbmZpZ3VyaW5nIGFuIEF1cm9yYSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciBhbmQgd2FudCB5b3VyIEF1cm9yYSBEQiBjbHVzdGVyIHRvIGJlIGEgc2Vjb25kYXJ5IG1lbWJlciBpbiB0aGUgZ2xvYmFsIGRhdGFiYXNlIGNsdXN0ZXIsIHNwZWNpZnkgdGhlIGdsb2JhbCBjbHVzdGVyIElEIG9mIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3Rlci4gVG8gZGVmaW5lIHRoZSBwcmltYXJ5IGRhdGFiYXNlIGNsdXN0ZXIgb2YgdGhlIGdsb2JhbCBjbHVzdGVyLCB1c2UgdGhlIFtBV1M6OlJEUzo6R2xvYmFsQ2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1nbG9iYWxjbHVzdGVyLmh0bWwpIHJlc291cmNlLiBcbiAqICAgSWYgeW91IGFyZW4ndCBjb25maWd1cmluZyBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFxuICogICBUbyByZW1vdmUgdGhlIERCIGNsdXN0ZXIgZnJvbSBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBzcGVjaWZ5IGFuIGVtcHR5IHZhbHVlIGZvciB0aGUgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LlxuICogICBGb3IgaW5mb3JtYXRpb24gYWJvdXQgQXVyb3JhIGdsb2JhbCBkYXRhYmFzZXMsIHNlZSBbV29ya2luZyB3aXRoIEFtYXpvbiBBdXJvcmEgR2xvYmFsIERhdGFiYXNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1nbG9iYWwtZGF0YWJhc2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuR2xvYmFsQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIERCIGNsdXN0ZXIgaWRlbnRpZmllci4gVGhpcyBwYXJhbWV0ZXIgaXMgc3RvcmVkIGFzIGEgbG93ZXJjYXNlIHN0cmluZy5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIGZyb20gMSB0byA2MyBsZXR0ZXJzLCBudW1iZXJzLCBvciBoeXBoZW5zLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgZW5kIHdpdGggYSBoeXBoZW4gb3IgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucy5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGBteS1jbHVzdGVyMWBgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgSWYgeW91IGFwcGx5IGEgcGFyYW1ldGVyIGdyb3VwIHRvIGFuIGV4aXN0aW5nIERCIGNsdXN0ZXIsIHRoZW4gaXRzIERCIGluc3RhbmNlcyBtaWdodCBuZWVkIHRvIHJlYm9vdC4gVGhpcyBjYW4gcmVzdWx0IGluIGFuIG91dGFnZSB3aGlsZSB0aGUgREIgaW5zdGFuY2VzIGFyZSByZWJvb3RpbmcuXG4gKiAgSWYgeW91IGFwcGx5IGEgY2hhbmdlIHRvIHBhcmFtZXRlciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBzdG9wcGVkIERCIGNsdXN0ZXIsIHRoZW4gdGhlIHVwZGF0ZSBzdGFjayB3YWl0cyB1bnRpbCB0aGUgREIgY2x1c3RlciBpcyBzdGFydGVkLlxuICogICBUbyBsaXN0IGFsbCBvZiB0aGUgYXZhaWxhYmxlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIG5hbWVzLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItY2x1c3Rlci1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNbXS5EQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIiAtLW91dHB1dCB0ZXh0YGAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci4gXG4gKiAgSWYgeW91IGFyZSByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSB3aXRoIGBgUmVzdG9yZVR5cGVgYCBzZXQgdG8gYGBjb3B5LW9uLXdyaXRlYGAsIGFuZCBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwIG5hbWUsIHRoZW4gdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2l0aCBhIGRlZmF1bHQgREIgc3VibmV0IGdyb3VwLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC4gVGhpcyBwYXJhbWV0ZXIgaXNuJ3QgY2FzZS1zZW5zaXRpdmUuIFRoZSBkZWZhdWx0IGlzIHRvIHJlbW92ZSBhdXRvbWF0ZWQgYmFja3VwcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgREIgY2x1c3RlciBpcyBkZWxldGVkLCB1bmxlc3MgdGhlIEFXUyBCYWNrdXAgcG9saWN5IHNwZWNpZmllcyBhIHBvaW50LWluLXRpbWUgcmVzdG9yZSBydWxlLlxuICovXG5EZWxldGVBdXRvbWF0ZWRCYWNrdXBzPzogYm9vbGVhblxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaGFzIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC4gVGhlIGRhdGFiYXNlIGNhbid0IGJlIGRlbGV0ZWQgd2hlbiBkZWxldGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQuIEJ5IGRlZmF1bHQsIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSBkaXJlY3RvcnkgSUQgb2YgdGhlIEFjdGl2ZSBEaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJzLCBBbWF6b24gUkRTIGNhbiB1c2UgS2VyYmVyb3MgYXV0aGVudGljYXRpb24gdG8gYXV0aGVudGljYXRlIHVzZXJzIHRoYXQgY29ubmVjdCB0byB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtLZXJiZXJvcyBhdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2tlcmJlcm9zLWF1dGhlbnRpY2F0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIElBTSByb2xlIHRvIHVzZSB3aGVuIG1ha2luZyBBUEkgY2FsbHMgdG8gdGhlIERpcmVjdG9yeSBTZXJ2aWNlLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG8gQ2xvdWRXYXRjaCBMb2dzLiBUaGUgdmFsdWVzIGluIHRoZSBsaXN0IGRlcGVuZCBvbiB0aGUgREIgZW5naW5lIGJlaW5nIHVzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1B1Ymxpc2hpbmcgRGF0YWJhc2UgTG9ncyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvVVNFUl9Mb2dBY2Nlc3MuaHRtbCNVU0VSX0xvZ0FjY2Vzcy5Qcm9jZWR1cmFsLlVwbG9hZHRvQ2xvdWRXYXRjaCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYXVkaXRgYCwgYGBlcnJvcmBgLCBgYGdlbmVyYWxgYCwgYGBzbG93cXVlcnlgYFxuICogICAqQXVyb3JhIFBvc3RncmVTUUwqIFxuICogIFZhbGlkIHZhbHVlczogYGBwb3N0Z3Jlc3FsYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoaXMgREIgY2x1c3RlciB0byBmb3J3YXJkIHdyaXRlIG9wZXJhdGlvbnMgdG8gdGhlIHByaW1hcnkgY2x1c3RlciBvZiBhIGdsb2JhbCBjbHVzdGVyIChBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlKS4gQnkgZGVmYXVsdCwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgb24gQXVyb3JhIERCIGNsdXN0ZXJzIHRoYXQgYXJlIHNlY29uZGFyeSBjbHVzdGVycyBpbiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLlxuICogIFlvdSBjYW4gc2V0IHRoaXMgdmFsdWUgb25seSBvbiBBdXJvcmEgREIgY2x1c3RlcnMgdGhhdCBhcmUgbWVtYmVycyBvZiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLiBXaXRoIHRoaXMgcGFyYW1ldGVyIGVuYWJsZWQsIGEgc2Vjb25kYXJ5IGNsdXN0ZXIgY2FuIGZvcndhcmQgd3JpdGVzIHRvIHRoZSBjdXJyZW50IHByaW1hcnkgY2x1c3RlciwgYW5kIHRoZSByZXN1bHRpbmcgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBiYWNrIHRvIHRoaXMgY2x1c3Rlci4gRm9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgb2YgYW4gQXVyb3JhIGdsb2JhbCBkYXRhYmFzZSwgdGhpcyB2YWx1ZSBpcyB1c2VkIGltbWVkaWF0ZWx5IGlmIHRoZSBwcmltYXJ5IGlzIGRlbW90ZWQgYnkgYSBnbG9iYWwgY2x1c3RlciBBUEkgb3BlcmF0aW9uLCBidXQgaXQgZG9lcyBub3RoaW5nIHVudGlsIHRoZW4uXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlR2xvYmFsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgdGhlIEhUVFAgZW5kcG9pbnQgZm9yIHRoZSBEQiBjbHVzdGVyLiBCeSBkZWZhdWx0LCB0aGUgSFRUUCBlbmRwb2ludCBpc24ndCBlbmFibGVkLlxuICogIFdoZW4gZW5hYmxlZCwgdGhlIEhUVFAgZW5kcG9pbnQgcHJvdmlkZXMgYSBjb25uZWN0aW9ubGVzcyB3ZWIgc2VydmljZSBBUEkgKFJEUyBEYXRhIEFQSSkgZm9yIHJ1bm5pbmcgU1FMIHF1ZXJpZXMgb24gdGhlIERCIGNsdXN0ZXIuIFlvdSBjYW4gYWxzbyBxdWVyeSB5b3VyIGRhdGFiYXNlIGZyb20gaW5zaWRlIHRoZSBSRFMgY29uc29sZSB3aXRoIHRoZSBSRFMgcXVlcnkgZWRpdG9yLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIFJEUyBEYXRhIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2RhdGEtYXBpLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5FbmFibGVIdHRwRW5kcG9pbnQ/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgbWFwcGluZyBvZiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzLiBCeSBkZWZhdWx0LCBtYXBwaW5nIGlzIGRpc2FibGVkLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0lBTSBEYXRhYmFzZSBBdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5JQU1EQkF1dGguaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgcmVhZCByZXBsaWNhcyBjYW4gZm9yd2FyZCB3cml0ZSBvcGVyYXRpb25zIHRvIHRoZSB3cml0ZXIgREIgaW5zdGFuY2UgaW4gdGhlIERCIGNsdXN0ZXIuIEJ5IGRlZmF1bHQsIHdyaXRlIG9wZXJhdGlvbnMgYXJlbid0IGFsbG93ZWQgb24gcmVhZGVyIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuYWJsZUxvY2FsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgZW5naW5lIHRvIGJlIHVzZWQgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgICBgYGF1cm9yYS1teXNxbGBgIFxuICogICArICAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIFxuICogICArICAgYGBteXNxbGBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydGBgLCB3aGljaCBlbnJvbGxzIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gQXQgdGhlIGVuZCBvZiBzdGFuZGFyZCBzdXBwb3J0LCB5b3UgY2FuIGF2b2lkIGNoYXJnZXMgZm9yIEV4dGVuZGVkIFN1cHBvcnQgYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydC1kaXNhYmxlZGBgLiBJbiB0aGlzIGNhc2UsIGNyZWF0aW5nIHRoZSBEQiBjbHVzdGVyIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBZb3UgY2FuIHVzZSB0aGlzIHNldHRpbmcgdG8gZW5yb2xsIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gV2l0aCBSRFMgRXh0ZW5kZWQgU3VwcG9ydCwgeW91IGNhbiBydW4gdGhlIHNlbGVjdGVkIG1ham9yIGVuZ2luZSB2ZXJzaW9uIG9uIHlvdXIgREIgY2x1c3RlciBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zOlxuICogICArICBBbWF6b24gQXVyb3JhIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBBdXJvcmFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKlxuICogICArICBBbWF6b24gUkRTIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKlxuICogICBcbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0IHwgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnQtZGlzYWJsZWRgYFxuICogIERlZmF1bHQ6IGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYFxuICovXG5FbmdpbmVMaWZlY3ljbGVTdXBwb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBEQiBlbmdpbmUgbW9kZSBvZiB0aGUgREIgY2x1c3RlciwgZWl0aGVyIGBgcHJvdmlzaW9uZWRgYCBvciBgYHNlcnZlcmxlc3NgYC5cbiAqICBUaGUgYGBzZXJ2ZXJsZXNzYGAgZW5naW5lIG1vZGUgb25seSBhcHBsaWVzIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVycy4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgY2x1c3RlcnMgdXNlIHRoZSBgYHByb3Zpc2lvbmVkYGAgZW5naW5lIG1vZGUuXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGxpbWl0YXRpb25zIGFuZCByZXF1aXJlbWVudHMgZm9yIFNlcnZlcmxlc3MgREIgY2x1c3RlcnMsIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKjpcbiAqICAgKyAgIFtMaW1pdGF0aW9ucyBvZiBBdXJvcmEgU2VydmVybGVzcyB2MV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MubGltaXRhdGlvbnMpIFxuICogICArICAgW1JlcXVpcmVtZW50cyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5yZXF1aXJlbWVudHMuaHRtbCkgXG4gKiAgIFxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuZ2luZU1vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gdXNlLlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyICg1LjctY29tcGF0aWJsZSkgYW5kIHZlcnNpb24gMyAoOC4wLWNvbXBhdGlibGUpLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIGF1cm9yYS1teXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFlvdSBjYW4gc3VwcGx5IGVpdGhlciBgYDUuN2BgIG9yIGBgOC4wYGAgdG8gdXNlIHRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyIG9yIHZlcnNpb24gMywgcmVzcGVjdGl2ZWx5LlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBhdXJvcmEtcG9zdGdyZXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBSRFMgZm9yIE15U1FMLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIG15c3FsIC0tcXVlcnkgXCJEQkVuZ2luZVZlcnNpb25zW10uRW5naW5lVmVyc2lvblwiYGAgXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBlbmdpbmUgdmVyc2lvbnMgZm9yIFJEUyBmb3IgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBwb3N0Z3JlcyAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbRGF0YWJhc2UgZW5naW5lIHVwZGF0ZXMgZm9yIEFtYXpvbiBBdXJvcmEgTXlTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFNeVNRTC5VcGRhdGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICAgKkF1cm9yYSBQb3N0Z3JlU1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMIHJlbGVhc2VzIGFuZCBlbmdpbmUgdmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFQb3N0Z3JlU1FMLlVwZGF0ZXMuMjAxODAzMDUuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqTXlTUUwqIFxuICogIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gUkRTIGZvciBNeVNRTF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgRm9yIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgZm9yIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkVuZ2luZVZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIGFuZCBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiBQcm92aXNpb25lZCBJT1BTIChpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucyBwZXIgc2Vjb25kKSB0byBiZSBpbml0aWFsbHkgYWxsb2NhdGVkIGZvciBlYWNoIERCIGluc3RhbmNlIGluIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCB2YWxpZCBJT1BTIHZhbHVlcywgc2VlIFtQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1N0b3JhZ2UuaHRtbCNVU0VSX1BJT1BTKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGEgbXVsdGlwbGUgYmV0d2VlbiAuNSBhbmQgNTAgb2YgdGhlIHN0b3JhZ2UgYW1vdW50IGZvciB0aGUgREIgY2x1c3Rlci5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFXUyBLTVMga2V5IHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhYmFzZSBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIsIHN1Y2ggYXMgYGBhcm46YXdzOmttczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTEwOmtleS9hYmNkMTIzNC1hMTIzLTQ1NmEtYTEyYi1hMTIzYjRjZDU2ZWZgYC4gSWYgeW91IGVuYWJsZSB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgYnV0IGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkLiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzZXQgdGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHRvIGBgdHJ1ZWBgLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LCBhbmQgaWYgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBjcmVhdGUgYSByZWFkIHJlcGxpY2Egb2YgYW4gZW5jcnlwdGVkIERCIGNsdXN0ZXIgaW4gYW5vdGhlciBBV1MgUmVnaW9uLCBtYWtlIHN1cmUgdG8gc2V0IGBgS21zS2V5SWRgYCB0byBhIEtNUyBrZXkgaWRlbnRpZmllciB0aGF0IGlzIHZhbGlkIGluIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBUaGlzIEtNUyBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSByZWFkIHJlcGxpY2EgaW4gdGhhdCBBV1MgUmVnaW9uLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIHRoZSBtYXN0ZXIgdXNlci4gV2l0aCBJQU0gbWFzdGVyIHVzZXIgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBtYXN0ZXIgREIgdXNlciB3aXRoIElBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aGVuIHlvdSBjcmVhdGUgYSBEQiBjbHVzdGVyLlxuICogIFlvdSBjYW4gc3BlY2lmeSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gKiAgICsgIGBgcGFzc3dvcmRgYCAtIFVzZSBzdGFuZGFyZCBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aXRoIGEgcGFzc3dvcmQuXG4gKiAgICsgIGBgaWFtLWRiLWF1dGhgYCAtIFVzZSBJQU0gZGF0YWJhc2UgYXV0aGVudGljYXRpb24gZm9yIHRoZSBtYXN0ZXIgdXNlci5cbiAqICAgXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIFJEUyBmb3IgTXlTUUwsIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBQb3N0Z3JlU1FMLCBBdXJvcmEgTXlTUUwsIGFuZCBBdXJvcmEgUG9zdGdyZVNRTCBlbmdpbmVzLlxuICovXG5NYXN0ZXJVc2VyQXV0aGVudGljYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtYXN0ZXIgdXNlciBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VybmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWFzdGVyIHBhc3N3b3JkIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VyUGFzc3dvcmQ/OiBzdHJpbmdcbk1hc3RlclVzZXJTZWNyZXQ/OiBNYXN0ZXJVc2VyU2VjcmV0XG4vKipcbiAqIFRoZSBpbnRlcnZhbCwgaW4gc2Vjb25kcywgYmV0d2VlbiBwb2ludHMgd2hlbiBFbmhhbmNlZCBNb25pdG9yaW5nIG1ldHJpY3MgYXJlIGNvbGxlY3RlZCBmb3IgdGhlIERCIGNsdXN0ZXIuIFRvIHR1cm4gb2ZmIGNvbGxlY3RpbmcgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzLCBzcGVjaWZ5IGBgMGBgLlxuICogIElmIGBgTW9uaXRvcmluZ1JvbGVBcm5gYCBpcyBzcGVjaWZpZWQsIGFsc28gc2V0IGBgTW9uaXRvcmluZ0ludGVydmFsYGAgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBWYWxpZCBWYWx1ZXM6IGBgMCB8IDEgfCA1IHwgMTAgfCAxNSB8IDMwIHwgNjBgYFxuICogIERlZmF1bHQ6IGBgMGBgXG4gKi9cbk1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBJQU0gcm9sZSB0aGF0IHBlcm1pdHMgUkRTIHRvIHNlbmQgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuIEFuIGV4YW1wbGUgaXMgYGBhcm46YXdzOmlhbToxMjM0NTY3ODkwMTI6cm9sZS9lbWFjY2Vzc2BgLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBbU2V0dGluZyB1cCBhbmQgZW5hYmxpbmcgRW5oYW5jZWQgTW9uaXRvcmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTW9uaXRvcmluZy5PUy5odG1sI1VTRVJfTW9uaXRvcmluZy5PUy5FbmFibGluZykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIElmIGBgTW9uaXRvcmluZ0ludGVydmFsYGAgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYCwgc3VwcGx5IGEgYGBNb25pdG9yaW5nUm9sZUFybmBgIHZhbHVlLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuTW9uaXRvcmluZ1JvbGVBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5ldHdvcmsgdHlwZSBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCB2YWx1ZXM6XG4gKiAgICsgICBgYElQVjRgYCBcbiAqICAgKyAgIGBgRFVBTGBgIFxuICogICBcbiAqICBUaGUgbmV0d29yayB0eXBlIGlzIGRldGVybWluZWQgYnkgdGhlIGBgREJTdWJuZXRHcm91cGBgIHNwZWNpZmllZCBmb3IgdGhlIERCIGNsdXN0ZXIuIEEgYGBEQlN1Ym5ldEdyb3VwYGAgY2FuIHN1cHBvcnQgb25seSB0aGUgSVB2NCBwcm90b2NvbCBvciB0aGUgSVB2NCBhbmQgSVB2NiBwcm90b2NvbHMgKGBgRFVBTGBgKS5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggYSBEQiBpbnN0YW5jZSBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVlBDLldvcmtpbmdXaXRoUkRTSW5zdGFuY2VpbmFWUEMuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuTmV0d29ya1R5cGU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gdHVybiBvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0cyBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgQW1hem9uIFBlcmZvcm1hbmNlIEluc2lnaHRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QZXJmSW5zaWdodHMuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIGZvciBlbmNyeXB0aW9uIG9mIFBlcmZvcm1hbmNlIEluc2lnaHRzIGRhdGEuXG4gKiAgVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgaXMgdGhlIGtleSBBUk4sIGtleSBJRCwgYWxpYXMgQVJOLCBvciBhbGlhcyBuYW1lIGZvciB0aGUgS01TIGtleS5cbiAqICBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBgYFBlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJZGBgLCB0aGVuIEFtYXpvbiBSRFMgdXNlcyB5b3VyIGRlZmF1bHQgS01TIGtleS4gVGhlcmUgaXMgYSBkZWZhdWx0IEtNUyBrZXkgZm9yIHlvdXIgQVdTLWFjY291bnQuIFlvdXIgQVdTLWFjY291bnQgaGFzIGEgZGlmZmVyZW50IGRlZmF1bHQgS01TIGtleSBmb3IgZWFjaCBBV1MtUmVnaW9uLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0ttc0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS4gV2hlbiBjcmVhdGluZyBhIERCIGNsdXN0ZXIgd2l0aG91dCBlbmFibGluZyBQZXJmb3JtYW5jZSBJbnNpZ2h0cywgeW91IGNhbid0IHNwZWNpZnkgdGhlIHBhcmFtZXRlciBgYFBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RgYC5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICAgYGA3YGAgXG4gKiAgICsgICptb250aCogKiAzMSwgd2hlcmUgKm1vbnRoKiBpcyBhIG51bWJlciBvZiBtb250aHMgZnJvbSAxLTIzLiBFeGFtcGxlczogYGA5M2BgICgzIG1vbnRocyAqIDMxKSwgYGAzNDFgYCAoMTEgbW9udGhzICogMzEpLCBgYDU4OWBgICgxOSBtb250aHMgKiAzMSlcbiAqICAgKyAgIGBgNzMxYGAgXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgN2BgIGRheXNcbiAqICBJZiB5b3Ugc3BlY2lmeSBhIHJldGVudGlvbiBwZXJpb2QgdGhhdCBpc24ndCB2YWxpZCwgc3VjaCBhcyBgYDk0YGAsIEFtYXpvbiBSRFMgaXNzdWVzIGFuIGVycm9yLlxuICovXG5QZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBwb3J0IG51bWJlciBvbiB3aGljaCB0aGUgREIgaW5zdGFuY2VzIGluIHRoZSBEQiBjbHVzdGVyIGFjY2VwdCBjb25uZWN0aW9ucy5cbiAqICBEZWZhdWx0OlxuICogICArICBXaGVuIGBgRW5naW5lTW9kZWBgIGlzIGBgcHJvdmlzaW9uZWRgYCwgYGAzMzA2YGAgKGZvciBib3RoIEF1cm9yYSBNeVNRTCBhbmQgQXVyb3JhIFBvc3RncmVTUUwpXG4gKiAgICsgIFdoZW4gYGBFbmdpbmVNb2RlYGAgaXMgYGBzZXJ2ZXJsZXNzYGA6XG4gKiAgICsgIGBgMzMwNmBgIHdoZW4gYGBFbmdpbmVgYCBpcyBgYGF1cm9yYWBgIG9yIGBgYXVyb3JhLW15c3FsYGBcbiAqICAgKyAgYGA1NDMyYGAgd2hlbiBgYEVuZ2luZWBgIGlzIGBgYXVyb3JhLXBvc3RncmVzcWxgYFxuICogICBcbiAqICAgXG4gKiAgIFRoZSBgYE5vIGludGVycnVwdGlvbmBgIG9uIHVwZGF0ZSBiZWhhdmlvciBvbmx5IGFwcGxpZXMgdG8gREIgY2x1c3RlcnMuIElmIHlvdSBhcmUgdXBkYXRpbmcgYSBEQiBpbnN0YW5jZSwgc2VlIFtQb3J0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtcG9ydCkgZm9yIHRoZSBBV1M6OlJEUzo6REJJbnN0YW5jZSByZXNvdXJjZS5cbiAqICAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRhaWx5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSBjcmVhdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCYWNrdXAgV2luZG93XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLk1hbmFnaW5nLkJhY2t1cHMuaHRtbCNBdXJvcmEuTWFuYWdpbmcuQmFja3Vwcy5CYWNrdXBXaW5kb3cpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBgaGgyNDptaS1oaDI0Om1pYGAuXG4gKiAgICsgIE11c3QgYmUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuXG4gKiAgICsgIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gKiAgICsgIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcy5cbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblByZWZlcnJlZEJhY2t1cFdpbmRvdz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2Vla2x5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogIEZvcm1hdDogYGBkZGQ6aGgyNDptaS1kZGQ6aGgyNDptaWBgXG4gKiAgVGhlIGRlZmF1bHQgaXMgYSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvciBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuIFRvIHNlZSB0aGUgdGltZSBibG9ja3MgYXZhaWxhYmxlLCBzZWUgW01haW50YWluaW5nIGFuIEFtYXpvbiBBdXJvcmEgREIgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuTWFpbnRlbmFuY2UuaHRtbCNBZGp1c3RpbmdUaGVNYWludGVuYW5jZVdpbmRvdy5BdXJvcmEpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBWYWxpZCBEYXlzOiBNb24sIFR1ZSwgV2VkLCBUaHUsIEZyaSwgU2F0LCBTdW4uXG4gKiAgQ29uc3RyYWludHM6IE1pbmltdW0gMzAtbWludXRlIHdpbmRvdy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljbHkgYWNjZXNzaWJsZS5cbiAqICBXaGVuIHRoZSBEQiBjbHVzdGVyIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUgYW5kIHlvdSBjb25uZWN0IGZyb20gb3V0c2lkZSBvZiB0aGUgREIgY2x1c3RlcidzIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSwgaXRzIERvbWFpbiBOYW1lIFN5c3RlbSAoRE5TKSBlbmRwb2ludCByZXNvbHZlcyB0byB0aGUgcHVibGljIElQIGFkZHJlc3MuIFdoZW4geW91IGNvbm5lY3QgZnJvbSB3aXRoaW4gdGhlIHNhbWUgVlBDIGFzIHRoZSBEQiBjbHVzdGVyLCB0aGUgZW5kcG9pbnQgcmVzb2x2ZXMgdG8gdGhlIHByaXZhdGUgSVAgYWRkcmVzcy4gQWNjZXNzIHRvIHRoZSBEQiBjbHVzdGVyIGlzIHVsdGltYXRlbHkgY29udHJvbGxlZCBieSB0aGUgc2VjdXJpdHkgZ3JvdXAgaXQgdXNlcy4gVGhhdCBwdWJsaWMgYWNjZXNzIGlzbid0IHBlcm1pdHRlZCBpZiB0aGUgc2VjdXJpdHkgZ3JvdXAgYXNzaWduZWQgdG8gdGhlIERCIGNsdXN0ZXIgZG9lc24ndCBwZXJtaXQgaXQuXG4gKiAgV2hlbiB0aGUgREIgY2x1c3RlciBpc24ndCBwdWJsaWNseSBhY2Nlc3NpYmxlLCBpdCBpcyBhbiBpbnRlcm5hbCBEQiBjbHVzdGVyIHdpdGggYSBETlMgbmFtZSB0aGF0IHJlc29sdmVzIHRvIGEgcHJpdmF0ZSBJUCBhZGRyZXNzLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IE11bHRpLUFaIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZGVmYXVsdCBiZWhhdmlvciB2YXJpZXMgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgIGlzIHNwZWNpZmllZC5cbiAqICBJZiBgYERCU3VibmV0R3JvdXBOYW1lYGAgaXNuJ3Qgc3BlY2lmaWVkLCBhbmQgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBpc24ndCBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcgYXBwbGllczpcbiAqICAgKyAgSWYgdGhlIGRlZmF1bHQgVlBDIGluIHRoZSB0YXJnZXQgUmVnaW9uIGRvZXNu4oCZdCBoYXZlIGFuIGludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgdG8gaXQsIHRoZSBEQiBjbHVzdGVyIGlzIHByaXZhdGUuXG4gKiAgICsgIElmIHRoZSBkZWZhdWx0IFZQQyBpbiB0aGUgdGFyZ2V0IFJlZ2lvbiBoYXMgYW4gaW50ZXJuZXQgZ2F0ZXdheSBhdHRhY2hlZCB0byBpdCwgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljLlxuICogICBcbiAqICBJZiBgYERCU3VibmV0R3JvdXBOYW1lYGAgaXMgc3BlY2lmaWVkLCBhbmQgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBpc24ndCBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcgYXBwbGllczpcbiAqICAgKyAgSWYgdGhlIHN1Ym5ldHMgYXJlIHBhcnQgb2YgYSBWUEMgdGhhdCBkb2VzbuKAmXQgaGF2ZSBhbiBpbnRlcm5ldCBnYXRld2F5IGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgY2x1c3RlciBpcyBwcml2YXRlLlxuICogICArICBJZiB0aGUgc3VibmV0cyBhcmUgcGFydCBvZiBhIFZQQyB0aGF0IGhhcyBhbiBpbnRlcm5ldCBnYXRld2F5IGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgY2x1c3RlciBpcyBwdWJsaWMuXG4gKi9cblB1YmxpY2x5QWNjZXNzaWJsZT86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2Ugb3IgREIgY2x1c3RlciBpZiB0aGlzIERCIGNsdXN0ZXIgaXMgY3JlYXRlZCBhcyBhIHJlYWQgcmVwbGljYS5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cblJlcGxpY2F0aW9uU291cmNlSWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGF0ZSBhbmQgdGltZSB0byByZXN0b3JlIHRoZSBEQiBjbHVzdGVyIHRvLlxuICogIFZhbGlkIFZhbHVlczogVmFsdWUgbXVzdCBiZSBhIHRpbWUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykgZm9ybWF0XG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYmVmb3JlIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSB0aW1lIGZvciB0aGUgREIgaW5zdGFuY2VcbiAqICAgKyAgTXVzdCBiZSBzcGVjaWZpZWQgaWYgYGBVc2VMYXRlc3RSZXN0b3JhYmxlVGltZWBgIHBhcmFtZXRlciBpc24ndCBwcm92aWRlZFxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBwYXJhbWV0ZXIgaXMgZW5hYmxlZFxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgUmVzdG9yZVR5cGVgYCBwYXJhbWV0ZXIgaXMgYGBjb3B5LW9uLXdyaXRlYGBcbiAqICAgXG4gKiAgVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHVzZWQgd2l0aCBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eS4gVGhlIHJlc3VsdGluZyBjbHVzdGVyIHdpbGwgaGF2ZSB0aGUgaWRlbnRpZmllciB0aGF0IG1hdGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBgYERCY2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eS5cbiAqICBFeGFtcGxlOiBgYDIwMTUtMDMtMDdUMjM6NDU6MDBaYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUmVzdG9yZVRvVGltZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiByZXN0b3JlIHRvIGJlIHBlcmZvcm1lZC4gWW91IGNhbiBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczpcbiAqICAgKyAgYGBmdWxsLWNvcHlgYCAtIFRoZSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBhcyBhIGZ1bGwgY29weSBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIuXG4gKiAgICsgIGBgY29weS1vbi13cml0ZWBgIC0gVGhlIG5ldyBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIGFzIGEgY2xvbmUgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyLlxuICogICBcbiAqICBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIGBgUmVzdG9yZVR5cGVgYCB2YWx1ZSwgdGhlbiB0aGUgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgYXMgYSBmdWxsIGNvcHkgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5SZXN0b3JlVHlwZT86IHN0cmluZ1xuU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvblxuU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTY2FsaW5nQ29uZmlndXJhdGlvblxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIERCIHNuYXBzaG90IG9yIERCIGNsdXN0ZXIgc25hcHNob3QgdG8gcmVzdG9yZSBmcm9tLlxuICogIFlvdSBjYW4gdXNlIGVpdGhlciB0aGUgbmFtZSBvciB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgdG8gc3BlY2lmeSBhIERCIGNsdXN0ZXIgc25hcHNob3QuIEhvd2V2ZXIsIHlvdSBjYW4gdXNlIG9ubHkgdGhlIEFSTiB0byBzcGVjaWZ5IGEgREIgc25hcHNob3QuXG4gKiAgQWZ0ZXIgeW91IHJlc3RvcmUgYSBEQiBjbHVzdGVyIHdpdGggYSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgZm9yIGFueSBmdXR1cmUgdXBkYXRlcyB0byB0aGUgREIgY2x1c3Rlci4gV2hlbiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5IGZvciBhbiB1cGRhdGUsIHRoZSBEQiBjbHVzdGVyIGlzIG5vdCByZXN0b3JlZCBmcm9tIHRoZSBzbmFwc2hvdCBhZ2FpbiwgYW5kIHRoZSBkYXRhIGluIHRoZSBkYXRhYmFzZSBpcyBub3QgY2hhbmdlZC4gSG93ZXZlciwgaWYgeW91IGRvbid0IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuIGVtcHR5IERCIGNsdXN0ZXIgaXMgY3JlYXRlZCwgYW5kIHRoZSBvcmlnaW5hbCBEQiBjbHVzdGVyIGlzIGRlbGV0ZWQuIElmIHlvdSBzcGVjaWZ5IGEgcHJvcGVydHkgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgc25hcHNob3QgcmVzdG9yZSBwcm9wZXJ0eSwgYSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgYW5kIHRoZSBvcmlnaW5hbCBEQiBjbHVzdGVyIGlzIGRlbGV0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgdG8gcmVzdG9yZSBhIERCIGNsdXN0ZXIgKGFzIG9wcG9zZWQgdG8gc3BlY2lmeWluZyBpdCBmb3IgREIgY2x1c3RlciB1cGRhdGVzKSwgdGhlbiBkb24ndCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqICAgKyAgIGBgR2xvYmFsQ2x1c3RlcklkZW50aWZpZXJgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlcm5hbWVgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAgXG4gKiAgICsgICBgYFJlcGxpY2F0aW9uU291cmNlSWRlbnRpZmllcmBgIFxuICogICArICAgYGBSZXN0b3JlVHlwZWBgIFxuICogICArICAgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYFNvdXJjZVJlZ2lvbmBgIFxuICogICArICBgYFN0b3JhZ2VFbmNyeXB0ZWRgYCAoZm9yIGFuIGVuY3J5cHRlZCBzbmFwc2hvdClcbiAqICAgKyAgIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBcbiAqICAgXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgbWF0Y2ggdGhlIGlkZW50aWZpZXIgb2YgYW4gZXhpc3RpbmcgU25hcHNob3QuXG4gKiAgIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5TbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogV2hlbiByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSwgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyIGZyb20gd2hpY2ggdG8gcmVzdG9yZS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBtYXRjaCB0aGUgaWRlbnRpZmllciBvZiBhbiBleGlzdGluZyBEQkNsdXN0ZXIuXG4gKiAgICsgIENhbm5vdCBiZSBzcGVjaWZpZWQgaWYgYGBTb3VyY2VEYkNsdXN0ZXJSZXNvdXJjZUlkYGAgaXMgc3BlY2lmaWVkLiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBvciBgYFNvdXJjZURiQ2x1c3RlclJlc291cmNlSWRgYCwgYnV0IG5vdCBib3RoLlxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuU291cmNlREJDbHVzdGVySWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyIGZyb20gd2hpY2ggdG8gcmVzdG9yZS5cbiAqL1xuU291cmNlRGJDbHVzdGVyUmVzb3VyY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVdTIFJlZ2lvbiB3aGljaCBjb250YWlucyB0aGUgc291cmNlIERCIGNsdXN0ZXIgd2hlbiByZXBsaWNhdGluZyBhIERCIGNsdXN0ZXIuIEZvciBleGFtcGxlLCBgYHVzLWVhc3QtMWBgLiBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cblNvdXJjZVJlZ2lvbj86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgREIgY2x1c3RlciBpcyBlbmNyeXB0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBlbmFibGUgZW5jcnlwdGlvbi5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHksIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzb3VyY2UgREIgY2x1c3RlciwgYW5kIGlmIHRoZSBEQiBjbHVzdGVyIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBhbmQgdGhlIHNwZWNpZmllZCBzbmFwc2hvdCBpcyBlbmNyeXB0ZWQsIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzbmFwc2hvdCwgYW5kIHRoZSBzcGVjaWZpZWQgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGlzIHVzZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgYW5kIHRoZSBzcGVjaWZpZWQgc25hcHNob3QgaXNuJ3QgZW5jcnlwdGVkLCB5b3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIHNwZWNpZnkgdGhhdCB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciBpcyBlbmNyeXB0ZWQuIFNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBmb3IgdGhlIEtNUyBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciB0byBiZSBlbmNyeXB0ZWQsIHRoZW4gZG9uJ3Qgc2V0IHRoaXMgcHJvcGVydHkgb3Igc2V0IGl0IHRvIGBgZmFsc2VgYC5cbiAqICAgSWYgeW91IHNwZWNpZnkgYm90aCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgYW5kIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydGllcyB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciBpbmhlcml0cyB0aGUgZW5jcnlwdGlvbiBzZXR0aW5ncyBmcm9tIHRoZSBEQiBzbmFwc2hvdCB0aGF0IHByb3ZpZGUuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5TdG9yYWdlRW5jcnlwdGVkPzogYm9vbGVhblxuU3RvcmFnZVRocm91Z2hwdXQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHN0b3JhZ2UgdHlwZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgaW5mb3JtYXRpb24gb24gc3RvcmFnZSB0eXBlcyBmb3IgQXVyb3JhIERCIGNsdXN0ZXJzLCBzZWUgW1N0b3JhZ2UgY29uZmlndXJhdGlvbnMgZm9yIEFtYXpvbiBBdXJvcmEgREIgY2x1c3RlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuT3ZlcnZpZXcuU3RvcmFnZVJlbGlhYmlsaXR5Lmh0bWwjYXVyb3JhLXN0b3JhZ2UtdHlwZSkuIEZvciBpbmZvcm1hdGlvbiBvbiBzdG9yYWdlIHR5cGVzIGZvciBNdWx0aS1BWiBEQiBjbHVzdGVycywgc2VlIFtTZXR0aW5ncyBmb3IgY3JlYXRpbmcgTXVsdGktQVogREIgY2x1c3RlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sI2NyZWF0ZS1tdWx0aS1hei1kYi1jbHVzdGVyLXNldHRpbmdzKS5cbiAqICBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBXaGVuIHNwZWNpZmllZCBmb3IgYSBNdWx0aS1BWiBEQiBjbHVzdGVyLCBhIHZhbHVlIGZvciB0aGUgYGBJb3BzYGAgcGFyYW1ldGVyIGlzIHJlcXVpcmVkLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgIEF1cm9yYSBEQiBjbHVzdGVycyAtIGBgYXVyb3JhIHwgYXVyb3JhLWlvcHQxYGBcbiAqICAgKyAgTXVsdGktQVogREIgY2x1c3RlcnMgLSBgYGlvMSB8IGlvMiB8IGdwM2BgXG4gKiAgIFxuICogIERlZmF1bHQ6XG4gKiAgICsgIEF1cm9yYSBEQiBjbHVzdGVycyAtIGBgYXVyb3JhYGBcbiAqICAgKyAgTXVsdGktQVogREIgY2x1c3RlcnMgLSBgYGlvMWBgXG4gKiAgIFxuICogICBXaGVuIHlvdSBjcmVhdGUgYW4gQXVyb3JhIERCIGNsdXN0ZXIgd2l0aCB0aGUgc3RvcmFnZSB0eXBlIHNldCB0byBgYGF1cm9yYS1pb3B0MWBgLCB0aGUgc3RvcmFnZSB0eXBlIGlzIHJldHVybmVkIGluIHRoZSByZXNwb25zZS4gVGhlIHN0b3JhZ2UgdHlwZSBpc24ndCByZXR1cm5lZCB3aGVuIHlvdSBzZXQgaXQgdG8gYGBhdXJvcmFgYC5cbiAqL1xuU3RvcmFnZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGFncyB0byBhc3NpZ24gdG8gdGhlIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byByZXN0b3JlIHRoZSBEQiBjbHVzdGVyIHRvIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSBiYWNrdXAgdGltZS4gQnkgZGVmYXVsdCwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIHRvIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSBiYWNrdXAgdGltZS4gXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblVzZUxhdGVzdFJlc3RvcmFibGVUaW1lPzogYm9vbGVhblxuLyoqXG4gKiBBIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBEQiBjbHVzdGVyLlxuICogIElmIHlvdSBwbGFuIHRvIHVwZGF0ZSB0aGUgcmVzb3VyY2UsIGRvbid0IHNwZWNpZnkgVlBDIHNlY3VyaXR5IGdyb3VwcyBpbiBhIHNoYXJlZCBWUEMuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblZwY1NlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludCB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgY29ubmVjdGlvbiBlbmRwb2ludCBmb3IgdGhlIHByaW1hcnkgaW5zdGFuY2Ugb2YgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZEVuZHBvaW50IHtcbi8qKlxuICogVGhlIGhvc3QgYWRkcmVzcyBvZiB0aGUgcmVhZGVyIGVuZHBvaW50LlxuICovXG5BZGRyZXNzPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyBhbiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGUgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBEQiBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERCQ2x1c3RlclJvbGUge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgcm9sZS4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFXUyBzZXJ2aWNlcyBvbiB5b3VyIGJlaGFsZi4gRm9yIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmZWF0dXJlIG5hbWVzLCBzZWUgdGhlIGBgU3VwcG9ydGVkRmVhdHVyZU5hbWVzYGAgZGVzY3JpcHRpb24gaW4gW0RCRW5naW5lVmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EQkVuZ2luZVZlcnNpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIEFQSSBSZWZlcmVuY2UqLlxuICovXG5GZWF0dXJlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBEQiBjbHVzdGVyLlxuICovXG5Sb2xlQXJuOiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNlY3JldCBtYW5hZ2VkIGJ5IFJEUyBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQuXG4gKiAgIFdoZW4geW91IHJlc3RvcmUgYSBEQiBjbHVzdGVyIGZyb20gYSBzbmFwc2hvdCwgQW1hem9uIFJEUyBnZW5lcmF0ZXMgYSBuZXcgc2VjcmV0IGluc3RlYWQgb2YgcmV1c2luZyB0aGUgc2VjcmV0IHNwZWNpZmllZCBpbiB0aGUgYGBTZWNyZXRBcm5gYCBwcm9wZXJ0eS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJlc3RvcmVkIERCIGNsdXN0ZXIgaXMgc2VjdXJlbHkgbWFuYWdlZCB3aXRoIGEgZGVkaWNhdGVkIHNlY3JldC4gVG8gbWFpbnRhaW4gY29uc2lzdGVudCBpbnRlZ3JhdGlvbiB3aXRoIHlvdXIgYXBwbGljYXRpb24sIHlvdSBtaWdodCBuZWVkIHRvIHVwZGF0ZSByZXNvdXJjZSBjb25maWd1cmF0aW9ucyB0byByZWZlcmVuY2UgdGhlIG5ld2x5IGNyZWF0ZWQgc2VjcmV0LlxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtQYXNzd29yZCBtYW5hZ2VtZW50IHdpdGggU2VjcmV0cyBNYW5hZ2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvcmRzLXNlY3JldHMtbWFuYWdlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogYW5kIFtQYXNzd29yZCBtYW5hZ2VtZW50IHdpdGggU2VjcmV0cyBNYW5hZ2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvcmRzLXNlY3JldHMtbWFuYWdlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZS4qXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFzdGVyVXNlclNlY3JldCB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0LiBUaGlzIHBhcmFtZXRlciBpcyBhIHJldHVybiB2YWx1ZSB0aGF0IHlvdSBjYW4gcmV0cmlldmUgdXNpbmcgdGhlIGBgRm46OkdldEF0dGBgIGludHJpbnNpYyBmdW5jdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUmV0dXJuIHZhbHVlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1kYmNsdXN0ZXIuaHRtbCNhd3MtcmVzb3VyY2UtcmRzLWRiY2x1c3Rlci1yZXR1cm4tdmFsdWVzKS5cbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gb2YgYW4gQXVyb3JhIFNlcnZlcmxlc3MgVjIgREIgY2x1c3Rlci4gXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjIuIEZvciBBdXJvcmEgU2VydmVybGVzcyB2MSwgVXNlIHRoZSBgYFNjYWxpbmdDb25maWd1cmF0aW9uYGAgcHJvcGVydHkuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgU2VydmVybGVzcyB2MiBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgQXVyb3JhIGNhcGFjaXR5IHVuaXRzIChBQ1VzKSBmb3IgYSBEQiBpbnN0YW5jZSBpbiBhbiBBdXJvcmEgU2VydmVybGVzcyB2MiBjbHVzdGVyLiBZb3UgY2FuIHNwZWNpZnkgQUNVIHZhbHVlcyBpbiBoYWxmLXN0ZXAgaW5jcmVtZW50cywgc3VjaCBhcyA4LCA4LjUsIDksIGFuZCBzbyBvbi4gRm9yIEF1cm9yYSB2ZXJzaW9ucyB0aGF0IHN1cHBvcnQgdGhlIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGF1dG8tcGF1c2UgZmVhdHVyZSwgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgeW91IGNhbiB1c2UgaXMgMC4gRm9yIHZlcnNpb25zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBBdXJvcmEgU2VydmVybGVzcyB2MiBhdXRvLXBhdXNlLCB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCB5b3UgY2FuIHVzZSBpcyAwLjUuXG4gKi9cbk1pbkNhcGFjaXR5PzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBBdXJvcmEgY2FwYWNpdHkgdW5pdHMgKEFDVXMpIGZvciBhIERCIGluc3RhbmNlIGluIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGNsdXN0ZXIuIFlvdSBjYW4gc3BlY2lmeSBBQ1UgdmFsdWVzIGluIGhhbGYtc3RlcCBpbmNyZW1lbnRzLCBzdWNoIGFzIDQwLCA0MC41LCA0MSwgYW5kIHNvIG9uLiBUaGUgbGFyZ2VzdCB2YWx1ZSB0aGF0IHlvdSBjYW4gdXNlIGlzIDEyOC5cbiAqICBUaGUgbWF4aW11bSBjYXBhY2l0eSBtdXN0IGJlIGhpZ2hlciB0aGFuIDAuNSBBQ1VzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDaG9vc2luZyB0aGUgbWF4aW11bSBBdXJvcmEgU2VydmVybGVzcyB2MiBjYXBhY2l0eSBzZXR0aW5nIGZvciBhIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5zZXR0aW5nLWNhcGFjaXR5Lmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MtdjIubWF4X2NhcGFjaXR5X2NvbnNpZGVyYXRpb25zKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKiAgQXVyb3JhIGF1dG9tYXRpY2FsbHkgc2V0cyBjZXJ0YWluIHBhcmFtZXRlcnMgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIFYyIERCIGluc3RhbmNlcyB0byB2YWx1ZXMgdGhhdCBkZXBlbmQgb24gdGhlIG1heGltdW0gQUNVIHZhbHVlIGluIHRoZSBjYXBhY2l0eSByYW5nZS4gV2hlbiB5b3UgdXBkYXRlIHRoZSBtYXhpbXVtIGNhcGFjaXR5IHZhbHVlLCB0aGUgYGBQYXJhbWV0ZXJBcHBseVN0YXR1c2BgIHZhbHVlIGZvciB0aGUgREIgaW5zdGFuY2UgY2hhbmdlcyB0byBgYHBlbmRpbmctcmVib290YGAuIFlvdSBjYW4gdXBkYXRlIHRoZSBwYXJhbWV0ZXIgdmFsdWVzIGJ5IHJlYm9vdGluZyB0aGUgREIgaW5zdGFuY2UgYWZ0ZXIgY2hhbmdpbmcgdGhlIGNhcGFjaXR5IHJhbmdlLlxuICovXG5NYXhDYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIERCIGluc3RhbmNlIG11c3QgYmUgaWRsZSBiZWZvcmUgQXVyb3JhIGF0dGVtcHRzIHRvIGF1dG9tYXRpY2FsbHkgcGF1c2UgaXQuIFxuICogIFNwZWNpZnkgYSB2YWx1ZSBiZXR3ZWVuIDMwMCBzZWNvbmRzIChmaXZlIG1pbnV0ZXMpIGFuZCA4Niw0MDAgc2Vjb25kcyAob25lIGRheSkuIFRoZSBkZWZhdWx0IGlzIDMwMCBzZWNvbmRzLlxuICovXG5TZWNvbmRzVW50aWxBdXRvUGF1c2U/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIHNjYWxpbmcgY29uZmlndXJhdGlvbiBvZiBhbiBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVyLlxuICogIFRoaXMgcHJvcGVydHkgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYxLiBGb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjIsIFVzZSB0aGUgYGBTZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvbmBgIHByb3BlcnR5LlxuICogIFZhbGlkIGZvcjogQXVyb3JhIFNlcnZlcmxlc3MgdjEgREIgY2x1c3RlcnMgb25seVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdDb25maWd1cmF0aW9uIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgZGlzYWxsb3cgYXV0b21hdGljIHBhdXNlIGZvciBhbiBBdXJvcmEgREIgY2x1c3RlciBpbiBgYHNlcnZlcmxlc3NgYCBEQiBlbmdpbmUgbW9kZS4gQSBEQiBjbHVzdGVyIGNhbiBiZSBwYXVzZWQgb25seSB3aGVuIGl0J3MgaWRsZSAoaXQgaGFzIG5vIGNvbm5lY3Rpb25zKS5cbiAqICAgSWYgYSBEQiBjbHVzdGVyIGlzIHBhdXNlZCBmb3IgbW9yZSB0aGFuIHNldmVuIGRheXMsIHRoZSBEQiBjbHVzdGVyIG1pZ2h0IGJlIGJhY2tlZCB1cCB3aXRoIGEgc25hcHNob3QuIEluIHRoaXMgY2FzZSwgdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2hlbiB0aGVyZSBpcyBhIHJlcXVlc3QgdG8gY29ubmVjdCB0byBpdC5cbiAqL1xuQXV0b1BhdXNlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBjYXBhY2l0eSBmb3IgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgREIgZW5naW5lIG1vZGUuXG4gKiAgRm9yIEF1cm9yYSBNeVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDFgYCwgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxMjhgYCwgYW5kIGBgMjU2YGAuXG4gKiAgRm9yIEF1cm9yYSBQb3N0Z3JlU1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTkyYGAsIGFuZCBgYDM4NGBgLlxuICogIFRoZSBtYXhpbXVtIGNhcGFjaXR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtaW5pbXVtIGNhcGFjaXR5LlxuICovXG5NYXhDYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBUaGUgbWluaW11bSBjYXBhY2l0eSBmb3IgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgREIgZW5naW5lIG1vZGUuXG4gKiAgRm9yIEF1cm9yYSBNeVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDFgYCwgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxMjhgYCwgYW5kIGBgMjU2YGAuXG4gKiAgRm9yIEF1cm9yYSBQb3N0Z3JlU1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTkyYGAsIGFuZCBgYDM4NGBgLlxuICogIFRoZSBtaW5pbXVtIGNhcGFjaXR5IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtYXhpbXVtIGNhcGFjaXR5LlxuICovXG5NaW5DYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgQXVyb3JhIFNlcnZlcmxlc3MgdjEgdHJpZXMgdG8gZmluZCBhIHNjYWxpbmcgcG9pbnQgdG8gcGVyZm9ybSBzZWFtbGVzcyBzY2FsaW5nIGJlZm9yZSBlbmZvcmNpbmcgdGhlIHRpbWVvdXQgYWN0aW9uLiBUaGUgZGVmYXVsdCBpcyAzMDAuXG4gKiAgU3BlY2lmeSBhIHZhbHVlIGJldHdlZW4gNjAgYW5kIDYwMCBzZWNvbmRzLlxuICovXG5TZWNvbmRzQmVmb3JlVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaGUgdGltZSwgaW4gc2Vjb25kcywgYmVmb3JlIGFuIEF1cm9yYSBEQiBjbHVzdGVyIGluIGBgc2VydmVybGVzc2BgIG1vZGUgaXMgcGF1c2VkLlxuICogIFNwZWNpZnkgYSB2YWx1ZSBiZXR3ZWVuIDMwMCBhbmQgODYsNDAwIHNlY29uZHMuXG4gKi9cblNlY29uZHNVbnRpbEF1dG9QYXVzZT86IG51bWJlclxuLyoqXG4gKiBUaGUgYWN0aW9uIHRvIHRha2Ugd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLCBlaXRoZXIgYGBGb3JjZUFwcGx5Q2FwYWNpdHlDaGFuZ2VgYCBvciBgYFJvbGxiYWNrQ2FwYWNpdHlDaGFuZ2VgYC5cbiAqICBgYEZvcmNlQXBwbHlDYXBhY2l0eUNoYW5nZWBgIHNldHMgdGhlIGNhcGFjaXR5IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAqICBgYFJvbGxiYWNrQ2FwYWNpdHlDaGFuZ2VgYCwgdGhlIGRlZmF1bHQsIGlnbm9yZXMgdGhlIGNhcGFjaXR5IGNoYW5nZSBpZiBhIHNjYWxpbmcgcG9pbnQgaXNuJ3QgZm91bmQgaW4gdGhlIHRpbWVvdXQgcGVyaW9kLlxuICogICBJZiB5b3Ugc3BlY2lmeSBgYEZvcmNlQXBwbHlDYXBhY2l0eUNoYW5nZWBgLCBjb25uZWN0aW9ucyB0aGF0IHByZXZlbnQgQXVyb3JhIFNlcnZlcmxlc3MgdjEgZnJvbSBmaW5kaW5nIGEgc2NhbGluZyBwb2ludCBtaWdodCBiZSBkcm9wcGVkLlxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBdXRvc2NhbGluZyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy5ob3ctaXQtd29ya3MuaHRtbCNhdXJvcmEtc2VydmVybGVzcy5ob3ctaXQtd29ya3MuYXV0by1zY2FsaW5nKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKi9cblRpbWVvdXRBY3Rpb24/OiBzdHJpbmdcbn1cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFnZ2luZyBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogb3IgW1RhZ2dpbmcgQW1hem9uIEF1cm9yYSBhbmQgQW1hem9uIFJEUyByZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIEEga2V5IGlzIHRoZSByZXF1aXJlZCBuYW1lIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIEEgdmFsdWUgaXMgdGhlIG9wdGlvbmFsIHZhbHVlIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG4iXX0=
@@ -505,6 +505,14 @@ export interface _AWS_RDS_DBINSTANCE {
505
505
  */
506
506
  LicenseModel?: string;
507
507
  ListenerEndpoint?: Endpoint1;
508
+ /**
509
+ * Specifies the authentication type for the master user. With IAM master user authentication, you can configure the master DB user with IAM database authentication when you create a DB instance.
510
+ * You can specify one of the following values:
511
+ * + ``password`` - Use standard database authentication with a password.
512
+ * + ``iam-db-auth`` - Use IAM database authentication for the master user.
513
+ *
514
+ * This option is only valid for RDS for MySQL, RDS for MariaDB, RDS for PostgreSQL, Aurora MySQL, and Aurora PostgreSQL engines.
515
+ */
508
516
  MasterUserAuthenticationType?: string;
509
517
  /**
510
518
  * The master user name for the DB instance.