YQ0NCgAAAABGGnxjYRcAAOMAAAAAAAAAAAAAAAAAAAAABAAAAEAAAABzPgAAAGQAZAFsAG0BWgEBAGQCZANsAm0DWgMBAGQCZARsBG0FWgUBAGQFZwFaBkcAZAZkBYQAZAVlB4MDWghkB1MAKQjpAAAAACkB2g9hYnNvbHV0ZV9pbXBvcnTpAQAAACkB2hllbmNvZGVfbXVsdGlwYXJ0X2Zvcm1kYXRhKQHaCXVybGVuY29kZdoOUmVxdWVzdE1ldGhvZHNjAAAAAAAAAAAAAAAAAAAAAAQAAABAAAAAc0oAAABlAFoBZABaAmQBWgNoAGQCowFaBGQPZARkBYQBWgVkEGQHZAiEAVoGZBFkCWQKhAFaB2QSZAtkDIQBWghkE2QNZA6EAVoJZANTACkUcgYAAABhtwMAAAogICAgQ29udmVuaWVuY2UgbWl4aW4gZm9yIGNsYXNzZXMgd2hvIGltcGxlbWVudCBhIDptZXRoOmB1cmxvcGVuYCBtZXRob2QsIHN1Y2gKICAgIGFzIDpjbGFzczpgdXJsbGliMy5IVFRQQ29ubmVjdGlvblBvb2xgIGFuZAogICAgOmNsYXNzOmB1cmxsaWIzLlBvb2xNYW5hZ2VyYC4KCiAgICBQcm92aWRlcyBiZWhhdmlvciBmb3IgbWFraW5nIGNvbW1vbiB0eXBlcyBvZiBIVFRQIHJlcXVlc3QgbWV0aG9kcyBhbmQKICAgIGRlY2lkZXMgd2hpY2ggdHlwZSBvZiByZXF1ZXN0IGZpZWxkIGVuY29kaW5nIHRvIHVzZS4KCiAgICBTcGVjaWZpY2FsbHksCgogICAgOm1ldGg6YC5yZXF1ZXN0X2VuY29kZV91cmxgIGlzIGZvciBzZW5kaW5nIHJlcXVlc3RzIHdob3NlIGZpZWxkcyBhcmUKICAgIGVuY29kZWQgaW4gdGhlIFVSTCAoc3VjaCBhcyBHRVQsIEhFQUQsIERFTEVURSkuCgogICAgOm1ldGg6YC5yZXF1ZXN0X2VuY29kZV9ib2R5YCBpcyBmb3Igc2VuZGluZyByZXF1ZXN0cyB3aG9zZSBmaWVsZHMgYXJlCiAgICBlbmNvZGVkIGluIHRoZSAqYm9keSogb2YgdGhlIHJlcXVlc3QgdXNpbmcgbXVsdGlwYXJ0IG9yIHd3dy1mb3JtLXVybGVuY29kZWQKICAgIChzdWNoIGFzIGZvciBQT1NULCBQVVQsIFBBVENIKS4KCiAgICA6bWV0aDpgLnJlcXVlc3RgIGlzIGZvciBtYWtpbmcgYW55IGtpbmQgb2YgcmVxdWVzdCwgaXQgd2lsbCBsb29rIHVwIHRoZQogICAgYXBwcm9wcmlhdGUgZW5jb2RpbmcgZm9ybWF0IGFuZCB1c2Ugb25lIG9mIHRoZSBhYm92ZSB0d28gbWV0aG9kcyB0byBtYWtlCiAgICB0aGUgcmVxdWVzdC4KCiAgICBJbml0aWFsaXplciBwYXJhbWV0ZXJzOgoKICAgIDpwYXJhbSBoZWFkZXJzOgogICAgICAgIEhlYWRlcnMgdG8gaW5jbHVkZSB3aXRoIGFsbCByZXF1ZXN0cywgdW5sZXNzIG90aGVyIGhlYWRlcnMgYXJlIGdpdmVuCiAgICAgICAgZXhwbGljaXRseS4KICAgID4EAAAA2gdPUFRJT05T2gRIRUFE2gZERUxFVEXaA0dFVE5jAgAAAAAAAAAAAAAAAgAAAAIAAABDAAAAcw4AAAB8AXAGaQB8AF8AZABTACkBTikB2gdoZWFkZXJzKQLaBHNlbGZyCwAAAKkAcg0AAAD6WC9ob21lL2huaS9Ub3BtZXRhbFNlLURQUy92ZW52L2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9waXAvX3ZlbmRvci91cmxsaWIzL3JlcXVlc3QucHnaCF9faW5pdF9fKAAAAHMCAAAAAAF6F1JlcXVlc3RNZXRob2RzLl9faW5pdF9fVGMHAAAAAAAAAAAAAAAIAAAAAgAAAEsAAABzDAAAAHQAZAGDAYIBZABTACkCTnpNQ2xhc3NlcyBleHRlbmRpbmcgUmVxdWVzdE1ldGhvZHMgbXVzdCBpbXBsZW1lbnQgdGhlaXIgb3duIGBgdXJsb3BlbmBgIG1ldGhvZC4pAdoTTm90SW1wbGVtZW50ZWRFcnJvcikIcgwAAADaBm1ldGhvZNoDdXJs2gRib2R5cgsAAADaEGVuY29kZV9tdWx0aXBhcnTaEm11bHRpcGFydF9ib3VuZGFyedoCa3dyDQAAAHINAAAAcg4AAADaB3VybG9wZW4rAAAAcwYAAAAACgIBAv96FlJlcXVlc3RNZXRob2RzLnVybG9wZW5jBQAA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cGFyc2UudXJsZW5jb2RlYCBpcyB1c2VkIHdpdGggdGhlCiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgY29udGVudCB0eXBlLgoKICAgICAgICBNdWx0aXBhcnQgZW5jb2RpbmcgbXVzdCBiZSB1c2VkIHdoZW4gcG9zdGluZyBmaWxlcywgYW5kIGl0J3MgcmVhc29uYWJseQogICAgICAgIHNhZmUgdG8gdXNlIGl0IGluIG90aGVyIHRpbWVzIHRvby4gSG93ZXZlciwgaXQgbWF5IGJyZWFrIHJlcXVlc3QKICAgICAgICBzaWduaW5nLCBzdWNoIGFzIHdpdGggT0F1dGguCgogICAgICAgIFN1cHBvcnRzIGFuIG9wdGlvbmFsIGBgZmllbGRzYGAgcGFyYW1ldGVyIG9mIGtleS92YWx1ZSBzdHJpbmdzIEFORAogICAgICAgIGtleS9maWxldHVwbGUuIEEgZmlsZXR1cGxlIGlzIGEgKGZpbGVuYW1lLCBkYXRhLCBNSU1FIHR5cGUpIHR1cGxlIHdoZXJlCiAgICAgICAgdGhlIE1JTUUgdHlwZSBpcyBvcHRpb25hbC4gRm9yIGV4YW1wbGU6OgoKICAgICAgICAgICAgZmllbGRzID0gewogICAgICAgICAgICAgICAgJ2Zvbyc6ICdiYXInLAogICAgICAgICAgICAgICAgJ2Zha2VmaWxlJzogKCdmb29maWxlLnR4dCcsICdjb250ZW50cyBvZiBmb29maWxlJyksCiAgICAgICAgICAgICAgICAncmVhbGZpbGUnOiAoJ2JhcmZpbGUudHh0Jywgb3BlbigncmVhbGZpbGUnKS5yZWFkKCkpLAogICAgICAgICAgICAgICAgJ3R5cGVkZmlsZSc6ICgnYmF6ZmlsZS5iaW4nLCBvcGVuKCdiYXpmaWxlJykucmVhZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1hZ2UvanBlZycpLAogICAgICAgICAgICAgICAgJ25vbmFtZWZpbGUnOiAnY29udGVudHMgb2Ygbm9uYW1lZmlsZSBmaWVsZCcsCiAgICAgICAgICAgIH0KCiAgICAgICAgV2hlbiB1cGxvYWRpbmcgYSBmaWxlLCBwcm92aWRpbmcgYSBmaWxlbmFtZSAodGhlIGZpcnN0IHBhcmFtZXRlciBvZiB0aGUKICAgICAgICB0dXBsZSkgaXMgb3B0aW9uYWwgYnV0IHJlY29tbWVuZGVkIHRvIGJlc3QgbWltaWMgYmVoYXZpb3Igb2YgYnJvd3NlcnMuCgogICAgICAgIE5vdGUgdGhhdCBpZiBgYGhlYWRlcnNgYCBhcmUgc3VwcGxpZWQsIHRoZSAnQ29udGVudC1UeXBlJyBoZWFkZXIgd2lsbAogICAgICAgIGJlIG92ZXJ3cml0dGVuIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiB0aGUgZHluYW1pYyByYW5kb20gYm91bmRhcnkgc3RyaW5nCiAgICAgICAgd2hpY2ggaXMgdXNlZCB0byBjb21wb3NlIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0LiBUaGUgcmFuZG9tIGJvdW5kYXJ5CiAgICAgICAgc3RyaW5nIGNhbiBiZSBleHBsaWNpdGx5IHNldCB3aXRoIHRoZSBgYG11bHRpcGFydF9ib3VuZGFyeWBgIHBhcmFtZXRlci4KICAgICAgICBOcgsAAAByEwAAAHpGcmVxdWVzdCBnb3QgdmFsdWVzIGZvciBib3RoICdmaWVsZHMnIGFuZCAnYm9keScsIGNhbiBvbmx5IHNwZWNpZnkgb25lLikB2ghib3VuZGFyeXohYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkegxDb250ZW50LVR5cGUpBnILAAAA2glUeXBlRXJyb3JyBAAAAHIFAAAAciEAAAByFwAAACkLcgwAAAByEQAAAHISAAAAchkAAAByCwAAAHIUAAAAchUAAAByHgAAAHIiAAAAchMAAADaDGNvbnRlbnRfdHlwZXINAAAAcg0AAAByDgAAAHIdAAAAYgAAAHMoAAAAAC0IAQYCCAIEAQgBAgEC/wQEBAECAQT/DAUGAQL+BgUIAQwCDgEKAnoiUmVxdWVzdE1ldGhvZHMucmVxdWVzdF9lbmNvZGVfYm9keSkBTikETk5UTikCTk4pAk5OKQROTlROKQraCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX19yGwAAAHIPAAAAchcAAAByHwAAAHIcAAAAch0AAAByDQAAAHINAAAAcg0AAAByDgAAAHIGAAAACQAAAHMeAAAACAEEHAgCCgcAAQABAAEA+QoPChgKFAABAAEAAQD5TikJ2gpfX2Z1dHVyZV9fcgIAAADaCGZpbGVwb3N0cgQAAABaH3BhY2thZ2VzLnNpeC5tb3Zlcy51cmxsaWIucGFyc2VyBQAAANoHX19hbGxfX9oGb2JqZWN0cgYAAAByDQAAAHINAAAAcg0AAAByDgAAANoIPG1vZHVsZT4BAAAAcwgAAAAMAgwBDAIGAw==