@decentro-dev/polkadot-sufficient-assets 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +60 -0
- package/package.json +99 -0
- package/packages/client/README.md +333 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3/index.mjs +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/ksmcc3_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo/index.mjs +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/paseo_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot/index.mjs +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/polkadot_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/rococo_v2_2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2/index.mjs +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.mts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.d.ts +1 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.js +2 -0
- package/packages/client/dist/chain-specs/westend2_asset_hub/index.mjs +2 -0
- package/packages/client/dist/index.d.mts +106 -0
- package/packages/client/dist/index.d.ts +106 -0
- package/packages/client/dist/index.js +2 -0
- package/packages/client/dist/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-node-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-node-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/from-worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/from-worker/index.js +2 -0
- package/packages/client/dist/smoldot/from-worker/index.mjs +2 -0
- package/packages/client/dist/smoldot/index.d.mts +14 -0
- package/packages/client/dist/smoldot/index.d.ts +14 -0
- package/packages/client/dist/smoldot/index.js +2 -0
- package/packages/client/dist/smoldot/index.mjs +2 -0
- package/packages/client/dist/smoldot/worker/index.d.mts +1 -0
- package/packages/client/dist/smoldot/worker/index.d.ts +1 -0
- package/packages/client/dist/smoldot/worker/index.js +2 -0
- package/packages/client/dist/smoldot/worker/index.mjs +2 -0
- package/packages/core/.papi/descriptors/dist/common-types.d.ts +21274 -0
- package/packages/core/.papi/descriptors/dist/descriptors-EQXQJ7SL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/descriptors.d.ts +11 -0
- package/packages/core/.papi/descriptors/dist/hdx.d.ts +366 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata-XH2Y6EGQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/hdx_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/index.d.mts +24579 -0
- package/packages/core/.papi/descriptors/dist/index.d.ts +23 -0
- package/packages/core/.papi/descriptors/dist/index.js +1 -0
- package/packages/core/.papi/descriptors/dist/index.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata-OCBL5LAN.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/kusama.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata-TGJ43LLG.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/kusama_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes-MIM6CGSL.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/metadataTypes.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/pah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata-JG7F7QDO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/pah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata-5VVMOYKO.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/paseoah.d.ts +242 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata-KVQKFE5R.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/paseoah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/polkadot.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata-ASE5745E.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/polkadot_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata-FL7L2MWD.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/rococo.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata-CHYQZIV5.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/rococo_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/wah.d.ts +434 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata-M2H6IX7C.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/wah_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/dist/westend.d.ts +291 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata-IAM3KHRQ.mjs +1 -0
- package/packages/core/.papi/descriptors/dist/westend_metadata.d.ts +2 -0
- package/packages/core/.papi/descriptors/package.json +24 -0
- package/packages/core/.papi/metadata/hdx.scale +0 -0
- package/packages/core/.papi/metadata/kah.scale +0 -0
- package/packages/core/.papi/metadata/kusama.scale +0 -0
- package/packages/core/.papi/metadata/pah.scale +0 -0
- package/packages/core/.papi/metadata/paseo.scale +0 -0
- package/packages/core/.papi/metadata/paseoah.scale +0 -0
- package/packages/core/.papi/metadata/polkadot.scale +0 -0
- package/packages/core/.papi/metadata/rah.scale +0 -0
- package/packages/core/.papi/metadata/rococo.scale +0 -0
- package/packages/core/.papi/metadata/wah.scale +0 -0
- package/packages/core/.papi/metadata/westend.scale +0 -0
- package/packages/core/.papi/polkadot-api.json +50 -0
- package/packages/core/dist/index.d.mts +676 -0
- package/packages/core/dist/index.d.ts +676 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/index.mjs +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var A="bWV0YQ/1DwAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAgwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEQLEFjY291bnREYXRhARQAFAEUbm9uY2UQARROb25jZQABJGNvbnN1bWVycxABIFJlZkNvdW50AAEkcHJvdmlkZXJzEAEgUmVmQ291bnQAASxzdWZmaWNpZW50cxABIFJlZkNvdW50AAEQZGF0YRQBLEFjY291bnREYXRhAAAQAAAFBQAUDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBGAAQARBmcmVlGAEcQmFsYW5jZQABIHJlc2VydmVkGAEcQmFsYW5jZQABGGZyb3plbhgBHEJhbGFuY2UAARRmbGFncxwBKEV4dHJhRmxhZ3MAABgAAAUHABwMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEABgBEHUxMjgAACAAAAUAACQMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAoDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lLAEMdTY0AAEocHJvb2Zfc2l6ZSwBDHU2NAAALAAABjAAMAAABQYANAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQABAEgW3U4OyAzMl0AADgAAAIIADwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QYRGlnZXN0AAAEARBsb2dzQAE8VmVjPERpZ2VzdEl0ZW0+AABAAAACRABEEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgASAFEQ29uc2Vuc3VzRW5naW5lSWQAADgBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAEABBTZWFsCABIAURDb25zZW5zdXNFbmdpbmVJZAAAOAEcVmVjPHU4PgAFABRPdGhlcgQAOAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAEgAAAMEAAAACABMAAACUABQCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBVARUATQADAEUcGhhc2VZCAEUUGhhc2UAARRldmVudFQBBEUAARh0b3BpY3OZAwEYVmVjPFQ+AABUCDx3ZXN0ZW5kX3J1bnRpbWUwUnVudGltZUV2ZW50AAGsGFN5c3RlbQQAWAFwZnJhbWVfc3lzdGVtOjpFdmVudDxSdW50aW1lPgAAABxJbmRpY2VzBAB8AXhwYWxsZXRfaW5kaWNlczo6RXZlbnQ8UnVudGltZT4AAwAgQmFsYW5jZXMEAIABfHBhbGxldF9iYWxhbmNlczo6RXZlbnQ8UnVudGltZT4ABABIVHJhbnNhY3Rpb25QYXltZW50BACIAahwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudDo6RXZlbnQ8UnVudGltZT4AGgAcU3Rha2luZwQAjAF4cGFsbGV0X3N0YWtpbmc6OkV2ZW50PFJ1bnRpbWU+AAYAIE9mZmVuY2VzBACkAVhwYWxsZXRfb2ZmZW5jZXM6OkV2ZW50AAcAKFBhcmFtZXRlcnMEAKwBhHBhbGxldF9wYXJhbWV0ZXJzOjpFdmVudDxSdW50aW1lPgBGABxTZXNzaW9uBADcAVRwYWxsZXRfc2Vzc2lvbjo6RXZlbnQACAAcR3JhbmRwYQQA4AFUcGFsbGV0X2dyYW5kcGE6OkV2ZW50AAoAHFV0aWxpdHkEAPABVHBhbGxldF91dGlsaXR5OjpFdmVudAAQACBJZGVudGl0eQQA/AF8cGFsbGV0X2lkZW50aXR5OjpFdmVudDxSdW50aW1lPgARACBSZWNvdmVyeQQABQEBfHBhbGxldF9yZWNvdmVyeTo6RXZlbnQ8UnVudGltZT4AEgAcVmVzdGluZwQACQEBeHBhbGxldF92ZXN0aW5nOjpFdmVudDxSdW50aW1lPgATACRTY2hlZHVsZXIEAA0BAYBwYWxsZXRfc2NoZWR1bGVyOjpFdmVudDxSdW50aW1lPgAUACBQcmVpbWFnZQQAGQEBfHBhbGxldF9wcmVpbWFnZTo6RXZlbnQ8UnVudGltZT4AHAAQU3VkbwQAHQEBbHBhbGxldF9zdWRvOjpFdmVudDxSdW50aW1lPgAVABRQcm94eQQAJQEBcHBhbGxldF9wcm94eTo6RXZlbnQ8UnVudGltZT4AFgAgTXVsdGlzaWcEADEBAXxwYWxsZXRfbXVsdGlzaWc6OkV2ZW50PFJ1bnRpbWU+ABcAaEVsZWN0aW9uUHJvdmlkZXJNdWx0aVBoYXNlBAA5AQHQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlOjpFdmVudDxSdW50aW1lPgAYACRWb3Rlckxpc3QEAE0BAfRwYWxsZXRfYmFnc19saXN0OjpFdmVudDxSdW50aW1lLCBwYWxsZXRfYmFnc19saXN0OjpJbnN0YW5jZTE+ABkAPE5vbWluYXRpb25Qb29scwQAUQEBnHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpFdmVudDxSdW50aW1lPgAdACxGYXN0VW5zdGFrZQQAbQEBjHBhbGxldF9mYXN0X3Vuc3Rha2U6OkV2ZW50PFJ1bnRpbWU+AB4AQENvbnZpY3Rpb25Wb3RpbmcEAHUBAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkV2ZW50PFJ1bnRpbWU+AB8AJFJlZmVyZW5kYQQAgQEBgHBhbGxldF9yZWZlcmVuZGE6OkV2ZW50PFJ1bnRpbWU+ACAAJFdoaXRlbGlzdAQA4QcBgHBhbGxldF93aGl0ZWxpc3Q6OkV2ZW50PFJ1bnRpbWU+ACQAIFRyZWFzdXJ5BAD1BwF8cGFsbGV0X3RyZWFzdXJ5OjpFdmVudDxSdW50aW1lPgAlAEBEZWxlZ2F0ZWRTdGFraW5nBAD5BwGgcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nOjpFdmVudDxSdW50aW1lPgAmADRQYXJhSW5jbHVzaW9uBAD9BwGQcGFyYWNoYWluc19pbmNsdXNpb246OkV2ZW50PFJ1bnRpbWU+ACwAFFBhcmFzBAANCAFccGFyYWNoYWluc19wYXJhczo6RXZlbnQALwAQSHJtcAQAEQgBfHBhcmFjaGFpbnNfaHJtcDo6RXZlbnQ8UnVudGltZT4AMwA0UGFyYXNEaXNwdXRlcwQAFQgBjHBhcmFjaGFpbnNfZGlzcHV0ZXM6OkV2ZW50PFJ1bnRpbWU+ADUAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBAAhCAGQcGFyYWNoYWluc19vbl9kZW1hbmQ6OkV2ZW50PFJ1bnRpbWU+ADgAJFJlZ2lzdHJhcgQAJQgBfHBhcmFzX3JlZ2lzdHJhcjo6RXZlbnQ8UnVudGltZT4APAAUU2xvdHMEACkIAVRzbG90czo6RXZlbnQ8UnVudGltZT4APQAgQXVjdGlvbnMEAC0IAWBhdWN0aW9uczo6RXZlbnQ8UnVudGltZT4APwAkQ3Jvd2Rsb2FuBAAxCAFkY3Jvd2Rsb2FuOjpFdmVudDxSdW50aW1lPgBAADRBc3NpZ25lZFNsb3RzBAA1CAF4YXNzaWduZWRfc2xvdHM6OkV2ZW50PFJ1bnRpbWU+AEEAIENvcmV0aW1lBAA5CAFgY29yZXRpbWU6OkV2ZW50PFJ1bnRpbWU+AEIAJFhjbVBhbGxldAQAPQgBaHBhbGxldF94Y206OkV2ZW50PFJ1bnRpbWU+AGMAME1lc3NhZ2VRdWV1ZQQARQgBkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFdmVudDxSdW50aW1lPgBkACRBc3NldFJhdGUEAE0IAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXZlbnQ8UnVudGltZT4AZQAsUm9vdFRlc3RpbmcEAFEIAYxwYWxsZXRfcm9vdF90ZXN0aW5nOjpFdmVudDxSdW50aW1lPgBmAEBJZGVudGl0eU1pZ3JhdG9yBABVCAGEaWRlbnRpdHlfbWlncmF0b3I6OkV2ZW50PFJ1bnRpbWU+APgAAFgMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXZlbnQEBFQAARxARXh0cmluc2ljU3VjY2VzcwQBNGRpc3BhdGNoX2luZm9cATBEaXNwYXRjaEluZm8AAASQQW4gZXh0cmluc2ljIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuPEV4dHJpbnNpY0ZhaWxlZAgBOGRpc3BhdGNoX2Vycm9yaAE0RGlzcGF0Y2hFcnJvcgABNGRpc3BhdGNoX2luZm9cATBEaXNwYXRjaEluZm8AAQRQQW4gZXh0cmluc2ljIGZhaWxlZC4sQ29kZVVwZGF0ZWQAAgRQYDpjb2RlYCB3YXMgdXBkYXRlZC4oTmV3QWNjb3VudAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAAwRoQSBuZXcgYWNjb3VudCB3YXMgY3JlYXRlZC40S2lsbGVkQWNjb3VudAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQABARYQW4gYWNjb3VudCB3YXMgcmVhcGVkLiBSZW1hcmtlZAgBGHNlbmRlcgABMFQ6OkFjY291bnRJZAABEGhhc2g0ARxUOjpIYXNoAAUEcE9uIG9uLWNoYWluIHJlbWFyayBoYXBwZW5lZC5EVXBncmFkZUF1dGhvcml6ZWQIASRjb2RlX2hhc2g0ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbiABEGJvb2wABgRoQW4gdXBncmFkZSB3YXMgYXV0aG9yaXplZC4EcEV2ZW50IGZvciB0aGUgU3lzdGVtIHBhbGxldC5cDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoMERpc3BhdGNoSW5mbwAADAEYd2VpZ2h0KAEYV2VpZ2h0AAEUY2xhc3NgATREaXNwYXRjaENsYXNzAAEgcGF5c19mZWVkARBQYXlzAABgDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoNERpc3BhdGNoQ2xhc3MAAQwYTm9ybWFsAAAALE9wZXJhdGlvbmFsAAEAJE1hbmRhdG9yeQACAABkDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoEFBheXMAAQgMWWVzAAAACE5vAAEAAGgIKHNwX3J1bnRpbWU0RGlzcGF0Y2hFcnJvcgABOBRPdGhlcgAAADBDYW5ub3RMb29rdXAAAQAkQmFkT3JpZ2luAAIAGE1vZHVsZQQAbAEsTW9kdWxlRXJyb3IAAwBEQ29uc3VtZXJSZW1haW5pbmcABAAsTm9Qcm92aWRlcnMABQBAVG9vTWFueUNvbnN1bWVycwAGABRUb2tlbgQAcAEoVG9rZW5FcnJvcgAHAChBcml0aG1ldGljBAB0ATxBcml0aG1ldGljRXJyb3IACAA0VHJhbnNhY3Rpb25hbAQAeAFIVHJhbnNhY3Rpb25hbEVycm9yAAkAJEV4aGF1c3RlZAAKAChDb3JydXB0aW9uAAsALFVuYXZhaWxhYmxlAAwAOFJvb3ROb3RBbGxvd2VkAA0AAGwIKHNwX3J1bnRpbWUsTW9kdWxlRXJyb3IAAAgBFGluZGV4CAEIdTgAARRlcnJvckgBjFt1ODsgTUFYX01PRFVMRV9FUlJPUl9FTkNPREVEX1NJWkVdAABwCChzcF9ydW50aW1lKFRva2VuRXJyb3IAAShARnVuZHNVbmF2YWlsYWJsZQAAADBPbmx5UHJvdmlkZXIAAQAwQmVsb3dNaW5pbXVtAAIAMENhbm5vdENyZWF0ZQADADBVbmtub3duQXNzZXQABAAYRnJvemVuAAUALFVuc3VwcG9ydGVkAAYAQENhbm5vdENyZWF0ZUhvbGQABwA0Tm90RXhwZW5kYWJsZQAIABxCbG9ja2VkAAkAAHQINHNwX2FyaXRobWV0aWM8QXJpdGhtZXRpY0Vycm9yAAEMJFVuZGVyZmxvdwAAACBPdmVyZmxvdwABADhEaXZpc2lvbkJ5WmVybwACAAB4CChzcF9ydW50aW1lSFRyYW5zYWN0aW9uYWxFcnJvcgABCDBMaW1pdFJlYWNoZWQAAAAcTm9MYXllcgABAAB8DDhwYWxsZXRfaW5kaWNlcxhwYWxsZXQURXZlbnQEBFQAAQw0SW5kZXhBc3NpZ25lZAgBDHdobwABMFQ6OkFjY291bnRJZAABFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAAEdEEgYWNjb3VudCBpbmRleCB3YXMgYXNzaWduZWQuKEluZGV4RnJlZWQEARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABBLxBIGFjY291bnQgaW5kZXggaGFzIGJlZW4gZnJlZWQgdXAgKHVuYXNzaWduZWQpLixJbmRleEZyb3plbggBFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAEMd2hvAAEwVDo6QWNjb3VudElkAAIE6EEgYWNjb3VudCBpbmRleCBoYXMgYmVlbiBmcm96ZW4gdG8gaXRzIGN1cnJlbnQgYWNjb3VudCBJRC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSADDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAFYHEVuZG93ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlGAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlGAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzhAEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UABwTYU29tZSBhbW91bnQgd2FzIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuIFdpdGhkcmF3CAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAIBB0BU29tZSBhbW91bnQgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4cU2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAKBJxTb21lIGFtb3VudCB3YXMgbWludGVkIGludG8gYW4gYWNjb3VudC4YQnVybmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQALBJxTb21lIGFtb3VudCB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC4kU3VzcGVuZGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQAMBBUBU29tZSBhbW91bnQgd2FzIHN1c3BlbmRlZCBmcm9tIGFuIGFjY291bnQgKGl0IGNhbiBiZSByZXN0b3JlZCBsYXRlcikuIFJlc3RvcmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQANBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwABMFQ6OkFjY291bnRJZAAOBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50GAEoVDo6QmFsYW5jZQAPBC0BVG90YWwgaXNzdWFuY2Ugd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBjcmVkaXQgdG8gYmUgYmFsYW5jZWQuJFJlc2NpbmRlZAQBGGFtb3VudBgBKFQ6OkJhbGFuY2UAEAQlAVRvdGFsIGlzc3VhbmNlIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgZGVidCB0byBiZSBiYWxhbmNlZC4YTG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEoVDo6QmFsYW5jZQARBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnQYAShUOjpCYWxhbmNlABIEaFNvbWUgYmFsYW5jZSB3YXMgdW5sb2NrZWQuGEZyb3plbggBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAEwRgU29tZSBiYWxhbmNlIHdhcyBmcm96ZW4uGFRoYXdlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBKFQ6OkJhbGFuY2UAFARgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGQYAShUOjpCYWxhbmNlAAEMbmV3GAEoVDo6QmFsYW5jZQAVBKxUaGUgYFRvdGFsSXNzdWFuY2VgIHdhcyBmb3JjZWZ1bGx5IGNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0hBQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2M0QmFsYW5jZVN0YXR1cwABCBBGcmVlAAAAIFJlc2VydmVkAAEAAIgMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlGAEwQmFsYW5jZU9mPFQ+AAEMdGlwGAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIwQOHBhbGxldF9zdGFraW5nGHBhbGxldBhwYWxsZXQURXZlbnQEBFQAAUgcRXJhUGFpZAwBJGVyYV9pbmRleBABIEVyYUluZGV4AAFAdmFsaWRhdG9yX3BheW91dBgBMEJhbGFuY2VPZjxUPgABJHJlbWFpbmRlchgBMEJhbGFuY2VPZjxUPgAACFUBVGhlIGVyYSBwYXlvdXQgaGFzIGJlZW4gc2V0OyB0aGUgZmlyc3QgYmFsYW5jZSBpcyB0aGUgdmFsaWRhdG9yLXBheW91dDsgdGhlIHNlY29uZCBpc8B0aGUgcmVtYWluZGVyIGZyb20gdGhlIG1heGltdW0gYW1vdW50IG9mIHJld2FyZC4gUmV3YXJkZWQMARRzdGFzaAABMFQ6OkFjY291bnRJZAABEGRlc3SQAXxSZXdhcmREZXN0aW5hdGlvbjxUOjpBY2NvdW50SWQ+AAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEDQFUaGUgbm9taW5hdG9yIGhhcyBiZWVuIHJld2FyZGVkIGJ5IHRoaXMgYW1vdW50IHRvIHRoaXMgZGVzdGluYXRpb24uHFNsYXNoZWQIARhzdGFrZXIAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAgQdAUEgc3Rha2VyICh2YWxpZGF0b3Igb3Igbm9taW5hdG9yKSBoYXMgYmVlbiBzbGFzaGVkIGJ5IHRoZSBnaXZlbiBhbW91bnQuNFNsYXNoUmVwb3J0ZWQMASR2YWxpZGF0b3IAATBUOjpBY2NvdW50SWQAASBmcmFjdGlvbpQBHFBlcmJpbGwAASRzbGFzaF9lcmEQASBFcmFJbmRleAADCFkBQSBzbGFzaCBmb3IgdGhlIGdpdmVuIHZhbGlkYXRvciwgZm9yIHRoZSBnaXZlbiBwZXJjZW50YWdlIG9mIHRoZWlyIHN0YWtlLCBhdCB0aGUgZ2l2ZW5UZXJhIGFzIGJlZW4gcmVwb3J0ZWQuaE9sZFNsYXNoaW5nUmVwb3J0RGlzY2FyZGVkBAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAAECBkBQW4gb2xkIHNsYXNoaW5nIHJlcG9ydCBmcm9tIGEgcHJpb3IgZXJhIHdhcyBkaXNjYXJkZWQgYmVjYXVzZSBpdCBjb3VsZERub3QgYmUgcHJvY2Vzc2VkLjhTdGFrZXJzRWxlY3RlZAAFBIRBIG5ldyBzZXQgb2Ygc3Rha2VycyB3YXMgZWxlY3RlZC4YQm9uZGVkCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4ABhDQQW4gYWNjb3VudCBoYXMgYm9uZGVkIHRoaXMgYW1vdW50LiBcW3N0YXNoLCBhbW91bnRcXQBNAU5PVEU6IFRoaXMgZXZlbnQgaXMgb25seSBlbWl0dGVkIHdoZW4gZnVuZHMgYXJlIGJvbmRlZCB2aWEgYSBkaXNwYXRjaGFibGUuIE5vdGFibHksIQFpdCB3aWxsIG5vdCBiZSBlbWl0dGVkIGZvciBzdGFraW5nIHJld2FyZHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byBzdGFrZS4gVW5ib25kZWQIARRzdGFzaAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAHBJBBbiBhY2NvdW50IGhhcyB1bmJvbmRlZCB0aGlzIGFtb3VudC4kV2l0aGRyYXduCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4ACAhZAUFuIGFjY291bnQgaGFzIGNhbGxlZCBgd2l0aGRyYXdfdW5ib25kZWRgIGFuZCByZW1vdmVkIHVuYm9uZGluZyBjaHVua3Mgd29ydGggYEJhbGFuY2VgZGZyb20gdGhlIHVubG9ja2luZyBxdWV1ZS4YS2lja2VkCAEkbm9taW5hdG9yAAEwVDo6QWNjb3VudElkAAEUc3Rhc2gAATBUOjpBY2NvdW50SWQACQS0QSBub21pbmF0b3IgaGFzIGJlZW4ga2lja2VkIGZyb20gYSB2YWxpZGF0b3IuVFN0YWtpbmdFbGVjdGlvbkZhaWxlZAAKBKxUaGUgZWxlY3Rpb24gZmFpbGVkLiBObyBuZXcgZXJhIGlzIHBsYW5uZWQuHENoaWxsZWQEARRzdGFzaAABMFQ6OkFjY291bnRJZAALBCEBQW4gYWNjb3VudCBoYXMgc3RvcHBlZCBwYXJ0aWNpcGF0aW5nIGFzIGVpdGhlciBhIHZhbGlkYXRvciBvciBub21pbmF0b3IuNFBheW91dFN0YXJ0ZWQIASRlcmFfaW5kZXgQASBFcmFJbmRleAABPHZhbGlkYXRvcl9zdGFzaAABMFQ6OkFjY291bnRJZAAMBJhUaGUgc3Rha2VycycgcmV3YXJkcyBhcmUgZ2V0dGluZyBwYWlkLkRWYWxpZGF0b3JQcmVmc1NldAgBFHN0YXNoAAEwVDo6QWNjb3VudElkAAEUcHJlZnOYAThWYWxpZGF0b3JQcmVmcwANBJhBIHZhbGlkYXRvciBoYXMgc2V0IHRoZWlyIHByZWZlcmVuY2VzLmhTbmFwc2hvdFZvdGVyc1NpemVFeGNlZWRlZAQBEHNpemUQAQx1MzIADgRoVm90ZXJzIHNpemUgbGltaXQgcmVhY2hlZC5sU25hcHNob3RUYXJnZXRzU2l6ZUV4Y2VlZGVkBAEQc2l6ZRABDHUzMgAPBGxUYXJnZXRzIHNpemUgbGltaXQgcmVhY2hlZC4gRm9yY2VFcmEEARBtb2RloAEcRm9yY2luZwAQBHRBIG5ldyBmb3JjZSBlcmEgbW9kZSB3YXMgc2V0LmRDb250cm9sbGVyQmF0Y2hEZXByZWNhdGVkBAEgZmFpbHVyZXMQAQx1MzIAEQSkUmVwb3J0IG9mIGEgY29udHJvbGxlciBiYXRjaCBkZXByZWNhdGlvbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSQCDhwYWxsZXRfc3Rha2luZ0RSZXdhcmREZXN0aW5hdGlvbgQkQWNjb3VudElkAQABFBhTdGFrZWQAAAAUU3Rhc2gAAQAoQ29udHJvbGxlcgACABxBY2NvdW50BAAAASRBY2NvdW50SWQAAwAQTm9uZQAEAACUDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVyYmlsbAAABAAQAQx1MzIAAJgIOHBhbGxldF9zdGFraW5nOFZhbGlkYXRvclByZWZzAAAIAShjb21taXNzaW9unAEcUGVyYmlsbAABHGJsb2NrZWQgARBib29sAACcAAAGlACgCDhwYWxsZXRfc3Rha2luZxxGb3JjaW5nAAEQKE5vdEZvcmNpbmcAAAAgRm9yY2VOZXcAAQAkRm9yY2VOb25lAAIALEZvcmNlQWx3YXlzAAMAAKQMPHBhbGxldF9vZmZlbmNlcxhwYWxsZXQURXZlbnQAAQQcT2ZmZW5jZQgBEGtpbmSoARBLaW5kAAEgdGltZXNsb3Q4AThPcGFxdWVUaW1lU2xvdAAADFEBVGhlcmUgaXMgYW4gb2ZmZW5jZSByZXBvcnRlZCBvZiB0aGUgZ2l2ZW4gYGtpbmRgIGhhcHBlbmVkIGF0IHRoZSBgc2Vzc2lvbl9pbmRleGAgYW5kNQEoa2luZC1zcGVjaWZpYykgdGltZSBzbG90LiBUaGlzIGV2ZW50IGlzIG5vdCBkZXBvc2l0ZWQgZm9yIGR1cGxpY2F0ZSBzbGFzaGVzLkxcW2tpbmQsIHRpbWVzbG90XF0uBDBFdmVudHMgdHlwZS6oAAADEAAAAAgArAxEcGFsbGV0X3BhcmFtZXRlcnMYcGFsbGV0FEV2ZW50BARUAAEEHFVwZGF0ZWQMAQxrZXmwAcQ8VDo6UnVudGltZVBhcmFtZXRlcnMgYXMgQWdncmVnYXRlZEtleVZhbHVlPjo6S2V5BGRUaGUga2V5IHRoYXQgd2FzIHVwZGF0ZWQuASRvbGRfdmFsdWXMAexPcHRpb248PFQ6OlJ1bnRpbWVQYXJhbWV0ZXJzIGFzIEFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlPgR8VGhlIG9sZCB2YWx1ZSBiZWZvcmUgdGhpcyBjYWxsLgEkbmV3X3ZhbHVlzAHsT3B0aW9uPDxUOjpSdW50aW1lUGFyYW1ldGVycyBhcyBBZ2dyZWdhdGVkS2V5VmFsdWU+OjpWYWx1ZT4EeFRoZSBuZXcgdmFsdWUgYWZ0ZXIgdGhpcyBjYWxsLgAMUEEgUGFyYW1ldGVyIHdhcyBzZXQuALxJcyBhbHNvIGVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgd2FzIG5vdCBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLAIPHdlc3RlbmRfcnVudGltZVBSdW50aW1lUGFyYW1ldGVyc0tleQABBCRJbmZsYXRpb24EALQBqQE8ZHluYW1pY19wYXJhbXM6OmluZmxhdGlvbjo6UGFyYW1ldGVycyBhcyBmcmFtZV9zdXBwb3J0Ojp0cmFpdHM6OgpkeW5hbWljX3BhcmFtczo6QWdncmVnYXRlZEtleVZhbHVlPjo6S2V5AAAAALQQPHdlc3RlbmRfcnVudGltZThkeW5hbWljX3BhcmFtcyRpbmZsYXRpb240UGFyYW1ldGVyc0tleQABFDBNaW5JbmZsYXRpb24EALgBME1pbkluZmxhdGlvbgAAADBNYXhJbmZsYXRpb24EALwBME1heEluZmxhdGlvbgABAChJZGVhbFN0YWtlBADAAShJZGVhbFN0YWtlAAIAHEZhbGxvZmYEAMQBHEZhbGxvZmYAAwA8VXNlQXVjdGlvblNsb3RzBADIATxVc2VBdWN0aW9uU2xvdHMABAAAuBA8d2VzdGVuZF9ydW50aW1lOGR5bmFtaWNfcGFyYW1zJGluZmxhdGlvbjBNaW5JbmZsYXRpb24AAAAAvBA8d2VzdGVuZF9ydW50aW1lOGR5bmFtaWNfcGFyYW1zJGluZmxhdGlvbjBNYXhJbmZsYXRpb24AAAAAwBA8d2VzdGVuZF9ydW50aW1lOGR5bmFtaWNfcGFyYW1zJGluZmxhdGlvbihJZGVhbFN0YWtlAAAAAMQQPHdlc3RlbmRfcnVudGltZThkeW5hbWljX3BhcmFtcyRpbmZsYXRpb24cRmFsbG9mZgAAAADIEDx3ZXN0ZW5kX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uPFVzZUF1Y3Rpb25TbG90cwAAAADMBBhPcHRpb24EBFQB0AEIEE5vbmUAAAAQU29tZQQA0AAAAQAA0Ag8d2VzdGVuZF9ydW50aW1lWFJ1bnRpbWVQYXJhbWV0ZXJzVmFsdWUAAQQkSW5mbGF0aW9uBADUAbEBPGR5bmFtaWNfcGFyYW1zOjppbmZsYXRpb246OlBhcmFtZXRlcnMgYXMgZnJhbWVfc3VwcG9ydDo6dHJhaXRzOjoKZHluYW1pY19wYXJhbXM6OkFnZ3JlZ2F0ZWRLZXlWYWx1ZT46OlZhbHVlAAAAANQQPHdlc3RlbmRfcnVudGltZThkeW5hbWljX3BhcmFtcyRpbmZsYXRpb248UGFyYW1ldGVyc1ZhbHVlAAEUME1pbkluZmxhdGlvbgQA2AEsUGVycXVpbnRpbGwAAAAwTWF4SW5mbGF0aW9uBADYASxQZXJxdWludGlsbAABAChJZGVhbFN0YWtlBADYASxQZXJxdWludGlsbAACABxGYWxsb2ZmBADYASxQZXJxdWludGlsbAADADxVc2VBdWN0aW9uU2xvdHMEACABEGJvb2wABAAA2Aw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzLFBlcnF1aW50aWxsAAAEADABDHU2NAAA3Aw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50AAEEKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4EAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV04Aw4cGFsbGV0X2dyYW5kcGEYcGFsbGV0FEV2ZW50AAEMOE5ld0F1dGhvcml0aWVzBAE0YXV0aG9yaXR5X3NldOQBNEF1dGhvcml0eUxpc3QAAASMTmV3IGF1dGhvcml0eSBzZXQgaGFzIGJlZW4gYXBwbGllZC4YUGF1c2VkAAEEmEN1cnJlbnQgYXV0aG9yaXR5IHNldCBoYXMgYmVlbiBwYXVzZWQuHFJlc3VtZWQAAgScQ3VycmVudCBhdXRob3JpdHkgc2V0IGhhcyBiZWVuIHJlc3VtZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV05AAAAugA6AAABAjsMADsDFBzcF9jb25zZW5zdXNfZ3JhbmRwYQxhcHAYUHVibGljAAAEAAQBPGVkMjU1MTk6OlB1YmxpYwAA8Aw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEYQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleBABDHUzMgABFGVycm9yaAE0RGlzcGF0Y2hFcnJvcgAACFUBQmF0Y2ggb2YgZGlzcGF0Y2hlcyBkaWQgbm90IGNvbXBsZXRlIGZ1bGx5LiBJbmRleCBvZiBmaXJzdCBmYWlsaW5nIGRpc3BhdGNoIGdpdmVuLCBhc0h3ZWxsIGFzIHRoZSBlcnJvci44QmF0Y2hDb21wbGV0ZWQAAQTIQmF0Y2ggb2YgZGlzcGF0Y2hlcyBjb21wbGV0ZWQgZnVsbHkgd2l0aCBubyBlcnJvci5gQmF0Y2hDb21wbGV0ZWRXaXRoRXJyb3JzAAIEtEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGJ1dCBoYXMgZXJyb3JzLjRJdGVtQ29tcGxldGVkAAMEHQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIG5vIGVycm9yLihJdGVtRmFpbGVkBAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAQEEQFBIHNpbmdsZSBpdGVtIHdpdGhpbiBhIEJhdGNoIG9mIGRpc3BhdGNoZXMgaGFzIGNvbXBsZXRlZCB3aXRoIGVycm9yLjBEaXNwYXRjaGVkQXMEARhyZXN1bHT0AThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV09AQYUmVzdWx0CARUAfgERQFoAQgIT2sEAPgAAAAADEVycgQAaAAAAQAA+AAABAAA/Aw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBRFdmVudAQEVAABRCxJZGVudGl0eVNldAQBDHdobwABMFQ6OkFjY291bnRJZAAABOxBIG5hbWUgd2FzIHNldCBvciByZXNldCAod2hpY2ggd2lsbCByZW1vdmUgYWxsIGp1ZGdlbWVudHMpLjxJZGVudGl0eUNsZWFyZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAEEzEEgbmFtZSB3YXMgY2xlYXJlZCwgYW5kIHRoZSBnaXZlbiBiYWxhbmNlIHJldHVybmVkLjhJZGVudGl0eUtpbGxlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAgTEQSBuYW1lIHdhcyByZW1vdmVkIGFuZCB0aGUgZ2l2ZW4gYmFsYW5jZSBzbGFzaGVkLkhKdWRnZW1lbnRSZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAADBJxBIGp1ZGdlbWVudCB3YXMgYXNrZWQgZnJvbSBhIHJlZ2lzdHJhci5QSnVkZ2VtZW50VW5yZXF1ZXN0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgQAThSZWdpc3RyYXJJbmRleAAEBIhBIGp1ZGdlbWVudCByZXF1ZXN0IHdhcyByZXRyYWN0ZWQuOEp1ZGdlbWVudEdpdmVuCAEYdGFyZ2V0AAEwVDo6QWNjb3VudElkAAE8cmVnaXN0cmFyX2luZGV4EAE4UmVnaXN0cmFySW5kZXgABQSUQSBqdWRnZW1lbnQgd2FzIGdpdmVuIGJ5IGEgcmVnaXN0cmFyLjhSZWdpc3RyYXJBZGRlZAQBPHJlZ2lzdHJhcl9pbmRleBABOFJlZ2lzdHJhckluZGV4AAYEWEEgcmVnaXN0cmFyIHdhcyBhZGRlZC5AU3ViSWRlbnRpdHlBZGRlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0GAEwQmFsYW5jZU9mPFQ+AAcE9EEgc3ViLWlkZW50aXR5IHdhcyBhZGRlZCB0byBhbiBpZGVudGl0eSBhbmQgdGhlIGRlcG9zaXQgcGFpZC5IU3ViSWRlbnRpdHlSZW1vdmVkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4ACAQJAUEgc3ViLWlkZW50aXR5IHdhcyByZW1vdmVkIGZyb20gYW4gaWRlbnRpdHkgYW5kIHRoZSBkZXBvc2l0IGZyZWVkLkhTdWJJZGVudGl0eVJldm9rZWQMAQxzdWIAATBUOjpBY2NvdW50SWQAARBtYWluAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdBgBMEJhbGFuY2VPZjxUPgAJCBkBQSBzdWItaWRlbnRpdHkgd2FzIGNsZWFyZWQsIGFuZCB0aGUgZ2l2ZW4gZGVwb3NpdCByZXBhdHJpYXRlZCBmcm9tIHRoZchtYWluIGlkZW50aXR5IGFjY291bnQgdG8gdGhlIHN1Yi1pZGVudGl0eSBhY2NvdW50LjhBdXRob3JpdHlBZGRlZAQBJGF1dGhvcml0eQABMFQ6OkFjY291bnRJZAAKBHxBIHVzZXJuYW1lIGF1dGhvcml0eSB3YXMgYWRkZWQuQEF1dGhvcml0eVJlbW92ZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQACwSEQSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIHJlbW92ZWQuLFVzZXJuYW1lU2V0CAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWUBAQEsVXNlcm5hbWU8VD4ADAR0QSB1c2VybmFtZSB3YXMgc2V0IGZvciBgd2hvYC44VXNlcm5hbWVRdWV1ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZQEBASxVc2VybmFtZTxUPgABKGV4cGlyYXRpb24QAURCbG9ja051bWJlckZvcjxUPgANBBkBQSB1c2VybmFtZSB3YXMgcXVldWVkLCBidXQgYHdob2AgbXVzdCBhY2NlcHQgaXQgcHJpb3IgdG8gYGV4cGlyYXRpb25gLkhQcmVhcHByb3ZhbEV4cGlyZWQEARR3aG9zZQABMFQ6OkFjY291bnRJZAAOBDkBQSBxdWV1ZWQgdXNlcm5hbWUgcGFzc2VkIGl0cyBleHBpcmF0aW9uIHdpdGhvdXQgYmVpbmcgY2xhaW1lZCBhbmQgd2FzIHJlbW92ZWQuSFByaW1hcnlVc2VybmFtZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1lAQEBLFVzZXJuYW1lPFQ+AA8EAQFBIHVzZXJuYW1lIHdhcyBzZXQgYXMgYSBwcmltYXJ5IGFuZCBjYW4gYmUgbG9va2VkIHVwIGZyb20gYHdob2AuXERhbmdsaW5nVXNlcm5hbWVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWUBAQEsVXNlcm5hbWU8VD4AEAhdAUEgZGFuZ2xpbmcgdXNlcm5hbWUgKGFzIGluLCBhIHVzZXJuYW1lIGNvcnJlc3BvbmRpbmcgdG8gYW4gYWNjb3VudCB0aGF0IGhhcyByZW1vdmVkIGl0c2xpZGVudGl0eSkgaGFzIGJlZW4gcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQBAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAAUBDDxwYWxsZXRfcmVjb3ZlcnkYcGFsbGV0FEV2ZW50BARUAAEYPFJlY292ZXJ5Q3JlYXRlZAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAAATIQSByZWNvdmVyeSBwcm9jZXNzIGhhcyBiZWVuIHNldCB1cCBmb3IgYW4gYWNjb3VudC5EUmVjb3ZlcnlJbml0aWF0ZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQAAQQpAUEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYmVlbiBpbml0aWF0ZWQgZm9yIGxvc3QgYWNjb3VudCBieSByZXNjdWVyIGFjY291bnQuPFJlY292ZXJ5Vm91Y2hlZAwBMGxvc3RfYWNjb3VudAABMFQ6OkFjY291bnRJZAABPHJlc2N1ZXJfYWNjb3VudAABMFQ6OkFjY291bnRJZAABGHNlbmRlcgABMFQ6OkFjY291bnRJZAACBFkBQSByZWNvdmVyeSBwcm9jZXNzIGZvciBsb3N0IGFjY291bnQgYnkgcmVzY3VlciBhY2NvdW50IGhhcyBiZWVuIHZvdWNoZWQgZm9yIGJ5IHNlbmRlci44UmVjb3ZlcnlDbG9zZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQAAwQdAUEgcmVjb3ZlcnkgcHJvY2VzcyBmb3IgbG9zdCBhY2NvdW50IGJ5IHJlc2N1ZXIgYWNjb3VudCBoYXMgYmVlbiBjbG9zZWQuQEFjY291bnRSZWNvdmVyZWQIATBsb3N0X2FjY291bnQAATBUOjpBY2NvdW50SWQAATxyZXNjdWVyX2FjY291bnQAATBUOjpBY2NvdW50SWQABAQBAUxvc3QgYWNjb3VudCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVjb3ZlcmVkIGJ5IHJlc2N1ZXIgYWNjb3VudC48UmVjb3ZlcnlSZW1vdmVkBAEwbG9zdF9hY2NvdW50AAEwVDo6QWNjb3VudElkAAUEzEEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYmVlbiByZW1vdmVkIGZvciBhbiBhY2NvdW50LgQwRXZlbnRzIHR5cGUuCQEMOHBhbGxldF92ZXN0aW5nGHBhbGxldBRFdmVudAQEVAABCDhWZXN0aW5nVXBkYXRlZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAASB1bnZlc3RlZBgBMEJhbGFuY2VPZjxUPgAACFEBVGhlIGFtb3VudCB2ZXN0ZWQgaGFzIGJlZW4gdXBkYXRlZC4gVGhpcyBjb3VsZCBpbmRpY2F0ZSBhIGNoYW5nZSBpbiBmdW5kcyBhdmFpbGFibGUuJQFUaGUgYmFsYW5jZSBnaXZlbiBpcyB0aGUgYW1vdW50IHdoaWNoIGlzIGxlZnQgdW52ZXN0ZWQgKGFuZCB0aHVzIGxvY2tlZCkuQFZlc3RpbmdDb21wbGV0ZWQEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEEnEFuIFxbYWNjb3VudFxdIGhhcyBiZWNvbWUgZnVsbHkgdmVzdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldA0BDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFdmVudAQEVAABJCRTY2hlZHVsZWQIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgAABFBTY2hlZHVsZWQgc29tZSB0YXNrLiBDYW5jZWxlZAgBEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4EAEMdTMyAAEETENhbmNlbGVkIHNvbWUgdGFzay4oRGlzcGF0Y2hlZAwBEHRhc2sRAQF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWQVAQFAT3B0aW9uPFRhc2tOYW1lPgABGHJlc3VsdPQBOERpc3BhdGNoUmVzdWx0AAIEVERpc3BhdGNoZWQgc29tZSB0YXNrLiBSZXRyeVNldBABEHRhc2sRAQF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWQVAQFAT3B0aW9uPFRhc2tOYW1lPgABGHBlcmlvZBABREJsb2NrTnVtYmVyRm9yPFQ+AAEccmV0cmllcwgBCHU4AAMEoFNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay44UmV0cnlDYW5jZWxsZWQIARB0YXNrEQEBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkFQEBQE9wdGlvbjxUYXNrTmFtZT4ABASsQ2FuY2VsIGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3Igc29tZSB0YXNrLjxDYWxsVW5hdmFpbGFibGUIARB0YXNrEQEBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlkFQEBQE9wdGlvbjxUYXNrTmFtZT4ABQQpAVRoZSBjYWxsIGZvciB0aGUgcHJvdmlkZWQgaGFzaCB3YXMgbm90IGZvdW5kIHNvIHRoZSB0YXNrIGhhcyBiZWVuIGFib3J0ZWQuOFBlcmlvZGljRmFpbGVkCAEQdGFzaxEBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZBUBAUBPcHRpb248VGFza05hbWU+AAYEPQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJlbmV3ZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2suLFJldHJ5RmFpbGVkCAEQdGFzaxEBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZBUBAUBPcHRpb248VGFza05hbWU+AAcIXQFUaGUgZ2l2ZW4gdGFzayB3YXMgdW5hYmxlIHRvIGJlIHJldHJpZWQgc2luY2UgdGhlIGFnZW5kYSBpcyBmdWxsIGF0IHRoYXQgYmxvY2sgb3IgdGhlcmWcd2FzIG5vdCBlbm91Z2ggd2VpZ2h0IHRvIHJlc2NoZWR1bGUgaXQuVFBlcm1hbmVudGx5T3ZlcndlaWdodAgBEHRhc2sRAQF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWQVAQFAT3B0aW9uPFRhc2tOYW1lPgAIBPBUaGUgZ2l2ZW4gdGFzayBjYW4gbmV2ZXIgYmUgZXhlY3V0ZWQgc2luY2UgaXQgaXMgb3ZlcndlaWdodC4EMEV2ZW50cyB0eXBlLhEBAAAECBAQABUBBBhPcHRpb24EBFQBBAEIEE5vbmUAAAAQU29tZQQABAAAAQAAGQEMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXZlbnQEBFQAAQwUTm90ZWQEARBoYXNoNAEcVDo6SGFzaAAABGhBIHByZWltYWdlIGhhcyBiZWVuIG5vdGVkLiRSZXF1ZXN0ZWQEARBoYXNoNAEcVDo6SGFzaAABBHhBIHByZWltYWdlIGhhcyBiZWVuIHJlcXVlc3RlZC4cQ2xlYXJlZAQBEGhhc2g0ARxUOjpIYXNoAAIEbEEgcHJlaW1hZ2UgaGFzIGJlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldB0BDCxwYWxsZXRfc3VkbxhwYWxsZXQURXZlbnQEBFQAARAUU3VkaWQEASxzdWRvX3Jlc3VsdPQBOERpc3BhdGNoUmVzdWx0BLRUaGUgcmVzdWx0IG9mIHRoZSBjYWxsIG1hZGUgYnkgdGhlIHN1ZG8gdXNlci4ABHBBIHN1ZG8gY2FsbCBqdXN0IHRvb2sgcGxhY2UuKEtleUNoYW5nZWQIAQxvbGQhAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4EtFRoZSBvbGQgc3VkbyBrZXkgKGlmIG9uZSB3YXMgcHJldmlvdXNseSBzZXQpLgEMbmV3AAEwVDo6QWNjb3VudElkBIhUaGUgbmV3IHN1ZG8ga2V5IChpZiBvbmUgd2FzIHNldCkuAQR4VGhlIHN1ZG8ga2V5IGhhcyBiZWVuIHVwZGF0ZWQuKEtleVJlbW92ZWQAAgSAVGhlIGtleSB3YXMgcGVybWFuZW50bHkgcmVtb3ZlZC4oU3Vkb0FzRG9uZQQBLHN1ZG9fcmVzdWx09AE4RGlzcGF0Y2hSZXN1bHQEtFRoZSByZXN1bHQgb2YgdGhlIGNhbGwgbWFkZSBieSB0aGUgc3VkbyB1c2VyLgMEyEEgW3N1ZG9fYXNdKFBhbGxldDo6c3Vkb19hcykgY2FsbCBqdXN0IHRvb2sgcGxhY2UuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0IQEEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAAAlAQwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABFDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx09AE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQQARBwdXJlAAEwVDo6QWNjb3VudElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZSkBATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleC0BAQx1MTYAAQjcQSBwdXJlIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBieSBuZXcgcHJveHkgd2l0aCBnaXZlbpBkaXNhbWJpZ3VhdGlvbiBpbmRleCBhbmQgcHJveHkgdHlwZS4kQW5ub3VuY2VkDAEQcmVhbAABMFQ6OkFjY291bnRJZAABFHByb3h5AAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoNAE0Q2FsbEhhc2hPZjxUPgACBOBBbiBhbm5vdW5jZW1lbnQgd2FzIHBsYWNlZCB0byBtYWtlIGEgY2FsbCBpbiB0aGUgZnV0dXJlLihQcm94eUFkZGVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZSkBATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAMESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlKQEBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4ABARQQSBwcm94eSB3YXMgcmVtb3ZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQpAQg8d2VzdGVuZF9ydW50aW1lJFByb3h5VHlwZQABJAxBbnkAAAAsTm9uVHJhbnNmZXIAAQAoR292ZXJuYW5jZQACABxTdGFraW5nAAMAMFN1ZG9CYWxhbmNlcwAEAERJZGVudGl0eUp1ZGdlbWVudAAFACxDYW5jZWxQcm94eQAGABxBdWN0aW9uAAcAPE5vbWluYXRpb25Qb29scwAIAAAtAQAABQQAMQEMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARAsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnQ1AQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludDUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAABGHJlc3VsdPQBOERpc3BhdGNoUmVzdWx0AAIEnEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLkRNdWx0aXNpZ0NhbmNlbGxlZBABKGNhbmNlbGxpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnQ1AQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAAwSgQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDUBCDxwYWxsZXRfbXVsdGlzaWckVGltZXBvaW50BCxCbG9ja051bWJlcgEQAAgBGGhlaWdodBABLEJsb2NrTnVtYmVyAAEUaW5kZXgQAQx1MzIAADkBDJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2UYcGFsbGV0FEV2ZW50BARUAAEYOFNvbHV0aW9uU3RvcmVkDAEcY29tcHV0ZT0BATxFbGVjdGlvbkNvbXB1dGUAARhvcmlnaW4hAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AATBwcmV2X2VqZWN0ZWQgARBib29sAAActEEgc29sdXRpb24gd2FzIHN0b3JlZCB3aXRoIHRoZSBnaXZlbiBjb21wdXRlLgBRAVRoZSBgb3JpZ2luYCBpbmRpY2F0ZXMgdGhlIG9yaWdpbiBvZiB0aGUgc29sdXRpb24uIElmIGBvcmlnaW5gIGlzIGBTb21lKEFjY291bnRJZClgLFkBdGhlIHN0b3JlZCBzb2x1dGlvbiB3YXMgc3VibWl0dGVkIGluIHRoZSBzaWduZWQgcGhhc2UgYnkgYSBtaW5lciB3aXRoIHRoZSBgQWNjb3VudElkYC4lAU90aGVyd2lzZSwgdGhlIHNvbHV0aW9uIHdhcyBzdG9yZWQgZWl0aGVyIGR1cmluZyB0aGUgdW5zaWduZWQgcGhhc2Ugb3IgYnlNAWBUOjpGb3JjZU9yaWdpbmAuIFRoZSBgYm9vbGAgaXMgYHRydWVgIHdoZW4gYSBwcmV2aW91cyBzb2x1dGlvbiB3YXMgZWplY3RlZCB0byBtYWtlSHJvb20gZm9yIHRoaXMgb25lLkRFbGVjdGlvbkZpbmFsaXplZAgBHGNvbXB1dGU9AQE8RWxlY3Rpb25Db21wdXRlAAEUc2NvcmVBAQE0RWxlY3Rpb25TY29yZQABBBkBVGhlIGVsZWN0aW9uIGhhcyBiZWVuIGZpbmFsaXplZCwgd2l0aCB0aGUgZ2l2ZW4gY29tcHV0YXRpb24gYW5kIHNjb3JlLjhFbGVjdGlvbkZhaWxlZAACDExBbiBlbGVjdGlvbiBmYWlsZWQuAAEBTm90IG11Y2ggY2FuIGJlIHNhaWQgYWJvdXQgd2hpY2ggY29tcHV0ZXMgZmFpbGVkIGluIHRoZSBwcm9jZXNzLiBSZXdhcmRlZAgBHGFjY291bnQAAZg8VCBhcyBmcmFtZV9zeXN0ZW06OkNvbmZpZz46OkFjY291bnRJZAABFHZhbHVlGAEwQmFsYW5jZU9mPFQ+AAMEJQFBbiBhY2NvdW50IGhhcyBiZWVuIHJld2FyZGVkIGZvciB0aGVpciBzaWduZWQgc3VibWlzc2lvbiBiZWluZyBmaW5hbGl6ZWQuHFNsYXNoZWQIARxhY2NvdW50AAGYPFQgYXMgZnJhbWVfc3lzdGVtOjpDb25maWc+OjpBY2NvdW50SWQAARR2YWx1ZRgBMEJhbGFuY2VPZjxUPgAEBCEBQW4gYWNjb3VudCBoYXMgYmVlbiBzbGFzaGVkIGZvciBzdWJtaXR0aW5nIGFuIGludmFsaWQgc2lnbmVkIHN1Ym1pc3Npb24uRFBoYXNlVHJhbnNpdGlvbmVkDAEQZnJvbUUBAWBQaGFzZTxCbG9ja051bWJlckZvcjxUPj4AAQh0b0UBAWBQaGFzZTxCbG9ja051bWJlckZvcjxUPj4AARRyb3VuZBABDHUzMgAFBLhUaGVyZSB3YXMgYSBwaGFzZSB0cmFuc2l0aW9uIGluIGEgZ2l2ZW4gcm91bmQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0PQEIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZTxFbGVjdGlvbkNvbXB1dGUAARQcT25DaGFpbgAAABhTaWduZWQAAQAgVW5zaWduZWQAAgAgRmFsbGJhY2sAAwAkRW1lcmdlbmN5AAQAAEEBCERzcF9ucG9zX2VsZWN0aW9uczRFbGVjdGlvblNjb3JlAAAMATRtaW5pbWFsX3N0YWtlGAE8RXh0ZW5kZWRCYWxhbmNlAAEkc3VtX3N0YWtlGAE8RXh0ZW5kZWRCYWxhbmNlAAFEc3VtX3N0YWtlX3NxdWFyZWQYATxFeHRlbmRlZEJhbGFuY2UAAEUBCJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2UUUGhhc2UECEJuARABEAxPZmYAAAAYU2lnbmVkAAEAIFVuc2lnbmVkBABJAQEoKGJvb2wsIEJuKQACACRFbWVyZ2VuY3kAAwAASQEAAAQIIBAATQEMQHBhbGxldF9iYWdzX2xpc3QYcGFsbGV0FEV2ZW50CARUAARJAAEIIFJlYmFnZ2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEQZnJvbTABIFQ6OlNjb3JlAAEIdG8wASBUOjpTY29yZQAABKRNb3ZlZCBhbiBhY2NvdW50IGZyb20gb25lIGJhZyB0byBhbm90aGVyLjBTY29yZVVwZGF0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAASRuZXdfc2NvcmUwASBUOjpTY29yZQABBNhVcGRhdGVkIHRoZSBzY29yZSBvZiBzb21lIGFjY291bnQgdG8gdGhlIGdpdmVuIGFtb3VudC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRRAQxccGFsbGV0X25vbWluYXRpb25fcG9vbHMYcGFsbGV0FEV2ZW50BARUAAFIHENyZWF0ZWQIASRkZXBvc2l0b3IAATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEYUG9vbElkAAAEYEEgcG9vbCBoYXMgYmVlbiBjcmVhdGVkLhhCb25kZWQQARhtZW1iZXIAATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEYUG9vbElkAAEYYm9uZGVkGAEwQmFsYW5jZU9mPFQ+AAEYam9pbmVkIAEQYm9vbAABBJRBIG1lbWJlciBoYXMgYmVjYW1lIGJvbmRlZCBpbiBhIHBvb2wuHFBhaWRPdXQMARhtZW1iZXIAATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEYUG9vbElkAAEYcGF5b3V0GAEwQmFsYW5jZU9mPFQ+AAIEjEEgcGF5b3V0IGhhcyBiZWVuIG1hZGUgdG8gYSBtZW1iZXIuIFVuYm9uZGVkFAEYbWVtYmVyAAEwVDo6QWNjb3VudElkAAEccG9vbF9pZBABGFBvb2xJZAABHGJhbGFuY2UYATBCYWxhbmNlT2Y8VD4AARhwb2ludHMYATBCYWxhbmNlT2Y8VD4AAQxlcmEQASBFcmFJbmRleAADLJhBIG1lbWJlciBoYXMgdW5ib25kZWQgZnJvbSB0aGVpciBwb29sLgA5AS0gYGJhbGFuY2VgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJhbGFuY2Ugb2YgdGhlIG51bWJlciBvZiBwb2ludHMgdGhhdCBoYXMgYmVlblUBICByZXF1ZXN0ZWQgdG8gYmUgdW5ib25kZWQgKHRoZSBhcmd1bWVudCBvZiB0aGUgYHVuYm9uZGAgdHJhbnNhY3Rpb24pIGZyb20gdGhlIGJvbmRlZBwgIHBvb2wuRQEtIGBwb2ludHNgIGlzIHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgYXJlIGlzc3VlZCBhcyBhIHJlc3VsdCBvZiBgYmFsYW5jZWAgYmVpbmfAZGlzc29sdmVkIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgdW5ib25kaW5nIHBvb2wu5C0gYGVyYWAgaXMgdGhlIGVyYSBpbiB3aGljaCB0aGUgYmFsYW5jZSB3aWxsIGJlIHVuYm9uZGVkLlUBSW4gdGhlIGFic2VuY2Ugb2Ygc2xhc2hpbmcsIHRoZXNlIHZhbHVlcyB3aWxsIG1hdGNoLiBJbiB0aGUgcHJlc2VuY2Ugb2Ygc2xhc2hpbmcsIHRoZU0BbnVtYmVyIG9mIHBvaW50cyB0aGF0IGFyZSBpc3N1ZWQgaW4gdGhlIHVuYm9uZGluZyBwb29sIHdpbGwgYmUgbGVzcyB0aGFuIHRoZSBhbW91bnRkcmVxdWVzdGVkIHRvIGJlIHVuYm9uZGVkLiRXaXRoZHJhd24QARhtZW1iZXIAATBUOjpBY2NvdW50SWQAARxwb29sX2lkEAEYUG9vbElkAAEcYmFsYW5jZRgBMEJhbGFuY2VPZjxUPgABGHBvaW50cxgBMEJhbGFuY2VPZjxUPgAEGJxBIG1lbWJlciBoYXMgd2l0aGRyYXduIGZyb20gdGhlaXIgcG9vbC4AIQFUaGUgZ2l2ZW4gbnVtYmVyIG9mIGBwb2ludHNgIGhhdmUgYmVlbiBkaXNzb2x2ZWQgaW4gcmV0dXJuIG9mIGBiYWxhbmNlYC4AWQFTaW1pbGFyIHRvIGBVbmJvbmRlZGAgZXZlbnQsIGluIHRoZSBhYnNlbmNlIG9mIHNsYXNoaW5nLCB0aGUgcmF0aW8gb2YgcG9pbnQgdG8gYmFsYW5jZSh3aWxsIGJlIDEuJERlc3Ryb3llZAQBHHBvb2xfaWQQARhQb29sSWQABQRoQSBwb29sIGhhcyBiZWVuIGRlc3Ryb3llZC4wU3RhdGVDaGFuZ2VkCAEccG9vbF9pZBABGFBvb2xJZAABJG5ld19zdGF0ZVUBASRQb29sU3RhdGUABgR8VGhlIHN0YXRlIG9mIGEgcG9vbCBoYXMgY2hhbmdlZDRNZW1iZXJSZW1vdmVkDAEccG9vbF9pZBABGFBvb2xJZAABGG1lbWJlcgABMFQ6OkFjY291bnRJZAABQHJlbGVhc2VkX2JhbGFuY2UYATBCYWxhbmNlT2Y8VD4ABxSYQSBtZW1iZXIgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIGEgcG9vbC4AUQFUaGUgcmVtb3ZhbCBjYW4gYmUgdm9sdW50YXJ5ICh3aXRoZHJhd24gYWxsIHVuYm9uZGVkIGZ1bmRzKSBvciBpbnZvbHVudGFyeSAoa2lja2VkKS5JAUFueSBmdW5kcyB0aGF0IGFyZSBzdGlsbCBkZWxlZ2F0ZWQgKGkuZS4gZGFuZ2xpbmcgZGVsZWdhdGlvbikgYXJlIHJlbGVhc2VkIGFuZCBhcmWIcmVwcmVzZW50ZWQgYnkgYHJlbGVhc2VkX2JhbGFuY2VgLjBSb2xlc1VwZGF0ZWQMARByb290IQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEcYm91bmNlciEBAVBPcHRpb248VDo6QWNjb3VudElkPgABJG5vbWluYXRvciEBAVBPcHRpb248VDo6QWNjb3VudElkPgAICFUBVGhlIHJvbGVzIG9mIGEgcG9vbCBoYXZlIGJlZW4gdXBkYXRlZCB0byB0aGUgZ2l2ZW4gbmV3IHJvbGVzLiBOb3RlIHRoYXQgdGhlIGRlcG9zaXRvckRjYW4gbmV2ZXIgY2hhbmdlLixQb29sU2xhc2hlZAgBHHBvb2xfaWQQARhQb29sSWQAARxiYWxhbmNlGAEwQmFsYW5jZU9mPFQ+AAkEDQFUaGUgYWN0aXZlIGJhbGFuY2Ugb2YgcG9vbCBgcG9vbF9pZGAgaGFzIGJlZW4gc2xhc2hlZCB0byBgYmFsYW5jZWAuUFVuYm9uZGluZ1Bvb2xTbGFzaGVkDAEccG9vbF9pZBABGFBvb2xJZAABDGVyYRABIEVyYUluZGV4AAEcYmFsYW5jZRgBMEJhbGFuY2VPZjxUPgAKBCUBVGhlIHVuYm9uZCBwb29sIGF0IGBlcmFgIG9mIHBvb2wgYHBvb2xfaWRgIGhhcyBiZWVuIHNsYXNoZWQgdG8gYGJhbGFuY2VgLlRQb29sQ29tbWlzc2lvblVwZGF0ZWQIARxwb29sX2lkEAEYUG9vbElkAAEcY3VycmVudFkBAXxPcHRpb248KFBlcmJpbGwsIFQ6OkFjY291bnRJZCk+AAsEtEEgcG9vbCdzIGNvbW1pc3Npb24gc2V0dGluZyBoYXMgYmVlbiBjaGFuZ2VkLmBQb29sTWF4Q29tbWlzc2lvblVwZGF0ZWQIARxwb29sX2lkEAEYUG9vbElkAAE4bWF4X2NvbW1pc3Npb26UARxQZXJiaWxsAAwE1EEgcG9vbCdzIG1heGltdW0gY29tbWlzc2lvbiBzZXR0aW5nIGhhcyBiZWVuIGNoYW5nZWQufFBvb2xDb21taXNzaW9uQ2hhbmdlUmF0ZVVwZGF0ZWQIARxwb29sX2lkEAEYUG9vbElkAAEsY2hhbmdlX3JhdGVhAQGcQ29tbWlzc2lvbkNoYW5nZVJhdGU8QmxvY2tOdW1iZXJGb3I8VD4+AA0EzEEgcG9vbCdzIGNvbW1pc3Npb24gYGNoYW5nZV9yYXRlYCBoYXMgYmVlbiBjaGFuZ2VkLpBQb29sQ29tbWlzc2lvbkNsYWltUGVybWlzc2lvblVwZGF0ZWQIARxwb29sX2lkEAEYUG9vbElkAAEocGVybWlzc2lvbmUBAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAOBMhQb29sIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbiBoYXMgYmVlbiB1cGRhdGVkLlRQb29sQ29tbWlzc2lvbkNsYWltZWQIARxwb29sX2lkEAEYUG9vbElkAAEoY29tbWlzc2lvbhgBMEJhbGFuY2VPZjxUPgAPBIRQb29sIGNvbW1pc3Npb24gaGFzIGJlZW4gY2xhaW1lZC5kTWluQmFsYW5jZURlZmljaXRBZGp1c3RlZAgBHHBvb2xfaWQQARhQb29sSWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AEATIVG9wcGVkIHVwIGRlZmljaXQgaW4gZnJvemVuIEVEIG9mIHRoZSByZXdhcmQgcG9vbC5gTWluQmFsYW5jZUV4Y2Vzc0FkanVzdGVkCAEccG9vbF9pZBABGFBvb2xJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgARBLxDbGFpbWVkIGV4Y2VzcyBmcm96ZW4gRUQgb2YgYWYgdGhlIHJld2FyZCBwb29sLgRYRXZlbnRzIG9mIHRoaXMgcGFsbGV0LlUBCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyRQb29sU3RhdGUAAQwQT3BlbgAAABxCbG9ja2VkAAEAKERlc3Ryb3lpbmcAAgAAWQEEGE9wdGlvbgQEVAFdAQEIEE5vbmUAAAAQU29tZQQAXQEAAAEAAF0BAAAECJQAAGEBCFxwYWxsZXRfbm9taW5hdGlvbl9wb29sc1BDb21taXNzaW9uQ2hhbmdlUmF0ZQQsQmxvY2tOdW1iZXIBEAAIATBtYXhfaW5jcmVhc2WUARxQZXJiaWxsAAEkbWluX2RlbGF5EAEsQmxvY2tOdW1iZXIAAGUBBBhPcHRpb24EBFQBaQEBCBBOb25lAAAAEFNvbWUEAGkBAAABAABpAQhccGFsbGV0X25vbWluYXRpb25fcG9vbHNkQ29tbWlzc2lvbkNsYWltUGVybWlzc2lvbgQkQWNjb3VudElkAQABCDhQZXJtaXNzaW9ubGVzcwAAABxBY2NvdW50BAAAASRBY2NvdW50SWQAAQAAbQEMTHBhbGxldF9mYXN0X3Vuc3Rha2UYcGFsbGV0FEV2ZW50BARUAAEUIFVuc3Rha2VkCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARhyZXN1bHT0AThEaXNwYXRjaFJlc3VsdAAABFhBIHN0YWtlciB3YXMgdW5zdGFrZWQuHFNsYXNoZWQIARRzdGFzaAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgABBBkBQSBzdGFrZXIgd2FzIHNsYXNoZWQgZm9yIHJlcXVlc3RpbmcgZmFzdC11bnN0YWtlIHdoaWxzdCBiZWluZyBleHBvc2VkLjBCYXRjaENoZWNrZWQEARBlcmFzcQEBNFZlYzxFcmFJbmRleD4AAgRFAUEgYmF0Y2ggd2FzIHBhcnRpYWxseSBjaGVja2VkIGZvciB0aGUgZ2l2ZW4gZXJhcywgYnV0IHRoZSBwcm9jZXNzIGRpZCBub3QgZmluaXNoLjRCYXRjaEZpbmlzaGVkBAEQc2l6ZRABDHUzMgADEJxBIGJhdGNoIG9mIGEgZ2l2ZW4gc2l6ZSB3YXMgdGVybWluYXRlZC4AVQFUaGlzIGlzIGFsd2F5cyBmb2xsb3dzIGJ5IGEgbnVtYmVyIG9mIGBVbnN0YWtlZGAgb3IgYFNsYXNoZWRgIGV2ZW50cywgbWFya2luZyB0aGUgZW5k6G9mIHRoZSBiYXRjaC4gQSBuZXcgYmF0Y2ggd2lsbCBiZSBjcmVhdGVkIHVwb24gbmV4dCBibG9jay40SW50ZXJuYWxFcnJvcgAEBOhBbiBpbnRlcm5hbCBlcnJvciBoYXBwZW5lZC4gT3BlcmF0aW9ucyB3aWxsIGJlIHBhdXNlZCBub3cuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0cQEAAAIQAHUBDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0FEV2ZW50CARUAARJAAEQJERlbGVnYXRlZAgAAAEwVDo6QWNjb3VudElkAAAAATBUOjpBY2NvdW50SWQAAAQdAUFuIGFjY291bnQgaGFzIGRlbGVnYXRlZCB0aGVpciB2b3RlIHRvIGFub3RoZXIgYWNjb3VudC4gXFt3aG8sIHRhcmdldFxdLFVuZGVsZWdhdGVkBAAAATBUOjpBY2NvdW50SWQAAQT0QW4gXFthY2NvdW50XF0gaGFzIGNhbmNlbGxlZCBhIHByZXZpb3VzIGRlbGVnYXRpb24gb3BlcmF0aW9uLhRWb3RlZAgBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGV5AQFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgACBGRBbiBhY2NvdW50IHRoYXQgaGFzIHZvdGVkLFZvdGVSZW1vdmVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEQdm90ZXkBAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAMEYEEgdm90ZSB0aGF0IGJlZW4gcmVtb3ZlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkBDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSxBY2NvdW50Vm90ZQQcQmFsYW5jZQEYAQwgU3RhbmRhcmQIARB2b3RlfQEBEFZvdGUAARxiYWxhbmNlGAEcQmFsYW5jZQAAABRTcGxpdAgBDGF5ZRgBHEJhbGFuY2UAAQxuYXkYARxCYWxhbmNlAAEAMFNwbGl0QWJzdGFpbgwBDGF5ZRgBHEJhbGFuY2UAAQxuYXkYARxCYWxhbmNlAAEcYWJzdGFpbhgBHEJhbGFuY2UAAgAAfQEMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlEFZvdGUAAAQACAAAAIEBDEBwYWxsZXRfcmVmZXJlbmRhGHBhbGxldBRFdmVudAgEVAAESQABQCRTdWJtaXR0ZWQMARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFjay0BATxUcmFja0lkT2Y8VCwgST4EJQFUaGUgdHJhY2sgKGFuZCBieSBleHRlbnNpb24gcHJvcG9zYWwgZGlzcGF0Y2ggb3JpZ2luKSBvZiB0aGlzIHJlZmVyZW5kdW0uASBwcm9wb3NhbIUBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+BIBUaGUgcHJvcG9zYWwgZm9yIHRoZSByZWZlcmVuZHVtLgAEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzdWJtaXR0ZWQuVERlY2lzaW9uRGVwb3NpdFBsYWNlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAQSUVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcGxhY2VkLlxEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuAgScVGhlIGRlY2lzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuOERlcG9zaXRTbGFzaGVkCAEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50GAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4DBGxBIGRlcG9zaXQgaGFzIGJlZW4gc2xhc2hlZC48RGVjaXNpb25TdGFydGVkEAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdHJhY2stAQE8VHJhY2tJZE9mPFQsIEk+BCUBVGhlIHRyYWNrIChhbmQgYnkgZXh0ZW5zaW9uIHByb3Bvc2FsIGRpc3BhdGNoIG9yaWdpbikgb2YgdGhpcyByZWZlcmVuZHVtLgEgcHJvcG9zYWyFAQFMQm91bmRlZENhbGxPZjxULCBJPgSAVGhlIHByb3Bvc2FsIGZvciB0aGUgcmVmZXJlbmR1bS4BFHRhbGx53QcBIFQ6OlRhbGx5BLhUaGUgY3VycmVudCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBAS8QSByZWZlcmVuZHVtIGhhcyBtb3ZlZCBpbnRvIHRoZSBkZWNpZGluZyBwaGFzZS44Q29uZmlybVN0YXJ0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBQA4Q29uZmlybUFib3J0ZWQEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uBgAkQ29uZmlybWVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHndBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uBwQhAUEgcmVmZXJlbmR1bSBoYXMgZW5kZWQgaXRzIGNvbmZpcm1hdGlvbiBwaGFzZSBhbmQgaXMgcmVhZHkgZm9yIGFwcHJvdmFsLiBBcHByb3ZlZAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4IBA0BQSByZWZlcmVuZHVtIGhhcyBiZWVuIGFwcHJvdmVkIGFuZCBpdHMgcHJvcG9zYWwgaGFzIGJlZW4gc2NoZWR1bGVkLiBSZWplY3RlZAgBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx53QcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgkErEEgcHJvcG9zYWwgaGFzIGJlZW4gcmVqZWN0ZWQgYnkgcmVmZXJlbmR1bS4gVGltZWRPdXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxsed0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4KBNhBIHJlZmVyZW5kdW0gaGFzIGJlZW4gdGltZWQgb3V0IHdpdGhvdXQgYmVpbmcgZGVjaWRlZC4kQ2FuY2VsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHndBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCwSAQSByZWZlcmVuZHVtIGhhcyBiZWVuIGNhbmNlbGxlZC4YS2lsbGVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHndBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uDAR0QSByZWZlcmVuZHVtIGhhcyBiZWVuIGtpbGxlZC5kU3VibWlzc2lvbkRlcG9zaXRSZWZ1bmRlZAwBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BDHdobwABMFQ6OkFjY291bnRJZASMVGhlIGFjY291bnQgd2hvIHBsYWNlZCB0aGUgZGVwb3NpdC4BGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgSEVGhlIGFtb3VudCBwbGFjZWQgYnkgdGhlIGFjY291bnQuDQSkVGhlIHN1Ym1pc3Npb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC4sTWV0YWRhdGFTZXQIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARBoYXNoNAEcVDo6SGFzaAQ4UHJlaW1hZ2UgaGFzaC4OBJxNZXRhZGF0YSBmb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIHNldC48TWV0YWRhdGFDbGVhcmVkCAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaDQBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwSsTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIUBEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyRwcmVpbWFnZXMcQm91bmRlZAgEVAGJAQRIAdUHAQwYTGVnYWN5BAEQaGFzaDQBJEg6Ok91dHB1dAAAABhJbmxpbmUEANkHATRCb3VuZGVkSW5saW5lAAEAGExvb2t1cAgBEGhhc2g0ASRIOjpPdXRwdXQAAQxsZW4QAQx1MzIAAgAAiQEIPHdlc3RlbmRfcnVudGltZSxSdW50aW1lQ2FsbAABxBhTeXN0ZW0EAI0BAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN5c3RlbSwgUnVudGltZT4AAAAQQmFiZQQAnQEBpQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFiZSwgUnVudGltZT4AAQAkVGltZXN0YW1wBADFAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUaW1lc3RhbXAsIFJ1bnRpbWU+AAIAHEluZGljZXMEAMkBAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEluZGljZXMsIFJ1bnRpbWU+AAMAIEJhbGFuY2VzBADZAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABAAcU3Rha2luZwQA6QEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3Rha2luZywgUnVudGltZT4ABgAoUGFyYW1ldGVycwQAHQIBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYW1ldGVycywgUnVudGltZT4ARgAcU2Vzc2lvbgQAMQIBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2Vzc2lvbiwgUnVudGltZT4ACAAcR3JhbmRwYQQATQIBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R3JhbmRwYSwgUnVudGltZT4ACgAcVXRpbGl0eQQAeQIBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AEAAgSWRlbnRpdHkEANkCAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPElkZW50aXR5LCBSdW50aW1lPgARACBSZWNvdmVyeQQAgQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVjb3ZlcnksIFJ1bnRpbWU+ABIAHFZlc3RpbmcEAIUDAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFZlc3RpbmcsIFJ1bnRpbWU+ABMAJFNjaGVkdWxlcgQAjQMBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NoZWR1bGVyLCBSdW50aW1lPgAUACBQcmVpbWFnZQQAlQMBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJlaW1hZ2UsIFJ1bnRpbWU+ABwAEFN1ZG8EAJ0DAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFN1ZG8sIFJ1bnRpbWU+ABUAFFByb3h5BAChAwGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcm94eSwgUnVudGltZT4AFgAgTXVsdGlzaWcEAKkDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgAXAGhFbGVjdGlvblByb3ZpZGVyTXVsdGlQaGFzZQQAsQMB/QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RWxlY3Rpb25Qcm92aWRlck11bHRpUGhhc2UsIFJ1bnRpbWU+ABgAJFZvdGVyTGlzdAQApQQBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Vm90ZXJMaXN0LCBSdW50aW1lPgAZADxOb21pbmF0aW9uUG9vbHMEAKkEAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE5vbWluYXRpb25Qb29scywgUnVudGltZT4AHQAsRmFzdFVuc3Rha2UEAMUEAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEZhc3RVbnN0YWtlLCBSdW50aW1lPgAeAEBDb252aWN0aW9uVm90aW5nBADJBAHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDb252aWN0aW9uVm90aW5nLCBSdW50aW1lPgAfACRSZWZlcmVuZGEEANUEAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVyZW5kYSwgUnVudGltZT4AIAAkV2hpdGVsaXN0BADhBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxXaGl0ZWxpc3QsIFJ1bnRpbWU+ACQAIFRyZWFzdXJ5BADlBAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmVhc3VyeSwgUnVudGltZT4AJQA0Q29uZmlndXJhdGlvbgQAKQUByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29uZmlndXJhdGlvbiwgUnVudGltZT4AKgAsUGFyYXNTaGFyZWQEAE0FAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzU2hhcmVkLCBSdW50aW1lPgArADRQYXJhSW5jbHVzaW9uBABRBQHJAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhSW5jbHVzaW9uLCBSdW50aW1lPgAsADBQYXJhSW5oZXJlbnQEAFUFAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFJbmhlcmVudCwgUnVudGltZT4ALQAUUGFyYXMEAOEFAakBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzLCBSdW50aW1lPgAvACxJbml0aWFsaXplcgQA6QUBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SW5pdGlhbGl6ZXIsIFJ1bnRpbWU+ADAAEEhybXAEAO0FAaUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhybXAsIFJ1bnRpbWU+ADMANFBhcmFzRGlzcHV0ZXMEAPUFAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzRGlzcHV0ZXMsIFJ1bnRpbWU+ADUANFBhcmFzU2xhc2hpbmcEAPkFAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFzU2xhc2hpbmcsIFJ1bnRpbWU+ADYAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyBAAJBgH9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlciwgUnVudGltZT4AOAAkUmVnaXN0cmFyBAANBgG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWdpc3RyYXIsIFJ1bnRpbWU+ADwAFFNsb3RzBAARBgGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTbG90cywgUnVudGltZT4APQBAUGFyYXNTdWRvV3JhcHBlcgQAFQYB1QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYXNTdWRvV3JhcHBlciwgUnVudGltZT4APgAgQXVjdGlvbnMEABkHAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEF1Y3Rpb25zLCBSdW50aW1lPgA/ACRDcm93ZGxvYW4EACEHAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENyb3dkbG9hbiwgUnVudGltZT4AQAA0QXNzaWduZWRTbG90cwQALQcByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzaWduZWRTbG90cywgUnVudGltZT4AQQAgQ29yZXRpbWUEADUHAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvcmV0aW1lLCBSdW50aW1lPgBCACRYY21QYWxsZXQEAEkHAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbVBhbGxldCwgUnVudGltZT4AYwAwTWVzc2FnZVF1ZXVlBACFBwHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZXNzYWdlUXVldWUsIFJ1bnRpbWU+AGQAJEFzc2V0UmF0ZQQAkQcBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSYXRlLCBSdW50aW1lPgBlACxSb290VGVzdGluZwQAmQcBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Um9vdFRlc3RpbmcsIFJ1bnRpbWU+AGYAFEJlZWZ5BACdBwGpAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCZWVmeSwgUnVudGltZT4AyABASWRlbnRpdHlNaWdyYXRvcgQA0QcB1QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SWRlbnRpdHlNaWdyYXRvciwgUnVudGltZT4A+AAAjQEMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcms4ARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMwAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlOAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZTgBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtc5EBATRWZWM8S2V5VmFsdWU+AAQEaFNldCBzb21lIGl0ZW1zIG9mIHN0b3JhZ2UuMGtpbGxfc3RvcmFnZQQBEGtleXOZAQEgVmVjPEtleT4ABQR0S2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4sa2lsbF9wcmVmaXgIARhwcmVmaXg4AQxLZXkAARxzdWJrZXlzEAEMdTMyAAYQEQFLaWxsIGFsbCBzdG9yYWdlIGl0ZW1zIHdpdGggYSBrZXkgdGhhdCBzdGFydHMgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LgA5ASoqTk9URToqKiBXZSByZWx5IG9uIHRoZSBSb290IG9yaWdpbiB0byBwcm92aWRlIHVzIHRoZSBudW1iZXIgb2Ygc3Via2V5cyB1bmRlcj0BdGhlIHByZWZpeCB3ZSBhcmUgcmVtb3ZpbmcgdG8gYWNjdXJhdGVseSBjYWxjdWxhdGUgdGhlIHdlaWdodCBvZiB0aGlzIGZ1bmN0aW9uLkRyZW1hcmtfd2l0aF9ldmVudAQBGHJlbWFyazgBHFZlYzx1OD4ABwSkTWFrZSBzb21lIG9uLWNoYWluIHJlbWFyayBhbmQgZW1pdCBldmVudC5EYXV0aG9yaXplX3VwZ3JhZGUEASRjb2RlX2hhc2g0ARxUOjpIYXNoAAkQYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLoBhdXRob3JpemVfdXBncmFkZV93aXRob3V0X2NoZWNrcwQBJGNvZGVfaGFzaDQBHFQ6Okhhc2gACiBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAF0BV0FSTklORzogVGhpcyBhdXRob3JpemVzIGFuIHVwZ3JhZGUgdGhhdCB3aWxsIHRha2UgcGxhY2Ugd2l0aG91dCBhbnkgc2FmZXR5IGNoZWNrcywgZm9yWQFleGFtcGxlIHRoYXQgdGhlIHNwZWMgbmFtZSByZW1haW5zIHRoZSBzYW1lIGFuZCB0aGF0IHRoZSB2ZXJzaW9uIG51bWJlciBpbmNyZWFzZXMuIE5vdPByZWNvbW1lbmRlZCBmb3Igbm9ybWFsIHVzZS4gVXNlIGBhdXRob3JpemVfdXBncmFkZWAgaW5zdGVhZC4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi5gYXBwbHlfYXV0aG9yaXplZF91cGdyYWRlBAEQY29kZTgBHFZlYzx1OD4ACyRVAVByb3ZpZGUgdGhlIHByZWltYWdlIChydW50aW1lIGJpbmFyeSkgYGNvZGVgIGZvciBhbiB1cGdyYWRlIHRoYXQgaGFzIGJlZW4gYXV0aG9yaXplZC4ASQFJZiB0aGUgYXV0aG9yaXphdGlvbiByZXF1aXJlZCBhIHZlcnNpb24gY2hlY2ssIHRoaXMgY2FsbCB3aWxsIGVuc3VyZSB0aGUgc3BlYyBuYW1l6HJlbWFpbnMgdW5jaGFuZ2VkIGFuZCB0aGF0IHRoZSBzcGVjIHZlcnNpb24gaGFzIGluY3JlYXNlZC4AWQFEZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUncyBgT25TZXRDb2RlYCBjb25maWd1cmF0aW9uLCB0aGlzIGZ1bmN0aW9uIG1heSBkaXJlY3RseSBhcHBseREBdGhlIG5ldyBgY29kZWAgaW4gdGhlIHNhbWUgYmxvY2sgb3IgYXR0ZW1wdCB0byBzY2hlZHVsZSB0aGUgdXBncmFkZS4AYEFsbCBvcmlnaW5zIGFyZSBhbGxvd2VkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6RAQAAApUBAJUBAAAECDg4AJkBAAACOACdAQwscGFsbGV0X2JhYmUYcGFsbGV0EENhbGwEBFQAAQxMcmVwb3J0X2VxdWl2b2NhdGlvbggBSGVxdWl2b2NhdGlvbl9wcm9vZqEBAZBCb3g8RXF1aXZvY2F0aW9uUHJvb2Y8SGVhZGVyRm9yPFQ+Pj4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgAAEAkBUmVwb3J0IGF1dGhvcml0eSBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5BQF0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZg0BYWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLiBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2Ugd2lsbDBiZSByZXBvcnRlZC5wcmVwb3J0X2VxdWl2b2NhdGlvbl91bnNpZ25lZAgBSGVxdWl2b2NhdGlvbl9wcm9vZqEBAZBCb3g8RXF1aXZvY2F0aW9uUHJvb2Y8SGVhZGVyRm9yPFQ+Pj4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgABIAkBUmVwb3J0IGF1dGhvcml0eSBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5BQF0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZg0BYWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLiBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2Ugd2lsbDBiZSByZXBvcnRlZC4NAVRoaXMgZXh0cmluc2ljIG11c3QgYmUgY2FsbGVkIHVuc2lnbmVkIGFuZCBpdCBpcyBleHBlY3RlZCB0aGF0IG9ubHkVAWJsb2NrIGF1dGhvcnMgd2lsbCBjYWxsIGl0ICh2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgKSwgYXMgc3VjaBUBaWYgdGhlIGJsb2NrIGF1dGhvciBpcyBkZWZpbmVkIGl0IHdpbGwgYmUgZGVmaW5lZCBhcyB0aGUgZXF1aXZvY2F0aW9uJHJlcG9ydGVyLkhwbGFuX2NvbmZpZ19jaGFuZ2UEARhjb25maWe5AQFQTmV4dENvbmZpZ0Rlc2NyaXB0b3IAAhBdAVBsYW4gYW4gZXBvY2ggY29uZmlnIGNoYW5nZS4gVGhlIGVwb2NoIGNvbmZpZyBjaGFuZ2UgaXMgcmVjb3JkZWQgYW5kIHdpbGwgYmUgZW5hY3RlZCBvblEBdGhlIG5leHQgY2FsbCB0byBgZW5hY3RfZXBvY2hfY2hhbmdlYC4gVGhlIGNvbmZpZyB3aWxsIGJlIGFjdGl2YXRlZCBvbmUgZXBvY2ggYWZ0ZXIuWQFNdWx0aXBsZSBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIHJlcGxhY2UgYW55IGV4aXN0aW5nIHBsYW5uZWQgY29uZmlnIGNoYW5nZSB0aGF0IGhhZFRub3QgYmVlbiBlbmFjdGVkIHlldC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuoQEISHNwX2NvbnNlbnN1c19zbG90c0RFcXVpdm9jYXRpb25Qcm9vZggYSGVhZGVyAaUBCElkAa0BABABIG9mZmVuZGVyrQEBCElkAAEQc2xvdLEBARBTbG90AAEwZmlyc3RfaGVhZGVypQEBGEhlYWRlcgABNHNlY29uZF9oZWFkZXKlAQEYSGVhZGVyAAClARAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgEQEEhhc2gAABQBLHBhcmVudF9oYXNoNAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVyqQEBGE51bWJlcgABKHN0YXRlX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAATxleHRyaW5zaWNzX3Jvb3Q0ATBIYXNoOjpPdXRwdXQAARhkaWdlc3Q8ARhEaWdlc3QAAKkBAAAGEACtAQxEc3BfY29uc2Vuc3VzX2JhYmUMYXBwGFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAALEBCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAwAQx1NjQAALUBCChzcF9zZXNzaW9uPE1lbWJlcnNoaXBQcm9vZgAADAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABKHRyaWVfbm9kZXOZAQEwVmVjPFZlYzx1OD4+AAE8dmFsaWRhdG9yX2NvdW50EAE4VmFsaWRhdG9yQ291bnQAALkBDERzcF9jb25zZW5zdXNfYmFiZRxkaWdlc3RzUE5leHRDb25maWdEZXNjcmlwdG9yAAEECFYxCAEEY70BASgodTY0LCB1NjQpAAE0YWxsb3dlZF9zbG90c8EBATBBbGxvd2VkU2xvdHMAAQAAvQEAAAQIMDAAwQEIRHNwX2NvbnNlbnN1c19iYWJlMEFsbG93ZWRTbG90cwABDDBQcmltYXJ5U2xvdHMAAAB0UHJpbWFyeUFuZFNlY29uZGFyeVBsYWluU2xvdHMAAQBsUHJpbWFyeUFuZFNlY29uZGFyeVZSRlNsb3RzAAIAAMUBDEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vdywBJFQ6Ok1vbWVudAAATFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnloW2BDb25maWc6Ok1pbmltdW1QZXJpb2RgXS4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUQFUaGlzIGRpc3BhdGNoIGNsYXNzIGlzIF9NYW5kYXRvcnlfIHRvIGVuc3VyZSBpdCBnZXRzIGV4ZWN1dGVkIGluIHRoZSBibG9jay4gQmUgYXdhcmVRAXRoYXQgY2hhbmdpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjYWxsIGNvdWxkIHJlc3VsdCBleGhhdXN0aW5nIHRoZSByZXNvdXJjZXMgaW4gYYRibG9jayB0byBleGVjdXRlIGFueSBvdGhlciBjYWxscy4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClVAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgIGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7JAQw4cGFsbGV0X2luZGljZXMYcGFsbGV0EENhbGwEBFQAARQUY2xhaW0EARRpbmRleBABPFQ6OkFjY291bnRJbmRleAAAMJhBc3NpZ24gYW4gcHJldmlvdXNseSB1bmFzc2lnbmVkIGluZGV4LgDcUGF5bWVudDogYERlcG9zaXRgIGlzIHJlc2VydmVkIGZyb20gdGhlIHNlbmRlciBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAPAtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSBjbGFpbWVkLiBUaGlzIG11c3Qgbm90IGJlIGluIHVzZS4AkEVtaXRzIGBJbmRleEFzc2lnbmVkYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4gdHJhbnNmZXIIAQxuZXfNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRpbmRleBABPFQ6OkFjY291bnRJbmRleAABMF0BQXNzaWduIGFuIGluZGV4IGFscmVhZHkgb3duZWQgYnkgdGhlIHNlbmRlciB0byBhbm90aGVyIGFjY291bnQuIFRoZSBiYWxhbmNlIHJlc2VydmF0aW9uuGlzIGVmZmVjdGl2ZWx5IHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAlAS0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIHJlLWFzc2lnbmVkLiBUaGlzIG11c3QgYmUgb3duZWQgYnkgdGhlIHNlbmRlci5dAS0gYG5ld2A6IHRoZSBuZXcgb3duZXIgb2YgdGhlIGluZGV4LiBUaGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AgaWYgaXQgaXMgZXF1YWwgdG8gc2VuZGVyLgCQRW1pdHMgYEluZGV4QXNzaWduZWRgIGlmIHN1Y2Nlc3NmdWwuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLhBmcmVlBAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAAjCURnJlZSB1cCBhbiBpbmRleCBvd25lZCBieSB0aGUgc2VuZGVyLgBdAVBheW1lbnQ6IEFueSBwcmV2aW91cyBkZXBvc2l0IHBsYWNlZCBmb3IgdGhlIGluZGV4IGlzIHVucmVzZXJ2ZWQgaW4gdGhlIHNlbmRlciBhY2NvdW50LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3Qgb3duIHRoZSBpbmRleC4ADQEtIGBpbmRleGA6IHRoZSBpbmRleCB0byBiZSBmcmVlZC4gVGhpcyBtdXN0IGJlIG93bmVkIGJ5IHRoZSBzZW5kZXIuAIRFbWl0cyBgSW5kZXhGcmVlZGAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuOGZvcmNlX3RyYW5zZmVyDAEMbmV3zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXgQATxUOjpBY2NvdW50SW5kZXgAARhmcmVlemUgARBib29sAAM0VQFGb3JjZSBhbiBpbmRleCB0byBhbiBhY2NvdW50LiBUaGlzIGRvZXNuJ3QgcmVxdWlyZSBhIGRlcG9zaXQuIElmIHRoZSBpbmRleCBpcyBhbHJlYWR56GhlbGQsIHRoZW4gYW55IGRlcG9zaXQgaXMgcmVpbWJ1cnNlZCB0byBpdHMgY3VycmVudCBvd25lci4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ApC0gYGluZGV4YDogdGhlIGluZGV4IHRvIGJlIChyZS0pYXNzaWduZWQuXQEtIGBuZXdgOiB0aGUgbmV3IG93bmVyIG9mIHRoZSBpbmRleC4gVGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGlmIGl0IGlzIGVxdWFsIHRvIHNlbmRlci5BAS0gYGZyZWV6ZWA6IGlmIHNldCB0byBgdHJ1ZWAsIHdpbGwgZnJlZXplIHRoZSBpbmRleCBzbyBpdCBjYW5ub3QgYmUgdHJhbnNmZXJyZWQuAJBFbWl0cyBgSW5kZXhBc3NpZ25lZGAgaWYgc3VjY2Vzc2Z1bC4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuGGZyZWV6ZQQBFGluZGV4EAE8VDo6QWNjb3VudEluZGV4AAQwQQFGcmVlemUgYW4gaW5kZXggc28gaXQgd2lsbCBhbHdheXMgcG9pbnQgdG8gdGhlIHNlbmRlciBhY2NvdW50LiBUaGlzIGNvbnN1bWVzIHRoZSBkZXBvc2l0LgBZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgaGF2ZSBhbG5vbi1mcm96ZW4gYWNjb3VudCBgaW5kZXhgLgCsLSBgaW5kZXhgOiB0aGUgaW5kZXggdG8gYmUgZnJvemVuIGluIHBsYWNlLgCIRW1pdHMgYEluZGV4RnJvemVuYCBpZiBzdWNjZXNzZnVsLgA0IyMgQ29tcGxleGl0eSQtIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQEMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQAwQWNjb3VudEluZGV4AfgBFAhJZAQAAAEkQWNjb3VudElkAAAAFEluZGV4BADRAQEwQWNjb3VudEluZGV4AAEADFJhdwQAOAEcVmVjPHU4PgACACRBZGRyZXNzMzIEAAQBIFt1ODsgMzJdAAMAJEFkZHJlc3MyMAQA1QEBIFt1ODsgMjBdAAQAANEBAAAG+ADVAQAAAxQAAAAIANkBDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0EENhbGwIBFQABEkAASRQdHJhbnNmZXJfYWxsb3dfZGVhdGgIARBkZXN0zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXdAQEoVDo6QmFsYW5jZQAAHNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgA1AWB0cmFuc2Zlcl9hbGxvd19kZWF0aGAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuEQFJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLjhmb3JjZV90cmFuc2ZlcgwBGHNvdXJjZc0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRlc3TNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1Zd0BAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXdAQEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmUgARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdob80BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudBgBKFQ6OkJhbGFuY2UABQywVW5yZXNlcnZlIHNvbWUgYmFsYW5jZSBmcm9tIGEgdXNlciBieSBmb3JjZS4AbENhbiBvbmx5IGJlIGNhbGxlZCBieSBST09ULkB1cGdyYWRlX2FjY291bnRzBAEMd2hv4QEBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG/NAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZd0BAShUOjpCYWxhbmNlAAgMrFNldCB0aGUgcmVndWxhciBiYWxhbmNlIG9mIGEgZ2l2ZW4gYWNjb3VudC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAubGZvcmNlX2FkanVzdF90b3RhbF9pc3N1YW5jZQgBJGRpcmVjdGlvbuUBAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGHdAQEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXdAQEoVDo6QmFsYW5jZQABKGtlZXBfYWxpdmUgARBib29sAAoc/EJ1cm4gdGhlIHNwZWNpZmllZCBsaXF1aWQgZnJlZSBiYWxhbmNlIGZyb20gdGhlIG9yaWdpbiBhY2NvdW50LgAlAUlmIHRoZSBvcmlnaW4ncyBhY2NvdW50IGVuZHMgdXAgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHQJAW9mIHRoZSBidXJuIGFuZCBga2VlcF9hbGl2ZWAgaXMgZmFsc2UsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgBRAVVubGlrZSBzZW5kaW5nIGZ1bmRzIHRvIGEgX2J1cm5fIGFkZHJlc3MsIHdoaWNoIG1lcmVseSBtYWtlcyB0aGUgZnVuZHMgaW5hY2Nlc3NpYmxlLCEBdGhpcyBgYnVybmAgb3BlcmF0aW9uIHdpbGwgcmVkdWNlIHRvdGFsIGlzc3VhbmNlIGJ5IHRoZSBhbW91bnQgX2J1cm5lZF8uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLt0BAAAGGADhAQAAAgAA5QEMPHBhbGxldF9iYWxhbmNlcxR0eXBlc0xBZGp1c3RtZW50RGlyZWN0aW9uAAEIIEluY3JlYXNlAAAAIERlY3JlYXNlAAEAAOkBEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0EENhbGwEBFQAAXgQYm9uZAgBFHZhbHVl3QEBMEJhbGFuY2VPZjxUPgABFHBheWVlkAF8UmV3YXJkRGVzdGluYXRpb248VDo6QWNjb3VudElkPgAAQGEBVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCBgdmFsdWVgIG9mIGl0cyBiYWxhbmNlLiBgY29udHJvbGxlcmAgd2lsbIBiZSB0aGUgYWNjb3VudCB0aGF0IGNvbnRyb2xzIGl0LgAtAWB2YWx1ZWAgbXVzdCBiZSBtb3JlIHRoYW4gdGhlIGBtaW5pbXVtX2JhbGFuY2VgIHNwZWNpZmllZCBieSBgVDo6Q3VycmVuY3lgLgAhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCBhY2NvdW50LgA8RW1pdHMgYEJvbmRlZGAuNCMjIENvbXBsZXhpdHnQLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBNb2RlcmF0ZSBjb21wbGV4aXR5LhwtIE8oMSkuZC0gVGhyZWUgZXh0cmEgREIgZW50cmllcy4ATQFOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZFkBdW5sZXNzIHRoZSBgb3JpZ2luYCBmYWxscyBiZWxvdyBfZXhpc3RlbnRpYWwgZGVwb3NpdF8gKG9yIGVxdWFsIHRvIDApIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4oYm9uZF9leHRyYQQBOG1heF9hZGRpdGlvbmFs3QEBMEJhbGFuY2VPZjxUPgABOGEBQWRkIHNvbWUgZXh0cmEgYW1vdW50IHRoYXQgaGF2ZSBhcHBlYXJlZCBpbiB0aGUgc3Rhc2ggYGZyZWVfYmFsYW5jZWAgaW50byB0aGUgYmFsYW5jZSB1cDBmb3Igc3Rha2luZy4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgc3Rhc2gsIG5vdCB0aGUgY29udHJvbGxlci4ATQFVc2UgdGhpcyBpZiB0aGVyZSBhcmUgYWRkaXRpb25hbCBmdW5kcyBpbiB5b3VyIHN0YXNoIGFjY291bnQgdGhhdCB5b3Ugd2lzaCB0byBib25kLlUBVW5saWtlIFtgYm9uZGBdKFNlbGY6OmJvbmQpIG9yIFtgdW5ib25kYF0oU2VsZjo6dW5ib25kKSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGltcG9zZbxhbnkgbGltaXRhdGlvbiBvbiB0aGUgYW1vdW50IHRoYXQgY2FuIGJlIGFkZGVkLgA8RW1pdHMgYEJvbmRlZGAuADQjIyBDb21wbGV4aXR55C0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LhwtIE8oMSkuGHVuYm9uZAQBFHZhbHVl3QEBMEJhbGFuY2VPZjxUPgACTFEBU2NoZWR1bGUgYSBwb3J0aW9uIG9mIHRoZSBzdGFzaCB0byBiZSB1bmxvY2tlZCByZWFkeSBmb3IgdHJhbnNmZXIgb3V0IGFmdGVyIHRoZSBib25k/HBlcmlvZCBlbmRzLiBJZiB0aGlzIGxlYXZlcyBhbiBhbW91bnQgYWN0aXZlbHkgYm9uZGVkIGxlc3MgdGhhbiEBVDo6Q3VycmVuY3k6Om1pbmltdW1fYmFsYW5jZSgpLCB0aGVuIGl0IGlzIGluY3JlYXNlZCB0byB0aGUgZnVsbCBhbW91bnQuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAEUBT25jZSB0aGUgdW5sb2NrIHBlcmlvZCBpcyBkb25lLCB5b3UgY2FuIGNhbGwgYHdpdGhkcmF3X3VuYm9uZGVkYCB0byBhY3R1YWxseSBtb3ZlvHRoZSBmdW5kcyBvdXQgb2YgbWFuYWdlbWVudCByZWFkeSBmb3IgdHJhbnNmZXIuADEBTm8gbW9yZSB0aGFuIGEgbGltaXRlZCBudW1iZXIgb2YgdW5sb2NraW5nIGNodW5rcyAoc2VlIGBNYXhVbmxvY2tpbmdDaHVua3NgKUEBY2FuIGNvLWV4aXN0cyBhdCB0aGUgc2FtZSB0aW1lLiBJZiB0aGVyZSBhcmUgbm8gdW5sb2NraW5nIGNodW5rcyBzbG90cyBhdmFpbGFibGVFAVtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXSBpcyBjYWxsZWQgdG8gcmVtb3ZlIHNvbWUgb2YgdGhlIGNodW5rcyAoaWYgcG9zc2libGUpLgA5AUlmIGEgdXNlciBlbmNvdW50ZXJzIHRoZSBgSW5zdWZmaWNpZW50Qm9uZGAgZXJyb3Igd2hlbiBjYWxsaW5nIHRoaXMgZXh0cmluc2ljLBkBdGhleSBzaG91bGQgY2FsbCBgY2hpbGxgIGZpcnN0IGluIG9yZGVyIHRvIGZyZWUgdXAgdGhlaXIgYm9uZGVkIGZ1bmRzLgBERW1pdHMgYFVuYm9uZGVkYC4AlFNlZSBhbHNvIFtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXS5Ed2l0aGRyYXdfdW5ib25kZWQEAUhudW1fc2xhc2hpbmdfc3BhbnMQAQx1MzIAA1wpAVJlbW92ZSBhbnkgdW5sb2NrZWQgY2h1bmtzIGZyb20gdGhlIGB1bmxvY2tpbmdgIHF1ZXVlIGZyb20gb3VyIG1hbmFnZW1lbnQuAFUBVGhpcyBlc3NlbnRpYWxseSBmcmVlcyB1cCB0aGF0IGJhbGFuY2UgdG8gYmUgdXNlZCBieSB0aGUgc3Rhc2ggYWNjb3VudCB0byBkbyB3aGF0ZXZlciRpdCB3YW50cy4AFQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlci4ASEVtaXRzIGBXaXRoZHJhd25gLgBoU2VlIGFsc28gW2BDYWxsOjp1bmJvbmRgXS4ANCMjIFBhcmFtZXRlcnMAUQEtIGBudW1fc2xhc2hpbmdfc3BhbnNgIGluZGljYXRlcyB0aGUgbnVtYmVyIG9mIG1ldGFkYXRhIHNsYXNoaW5nIHNwYW5zIHRvIGNsZWFyIHdoZW5VAXRoaXMgY2FsbCByZXN1bHRzIGluIGEgY29tcGxldGUgcmVtb3ZhbCBvZiBhbGwgdGhlIGRhdGEgcmVsYXRlZCB0byB0aGUgc3Rhc2ggYWNjb3VudC49AUluIHRoaXMgY2FzZSwgdGhlIGBudW1fc2xhc2hpbmdfc3BhbnNgIG11c3QgYmUgbGFyZ2VyIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgb2ZdAXNsYXNoaW5nIHNwYW5zIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3Rhc2ggYWNjb3VudCBpbiB0aGUgW2BTbGFzaGluZ1NwYW5zYF0gc3RvcmFnZSB0eXBlLCUBb3RoZXJ3aXNlIHRoZSBjYWxsIHdpbGwgZmFpbC4gVGhlIGNhbGwgd2VpZ2h0IGlzIGRpcmVjdGx5IHByb3BvcnRpb25hbCB0b1RgbnVtX3NsYXNoaW5nX3NwYW5zYC4ANCMjIENvbXBsZXhpdHnYTyhTKSB3aGVyZSBTIGlzIHRoZSBudW1iZXIgb2Ygc2xhc2hpbmcgc3BhbnMgdG8gcmVtb3ZlCQFOT1RFOiBXZWlnaHQgYW5ub3RhdGlvbiBpcyB0aGUga2lsbCBzY2VuYXJpbywgd2UgcmVmdW5kIG90aGVyd2lzZS4gdmFsaWRhdGUEARRwcmVmc5gBOFZhbGlkYXRvclByZWZzAAQU5ERlY2xhcmUgdGhlIGRlc2lyZSB0byB2YWxpZGF0ZSBmb3IgdGhlIG9yaWdpbiBjb250cm9sbGVyLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guIG5vbWluYXRlBAEcdGFyZ2V0c+0BAWRWZWM8QWNjb3VudElkTG9va3VwT2Y8VD4+AAUoDQFEZWNsYXJlIHRoZSBkZXNpcmUgdG8gbm9taW5hdGUgYHRhcmdldHNgIGZvciB0aGUgb3JpZ2luIGNvbnRyb2xsZXIuANhFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ANCMjIENvbXBsZXhpdHktAS0gVGhlIHRyYW5zYWN0aW9uJ3MgY29tcGxleGl0eSBpcyBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgYHRhcmdldHNgIChOKQUBd2hpY2ggaXMgY2FwcGVkIGF0IENvbXBhY3RBc3NpZ25tZW50czo6TElNSVQgKFQ6Ok1heE5vbWluYXRpb25zKS7ULSBCb3RoIHRoZSByZWFkcyBhbmQgd3JpdGVzIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybi4UY2hpbGwABijERGVjbGFyZSBubyBkZXNpcmUgdG8gZWl0aGVyIHZhbGlkYXRlIG9yIG5vbWluYXRlLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guADQjIyBDb21wbGV4aXR55C0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LlAtIENvbnRhaW5zIG9uZSByZWFkLsQtIFdyaXRlcyBhcmUgbGltaXRlZCB0byB0aGUgYG9yaWdpbmAgYWNjb3VudCBrZXkuJHNldF9wYXllZQQBFHBheWVlkAF8UmV3YXJkRGVzdGluYXRpb248VDo6QWNjb3VudElkPgAHMLQoUmUtKXNldCB0aGUgcGF5bWVudCB0YXJnZXQgZm9yIGEgY29udHJvbGxlci4AUQFFZmZlY3RzIHdpbGwgYmUgZmVsdCBpbnN0YW50bHkgKGFzIHNvb24gYXMgdGhpcyBmdW5jdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ANCMjIENvbXBsZXhpdHkYLSBPKDEp5C0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpQtIENvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMuxC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS4kLS0tLS0tLS0tOHNldF9jb250cm9sbGVyAAg4RQEoUmUtKXNldHMgdGhlIGNvbnRyb2xsZXIgb2YgYSBzdGFzaCB0byB0aGUgc3Rhc2ggaXRzZWxmLiBUaGlzIGZ1bmN0aW9uIHByZXZpb3VzbHlNAWFjY2VwdGVkIGEgYGNvbnRyb2xsZXJgIGFyZ3VtZW50IHRvIHNldCB0aGUgY29udHJvbGxlciB0byBhbiBhY2NvdW50IG90aGVyIHRoYW4gdGhlWQFzdGFzaCBpdHNlbGYuIFRoaXMgZnVuY3Rpb25hbGl0eSBoYXMgbm93IGJlZW4gcmVtb3ZlZCwgbm93IG9ubHkgc2V0dGluZyB0aGUgY29udHJvbGxlcox0byB0aGUgc3Rhc2gsIGlmIGl0IGlzIG5vdCBhbHJlYWR5LgBRAUVmZmVjdHMgd2lsbCBiZSBmZWx0IGluc3RhbnRseSAoYXMgc29vbiBhcyB0aGlzIGZ1bmN0aW9uIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpLgBRAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBzdGFzaCwgbm90IHRoZSBjb250cm9sbGVyLgA0IyMgQ29tcGxleGl0eRBPKDEp5C0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpQtIENvbnRhaW5zIGEgbGltaXRlZCBudW1iZXIgb2YgcmVhZHMuxC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS5Mc2V0X3ZhbGlkYXRvcl9jb3VudAQBDG5ld6kBAQx1MzIACRiQU2V0cyB0aGUgaWRlYWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4ANCMjIENvbXBsZXhpdHkQTygxKWBpbmNyZWFzZV92YWxpZGF0b3JfY291bnQEAShhZGRpdGlvbmFsqQEBDHUzMgAKHOhJbmNyZW1lbnRzIHRoZSBpZGVhbCBudW1iZXIgb2YgdmFsaWRhdG9ycyB1cCB0byBtYXhpbXVtIG9mjGBFbGVjdGlvblByb3ZpZGVyQmFzZTo6TWF4V2lubmVyc2AuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4ANCMjIENvbXBsZXhpdHmYU2FtZSBhcyBbYFNlbGY6OnNldF92YWxpZGF0b3JfY291bnRgXS5Uc2NhbGVfdmFsaWRhdG9yX2NvdW50BAEYZmFjdG9y8QEBHFBlcmNlbnQACxwRAVNjYWxlIHVwIHRoZSBpZGVhbCBudW1iZXIgb2YgdmFsaWRhdG9ycyBieSBhIGZhY3RvciB1cCB0byBtYXhpbXVtIG9mjGBFbGVjdGlvblByb3ZpZGVyQmFzZTo6TWF4V2lubmVyc2AuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4ANCMjIENvbXBsZXhpdHmYU2FtZSBhcyBbYFNlbGY6OnNldF92YWxpZGF0b3JfY291bnRgXS40Zm9yY2Vfbm9fZXJhcwAMNKxGb3JjZSB0aGVyZSB0byBiZSBubyBuZXcgZXJhcyBpbmRlZmluaXRlbHkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS45AVRodXMgdGhlIGVsZWN0aW9uIHByb2Nlc3MgbWF5IGJlIG9uZ29pbmcgd2hlbiB0aGlzIGlzIGNhbGxlZC4gSW4gdGhpcyBjYXNlIHRoZdxlbGVjdGlvbiB3aWxsIGNvbnRpbnVlIHVudGlsIHRoZSBuZXh0IGVyYSBpcyB0cmlnZ2VyZWQuADQjIyBDb21wbGV4aXR5PC0gTm8gYXJndW1lbnRzLjgtIFdlaWdodDogTygxKTRmb3JjZV9uZXdfZXJhAA04SQFGb3JjZSB0aGVyZSB0byBiZSBhIG5ldyBlcmEgYXQgdGhlIGVuZCBvZiB0aGUgbmV4dCBzZXNzaW9uLiBBZnRlciB0aGlzLCBpdCB3aWxsIGJlnHJlc2V0IHRvIG5vcm1hbCAobm9uLWZvcmNlZCkgYmVoYXZpb3VyLgCEVGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIFJvb3QuACQjIFdhcm5pbmcAGQFUaGUgZWxlY3Rpb24gcHJvY2VzcyBzdGFydHMgbXVsdGlwbGUgYmxvY2tzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBlcmEuSQFJZiB0aGlzIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSBhIG5ldyBlcmEgaXMgdHJpZ2dlcmVkLCB0aGUgZWxlY3Rpb24gcHJvY2VzcyBtYXkgbm90jGhhdmUgZW5vdWdoIGJsb2NrcyB0byBnZXQgYSByZXN1bHQuADQjIyBDb21wbGV4aXR5PC0gTm8gYXJndW1lbnRzLjgtIFdlaWdodDogTygxKURzZXRfaW52dWxuZXJhYmxlcwQBNGludnVsbmVyYWJsZXPhAQFEVmVjPFQ6OkFjY291bnRJZD4ADgzIU2V0IHRoZSB2YWxpZGF0b3JzIHdobyBjYW5ub3QgYmUgc2xhc2hlZCAoaWYgYW55KS4AhFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBSb290LjRmb3JjZV91bnN0YWtlCAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAAUhudW1fc2xhc2hpbmdfc3BhbnMQAQx1MzIADyAJAUZvcmNlIGEgY3VycmVudCBzdGFrZXIgdG8gYmVjb21lIGNvbXBsZXRlbHkgdW5zdGFrZWQsIGltbWVkaWF0ZWx5LgCEVGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIFJvb3QuADQjIyBQYXJhbWV0ZXJzAEUBLSBgbnVtX3NsYXNoaW5nX3NwYW5zYDogUmVmZXIgdG8gY29tbWVudHMgb24gW2BDYWxsOjp3aXRoZHJhd191bmJvbmRlZGBdIGZvciBtb3JlIGRldGFpbHMuUGZvcmNlX25ld19lcmFfYWx3YXlzABAkAQFGb3JjZSB0aGVyZSB0byBiZSBhIG5ldyBlcmEgYXQgdGhlIGVuZCBvZiBzZXNzaW9ucyBpbmRlZmluaXRlbHkuAIRUaGUgZGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgUm9vdC4AJCMgV2FybmluZwAZAVRoZSBlbGVjdGlvbiBwcm9jZXNzIHN0YXJ0cyBtdWx0aXBsZSBibG9ja3MgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGVyYS5JAUlmIHRoaXMgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIGEgbmV3IGVyYSBpcyB0cmlnZ2VyZWQsIHRoZSBlbGVjdGlvbiBwcm9jZXNzIG1heSBub3SMaGF2ZSBlbm91Z2ggYmxvY2tzIHRvIGdldCBhIHJlc3VsdC5UY2FuY2VsX2RlZmVycmVkX3NsYXNoCAEMZXJhEAEgRXJhSW5kZXgAATRzbGFzaF9pbmRpY2VzcQEBIFZlYzx1MzI+ABEUlENhbmNlbCBlbmFjdG1lbnQgb2YgYSBkZWZlcnJlZCBzbGFzaC4AmENhbiBiZSBjYWxsZWQgYnkgdGhlIGBUOjpBZG1pbk9yaWdpbmAuAAEBUGFyYW1ldGVyczogZXJhIGFuZCBpbmRpY2VzIG9mIHRoZSBzbGFzaGVzIGZvciB0aGF0IGVyYSB0byBraWxsLjhwYXlvdXRfc3Rha2VycwgBPHZhbGlkYXRvcl9zdGFzaAABMFQ6OkFjY291bnRJZAABDGVyYRABIEVyYUluZGV4ABI0GQFQYXkgb3V0IG5leHQgcGFnZSBvZiB0aGUgc3Rha2VycyBiZWhpbmQgYSB2YWxpZGF0b3IgZm9yIHRoZSBnaXZlbiBlcmEuAOgtIGB2YWxpZGF0b3Jfc3Rhc2hgIGlzIHRoZSBzdGFzaCBhY2NvdW50IG9mIHRoZSB2YWxpZGF0b3IuMQEtIGBlcmFgIG1heSBiZSBhbnkgZXJhIGJldHdlZW4gYFtjdXJyZW50X2VyYSAtIGhpc3RvcnlfZGVwdGg7IGN1cnJlbnRfZXJhXWAuAFUBVGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4gQW55IGFjY291bnQgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiwgZXZlbiBpZnRpdCBpcyBub3Qgb25lIG9mIHRoZSBzdGFrZXJzLgBJAVRoZSByZXdhcmQgcGF5b3V0IGNvdWxkIGJlIHBhZ2VkIGluIGNhc2UgdGhlcmUgYXJlIHRvbyBtYW55IG5vbWluYXRvcnMgYmFja2luZyB0aGVdAWB2YWxpZGF0b3Jfc3Rhc2hgLiBUaGlzIGNhbGwgd2lsbCBwYXlvdXQgdW5wYWlkIHBhZ2VzIGluIGFuIGFzY2VuZGluZyBvcmRlci4gVG8gY2xhaW0gYbRzcGVjaWZpYyBwYWdlLCB1c2UgYHBheW91dF9zdGFrZXJzX2J5X3BhZ2VgLmAA8ElmIGFsbCBwYWdlcyBhcmUgY2xhaW1lZCwgaXQgcmV0dXJucyBhbiBlcnJvciBgSW52YWxpZFBhZ2VgLhhyZWJvbmQEARR2YWx1Zd0BATBCYWxhbmNlT2Y8VD4AExzcUmVib25kIGEgcG9ydGlvbiBvZiB0aGUgc3Rhc2ggc2NoZWR1bGVkIHRvIGJlIHVubG9ja2VkLgDUVGhlIGRpc3BhdGNoIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSB0aGUgY29udHJvbGxlci4ANCMjIENvbXBsZXhpdHnQLSBUaW1lIGNvbXBsZXhpdHk6IE8oTCksIHdoZXJlIEwgaXMgdW5sb2NraW5nIGNodW5rc4gtIEJvdW5kZWQgYnkgYE1heFVubG9ja2luZ0NodW5rc2AuKHJlYXBfc3Rhc2gIARRzdGFzaAABMFQ6OkFjY291bnRJZAABSG51bV9zbGFzaGluZ19zcGFucxABDHUzMgAUSF0BUmVtb3ZlIGFsbCBkYXRhIHN0cnVjdHVyZXMgY29uY2VybmluZyBhIHN0YWtlci9zdGFzaCBvbmNlIGl0IGlzIGF0IGEgc3RhdGUgd2hlcmUgaXQgY2FuBQFiZSBjb25zaWRlcmVkIGBkdXN0YCBpbiB0aGUgc3Rha2luZyBzeXN0ZW0uIFRoZSByZXF1aXJlbWVudHMgYXJlOgAFATEuIHRoZSBgdG90YWxfYmFsYW5jZWAgb2YgdGhlIHN0YXNoIGlzIGJlbG93IGV4aXN0ZW50aWFsIGRlcG9zaXQuEQEyLiBvciwgdGhlIGBsZWRnZXIudG90YWxgIG9mIHRoZSBzdGFzaCBpcyBiZWxvdyBleGlzdGVudGlhbCBkZXBvc2l0LmEBMy4gb3IsIGV4aXN0ZW50aWFsIGRlcG9zaXQgaXMgemVybyBhbmQgZWl0aGVyIGB0b3RhbF9iYWxhbmNlYCBvciBgbGVkZ2VyLnRvdGFsYCBpcyB6ZXJvLgBVAVRoZSBmb3JtZXIgY2FuIGhhcHBlbiBpbiBjYXNlcyBsaWtlIGEgc2xhc2g7IHRoZSBsYXR0ZXIgd2hlbiBhIGZ1bGx5IHVuYm9uZGVkIGFjY291bnQJAWlzIHN0aWxsIHJlY2VpdmluZyBzdGFraW5nIHJld2FyZHMgaW4gYFJld2FyZERlc3RpbmF0aW9uOjpTdGFrZWRgLgAxAUl0IGNhbiBiZSBjYWxsZWQgYnkgYW55b25lLCBhcyBsb25nIGFzIGBzdGFzaGAgbWVldHMgdGhlIGFib3ZlIHJlcXVpcmVtZW50cy4A3FJlZnVuZHMgdGhlIHRyYW5zYWN0aW9uIGZlZXMgdXBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbi4ANCMjIFBhcmFtZXRlcnMARQEtIGBudW1fc2xhc2hpbmdfc3BhbnNgOiBSZWZlciB0byBjb21tZW50cyBvbiBbYENhbGw6OndpdGhkcmF3X3VuYm9uZGVkYF0gZm9yIG1vcmUgZGV0YWlscy4Qa2ljawQBDHdob+0BAWRWZWM8QWNjb3VudElkTG9va3VwT2Y8VD4+ABUs4FJlbW92ZSB0aGUgZ2l2ZW4gbm9taW5hdGlvbnMgZnJvbSB0aGUgY2FsbGluZyB2YWxpZGF0b3IuANhFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AUQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ATQEtIGB3aG9gOiBBIGxpc3Qgb2Ygbm9taW5hdG9yIHN0YXNoIGFjY291bnRzIHdobyBhcmUgbm9taW5hdGluZyB0aGlzIHZhbGlkYXRvciB3aGljaMAgIHNob3VsZCBubyBsb25nZXIgYmUgbm9taW5hdGluZyB0aGlzIHZhbGlkYXRvci4AVQFOb3RlOiBNYWtpbmcgdGhpcyBjYWxsIG9ubHkgbWFrZXMgc2Vuc2UgaWYgeW91IGZpcnN0IHNldCB0aGUgdmFsaWRhdG9yIHByZWZlcmVuY2VzIHRveGJsb2NrIGFueSBmdXJ0aGVyIG5vbWluYXRpb25zLkxzZXRfc3Rha2luZ19jb25maWdzHAFIbWluX25vbWluYXRvcl9ib25k9QEBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AAUhtaW5fdmFsaWRhdG9yX2JvbmT1AQFYQ29uZmlnT3A8QmFsYW5jZU9mPFQ+PgABTG1heF9ub21pbmF0b3JfY291bnT5AQE0Q29uZmlnT3A8dTMyPgABTG1heF92YWxpZGF0b3JfY291bnT5AQE0Q29uZmlnT3A8dTMyPgABPGNoaWxsX3RocmVzaG9sZP0BAURDb25maWdPcDxQZXJjZW50PgABOG1pbl9jb21taXNzaW9uAQIBRENvbmZpZ09wPFBlcmJpbGw+AAFIbWF4X3N0YWtlZF9yZXdhcmRz/QEBRENvbmZpZ09wPFBlcmNlbnQ+ABZErFVwZGF0ZSB0aGUgdmFyaW91cyBzdGFraW5nIGNvbmZpZ3VyYXRpb25zIC4AJQEqIGBtaW5fbm9taW5hdG9yX2JvbmRgOiBUaGUgbWluaW11bSBhY3RpdmUgYm9uZCBuZWVkZWQgdG8gYmUgYSBub21pbmF0b3IuJQEqIGBtaW5fdmFsaWRhdG9yX2JvbmRgOiBUaGUgbWluaW11bSBhY3RpdmUgYm9uZCBuZWVkZWQgdG8gYmUgYSB2YWxpZGF0b3IuVQEqIGBtYXhfbm9taW5hdG9yX2NvdW50YDogVGhlIG1heCBudW1iZXIgb2YgdXNlcnMgd2hvIGNhbiBiZSBhIG5vbWluYXRvciBhdCBvbmNlLiBXaGVumCAgc2V0IHRvIGBOb25lYCwgbm8gbGltaXQgaXMgZW5mb3JjZWQuVQEqIGBtYXhfdmFsaWRhdG9yX2NvdW50YDogVGhlIG1heCBudW1iZXIgb2YgdXNlcnMgd2hvIGNhbiBiZSBhIHZhbGlkYXRvciBhdCBvbmNlLiBXaGVumCAgc2V0IHRvIGBOb25lYCwgbm8gbGltaXQgaXMgZW5mb3JjZWQuWQEqIGBjaGlsbF90aHJlc2hvbGRgOiBUaGUgcmF0aW8gb2YgYG1heF9ub21pbmF0b3JfY291bnRgIG9yIGBtYXhfdmFsaWRhdG9yX2NvdW50YCB3aGljaBkBICBzaG91bGQgYmUgZmlsbGVkIGluIG9yZGVyIGZvciB0aGUgYGNoaWxsX290aGVyYCB0cmFuc2FjdGlvbiB0byB3b3JrLmEBKiBgbWluX2NvbW1pc3Npb25gOiBUaGUgbWluaW11bSBhbW91bnQgb2YgY29tbWlzc2lvbiB0aGF0IGVhY2ggdmFsaWRhdG9ycyBtdXN0IG1haW50YWluLlUBICBUaGlzIGlzIGNoZWNrZWQgb25seSB1cG9uIGNhbGxpbmcgYHZhbGlkYXRlYC4gRXhpc3RpbmcgdmFsaWRhdG9ycyBhcmUgbm90IGFmZmVjdGVkLgDEUnVudGltZU9yaWdpbiBtdXN0IGJlIFJvb3QgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLgA1AU5PVEU6IEV4aXN0aW5nIG5vbWluYXRvcnMgYW5kIHZhbGlkYXRvcnMgd2lsbCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhpcyB1cGRhdGUuEQF0byBraWNrIHBlb3BsZSB1bmRlciB0aGUgbmV3IGxpbWl0cywgYGNoaWxsX290aGVyYCBzaG91bGQgYmUgY2FsbGVkLixjaGlsbF9vdGhlcgQBFHN0YXNoAAEwVDo6QWNjb3VudElkABdoQQFEZWNsYXJlIGEgYGNvbnRyb2xsZXJgIHRvIHN0b3AgcGFydGljaXBhdGluZyBhcyBlaXRoZXIgYSB2YWxpZGF0b3Igb3Igbm9taW5hdG9yLgDYRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAEEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8sIGJ1dCBjYW4gYmUgY2FsbGVkIGJ5IGFueW9uZS4AWQFJZiB0aGUgY2FsbGVyIGlzIHRoZSBzYW1lIGFzIHRoZSBjb250cm9sbGVyIGJlaW5nIHRhcmdldGVkLCB0aGVuIG5vIGZ1cnRoZXIgY2hlY2tzIGFyZdhlbmZvcmNlZCwgYW5kIHRoaXMgZnVuY3Rpb24gYmVoYXZlcyBqdXN0IGxpa2UgYGNoaWxsYC4AXQFJZiB0aGUgY2FsbGVyIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBjb250cm9sbGVyIGJlaW5nIHRhcmdldGVkLCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMwbXVzdCBiZSBtZXQ6AB0BKiBgY29udHJvbGxlcmAgbXVzdCBiZWxvbmcgdG8gYSBub21pbmF0b3Igd2hvIGhhcyBiZWNvbWUgbm9uLWRlY29kYWJsZSwADE9yOgA9ASogQSBgQ2hpbGxUaHJlc2hvbGRgIG11c3QgYmUgc2V0IGFuZCBjaGVja2VkIHdoaWNoIGRlZmluZXMgaG93IGNsb3NlIHRvIHRoZSBtYXhVASAgbm9taW5hdG9ycyBvciB2YWxpZGF0b3JzIHdlIG11c3QgcmVhY2ggYmVmb3JlIHVzZXJzIGNhbiBzdGFydCBjaGlsbGluZyBvbmUtYW5vdGhlci5ZASogQSBgTWF4Tm9taW5hdG9yQ291bnRgIGFuZCBgTWF4VmFsaWRhdG9yQ291bnRgIG11c3QgYmUgc2V0IHdoaWNoIGlzIHVzZWQgdG8gZGV0ZXJtaW5lkCAgaG93IGNsb3NlIHdlIGFyZSB0byB0aGUgdGhyZXNob2xkLl0BKiBBIGBNaW5Ob21pbmF0b3JCb25kYCBhbmQgYE1pblZhbGlkYXRvckJvbmRgIG11c3QgYmUgc2V0IGFuZCBjaGVja2VkLCB3aGljaCBkZXRlcm1pbmVzUQEgIGlmIHRoaXMgaXMgYSBwZXJzb24gdGhhdCBzaG91bGQgYmUgY2hpbGxlZCBiZWNhdXNlIHRoZXkgaGF2ZSBub3QgbWV0IHRoZSB0aHJlc2hvbGRAICBib25kIHJlcXVpcmVkLgBVAVRoaXMgY2FuIGJlIGhlbHBmdWwgaWYgYm9uZCByZXF1aXJlbWVudHMgYXJlIHVwZGF0ZWQsIGFuZCB3ZSBuZWVkIHRvIHJlbW92ZSBvbGQgdXNlcnOYd2hvIGRvIG5vdCBzYXRpc2Z5IHRoZXNlIHJlcXVpcmVtZW50cy5oZm9yY2VfYXBwbHlfbWluX2NvbW1pc3Npb24EATx2YWxpZGF0b3Jfc3Rhc2gAATBUOjpBY2NvdW50SWQAGAxFAUZvcmNlIGEgdmFsaWRhdG9yIHRvIGhhdmUgYXQgbGVhc3QgdGhlIG1pbmltdW0gY29tbWlzc2lvbi4gVGhpcyB3aWxsIG5vdCBhZmZlY3QgYWEBdmFsaWRhdG9yIHdobyBhbHJlYWR5IGhhcyBhIGNvbW1pc3Npb24gZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtaW5pbXVtLiBBbnkgYWNjb3VudDhjYW4gY2FsbCB0aGlzLkhzZXRfbWluX2NvbW1pc3Npb24EAQxuZXeUARxQZXJiaWxsABkQJQFTZXRzIHRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21taXNzaW9uIHRoYXQgZWFjaCB2YWxpZGF0b3JzIG11c3QgbWFpbnRhaW4uAFkBVGhpcyBjYWxsIGhhcyBsb3dlciBwcml2aWxlZ2UgcmVxdWlyZW1lbnRzIHRoYW4gYHNldF9zdGFraW5nX2NvbmZpZ2AgYW5kIGNhbiBiZSBjYWxsZWTMYnkgdGhlIGBUOjpBZG1pbk9yaWdpbmAuIFJvb3QgY2FuIGFsd2F5cyBjYWxsIHRoaXMuWHBheW91dF9zdGFrZXJzX2J5X3BhZ2UMATx2YWxpZGF0b3Jfc3Rhc2gAATBUOjpBY2NvdW50SWQAAQxlcmEQASBFcmFJbmRleAABEHBhZ2UQARBQYWdlABpEMQFQYXkgb3V0IGEgcGFnZSBvZiB0aGUgc3Rha2VycyBiZWhpbmQgYSB2YWxpZGF0b3IgZm9yIHRoZSBnaXZlbiBlcmEgYW5kIHBhZ2UuAOgtIGB2YWxpZGF0b3Jfc3Rhc2hgIGlzIHRoZSBzdGFzaCBhY2NvdW50IG9mIHRoZSB2YWxpZGF0b3IuMQEtIGBlcmFgIG1heSBiZSBhbnkgZXJhIGJldHdlZW4gYFtjdXJyZW50X2VyYSAtIGhpc3RvcnlfZGVwdGg7IGN1cnJlbnRfZXJhXWAuMQEtIGBwYWdlYCBpcyB0aGUgcGFnZSBpbmRleCBvZiBub21pbmF0b3JzIHRvIHBheSBvdXQgd2l0aCB2YWx1ZSBiZXR3ZWVuIDAgYW5ksCAgYG51bV9ub21pbmF0b3JzIC8gVDo6TWF4RXhwb3N1cmVQYWdlU2l6ZWAuAFUBVGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4gQW55IGFjY291bnQgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiwgZXZlbiBpZnRpdCBpcyBub3Qgb25lIG9mIHRoZSBzdGFrZXJzLgA9AUlmIGEgdmFsaWRhdG9yIGhhcyBtb3JlIHRoYW4gW2BDb25maWc6Ok1heEV4cG9zdXJlUGFnZVNpemVgXSBub21pbmF0b3JzIGJhY2tpbmcpAXRoZW0sIHRoZW4gdGhlIGxpc3Qgb2Ygbm9taW5hdG9ycyBpcyBwYWdlZCwgd2l0aCBlYWNoIHBhZ2UgYmVpbmcgY2FwcGVkIGF0VQFbYENvbmZpZzo6TWF4RXhwb3N1cmVQYWdlU2l6ZWAuXSBJZiBhIHZhbGlkYXRvciBoYXMgbW9yZSB0aGFuIG9uZSBwYWdlIG9mIG5vbWluYXRvcnMsSQF0aGUgY2FsbCBuZWVkcyB0byBiZSBtYWRlIGZvciBlYWNoIHBhZ2Ugc2VwYXJhdGVseSBpbiBvcmRlciBmb3IgYWxsIHRoZSBub21pbmF0b3JzVQFiYWNraW5nIGEgdmFsaWRhdG9yIHRvIHJlY2VpdmUgdGhlIHJld2FyZC4gVGhlIG5vbWluYXRvcnMgYXJlIG5vdCBzb3J0ZWQgYWNyb3NzIHBhZ2VzYQFhbmQgc28gaXQgc2hvdWxkIG5vdCBiZSBhc3N1bWVkIHRoZSBoaWdoZXN0IHN0YWtlciB3b3VsZCBiZSBvbiB0aGUgdG9wbW9zdCBwYWdlIGFuZCB2aWNlSQF2ZXJzYS4gSWYgcmV3YXJkcyBhcmUgbm90IGNsYWltZWQgaW4gW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMsIHRoZXkgYXJlIGxvc3QuMHVwZGF0ZV9wYXllZQQBKGNvbnRyb2xsZXIAATBUOjpBY2NvdW50SWQAGxjgTWlncmF0ZXMgYW4gYWNjb3VudCdzIGBSZXdhcmREZXN0aW5hdGlvbjo6Q29udHJvbGxlcmAgdG+kYFJld2FyZERlc3RpbmF0aW9uOjpBY2NvdW50KGNvbnRyb2xsZXIpYC4AUQFFZmZlY3RzIHdpbGwgYmUgZmVsdCBpbnN0YW50bHkgKGFzIHNvb24gYXMgdGhpcyBmdW5jdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KS4AMQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiB0aGUgYHBheWVlYCBpcyBzdWNjZXNzZnVsbHkgbWlncmF0ZWQuaGRlcHJlY2F0ZV9jb250cm9sbGVyX2JhdGNoBAEsY29udHJvbGxlcnMFAgH0Qm91bmRlZFZlYzxUOjpBY2NvdW50SWQsIFQ6Ok1heENvbnRyb2xsZXJzSW5EZXByZWNhdGlvbkJhdGNoPgAcHF0BVXBkYXRlcyBhIGJhdGNoIG9mIGNvbnRyb2xsZXIgYWNjb3VudHMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBzdGFzaCBhY2NvdW50IGlmIHRoZXkgYXJlYQFub3QgdGhlIHNhbWUuIElnbm9yZXMgYW55IGNvbnRyb2xsZXIgYWNjb3VudHMgdGhhdCBkbyBub3QgZXhpc3QsIGFuZCBkb2VzIG5vdCBvcGVyYXRlIGlmuHRoZSBzdGFzaCBhbmQgY29udHJvbGxlciBhcmUgYWxyZWFkeSB0aGUgc2FtZS4AUQFFZmZlY3RzIHdpbGwgYmUgZmVsdCBpbnN0YW50bHkgKGFzIHNvb24gYXMgdGhpcyBmdW5jdGlvbiBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KS4AtFRoZSBkaXNwYXRjaCBvcmlnaW4gbXVzdCBiZSBgVDo6QWRtaW5PcmlnaW5gLjhyZXN0b3JlX2xlZGdlchABFHN0YXNoAAEwVDo6QWNjb3VudElkAAFAbWF5YmVfY29udHJvbGxlciEBAVBPcHRpb248VDo6QWNjb3VudElkPgABLG1heWJlX3RvdGFsCQIBUE9wdGlvbjxCYWxhbmNlT2Y8VD4+AAE8bWF5YmVfdW5sb2NraW5nDQIBFQFPcHRpb248Qm91bmRlZFZlYzxVbmxvY2tDaHVuazxCYWxhbmNlT2Y8VD4+LCBUOjoKTWF4VW5sb2NraW5nQ2h1bmtzPj4AHSwFAVJlc3RvcmVzIHRoZSBzdGF0ZSBvZiBhIGxlZGdlciB3aGljaCBpcyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuANxUaGUgcmVxdWlyZW1lbnRzIHRvIHJlc3RvcmUgYSBsZWRnZXIgYXJlIHRoZSBmb2xsb3dpbmc6ZCogVGhlIHN0YXNoIGlzIGJvbmRlZDsgb3INASogVGhlIHN0YXNoIGlzIG5vdCBib25kZWQgYnV0IGl0IGhhcyBhIHN0YWtpbmcgbG9jayBsZWZ0IGJlaGluZDsgb3IlASogSWYgdGhlIHN0YXNoIGhhcyBhbiBhc3NvY2lhdGVkIGxlZGdlciBhbmQgaXRzIHN0YXRlIGlzIGluY29uc2lzdGVudDsgb3IdASogSWYgdGhlIGxlZGdlciBpcyBub3QgY29ycnVwdGVkICpidXQqIGl0cyBzdGFraW5nIGxvY2sgaXMgb3V0IG9mIHN5bmMuAGEBVGhlIGBtYXliZV8qYCBpbnB1dCBwYXJhbWV0ZXJzIHdpbGwgb3ZlcndyaXRlIHRoZSBjb3JyZXNwb25kaW5nIGRhdGEgYW5kIG1ldGFkYXRhIG9mIHRoZVkBbGVkZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3Rhc2guIElmIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIGFyZSBub3Qgc2V0LCB0aGUgbGVkZ2VyIHdpbGyQYmUgcmVzZXQgdmFsdWVzIGZyb20gb24tY2hhaW4gc3RhdGUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLu0BAAACzQEA8QEMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJjZW50AAAEAAgBCHU4AAD1ARA4cGFsbGV0X3N0YWtpbmcYcGFsbGV0GHBhbGxldCBDb25maWdPcAQEVAEYAQwQTm9vcAAAAAxTZXQEABgBBFQAAQAYUmVtb3ZlAAIAAPkBEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0IENvbmZpZ09wBARUARABDBBOb29wAAAADFNldAQAEAEEVAABABhSZW1vdmUAAgAA/QEQOHBhbGxldF9zdGFraW5nGHBhbGxldBhwYWxsZXQgQ29uZmlnT3AEBFQB8QEBDBBOb29wAAAADFNldAQA8QEBBFQAAQAYUmVtb3ZlAAIAAAECEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0IENvbmZpZ09wBARUAZQBDBBOb29wAAAADFNldAQAlAEEVAABABhSZW1vdmUAAgAABQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQA4QEBGFZlYzxUPgAACQIEGE9wdGlvbgQEVAEYAQgQTm9uZQAAABBTb21lBAAYAAABAAANAgQYT3B0aW9uBARUARECAQgQTm9uZQAAABBTb21lBAARAgAAAQAAEQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEVAgRTAAAEABkCARhWZWM8VD4AABUCCDhwYWxsZXRfc3Rha2luZyxVbmxvY2tDaHVuawQcQmFsYW5jZQEYAAgBFHZhbHVl3QEBHEJhbGFuY2UAAQxlcmGpAQEgRXJhSW5kZXgAABkCAAACFQIAHQIMRHBhbGxldF9wYXJhbWV0ZXJzGHBhbGxldBBDYWxsBARUAAEENHNldF9wYXJhbWV0ZXIEASRrZXlfdmFsdWUhAgFQVDo6UnVudGltZVBhcmFtZXRlcnMAABB0U2V0IHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBBZG1pbk9yaWdpbmAgZm9yIHRoZSBnaXZlbiBga2V5YC4gVmFsdWVzIGJliGRlbGV0ZWQgYnkgc2V0dGluZyB0aGVtIHRvIGBOb25lYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuIQIIPHdlc3RlbmRfcnVudGltZURSdW50aW1lUGFyYW1ldGVycwABBCRJbmZsYXRpb24EACUCAZRkeW5hbWljX3BhcmFtczo6aW5mbGF0aW9uOjpQYXJhbWV0ZXJzAAAAACUCEDx3ZXN0ZW5kX3J1bnRpbWU4ZHluYW1pY19wYXJhbXMkaW5mbGF0aW9uKFBhcmFtZXRlcnMAARQwTWluSW5mbGF0aW9uCAC4ATBNaW5JbmZsYXRpb24AACkCAUxPcHRpb248UGVycXVpbnRpbGw+AAAAME1heEluZmxhdGlvbggAvAEwTWF4SW5mbGF0aW9uAAApAgFMT3B0aW9uPFBlcnF1aW50aWxsPgABAChJZGVhbFN0YWtlCADAAShJZGVhbFN0YWtlAAApAgFMT3B0aW9uPFBlcnF1aW50aWxsPgACABxGYWxsb2ZmCADEARxGYWxsb2ZmAAApAgFMT3B0aW9uPFBlcnF1aW50aWxsPgADADxVc2VBdWN0aW9uU2xvdHMIAMgBPFVzZUF1Y3Rpb25TbG90cwAALQIBME9wdGlvbjxib29sPgAEAAApAgQYT3B0aW9uBARUAdgBCBBOb25lAAAAEFNvbWUEANgAAAEAAC0CBBhPcHRpb24EBFQBIAEIEE5vbmUAAAAQU29tZQQAIAAAAQAAMQIMOHBhbGxldF9zZXNzaW9uGHBhbGxldBBDYWxsBARUAAEIIHNldF9rZXlzCAEQa2V5czUCARxUOjpLZXlzAAEUcHJvb2Y4ARxWZWM8dTg+AAAk5FNldHMgdGhlIHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIgdG8gYGtleXNgLh0BQWxsb3dzIGFuIGFjY291bnQgdG8gc2V0IGl0cyBzZXNzaW9uIGtleSBwcmlvciB0byBiZWNvbWluZyBhIHZhbGlkYXRvci7AVGhpcyBkb2Vzbid0IHRha2UgZWZmZWN0IHVudGlsIHRoZSBuZXh0IHNlc3Npb24uANBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuADQjIyBDb21wbGV4aXR5WQEtIGBPKDEpYC4gQWN0dWFsIGNvc3QgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGxlbmd0aCBvZiBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyAgIGZpeGVkLihwdXJnZV9rZXlzAAEwyFJlbW92ZXMgYW55IHNlc3Npb24ga2V5KHMpIG9mIHRoZSBmdW5jdGlvbiBjYWxsZXIuAMBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBhY2NvdW50IG11c3QgYmUgZWl0aGVyIGJlXQFjb252ZXJ0aWJsZSB0byBhIHZhbGlkYXRvciBJRCB1c2luZyB0aGUgY2hhaW4ncyB0eXBpY2FsIGFkZHJlc3Npbmcgc3lzdGVtICh0aGlzIHVzdWFsbHlRAW1lYW5zIGJlaW5nIGEgY29udHJvbGxlciBhY2NvdW50KSBvciBkaXJlY3RseSBjb252ZXJ0aWJsZSBpbnRvIGEgdmFsaWRhdG9yIElEICh3aGljaJR1c3VhbGx5IG1lYW5zIGJlaW5nIGEgc3Rhc2ggYWNjb3VudCkuADQjIyBDb21wbGV4aXR5PQEtIGBPKDEpYCBpbiBudW1iZXIgb2Yga2V5IHR5cGVzLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mmCAgYFQ6OktleXM6OmtleV9pZHMoKWAgd2hpY2ggaXMgZml4ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUCCDx3ZXN0ZW5kX3J1bnRpbWUsU2Vzc2lvbktleXMAABgBHGdyYW5kcGHsAdA8R3JhbmRwYSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAEQYmFiZa0BAcQ8QmFiZSBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAE4cGFyYV92YWxpZGF0b3I5AgHgPEluaXRpYWxpemVyIGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAATxwYXJhX2Fzc2lnbm1lbnQ9AgHwPFBhcmFTZXNzaW9uSW5mbyBhcyAkY3JhdGU6OkJvdW5kVG9SdW50aW1lQXBwUHVibGljPjo6UHVibGljAAFMYXV0aG9yaXR5X2Rpc2NvdmVyeUECAfw8QXV0aG9yaXR5RGlzY292ZXJ5IGFzICRjcmF0ZTo6Qm91bmRUb1J1bnRpbWVBcHBQdWJsaWM+OjpQdWJsaWMAARRiZWVmeUUCAcg8QmVlZnkgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAAOQIQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0dmFsaWRhdG9yX2FwcBhQdWJsaWMAAAQABAE8c3IyNTUxOTo6UHVibGljAAA9AhBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODhhc3NpZ25tZW50X2FwcBhQdWJsaWMAAAQABAE8c3IyNTUxOTo6UHVibGljAABBAgxYc3BfYXV0aG9yaXR5X2Rpc2NvdmVyeQxhcHAYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAARQIMSHNwX2NvbnNlbnN1c19iZWVmeTBlY2RzYV9jcnlwdG8YUHVibGljAAAEAEkCATRlY2RzYTo6UHVibGljAABJAgAAAyEAAAAIAE0CDDhwYWxsZXRfZ3JhbmRwYRhwYWxsZXQQQ2FsbAQEVAABDExyZXBvcnRfZXF1aXZvY2F0aW9uCAFIZXF1aXZvY2F0aW9uX3Byb29mUQIByEJveDxFcXVpdm9jYXRpb25Qcm9vZjxUOjpIYXNoLCBCbG9ja051bWJlckZvcjxUPj4+AAE8a2V5X293bmVyX3Byb29mtQEBQFQ6OktleU93bmVyUHJvb2YAABAJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQucHJlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2ZRAgHIQm94PEVxdWl2b2NhdGlvblByb29mPFQ6Okhhc2gsIEJsb2NrTnVtYmVyRm9yPFQ+Pj4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgABJAkBUmVwb3J0IHZvdGVyIGVxdWl2b2NhdGlvbi9taXNiZWhhdmlvci4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhl9GVxdWl2b2NhdGlvbiBwcm9vZiBhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2b4YWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLiBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2VEd2lsbCBiZSByZXBvcnRlZC4ADQFUaGlzIGV4dHJpbnNpYyBtdXN0IGJlIGNhbGxlZCB1bnNpZ25lZCBhbmQgaXQgaXMgZXhwZWN0ZWQgdGhhdCBvbmx5FQFibG9jayBhdXRob3JzIHdpbGwgY2FsbCBpdCAodmFsaWRhdGVkIGluIGBWYWxpZGF0ZVVuc2lnbmVkYCksIGFzIHN1Y2gVAWlmIHRoZSBibG9jayBhdXRob3IgaXMgZGVmaW5lZCBpdCB3aWxsIGJlIGRlZmluZWQgYXMgdGhlIGVxdWl2b2NhdGlvbiRyZXBvcnRlci4wbm90ZV9zdGFsbGVkCAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgABbGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAIwPQFOb3RlIHRoYXQgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldCBvZiB0aGUgR1JBTkRQQSBmaW5hbGl0eSBnYWRnZXQgaGFzIHN0YWxsZWQuAGEBVGhpcyB3aWxsIHRyaWdnZXIgYSBmb3JjZWQgYXV0aG9yaXR5IHNldCBjaGFuZ2UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBzZXNzaW9uLCB0b2EBYmUgZW5hY3RlZCBgZGVsYXlgIGJsb2NrcyBhZnRlciB0aGF0LiBUaGUgYGRlbGF5YCBzaG91bGQgYmUgaGlnaCBlbm91Z2ggdG8gc2FmZWx5IGFzc3VtZUkBdGhhdCB0aGUgYmxvY2sgc2lnbmFsbGluZyB0aGUgZm9yY2VkIGNoYW5nZSB3aWxsIG5vdCBiZSByZS1vcmdlZCBlLmcuIDEwMDAgYmxvY2tzLl0BVGhlIGJsb2NrIHByb2R1Y3Rpb24gcmF0ZSAod2hpY2ggbWF5IGJlIHNsb3dlZCBkb3duIGJlY2F1c2Ugb2YgZmluYWxpdHkgbGFnZ2luZykgc2hvdWxkUQFiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiBjaG9vc2luZyB0aGUgYGRlbGF5YC4gVGhlIEdSQU5EUEEgdm90ZXJzIGJhc2VkIG9uIHRoZSBuZXdVAWF1dGhvcml0eSB3aWxsIHN0YXJ0IHZvdGluZyBvbiB0b3Agb2YgYGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlcmAgZm9yIG5ldyBmaW5hbGl6ZWRNAWJsb2Nrcy4gYGJlc3RfZmluYWxpemVkX2Jsb2NrX251bWJlcmAgc2hvdWxkIGJlIHRoZSBoaWdoZXN0IG9mIHRoZSBsYXRlc3QgZmluYWxpemVkxGJsb2NrIG9mIGFsbCB2YWxpZGF0b3JzIG9mIHRoZSBuZXcgYXV0aG9yaXR5IHNldC4AWE9ubHkgY2FsbGFibGUgYnkgcm9vdC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuUQIIUHNwX2NvbnNlbnN1c19ncmFuZHBhREVxdWl2b2NhdGlvblByb29mCARIATQETgEQAAgBGHNldF9pZDABFFNldElkAAEwZXF1aXZvY2F0aW9uVQIBSEVxdWl2b2NhdGlvbjxILCBOPgAAVQIIUHNwX2NvbnNlbnN1c19ncmFuZHBhMEVxdWl2b2NhdGlvbggESAE0BE4BEAEIHFByZXZvdGUEAFkCAYkBZmluYWxpdHlfZ3JhbmRwYTo6RXF1aXZvY2F0aW9uPEF1dGhvcml0eUlkLCBmaW5hbGl0eV9ncmFuZHBhOjpQcmV2b3RlPApILCBOPiwgQXV0aG9yaXR5U2lnbmF0dXJlLD4AAAAkUHJlY29tbWl0BABtAgGRAWZpbmFsaXR5X2dyYW5kcGE6OkVxdWl2b2NhdGlvbjxBdXRob3JpdHlJZCwgZmluYWxpdHlfZ3JhbmRwYTo6UHJlY29tbWl0CjxILCBOPiwgQXV0aG9yaXR5U2lnbmF0dXJlLD4AAQAAWQIIQGZpbmFsaXR5X2dyYW5kcGEwRXF1aXZvY2F0aW9uDAhJZAHsBFYBXQIEUwFhAgAQATByb3VuZF9udW1iZXIwAQx1NjQAASBpZGVudGl0eewBCElkAAEUZmlyc3RpAgEYKFYsIFMpAAEYc2Vjb25kaQIBGChWLCBTKQAAXQIIQGZpbmFsaXR5X2dyYW5kcGEcUHJldm90ZQgESAE0BE4BEAAIASx0YXJnZXRfaGFzaDQBBEgAATR0YXJnZXRfbnVtYmVyEAEETgAAYQIMUHNwX2NvbnNlbnN1c19ncmFuZHBhDGFwcCRTaWduYXR1cmUAAAQAZQIBSGVkMjU1MTk6OlNpZ25hdHVyZQAAZQIAAANAAAAACABpAgAABAhdAmECAG0CCEBmaW5hbGl0eV9ncmFuZHBhMEVxdWl2b2NhdGlvbgwISWQB7ARWAXECBFMBYQIAEAEwcm91bmRfbnVtYmVyMAEMdTY0AAEgaWRlbnRpdHnsAQhJZAABFGZpcnN0dQIBGChWLCBTKQABGHNlY29uZHUCARgoViwgUykAAHECCEBmaW5hbGl0eV9ncmFuZHBhJFByZWNvbW1pdAgESAE0BE4BEAAIASx0YXJnZXRfaGFzaDQBBEgAATR0YXJnZXRfbnVtYmVyEAEETgAAdQIAAAQIcQJhAgB5Agw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0EENhbGwEBFQAARgUYmF0Y2gEARRjYWxsc30CAXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleC0BAQx1MTYAARBjYWxsiQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AATTcU2VuZCBhIGNhbGwgdGhyb3VnaCBhbiBpbmRleGVkIHBzZXVkb255bSBvZiB0aGUgc2VuZGVyLgBVAUZpbHRlciBmcm9tIG9yaWdpbiBhcmUgcGFzc2VkIGFsb25nLiBUaGUgY2FsbCB3aWxsIGJlIGRpc3BhdGNoZWQgd2l0aCBhbiBvcmlnaW4gd2hpY2i8dXNlIHRoZSBzYW1lIGZpbHRlciBhcyB0aGUgb3JpZ2luIG9mIHRoaXMgY2FsbC4ARQFOT1RFOiBJZiB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgYWNjb3VudC1iYXNlZCBmaWx0ZXJpbmcgaXMgbm90IGhvbm9yZWQgKGkuZS5hAWJlY2F1c2UgeW91IGV4cGVjdCBgcHJveHlgIHRvIGhhdmUgYmVlbiB1c2VkIHByaW9yIGluIHRoZSBjYWxsIHN0YWNrIGFuZCB5b3UgZG8gbm90IHdhbnRRAXRoZSBjYWxsIHJlc3RyaWN0aW9ucyB0byBhcHBseSB0byBhbnkgc3ViLWFjY291bnRzKSwgdGhlbiB1c2UgYGFzX211bHRpX3RocmVzaG9sZF8xYHxpbiB0aGUgTXVsdGlzaWcgcGFsbGV0IGluc3RlYWQuAPROT1RFOiBQcmlvciB0byB2ZXJzaW9uICoxMiwgdGhpcyB3YXMgY2FsbGVkIGBhc19saW1pdGVkX3N1YmAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4kYmF0Y2hfYWxsBAEUY2FsbHN9AgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACNOxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiEBVGhlIHdob2xlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2sgYW5kIGZhaWwgaWYgYW55IG9mIHRoZSBjYWxscyBmYWlsZWQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLGRpc3BhdGNoX2FzCAEkYXNfb3JpZ2lugQIBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHN9AgF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodCgBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMufQIAAAKJAQCBAgg8d2VzdGVuZF9ydW50aW1lME9yaWdpbkNhbGxlcgABFBhzeXN0ZW0EAIUCAXRmcmFtZV9zeXN0ZW06Ok9yaWdpbjxSdW50aW1lPgAAABxPcmlnaW5zBACJAgF0cGFsbGV0X2N1c3RvbV9vcmlnaW5zOjpPcmlnaW4AIwBAUGFyYWNoYWluc09yaWdpbgQAjQIBZHBhcmFjaGFpbnNfb3JpZ2luOjpPcmlnaW4AKQAkWGNtUGFsbGV0BACVAgFIcGFsbGV0X3hjbTo6T3JpZ2luAGMAEFZvaWQEANUCAUEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OgpfX3ByaXZhdGU6OlZvaWQABAAAhQIMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBAAEMEFJvb3QAAAAYU2lnbmVkBAAAASRBY2NvdW50SWQAAQAQTm9uZQACAACJAhQ8d2VzdGVuZF9ydW50aW1lKGdvdmVybmFuY2Ucb3JpZ2luc1RwYWxsZXRfY3VzdG9tX29yaWdpbnMYT3JpZ2luAAFsMFN0YWtpbmdBZG1pbgAAACRUcmVhc3VyZXIAAQA8RmVsbG93c2hpcEFkbWluAAIAMEdlbmVyYWxBZG1pbgADADBBdWN0aW9uQWRtaW4ABAAoTGVhc2VBZG1pbgAFAExSZWZlcmVuZHVtQ2FuY2VsbGVyAAYAQFJlZmVyZW5kdW1LaWxsZXIABwAsU21hbGxUaXBwZXIACAAkQmlnVGlwcGVyAAkAMFNtYWxsU3BlbmRlcgAKADRNZWRpdW1TcGVuZGVyAAsAKEJpZ1NwZW5kZXIADABEV2hpdGVsaXN0ZWRDYWxsZXIADQBMRmVsbG93c2hpcEluaXRpYXRlcwAOABxGZWxsb3dzAA8AREZlbGxvd3NoaXBFeHBlcnRzABAAREZlbGxvd3NoaXBNYXN0ZXJzABEAOEZlbGxvd3NoaXAxRGFuABIAOEZlbGxvd3NoaXAyRGFuABMAOEZlbGxvd3NoaXAzRGFuABQAOEZlbGxvd3NoaXA0RGFuABUAOEZlbGxvd3NoaXA1RGFuABYAOEZlbGxvd3NoaXA2RGFuABcAOEZlbGxvd3NoaXA3RGFuABgAOEZlbGxvd3NoaXA4RGFuABkAOEZlbGxvd3NoaXA5RGFuABoAAI0CEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMYb3JpZ2luGHBhbGxldBhPcmlnaW4AAQQkUGFyYWNoYWluBACRAgEYUGFyYUlkAAAAAJECDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEABABDHUzMgAAlQIMKHBhbGxldF94Y20YcGFsbGV0GE9yaWdpbgABCAxYY20EAJkCASBMb2NhdGlvbgAAACBSZXNwb25zZQQAmQIBIExvY2F0aW9uAAEAAJkCECxzdGFnaW5nX3hjbQh2NCBsb2NhdGlvbiBMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3KdAgEkSnVuY3Rpb25zAACdAhAsc3RhZ2luZ194Y20IdjQkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBAChAgFIQXJjPFtKdW5jdGlvbjsgMV0+AAEACFgyBAC5AgFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBAC9AgFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BADBAgFIQXJjPFtKdW5jdGlvbjsgNF0+AAQACFg1BADFAgFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BADJAgFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BADNAgFIQXJjPFtKdW5jdGlvbjsgN10+AAcACFg4BADRAgFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAKECAAADAQAAAKUCAKUCECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAKkBAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrqQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmupAgFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleCwBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrqQIBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V51QEBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAN0BARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWSxAgEYQm9keUlkAAEQcGFydLUCASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAK0CASROZXR3b3JrSWQACQAAqQIEGE9wdGlvbgQEVAGtAgEIEE5vbmUAAAAQU29tZQQArQIAAAEAAK0CECxzdGFnaW5nX3hjbQh2NCBqdW5jdGlvbiROZXR3b3JrSWQAASwkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIwAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAHFdlc3RlbmQABAAYUm9jb2NvAAUAGFdvY29jbwAGACBFdGhlcmV1bQQBIGNoYWluX2lkLAEMdTY0AAcALEJpdGNvaW5Db3JlAAgALEJpdGNvaW5DYXNoAAkAQFBvbGthZG90QnVsbGV0aW4ACgAAsQIQDHhjbQh2MyBqdW5jdGlvbhhCb2R5SWQAASgQVW5pdAAAABxNb25pa2VyBABIARxbdTg7IDRdAAEAFEluZGV4BACpAQEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAC1AhAMeGNtCHYzIGp1bmN0aW9uIEJvZHlQYXJ0AAEUFFZvaWNlAAAAHE1lbWJlcnMEARRjb3VudKkBAQx1MzIAAQAgRnJhY3Rpb24IAQxub22pAQEMdTMyAAEUZGVub22pAQEMdTMyAAIAREF0TGVhc3RQcm9wb3J0aW9uCAEMbm9tqQEBDHUzMgABFGRlbm9tqQEBDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub22pAQEMdTMyAAEUZGVub22pAQEMdTMyAAQAALkCAAADAgAAAKUCAL0CAAADAwAAAKUCAMECAAADBAAAAKUCAMUCAAADBQAAAKUCAMkCAAADBgAAAKUCAM0CAAADBwAAAKUCANECAAADCAAAAKUCANUCCBxzcF9jb3JlEFZvaWQAAQAA2QIMPHBhbGxldF9pZGVudGl0eRhwYWxsZXQQQ2FsbAQEVAABWDRhZGRfcmVnaXN0cmFyBAEcYWNjb3VudM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAHHhBZGQgYSByZWdpc3RyYXIgdG8gdGhlIHN5c3RlbS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBUOjpSZWdpc3RyYXJPcmlnaW5gLgCoLSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IG9mIHRoZSByZWdpc3RyYXIuAJRFbWl0cyBgUmVnaXN0cmFyQWRkZWRgIGlmIHN1Y2Nlc3NmdWwuMHNldF9pZGVudGl0eQQBEGluZm/dAgFsQm94PFQ6OklkZW50aXR5SW5mb3JtYXRpb24+AAEoKQFTZXQgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm9ybWF0aW9uIGFuZCByZXNlcnZlIHRoZSBhcHByb3ByaWF0ZSBkZXBvc2l0LgBVAUlmIHRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGlkZW50aXR5IGluZm9ybWF0aW9uLCB0aGUgZGVwb3NpdCBpcyB0YWtlbiBhcyBwYXJ0IHBheW1lbnRQZm9yIHRoZSBuZXcgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgCMLSBgaW5mb2A6IFRoZSBpZGVudGl0eSBpbmZvcm1hdGlvbi4AiEVtaXRzIGBJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC4gc2V0X3N1YnMEARBzdWJzaQMBZFZlYzwoVDo6QWNjb3VudElkLCBEYXRhKT4AAiSMU2V0IHRoZSBzdWItYWNjb3VudHMgb2YgdGhlIHNlbmRlci4AVQFQYXltZW50OiBBbnkgYWdncmVnYXRlIGJhbGFuY2UgcmVzZXJ2ZWQgYnkgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxscyB3aWxsIGJlIHJldHVybmVkLQFhbmQgYW4gYW1vdW50IGBTdWJBY2NvdW50RGVwb3NpdGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgZWFjaCBpdGVtIGluIGBzdWJzYC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCwLSBgc3Vic2A6IFRoZSBpZGVudGl0eSdzIChuZXcpIHN1Yi1hY2NvdW50cy44Y2xlYXJfaWRlbnRpdHkAAyA5AUNsZWFyIGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvIGFuZCBhbGwgc3ViLWFjY291bnRzIGFuZCByZXR1cm4gYWxsIGRlcG9zaXRzLgDsUGF5bWVudDogQWxsIHJlc2VydmVkIGJhbGFuY2VzIG9uIHRoZSBhY2NvdW50IGFyZSByZXR1cm5lZC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCYRW1pdHMgYElkZW50aXR5Q2xlYXJlZGAgaWYgc3VjY2Vzc2Z1bC5EcmVxdWVzdF9qdWRnZW1lbnQIASRyZWdfaW5kZXipAQE4UmVnaXN0cmFySW5kZXgAARxtYXhfZmVl3QEBMEJhbGFuY2VPZjxUPgAEQJRSZXF1ZXN0IGEganVkZ2VtZW50IGZyb20gYSByZWdpc3RyYXIuAFUBUGF5bWVudDogQXQgbW9zdCBgbWF4X2ZlZWAgd2lsbCBiZSByZXNlcnZlZCBmb3IgcGF5bWVudCB0byB0aGUgcmVnaXN0cmFyIGlmIGp1ZGdlbWVudBhnaXZlbi4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgAdAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyByZXF1ZXN0ZWQuVQEtIGBtYXhfZmVlYDogVGhlIG1heGltdW0gZmVlIHRoYXQgbWF5IGJlIHBhaWQuIFRoaXMgc2hvdWxkIGp1c3QgYmUgYXV0by1wb3B1bGF0ZWQgYXM6ADBgYGBub2NvbXBpbGXIUmVnaXN0cmFyczo6PFQ+OjpnZXQoKS5nZXQocmVnX2luZGV4KS51bndyYXAoKS5mZWUMYGBgAKRFbWl0cyBgSnVkZ2VtZW50UmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLjhjYW5jZWxfcmVxdWVzdAQBJHJlZ19pbmRleBABOFJlZ2lzdHJhckluZGV4AAUoaENhbmNlbCBhIHByZXZpb3VzIHJlcXVlc3QuAPhQYXltZW50OiBBIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZGVwb3NpdCBpcyByZXR1cm5lZCBvbiBzdWNjZXNzLgA1AVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhUHJlZ2lzdGVyZWQgaWRlbnRpdHkuAEUBLSBgcmVnX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIG5vIGxvbmdlciByZXF1ZXN0ZWQuAKxFbWl0cyBgSnVkZ2VtZW50VW5yZXF1ZXN0ZWRgIGlmIHN1Y2Nlc3NmdWwuHHNldF9mZWUIARRpbmRleKkBAThSZWdpc3RyYXJJbmRleAABDGZlZd0BATBCYWxhbmNlT2Y8VD4ABhwZAVNldCB0aGUgZmVlIHJlcXVpcmVkIGZvciBhIGp1ZGdlbWVudCB0byBiZSByZXF1ZXN0ZWQgZnJvbSBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC5ULSBgZmVlYDogdGhlIG5ldyBmZWUuOHNldF9hY2NvdW50X2lkCAEUaW5kZXipAQE4UmVnaXN0cmFySW5kZXgAAQxuZXfNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABxy8Q2hhbmdlIHRoZSBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC5wLSBgbmV3YDogdGhlIG5ldyBhY2NvdW50IElELihzZXRfZmllbGRzCAEUaW5kZXipAQE4UmVnaXN0cmFySW5kZXgAARhmaWVsZHMwASkBPFQ6OklkZW50aXR5SW5mb3JtYXRpb24gYXMgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyPjo6CkZpZWxkc0lkZW50aWZpZXIACByoU2V0IHRoZSBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQuDQEtIGBmaWVsZHNgOiB0aGUgZmllbGRzIHRoYXQgdGhlIHJlZ2lzdHJhciBjb25jZXJucyB0aGVtc2VsdmVzIHdpdGguRHByb3ZpZGVfanVkZ2VtZW50EAEkcmVnX2luZGV4qQEBOFJlZ2lzdHJhckluZGV4AAEYdGFyZ2V0zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkanVkZ2VtZW50cQMBXEp1ZGdlbWVudDxCYWxhbmNlT2Y8VD4+AAEgaWRlbnRpdHk0ARxUOjpIYXNoAAk8uFByb3ZpZGUgYSBqdWRnZW1lbnQgZm9yIGFuIGFjY291bnQncyBpZGVudGl0eS4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50sG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYHJlZ19pbmRleGAuACEBLSBgcmVnX2luZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIGJlaW5nIG1hZGUuVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuSQEtIGBqdWRnZW1lbnRgOiB0aGUganVkZ2VtZW50IG9mIHRoZSByZWdpc3RyYXIgb2YgaW5kZXggYHJlZ19pbmRleGAgYWJvdXQgYHRhcmdldGAuXQEtIGBpZGVudGl0eWA6IFRoZSBoYXNoIG9mIHRoZSBbYElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcmBdIGZvciB0aGF0IHRoZSBqdWRnZW1lbnQgaXMsICBwcm92aWRlZC4AsE5vdGU6IEp1ZGdlbWVudHMgZG8gbm90IGFwcGx5IHRvIGEgdXNlcm5hbWUuAJRFbWl0cyBgSnVkZ2VtZW50R2l2ZW5gIGlmIHN1Y2Nlc3NmdWwuNGtpbGxfaWRlbnRpdHkEARh0YXJnZXTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ACjBBAVJlbW92ZSBhbiBhY2NvdW50J3MgaWRlbnRpdHkgYW5kIHN1Yi1hY2NvdW50IGluZm9ybWF0aW9uIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAGEBUGF5bWVudDogUmVzZXJ2ZWQgYmFsYW5jZXMgZnJvbSBgc2V0X3N1YnNgIGFuZCBgc2V0X2lkZW50aXR5YCBhcmUgc2xhc2hlZCBhbmQgaGFuZGxlZCBieUUBYFNsYXNoYC4gVmVyaWZpY2F0aW9uIHJlcXVlc3QgZGVwb3NpdHMgYXJlIG5vdCByZXR1cm5lZDsgdGhleSBzaG91bGQgYmUgY2FuY2VsbGVkgG1hbnVhbGx5IHVzaW5nIGBjYW5jZWxfcmVxdWVzdGAuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLgBVAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4AlEVtaXRzIGBJZGVudGl0eUtpbGxlZGAgaWYgc3VjY2Vzc2Z1bC4cYWRkX3N1YggBDHN1Ys0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGHpAgEQRGF0YQALHKxBZGQgdGhlIGdpdmVuIGFjY291bnQgdG8gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbmFtZV9zdWIIAQxzdWLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRh6QIBEERhdGEADBDMQWx0ZXIgdGhlIGFzc29jaWF0ZWQgbmFtZSBvZiB0aGUgZ2l2ZW4gc3ViLWFjY291bnQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbW92ZV9zdWIEAQxzdWLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ADRzAUmVtb3ZlIHRoZSBnaXZlbiBhY2NvdW50IGZyb20gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuIHF1aXRfc3ViAA4ojFJlbW92ZSB0aGUgc2VuZGVyIGFzIGEgc3ViLWFjY291bnQuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVktHRvIHRoZSBzZW5kZXIgKCpub3QqIHRoZSBvcmlnaW5hbCBkZXBvc2l0b3IpLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQ8c3VwZXItaWRlbnRpdHkuAEUBTk9URTogVGhpcyBzaG91bGQgbm90IG5vcm1hbGx5IGJlIHVzZWQsIGJ1dCBpcyBwcm92aWRlZCBpbiB0aGUgY2FzZSB0aGF0IHRoZSBub24tEQFjb250cm9sbGVyIG9mIGFuIGFjY291bnQgaXMgbWFsaWNpb3VzbHkgcmVnaXN0ZXJlZCBhcyBhIHN1Yi1hY2NvdW50LlhhZGRfdXNlcm5hbWVfYXV0aG9yaXR5DAEkYXV0aG9yaXR5zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYc3VmZml4OAEcVmVjPHU4PgABKGFsbG9jYXRpb24QAQx1MzIADxBVAUFkZCBhbiBgQWNjb3VudElkYCB3aXRoIHBlcm1pc3Npb24gdG8gZ3JhbnQgdXNlcm5hbWVzIHdpdGggYSBnaXZlbiBgc3VmZml4YCBhcHBlbmRlZC4AWQFUaGUgYXV0aG9yaXR5IGNhbiBncmFudCB1cCB0byBgYWxsb2NhdGlvbmAgdXNlcm5hbWVzLiBUbyB0b3AgdXAgdGhlaXIgYWxsb2NhdGlvbiwgdGhleUkBc2hvdWxkIGp1c3QgaXNzdWUgKG9yIHJlcXVlc3QgdmlhIGdvdmVybmFuY2UpIGEgbmV3IGBhZGRfdXNlcm5hbWVfYXV0aG9yaXR5YCBjYWxsLmRyZW1vdmVfdXNlcm5hbWVfYXV0aG9yaXR5BAEkYXV0aG9yaXR5zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+ABAExFJlbW92ZSBgYXV0aG9yaXR5YCBmcm9tIHRoZSB1c2VybmFtZSBhdXRob3JpdGllcy5Ac2V0X3VzZXJuYW1lX2ZvcgwBDHdob80BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIHVzZXJuYW1lOAEcVmVjPHU4PgABJHNpZ25hdHVyZXUDAXBPcHRpb248VDo6T2ZmY2hhaW5TaWduYXR1cmU+ABEkDQFTZXQgdGhlIHVzZXJuYW1lIGZvciBgd2hvYC4gTXVzdCBiZSBjYWxsZWQgYnkgYSB1c2VybmFtZSBhdXRob3JpdHkuAFUBVGhlIGF1dGhvcml0eSBtdXN0IGhhdmUgYW4gYGFsbG9jYXRpb25gLiBVc2VycyBjYW4gZWl0aGVyIHByZS1zaWduIHRoZWlyIHVzZXJuYW1lcyBvckhhY2NlcHQgdGhlbSBsYXRlci4APFVzZXJuYW1lcyBtdXN0OtggIC0gT25seSBjb250YWluIGxvd2VyY2FzZSBBU0NJSSBjaGFyYWN0ZXJzIG9yIGRpZ2l0cy41ASAgLSBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIHN1ZmZpeCBvZiB0aGUgaXNzdWluZyBhdXRob3JpdHkgYmUgX2xlc3MgdGhhbl8gdGhlYCAgICBgTWF4VXNlcm5hbWVMZW5ndGhgLjxhY2NlcHRfdXNlcm5hbWUEASB1c2VybmFtZQEBASxVc2VybmFtZTxUPgASCE0BQWNjZXB0IGEgZ2l2ZW4gdXNlcm5hbWUgdGhhdCBhbiBgYXV0aG9yaXR5YCBncmFudGVkLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlIGZ1bGyIdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlxyZW1vdmVfZXhwaXJlZF9hcHByb3ZhbAQBIHVzZXJuYW1lAQEBLFVzZXJuYW1lPFQ+ABMMYQFSZW1vdmUgYW4gZXhwaXJlZCB1c2VybmFtZSBhcHByb3ZhbC4gVGhlIHVzZXJuYW1lIHdhcyBhcHByb3ZlZCBieSBhbiBhdXRob3JpdHkgYnV0IG5ldmVyVQFhY2NlcHRlZCBieSB0aGUgdXNlciBhbmQgbXVzdCBub3cgYmUgYmV5b25kIGl0cyBleHBpcmF0aW9uLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlnGZ1bGwgdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlBzZXRfcHJpbWFyeV91c2VybmFtZQQBIHVzZXJuYW1lAQEBLFVzZXJuYW1lPFQ+ABQEMQFTZXQgYSBnaXZlbiB1c2VybmFtZSBhcyB0aGUgcHJpbWFyeS4gVGhlIHVzZXJuYW1lIHNob3VsZCBpbmNsdWRlIHRoZSBzdWZmaXguYHJlbW92ZV9kYW5nbGluZ191c2VybmFtZQQBIHVzZXJuYW1lAQEBLFVzZXJuYW1lPFQ+ABUIVQFSZW1vdmUgYSB1c2VybmFtZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGFuIGFjY291bnQgd2l0aCBubyBpZGVudGl0eS4gRXhpc3RzIHdoZW4gYSB1c2VywGdldHMgYSB1c2VybmFtZSBidXQgdGhlbiBjYWxscyBgY2xlYXJfaWRlbnRpdHlgLgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLt0CDDxwYWxsZXRfaWRlbnRpdHkYbGVnYWN5MElkZW50aXR5SW5mbwQoRmllbGRMaW1pdAAAJAEoYWRkaXRpb25hbOECAZBCb3VuZGVkVmVjPChEYXRhLCBEYXRhKSwgRmllbGRMaW1pdD4AARxkaXNwbGF56QIBEERhdGEAARRsZWdhbOkCARBEYXRhAAEMd2Vi6QIBEERhdGEAARByaW906QIBEERhdGEAARRlbWFpbOkCARBEYXRhAAE8cGdwX2ZpbmdlcnByaW50ZQMBQE9wdGlvbjxbdTg7IDIwXT4AARRpbWFnZekCARBEYXRhAAEcdHdpdHRlcukCARBEYXRhAADhAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeUCBFMAAAQAYQMBGFZlYzxUPgAA5QIAAAQI6QLpAgDpAgw8cGFsbGV0X2lkZW50aXR5FHR5cGVzEERhdGEAAZgQTm9uZQAAABBSYXcwBADtAgAAAQAQUmF3MQQA8QIAAAIAEFJhdzIEAPUCAAADABBSYXczBAD5AgAABAAQUmF3NAQASAAABQAQUmF3NQQA/QIAAAYAEFJhdzYEAAEDAAAHABBSYXc3BAAFAwAACAAQUmF3OAQACQMAAAkAEFJhdzkEAA0DAAAKABRSYXcxMAQAEQMAAAsAFFJhdzExBAAVAwAADAAUUmF3MTIEABkDAAANABRSYXcxMwQAHQMAAA4AFFJhdzE0BAAhAwAADwAUUmF3MTUEACUDAAAQABRSYXcxNgQAqAAAEQAUUmF3MTcEACkDAAASABRSYXcxOAQALQMAABMAFFJhdzE5BAAxAwAAFAAUUmF3MjAEANUBAAAVABRSYXcyMQQANQMAABYAFFJhdzIyBAA5AwAAFwAUUmF3MjMEAD0DAAAYABRSYXcyNAQAQQMAABkAFFJhdzI1BABFAwAAGgAUUmF3MjYEAEkDAAAbABRSYXcyNwQATQMAABwAFFJhdzI4BABRAwAAHQAUUmF3MjkEAFUDAAAeABRSYXczMAQAWQMAAB8AFFJhdzMxBABdAwAAIAAUUmF3MzIEAAQAACEALEJsYWtlVHdvMjU2BAAEAAAiABhTaGEyNTYEAAQAACMAJEtlY2NhazI1NgQABAAAJAAsU2hhVGhyZWUyNTYEAAQAACUAAO0CAAADAAAAAAgA8QIAAAMBAAAACAD1AgAAAwIAAAAIAPkCAAADAwAAAAgA/QIAAAMFAAAACAABAwAAAwYAAAAIAAUDAAADBwAAAAgACQMAAAMIAAAACAANAwAAAwkAAAAIABEDAAADCgAAAAgAFQMAAAMLAAAACAAZAwAAAwwAAAAIAB0DAAADDQAAAAgAIQMAAAMOAAAACAAlAwAAAw8AAAAIACkDAAADEQAAAAgALQMAAAMSAAAACAAxAwAAAxMAAAAIADUDAAADFQAAAAgAOQMAAAMWAAAACAA9AwAAAxcAAAAIAEEDAAADGAAAAAgARQMAAAMZAAAACABJAwAAAxoAAAAIAE0DAAADGwAAAAgAUQMAAAMcAAAACABVAwAAAx0AAAAIAFkDAAADHgAAAAgAXQMAAAMfAAAACABhAwAAAuUCAGUDBBhPcHRpb24EBFQB1QEBCBBOb25lAAAAEFNvbWUEANUBAAABAABpAwAAAm0DAG0DAAAECADpAgBxAww8cGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQEYARwcVW5rbm93bgAAABxGZWVQYWlkBAAYARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGAAB1AwQYT3B0aW9uBARUAXkDAQgQTm9uZQAAABBTb21lBAB5AwAAAQAAeQMIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQAZQIBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BABlAgFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBAB9AwFAZWNkc2E6OlNpZ25hdHVyZQACAAB9AwAAA0EAAAAIAIEDDDxwYWxsZXRfcmVjb3ZlcnkYcGFsbGV0EENhbGwEBFQAASQwYXNfcmVjb3ZlcmVkCAEcYWNjb3VudM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAIKBTZW5kIGEgY2FsbCB0aHJvdWdoIGEgcmVjb3ZlcmVkIGFjY291bnQuABEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHJlZ2lzdGVyZWQgdG/kYmUgYWJsZSB0byBtYWtlIGNhbGxzIG9uIGJlaGFsZiBvZiB0aGUgcmVjb3ZlcmVkIGFjY291bnQuACxQYXJhbWV0ZXJzOiEBLSBgYWNjb3VudGA6IFRoZSByZWNvdmVyZWQgYWNjb3VudCB5b3Ugd2FudCB0byBtYWtlIGEgY2FsbCBvbi1iZWhhbGYtb2Yu/C0gYGNhbGxgOiBUaGUgY2FsbCB5b3Ugd2FudCB0byBtYWtlIHdpdGggdGhlIHJlY292ZXJlZCBhY2NvdW50LjRzZXRfcmVjb3ZlcmVkCAEQbG9zdM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHHJlc2N1ZXLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASAZAUFsbG93IFJPT1QgdG8gYnlwYXNzIHRoZSByZWNvdmVyeSBwcm9jZXNzIGFuZCBzZXQgYW4gYSByZXNjdWVyIGFjY291bnRwZm9yIGEgbG9zdCBhY2NvdW50IGRpcmVjdGx5LgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1JPT1RfLgAsUGFyYW1ldGVyczq0LSBgbG9zdGA6IFRoZSAibG9zdCBhY2NvdW50IiB0byBiZSByZWNvdmVyZWQuGQEtIGByZXNjdWVyYDogVGhlICJyZXNjdWVyIGFjY291bnQiIHdoaWNoIGNhbiBjYWxsIGFzIHRoZSBsb3N0IGFjY291bnQuPGNyZWF0ZV9yZWNvdmVyeQwBHGZyaWVuZHPhAQFEVmVjPFQ6OkFjY291bnRJZD4AASR0aHJlc2hvbGQtAQEMdTE2AAEwZGVsYXlfcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4AAkBZAUNyZWF0ZSBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgYWNjb3VudC4gVGhpcyBtYWtlcyB5b3VyIGFjY291bnQgcmVjb3ZlcmFibGUuAC0BUGF5bWVudDogYENvbmZpZ0RlcG9zaXRCYXNlYCArIGBGcmllbmREZXBvc2l0RmFjdG9yYCAqICNfb2ZfZnJpZW5kcyBiYWxhbmNlRQF3aWxsIGJlIHJlc2VydmVkIGZvciBzdG9yaW5nIHRoZSByZWNvdmVyeSBjb25maWd1cmF0aW9uLiBUaGlzIGRlcG9zaXQgaXMgcmV0dXJuZWS4aW4gZnVsbCB3aGVuIHRoZSB1c2VyIGNhbGxzIGByZW1vdmVfcmVjb3ZlcnlgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOkkBLSBgZnJpZW5kc2A6IEEgbGlzdCBvZiBmcmllbmRzIHlvdSB0cnVzdCB0byB2b3VjaCBmb3IgcmVjb3ZlcnkgYXR0ZW1wdHMuIFNob3VsZCBiZaggIG9yZGVyZWQgYW5kIGNvbnRhaW4gbm8gZHVwbGljYXRlIHZhbHVlcy5ZAS0gYHRocmVzaG9sZGA6IFRoZSBudW1iZXIgb2YgZnJpZW5kcyB0aGF0IG11c3Qgdm91Y2ggZm9yIGEgcmVjb3ZlcnkgYXR0ZW1wdCBiZWZvcmUgdGhlVQEgIGFjY291bnQgY2FuIGJlIHJlY292ZXJlZC4gU2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0IG9mKCAgZnJpZW5kcy5NAS0gYGRlbGF5X3BlcmlvZGA6IFRoZSBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIGEgcmVjb3ZlcnkgYXR0ZW1wdCBpcyBpbml0aWFsaXplZCB0aGF00CAgbmVlZHMgdG8gcGFzcyBiZWZvcmUgdGhlIGFjY291bnQgY2FuIGJlIHJlY292ZXJlZC5EaW5pdGlhdGVfcmVjb3ZlcnkEARxhY2NvdW50zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAMs6EluaXRpYXRlIHRoZSBwcm9jZXNzIGZvciByZWNvdmVyaW5nIGEgcmVjb3ZlcmFibGUgYWNjb3VudC4AGQFQYXltZW50OiBgUmVjb3ZlcnlEZXBvc2l0YCBiYWxhbmNlIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIGluaXRpYXRpbmcgdGhlIQFyZWNvdmVyeSBwcm9jZXNzLiBUaGlzIGRlcG9zaXQgd2lsbCBhbHdheXMgYmUgcmVwYXRyaWF0ZWQgdG8gdGhlIGFjY291bnS0dHJ5aW5nIHRvIGJlIHJlY292ZXJlZC4gU2VlIGBjbG9zZV9yZWNvdmVyeWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6QQEtIGBhY2NvdW50YDogVGhlIGxvc3QgYWNjb3VudCB0aGF0IHlvdSB3YW50IHRvIHJlY292ZXIuIFRoaXMgYWNjb3VudCBuZWVkcyB0byBiZcwgIHJlY292ZXJhYmxlIChpLmUuIGhhdmUgYSByZWNvdmVyeSBjb25maWd1cmF0aW9uKS44dm91Y2hfcmVjb3ZlcnkIARBsb3N0zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEccmVzY3Vlcs0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAEMCUBQWxsb3cgYSAiZnJpZW5kIiBvZiBhIHJlY292ZXJhYmxlIGFjY291bnQgdG8gdm91Y2ggZm9yIGFuIGFjdGl2ZSByZWNvdmVyeWRwcm9jZXNzIGZvciB0aGF0IGFjY291bnQuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgYSAiZnJpZW5kInBmb3IgdGhlIHJlY292ZXJhYmxlIGFjY291bnQuACxQYXJhbWV0ZXJzOtAtIGBsb3N0YDogVGhlIGxvc3QgYWNjb3VudCB0aGF0IHlvdSB3YW50IHRvIHJlY292ZXIuWQEtIGByZXNjdWVyYDogVGhlIGFjY291bnQgdHJ5aW5nIHRvIHJlc2N1ZSB0aGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gdm91Y2ggZm9yLgAhAVRoZSBjb21iaW5hdGlvbiBvZiB0aGVzZSB0d28gcGFyYW1ldGVycyBtdXN0IHBvaW50IHRvIGFuIGFjdGl2ZSByZWNvdmVyeSBwcm9jZXNzLjhjbGFpbV9yZWNvdmVyeQQBHGFjY291bnTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABSTwQWxsb3cgYSBzdWNjZXNzZnVsIHJlc2N1ZXIgdG8gY2xhaW0gdGhlaXIgcmVjb3ZlcmVkIGFjY291bnQuACkBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgYSAicmVzY3VlciIZAXdobyBoYXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZCB0aGUgYWNjb3VudCByZWNvdmVyeSBwcm9jZXNzOiBjb2xsZWN0ZWQtAWB0aHJlc2hvbGRgIG9yIG1vcmUgdm91Y2hlcywgd2FpdGVkIGBkZWxheV9wZXJpb2RgIGJsb2NrcyBzaW5jZSBpbml0aWF0aW9uLgAsUGFyYW1ldGVyczpdAS0gYGFjY291bnRgOiBUaGUgbG9zdCBhY2NvdW50IHRoYXQgeW91IHdhbnQgdG8gY2xhaW0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlY292ZXJlZCBieRggIHlvdS44Y2xvc2VfcmVjb3ZlcnkEARxyZXNjdWVyzQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAYsEQFBcyB0aGUgY29udHJvbGxlciBvZiBhIHJlY292ZXJhYmxlIGFjY291bnQsIGNsb3NlIGFuIGFjdGl2ZSByZWNvdmVyeWRwcm9jZXNzIGZvciB5b3VyIGFjY291bnQuAB0BUGF5bWVudDogQnkgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCB0aGUgcmVjb3ZlcmFibGUgYWNjb3VudCB3aWxsIHJlY2VpdmX0dGhlIHJlY292ZXJ5IGRlcG9zaXQgYFJlY292ZXJ5RGVwb3NpdGAgcGxhY2VkIGJ5IHRoZSByZXNjdWVyLgABAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBtdXN0IGJlIGHscmVjb3ZlcmFibGUgYWNjb3VudCB3aXRoIGFuIGFjdGl2ZSByZWNvdmVyeSBwcm9jZXNzIGZvciBpdC4ALFBhcmFtZXRlcnM6DQEtIGByZXNjdWVyYDogVGhlIGFjY291bnQgdHJ5aW5nIHRvIHJlc2N1ZSB0aGlzIHJlY292ZXJhYmxlIGFjY291bnQuPHJlbW92ZV9yZWNvdmVyeQAHLFkBUmVtb3ZlIHRoZSByZWNvdmVyeSBwcm9jZXNzIGZvciB5b3VyIGFjY291bnQuIFJlY292ZXJlZCBhY2NvdW50cyBhcmUgc3RpbGwgYWNjZXNzaWJsZS4AEQFOT1RFOiBUaGUgdXNlciBtdXN0IG1ha2Ugc3VyZSB0byBjYWxsIGBjbG9zZV9yZWNvdmVyeWAgb24gYWxsIGFjdGl2ZQUBcmVjb3ZlcnkgYXR0ZW1wdHMgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBlbHNlIGl0IHdpbGwgZmFpbC4AIQFQYXltZW50OiBCeSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdGhlIHJlY292ZXJhYmxlIGFjY291bnQgd2lsbCB1bnJlc2VydmWUdGhlaXIgcmVjb3ZlcnkgY29uZmlndXJhdGlvbiBkZXBvc2l0LvAoYENvbmZpZ0RlcG9zaXRCYXNlYCArIGBGcmllbmREZXBvc2l0RmFjdG9yYCAqICNfb2ZfZnJpZW5kcykAAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSBh4HJlY292ZXJhYmxlIGFjY291bnQgKGkuZS4gaGFzIGEgcmVjb3ZlcnkgY29uZmlndXJhdGlvbikuQGNhbmNlbF9yZWNvdmVyZWQEARxhY2NvdW50zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAgc3ENhbmNlbCB0aGUgYWJpbGl0eSB0byB1c2UgYGFzX3JlY292ZXJlZGAgZm9yIGBhY2NvdW50YC4AEQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgcmVnaXN0ZXJlZCB0b+RiZSBhYmxlIHRvIG1ha2UgY2FsbHMgb24gYmVoYWxmIG9mIHRoZSByZWNvdmVyZWQgYWNjb3VudC4ALFBhcmFtZXRlcnM6FQEtIGBhY2NvdW50YDogVGhlIHJlY292ZXJlZCBhY2NvdW50IHlvdSBhcmUgYWJsZSB0byBjYWxsIG9uLWJlaGFsZi1vZi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuhQMMOHBhbGxldF92ZXN0aW5nGHBhbGxldBBDYWxsBARUAAEYEHZlc3QAACS4VW5sb2NrIGFueSB2ZXN0ZWQgZnVuZHMgb2YgdGhlIHNlbmRlciBhY2NvdW50LgBdAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBmdW5kcyBzdGlsbGRsb2NrZWQgdW5kZXIgdGhpcyBwYWxsZXQuANBFbWl0cyBlaXRoZXIgYFZlc3RpbmdDb21wbGV0ZWRgIG9yIGBWZXN0aW5nVXBkYXRlZGAuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLih2ZXN0X290aGVyBAEYdGFyZ2V0zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsuFVubG9jayBhbnkgdmVzdGVkIGZ1bmRzIG9mIGEgYHRhcmdldGAgYWNjb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBRAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHdob3NlIHZlc3RlZCBmdW5kcyBzaG91bGQgYmUgdW5sb2NrZWQuIE11c3QgaGF2ZSBmdW5kcyBzdGlsbGRsb2NrZWQgdW5kZXIgdGhpcyBwYWxsZXQuANBFbWl0cyBlaXRoZXIgYFZlc3RpbmdDb21wbGV0ZWRgIG9yIGBWZXN0aW5nVXBkYXRlZGAuADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLjx2ZXN0ZWRfdHJhbnNmZXIIARh0YXJnZXTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBzY2hlZHVsZYkDAbBWZXN0aW5nSW5mbzxCYWxhbmNlT2Y8VD4sIEJsb2NrTnVtYmVyRm9yPFQ+PgACNGRDcmVhdGUgYSB2ZXN0ZWQgdHJhbnNmZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AzC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHJlY2VpdmluZyB0aGUgdmVzdGVkIGZ1bmRzLvAtIGBzY2hlZHVsZWA6IFRoZSB2ZXN0aW5nIHNjaGVkdWxlIGF0dGFjaGVkIHRvIHRoZSB0cmFuc2Zlci4AXEVtaXRzIGBWZXN0aW5nQ3JlYXRlZGAuAPxOT1RFOiBUaGlzIHdpbGwgdW5sb2NrIGFsbCBzY2hlZHVsZXMgdGhyb3VnaCB0aGUgY3VycmVudCBibG9jay4ANCMjIENvbXBsZXhpdHkkLSBgTygxKWAuVGZvcmNlX3Zlc3RlZF90cmFuc2ZlcgwBGHNvdXJjZc0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGHRhcmdldM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIHNjaGVkdWxliQMBsFZlc3RpbmdJbmZvPEJhbGFuY2VPZjxUPiwgQmxvY2tOdW1iZXJGb3I8VD4+AAM4YEZvcmNlIGEgdmVzdGVkIHRyYW5zZmVyLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgDoLSBgc291cmNlYDogVGhlIGFjY291bnQgd2hvc2UgZnVuZHMgc2hvdWxkIGJlIHRyYW5zZmVycmVkLhEBLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdGhhdCBzaG91bGQgYmUgdHJhbnNmZXJyZWQgdGhlIHZlc3RlZCBmdW5kcy7wLSBgc2NoZWR1bGVgOiBUaGUgdmVzdGluZyBzY2hlZHVsZSBhdHRhY2hlZCB0byB0aGUgdHJhbnNmZXIuAFxFbWl0cyBgVmVzdGluZ0NyZWF0ZWRgLgD8Tk9URTogVGhpcyB3aWxsIHVubG9jayBhbGwgc2NoZWR1bGVzIHRocm91Z2ggdGhlIGN1cnJlbnQgYmxvY2suADQjIyBDb21wbGV4aXR5JC0gYE8oMSlgLjxtZXJnZV9zY2hlZHVsZXMIATxzY2hlZHVsZTFfaW5kZXgQAQx1MzIAATxzY2hlZHVsZTJfaW5kZXgQAQx1MzIABFRdAU1lcmdlIHR3byB2ZXN0aW5nIHNjaGVkdWxlcyB0b2dldGhlciwgY3JlYXRpbmcgYSBuZXcgdmVzdGluZyBzY2hlZHVsZSB0aGF0IHVubG9ja3Mgb3ZlclUBdGhlIGhpZ2hlc3QgcG9zc2libGUgc3RhcnQgYW5kIGVuZCBibG9ja3MuIElmIGJvdGggc2NoZWR1bGVzIGhhdmUgYWxyZWFkeSBzdGFydGVkIHRoZVkBY3VycmVudCBibG9jayB3aWxsIGJlIHVzZWQgYXMgdGhlIHNjaGVkdWxlIHN0YXJ0OyB3aXRoIHRoZSBjYXZlYXQgdGhhdCBpZiBvbmUgc2NoZWR1bGVdAWlzIGZpbmlzaGVkIGJ5IHRoZSBjdXJyZW50IGJsb2NrLCB0aGUgb3RoZXIgd2lsbCBiZSB0cmVhdGVkIGFzIHRoZSBuZXcgbWVyZ2VkIHNjaGVkdWxlLCx1bm1vZGlmaWVkLgD4Tk9URTogSWYgYHNjaGVkdWxlMV9pbmRleCA9PSBzY2hlZHVsZTJfaW5kZXhgIHRoaXMgaXMgYSBuby1vcC5BAU5PVEU6IFRoaXMgd2lsbCB1bmxvY2sgYWxsIHNjaGVkdWxlcyB0aHJvdWdoIHRoZSBjdXJyZW50IGJsb2NrIHByaW9yIHRvIG1lcmdpbmcuYQFOT1RFOiBJZiBib3RoIHNjaGVkdWxlcyBoYXZlIGVuZGVkIGJ5IHRoZSBjdXJyZW50IGJsb2NrLCBubyBuZXcgc2NoZWR1bGUgd2lsbCBiZSBjcmVhdGVkZGFuZCBib3RoIHdpbGwgYmUgcmVtb3ZlZC4AbE1lcmdlZCBzY2hlZHVsZSBhdHRyaWJ1dGVzOjUBLSBgc3RhcnRpbmdfYmxvY2tgOiBgTUFYKHNjaGVkdWxlMS5zdGFydGluZ19ibG9jaywgc2NoZWR1bGVkMi5zdGFydGluZ19ibG9jayxIICBjdXJyZW50X2Jsb2NrKWAuIQEtIGBlbmRpbmdfYmxvY2tgOiBgTUFYKHNjaGVkdWxlMS5lbmRpbmdfYmxvY2ssIHNjaGVkdWxlMi5lbmRpbmdfYmxvY2spYC5ZAS0gYGxvY2tlZGA6IGBzY2hlZHVsZTEubG9ja2VkX2F0KGN1cnJlbnRfYmxvY2spICsgc2NoZWR1bGUyLmxvY2tlZF9hdChjdXJyZW50X2Jsb2NrKWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A6C0gYHNjaGVkdWxlMV9pbmRleGA6IGluZGV4IG9mIHRoZSBmaXJzdCBzY2hlZHVsZSB0byBtZXJnZS7sLSBgc2NoZWR1bGUyX2luZGV4YDogaW5kZXggb2YgdGhlIHNlY29uZCBzY2hlZHVsZSB0byBtZXJnZS50Zm9yY2VfcmVtb3ZlX3Zlc3Rpbmdfc2NoZWR1bGUIARh0YXJnZXTNAQGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAAThzY2hlZHVsZV9pbmRleBABDHUzMgAFGHxGb3JjZSByZW1vdmUgYSB2ZXN0aW5nIHNjaGVkdWxlAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uAMgtIGB0YXJnZXRgOiBBbiBhY2NvdW50IHRoYXQgaGFzIGEgdmVzdGluZyBzY2hlZHVsZRUBLSBgc2NoZWR1bGVfaW5kZXhgOiBUaGUgdmVzdGluZyBzY2hlZHVsZSBpbmRleCB0aGF0IHNob3VsZCBiZSByZW1vdmVkBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLokDDDhwYWxsZXRfdmVzdGluZzB2ZXN0aW5nX2luZm8sVmVzdGluZ0luZm8IHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQAAwBGGxvY2tlZBgBHEJhbGFuY2UAASRwZXJfYmxvY2sYARxCYWxhbmNlAAE4c3RhcnRpbmdfYmxvY2sQASxCbG9ja051bWJlcgAAjQMMQHBhbGxldF9zY2hlZHVsZXIYcGFsbGV0EENhbGwEBFQAASggc2NoZWR1bGUQARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY5EDAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsiQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAARwQW5vbnltb3VzbHkgc2NoZWR1bGUgYSB0YXNrLhhjYW5jZWwIARB3aGVuEAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleBABDHUzMgABBJRDYW5jZWwgYW4gYW5vbnltb3VzbHkgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX25hbWVkFAEIaWQEASBUYXNrTmFtZQABEHdoZW4QAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljkQMBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACBFhTY2hlZHVsZSBhIG5hbWVkIHRhc2suMGNhbmNlbF9uYW1lZAQBCGlkBAEgVGFza05hbWUAAwR4Q2FuY2VsIGEgbmFtZWQgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX2FmdGVyEAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljkQMBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAEBKhBbm9ueW1vdXNseSBzY2hlZHVsZSBhIHRhc2sgYWZ0ZXIgYSBkZWxheS5Qc2NoZWR1bGVfbmFtZWRfYWZ0ZXIUAQhpZAQBIFRhc2tOYW1lAAEUYWZ0ZXIQAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGljkQMBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAFBJBTY2hlZHVsZSBhIG5hbWVkIHRhc2sgYWZ0ZXIgYSBkZWxheS4kc2V0X3JldHJ5DAEQdGFzaxEBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AARxyZXRyaWVzCAEIdTgAARhwZXJpb2QQAURCbG9ja051bWJlckZvcjxUPgAGMFkBU2V0IGEgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgYSB0YXNrIHNvIHRoYXQsIGluIGNhc2UgaXRzIHNjaGVkdWxlZCBydW4gZmFpbHMsIGl0IHdpbGxVAWJlIHJldHJpZWQgYWZ0ZXIgYHBlcmlvZGAgYmxvY2tzLCBmb3IgYSB0b3RhbCBhbW91bnQgb2YgYHJldHJpZXNgIHJldHJpZXMgb3IgdW50aWwgaXQkc3VjY2VlZHMuAFUBVGFza3Mgd2hpY2ggbmVlZCB0byBiZSBzY2hlZHVsZWQgZm9yIGEgcmV0cnkgYXJlIHN0aWxsIHN1YmplY3QgdG8gd2VpZ2h0IG1ldGVyaW5nIGFuZFEBYWdlbmRhIHNwYWNlLCBzYW1lIGFzIGEgcmVndWxhciB0YXNrLiBJZiBhIHBlcmlvZGljIHRhc2sgZmFpbHMsIGl0IHdpbGwgYmUgc2NoZWR1bGVkkG5vcm1hbGx5IHdoaWxlIHRoZSB0YXNrIGlzIHJldHJ5aW5nLgBRAVRhc2tzIHNjaGVkdWxlZCBhcyBhIHJlc3VsdCBvZiBhIHJldHJ5IGZvciBhIHBlcmlvZGljIHRhc2sgYXJlIHVubmFtZWQsIG5vbi1wZXJpb2RpYz0BY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCB0YXNrLiBUaGVpciByZXRyeSBjb25maWd1cmF0aW9uIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZU0Bb3JpZ2luYWwgdGFzaydzIGNvbmZpZ3VyYXRpb24sIGJ1dCB3aWxsIGhhdmUgYSBsb3dlciB2YWx1ZSBmb3IgYHJlbWFpbmluZ2AgdGhhbiB0aGVkb3JpZ2luYWwgYHRvdGFsX3JldHJpZXNgLjxzZXRfcmV0cnlfbmFtZWQMAQhpZAQBIFRhc2tOYW1lAAEccmV0cmllcwgBCHU4AAEYcGVyaW9kEAFEQmxvY2tOdW1iZXJGb3I8VD4ABzBdAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgbmFtZWQgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdF0Bd2lsbCBiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsMGl0IHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC4wY2FuY2VsX3JldHJ5BAEQdGFzaxEBAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4ACASoUmVtb3ZlcyB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIHRhc2suSGNhbmNlbF9yZXRyeV9uYW1lZAQBCGlkBAEgVGFza05hbWUACQS8Q2FuY2VsIHRoZSByZXRyeSBjb25maWd1cmF0aW9uIG9mIGEgbmFtZWQgdGFzay4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMukQMEGE9wdGlvbgQEVAERAQEIEE5vbmUAAAAQU29tZQQAEQEAAAEAAJUDDDxwYWxsZXRfcHJlaW1hZ2UYcGFsbGV0EENhbGwEBFQAARQ0bm90ZV9wcmVpbWFnZQQBFGJ5dGVzOAEcVmVjPHU4PgAAEHRSZWdpc3RlciBhIHByZWltYWdlIG9uLWNoYWluLgBVAUlmIHRoZSBwcmVpbWFnZSB3YXMgcHJldmlvdXNseSByZXF1ZXN0ZWQsIG5vIGZlZXMgb3IgZGVwb3NpdHMgYXJlIHRha2VuIGZvciBwcm92aWRpbmdVAXRoZSBwcmVpbWFnZS4gT3RoZXJ3aXNlLCBhIGRlcG9zaXQgaXMgdGFrZW4gcHJvcG9ydGlvbmFsIHRvIHRoZSBzaXplIG9mIHRoZSBwcmVpbWFnZS48dW5ub3RlX3ByZWltYWdlBAEQaGFzaDQBHFQ6Okhhc2gAARjcQ2xlYXIgYW4gdW5yZXF1ZXN0ZWQgcHJlaW1hZ2UgZnJvbSB0aGUgcnVudGltZSBzdG9yYWdlLgD8SWYgYGxlbmAgaXMgcHJvdmlkZWQsIHRoZW4gaXQgd2lsbCBiZSBhIG11Y2ggY2hlYXBlciBvcGVyYXRpb24uAAEBLSBgaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcmVpbWFnZSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHN0b3JlLrgtIGBsZW5gOiBUaGUgbGVuZ3RoIG9mIHRoZSBwcmVpbWFnZSBvZiBgaGFzaGAuQHJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoNAEcVDo6SGFzaAACEEEBUmVxdWVzdCBhIHByZWltYWdlIGJlIHVwbG9hZGVkIHRvIHRoZSBjaGFpbiB3aXRob3V0IHBheWluZyBhbnkgZmVlcyBvciBkZXBvc2l0cy4AVQFJZiB0aGUgcHJlaW1hZ2UgcmVxdWVzdHMgaGFzIGFscmVhZHkgYmVlbiBwcm92aWRlZCBvbi1jaGFpbiwgd2UgdW5yZXNlcnZlIGFueSBkZXBvc2l0OQFhIHVzZXIgbWF5IGhhdmUgcGFpZCwgYW5kIHRha2UgdGhlIGNvbnRyb2wgb2YgdGhlIHByZWltYWdlIG91dCBvZiB0aGVpciBoYW5kcy5IdW5yZXF1ZXN0X3ByZWltYWdlBAEQaGFzaDQBHFQ6Okhhc2gAAwy8Q2xlYXIgYSBwcmV2aW91c2x5IG1hZGUgcmVxdWVzdCBmb3IgYSBwcmVpbWFnZS4ALQFOT1RFOiBUSElTIE1VU1QgTk9UIEJFIENBTExFRCBPTiBgaGFzaGAgTU9SRSBUSU1FUyBUSEFOIGByZXF1ZXN0X3ByZWltYWdlYC44ZW5zdXJlX3VwZGF0ZWQEARhoYXNoZXOZAwEwVmVjPFQ6Okhhc2g+AAQMxEVuc3VyZSB0aGF0IHRoZSBhIGJ1bGsgb2YgcHJlLWltYWdlcyBpcyB1cGdyYWRlZC4APQFUaGUgY2FsbGVyIHBheXMgbm8gZmVlIGlmIGF0IGxlYXN0IDkwJSBvZiBwcmUtaW1hZ2VzIHdlcmUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpkDAAACNACdAwwscGFsbGV0X3N1ZG8YcGFsbGV0EENhbGwEBFQAARQQc3VkbwQBEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAABDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi5Uc3Vkb191bmNoZWNrZWRfd2VpZ2h0CAEQY2FsbIkBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h0KAEYV2VpZ2h0AAEUNQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLi0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhlsFN1ZG8gdXNlciB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4cc2V0X2tleQQBDG5ld80BAVBBY2NvdW50SWRMb29rdXBPZjxUPgACCF0BQXV0aGVudGljYXRlcyB0aGUgY3VycmVudCBzdWRvIGtleSBhbmQgc2V0cyB0aGUgZ2l2ZW4gQWNjb3VudElkIChgbmV3YCkgYXMgdGhlIG5ldyBzdWRvEGtleS4cc3Vkb19hcwgBDHdob80BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADEE0BQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21AYSBnaXZlbiBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uKHJlbW92ZV9rZXkABAyEUGVybWFuZW50bHkgcmVtb3ZlcyB0aGUgc3VkbyBrZXkuAGwqKlRoaXMgY2Fubm90IGJlIHVuLWRvbmUuKioEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuoQMMMHBhbGxldF9wcm94eRhwYWxsZXQQQ2FsbAQEVAABKBRwcm94eQwBEHJlYWzNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUBmb3JjZV9wcm94eV90eXBlpQMBUE9wdGlvbjxUOjpQcm94eVR5cGU+AAEQY2FsbIkBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0Zc0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGUpAQEwVDo6UHJveHlUeXBlAAEUZGVsYXkQAURCbG9ja051bWJlckZvcjxUPgABJEUBUmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyIHRoYXQgaXMgYWJsZSB0byBtYWtlIGNhbGxzIG9uIGl0cyBiZWhhbGYuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6EQEtIGBwcm94eWA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIGBjYWxsZXJgIHdvdWxkIGxpa2UgdG8gbWFrZSBhIHByb3h5LvwtIGBwcm94eV90eXBlYDogVGhlIHBlcm1pc3Npb25zIGFsbG93ZWQgZm9yIHRoaXMgcHJveHkgYWNjb3VudC5NAS0gYGRlbGF5YDogVGhlIGFubm91bmNlbWVudCBwZXJpb2QgcmVxdWlyZWQgb2YgdGhlIGluaXRpYWwgcHJveHkuIFdpbGwgZ2VuZXJhbGx5IGJlFHplcm8uMHJlbW92ZV9wcm94eQwBIGRlbGVnYXRlzQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZSkBATBUOjpQcm94eVR5cGUAARRkZWxheRABREJsb2NrTnVtYmVyRm9yPFQ+AAIcqFVucmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOiUBLSBgcHJveHlgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBgY2FsbGVyYCB3b3VsZCBsaWtlIHRvIHJlbW92ZSBhcyBhIHByb3h5LkEBLSBgcHJveHlfdHlwZWA6IFRoZSBwZXJtaXNzaW9ucyBjdXJyZW50bHkgZW5hYmxlZCBmb3IgdGhlIHJlbW92ZWQgcHJveHkgYWNjb3VudC44cmVtb3ZlX3Byb3hpZXMAAxi0VW5yZWdpc3RlciBhbGwgcHJveHkgYWNjb3VudHMgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AQQFXQVJOSU5HOiBUaGlzIG1heSBiZSBjYWxsZWQgb24gYWNjb3VudHMgY3JlYXRlZCBieSBgcHVyZWAsIGhvd2V2ZXIgaWYgZG9uZSwgdGhlblkBdGhlIHVucmVzZXJ2ZWQgZmVlcyB3aWxsIGJlIGluYWNjZXNzaWJsZS4gKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiosY3JlYXRlX3B1cmUMAShwcm94eV90eXBlKQEBMFQ6OlByb3h5VHlwZQABFGRlbGF5EAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleC0BAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlKQEBMFQ6OlByb3h5VHlwZQABFGluZGV4LQEBDHUxNgABGGhlaWdodKkBAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleKkBAQx1MzIABUCgUmVtb3ZlcyBhIHByZXZpb3VzbHkgc3Bhd25lZCBwdXJlIHByb3h5LgBJAVdBUk5JTkc6ICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqIEFueSBmdW5kcyBoZWxkIGluIGl0IHdpbGwgYmU0aW5hY2Nlc3NpYmxlLgBZAVJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLCBhbmQgdGhlIHNlbmRlciBhY2NvdW50IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgYSBjYWxsIHRvlGBwdXJlYCB3aXRoIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycy4AOQEtIGBzcGF3bmVyYDogVGhlIGFjY291bnQgdGhhdCBvcmlnaW5hbGx5IGNhbGxlZCBgcHVyZWAgdG8gY3JlYXRlIHRoaXMgYWNjb3VudC45AS0gYGluZGV4YDogVGhlIGRpc2FtYmlndWF0aW9uIGluZGV4IG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBwdXJlYC4gUHJvYmFibHkgYDBgLuwtIGBwcm94eV90eXBlYDogVGhlIHByb3h5IHR5cGUgb3JpZ2luYWxseSBwYXNzZWQgdG8gYHB1cmVgLikBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgcHVyZWAgd2FzIHByb2Nlc3NlZC41AS0gYGV4dF9pbmRleGA6IFRoZSBleHRyaW5zaWMgaW5kZXggaW4gd2hpY2ggdGhlIGNhbGwgdG8gYHB1cmVgIHdhcyBwcm9jZXNzZWQuADUBRmFpbHMgd2l0aCBgTm9QZXJtaXNzaW9uYCBpbiBjYXNlIHRoZSBjYWxsZXIgaXMgbm90IGEgcHJldmlvdXNseSBjcmVhdGVkIHB1cmXcYWNjb3VudCB3aG9zZSBgcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWzNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2g0ATRDYWxsSGFzaE9mPFQ+AAY8BQFQdWJsaXNoIHRoZSBoYXNoIG9mIGEgcHJveHktY2FsbCB0aGF0IHdpbGwgYmUgbWFkZSBpbiB0aGUgZnV0dXJlLgBdAVRoaXMgbXVzdCBiZSBjYWxsZWQgc29tZSBudW1iZXIgb2YgYmxvY2tzIGJlZm9yZSB0aGUgY29ycmVzcG9uZGluZyBgcHJveHlgIGlzIGF0dGVtcHRlZCUBaWYgdGhlIGRlbGF5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJveHkgcmVsYXRpb25zaGlwIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLgARAU5vIG1vcmUgdGhhbiBgTWF4UGVuZGluZ2AgYW5ub3VuY2VtZW50cyBtYXkgYmUgbWFkZSBhdCBhbnkgb25lIHRpbWUuAAkBVGhpcyB3aWxsIHRha2UgYSBkZXBvc2l0IG9mIGBBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yYCBhcyB3ZWxsIGFzGQFgQW5ub3VuY2VtZW50RGVwb3NpdEJhc2VgIGlmIHRoZXJlIGFyZSBubyBvdGhlciBwZW5kaW5nIGFubm91bmNlbWVudHMuACUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIGEgcHJveHkgb2YgYHJlYWxgLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZW1vdmVfYW5ub3VuY2VtZW50CAEQcmVhbM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4AByhwUmVtb3ZlIGEgZ2l2ZW4gYW5ub3VuY2VtZW50LgBZAU1heSBiZSBjYWxsZWQgYnkgYSBwcm94eSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhleSBwcmV2aW91c2x5IGFubm91bmNlZCBhbmQgcmV0dXJuMHRoZSBkZXBvc2l0LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlamVjdF9hbm5vdW5jZW1lbnQIASBkZWxlZ2F0Zc0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDQBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGXNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARByZWFszQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZaUDAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6lAwQYT3B0aW9uBARUASkBAQgQTm9uZQAAABBTb21lBAApAQAAAQAAqQMMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQQQ2FsbAQEVAABEFBhc19tdWx0aV90aHJlc2hvbGRfMQgBRG90aGVyX3NpZ25hdG9yaWVz4QEBRFZlYzxUOjpBY2NvdW50SWQ+AAEQY2FsbIkBAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAwUQFJbW1lZGlhdGVseSBkaXNwYXRjaCBhIG11bHRpLXNpZ25hdHVyZSBjYWxsIHVzaW5nIGEgc2luZ2xlIGFwcHJvdmFsIGZyb20gdGhlIGNhbGxlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA9AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUBAW11bHRpLXNpZ25hdHVyZSwgYnV0IGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYXBwcm92YWwgcHJvY2Vzcy6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgC4UmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0LgA0IyMgQ29tcGxleGl0eRkBTyhaICsgQykgd2hlcmUgWiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBjYWxsIGFuZCBDIGl0cyBleGVjdXRpb24gd2VpZ2h0LiBhc19tdWx0aRQBJHRocmVzaG9sZC0BAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc+EBAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludK0DAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AARBjYWxsiQEBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAGcVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuALBJZiB0aGVyZSBhcmUgZW5vdWdoLCB0aGVuIGRpc3BhdGNoIHRoZSBjYWxsLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgAdAU5PVEU6IFVubGVzcyB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgZ2VuZXJhbGx5IHdhbnQgdG8gdXNlGQFgYXBwcm92ZV9hc19tdWx0aWAgaW5zdGVhZCwgc2luY2UgaXQgb25seSByZXF1aXJlcyBhIGhhc2ggb2YgdGhlIGNhbGwuAFkBUmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0IGlmIGB0aHJlc2hvbGRgIGlzIGV4YWN0bHkgYDFgLiBPdGhlcndpc2VVAW9uIHN1Y2Nlc3MsIHJlc3VsdCBpcyBgT2tgIGFuZCB0aGUgcmVzdWx0IGZyb20gdGhlIGludGVyaW9yIGNhbGwsIGlmIGl0IHdhcyBleGVjdXRlZCzcbWF5IGJlIGZvdW5kIGluIHRoZSBkZXBvc2l0ZWQgYE11bHRpc2lnRXhlY3V0ZWRgIGV2ZW50LgA0IyMgQ29tcGxleGl0eVAtIGBPKFMgKyBaICsgQ2FsbClgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLiEBLSBPbmUgY2FsbCBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oWilgIHdoZXJlIGBaYCBpcyB0eC1sZW4uvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50LmwtIFRoZSB3ZWlnaHQgb2YgdGhlIGBjYWxsYC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuQGFwcHJvdmVfYXNfbXVsdGkUASR0aHJlc2hvbGQtAQEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPhAQFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnStAwGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAJ4VQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANQFOT1RFOiBJZiB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgd2FudCB0byB1c2UgYGFzX211bHRpYCBpbnN0ZWFkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC7ULSBVcCB0byBvbmUgYmluYXJ5IHNlYXJjaCBhbmQgaW5zZXJ0IChgTyhsb2dTICsgUylgKS74LSBJL086IDEgcmVhZCBgTyhTKWAsIHVwIHRvIDEgbXV0YXRlIGBPKFMpYC4gVXAgdG8gb25lIHJlbW92ZS4wLSBPbmUgZXZlbnQuTQEtIFN0b3JhZ2U6IGluc2VydHMgb25lIGl0ZW0sIHZhbHVlIHNpemUgYm91bmRlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIGEgZGVwb3NpdBkBICB0YWtlbiBmb3IgaXRzIGxpZmV0aW1lIG9mIGBEZXBvc2l0QmFzZSArIHRocmVzaG9sZCAqIERlcG9zaXRGYWN0b3JgLjxjYW5jZWxfYXNfbXVsdGkQASR0aHJlc2hvbGQtAQEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPhAQFEVmVjPFQ6OkFjY291bnRJZD4AASR0aW1lcG9pbnQ1AQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABJGNhbGxfaGFzaAQBIFt1ODsgMzJdAANUVQFDYW5jZWwgYSBwcmUtZXhpc3RpbmcsIG9uLWdvaW5nIG11bHRpc2lnIHRyYW5zYWN0aW9uLiBBbnkgZGVwb3NpdCByZXNlcnZlZCBwcmV2aW91c2x5xGZvciB0aGlzIG9wZXJhdGlvbiB3aWxsIGJlIHVucmVzZXJ2ZWQgb24gc3VjY2Vzcy4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5Ll0BLSBgdGltZXBvaW50YDogVGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZCB0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFseHRyYW5zYWN0aW9uIGZvciB0aGlzIGRpc3BhdGNoLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAuMC0gT25lIGV2ZW50LoQtIEkvTzogMSByZWFkIGBPKFMpYCwgb25lIHJlbW92ZS5wLSBTdG9yYWdlOiByZW1vdmVzIG9uZSBpdGVtLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6tAwQYT3B0aW9uBARUATUBAQgQTm9uZQAAABBTb21lBAA1AQAAAQAAsQMMkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZRhwYWxsZXQQQ2FsbAQEVAABFDxzdWJtaXRfdW5zaWduZWQIATByYXdfc29sdXRpb261AwGwQm94PFJhd1NvbHV0aW9uPFNvbHV0aW9uT2Y8VDo6TWluZXJDb25maWc+Pj4AARx3aXRuZXNzhQQBWFNvbHV0aW9uT3JTbmFwc2hvdFNpemUAADikU3VibWl0IGEgc29sdXRpb24gZm9yIHRoZSB1bnNpZ25lZCBwaGFzZS4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gZm8gdGhpcyBjYWxsIG11c3QgYmUgX19ub25lX18uAD0BVGhpcyBzdWJtaXNzaW9uIGlzIGNoZWNrZWQgb24gdGhlIGZseS4gTW9yZW92ZXIsIHRoaXMgdW5zaWduZWQgc29sdXRpb24gaXMgb25seVUBdmFsaWRhdGVkIHdoZW4gc3VibWl0dGVkIHRvIHRoZSBwb29sIGZyb20gdGhlICoqbG9jYWwqKiBub2RlLiBFZmZlY3RpdmVseSwgdGhpcyBtZWFuc10BdGhhdCBvbmx5IGFjdGl2ZSB2YWxpZGF0b3JzIGNhbiBzdWJtaXQgdGhpcyB0cmFuc2FjdGlvbiB3aGVuIGF1dGhvcmluZyBhIGJsb2NrIChzaW1pbGFyQHRvIGFuIGluaGVyZW50KS4AWQFUbyBwcmV2ZW50IGFueSBpbmNvcnJlY3Qgc29sdXRpb24gKGFuZCB0aHVzIHdhc3RlZCB0aW1lL3dlaWdodCksIHRoaXMgdHJhbnNhY3Rpb24gd2lsbE0BcGFuaWMgaWYgdGhlIHNvbHV0aW9uIHN1Ym1pdHRlZCBieSB0aGUgdmFsaWRhdG9yIGlzIGludmFsaWQgaW4gYW55IHdheSwgZWZmZWN0aXZlbHmccHV0dGluZyB0aGVpciBhdXRob3JpbmcgcmV3YXJkIGF0IHJpc2suAOBObyBkZXBvc2l0IG9yIHJld2FyZCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdWJtaXNzaW9uLmxzZXRfbWluaW11bV91bnRydXN0ZWRfc2NvcmUEAUBtYXliZV9uZXh0X3Njb3JliQQBVE9wdGlvbjxFbGVjdGlvblNjb3JlPgABFLBTZXQgYSBuZXcgdmFsdWUgZm9yIGBNaW5pbXVtVW50cnVzdGVkU2NvcmVgLgDYRGlzcGF0Y2ggb3JpZ2luIG11c3QgYmUgYWxpZ25lZCB3aXRoIGBUOjpGb3JjZU9yaWdpbmAuAPBUaGlzIGNoZWNrIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgdGhlIHZhbHVlIHRvIGBOb25lYC50c2V0X2VtZXJnZW5jeV9lbGVjdGlvbl9yZXN1bHQEASBzdXBwb3J0c40EAVhTdXBwb3J0czxUOjpBY2NvdW50SWQ+AAIgWQFTZXQgYSBzb2x1dGlvbiBpbiB0aGUgcXVldWUsIHRvIGJlIGhhbmRlZCBvdXQgdG8gdGhlIGNsaWVudCBvZiB0aGlzIHBhbGxldCBpbiB0aGUgbmV4dIhjYWxsIHRvIGBFbGVjdGlvblByb3ZpZGVyOjplbGVjdGAuAEUBVGhpcyBjYW4gb25seSBiZSBzZXQgYnkgYFQ6OkZvcmNlT3JpZ2luYCwgYW5kIG9ubHkgd2hlbiB0aGUgcGhhc2UgaXMgYEVtZXJnZW5jeWAuAGEBVGhlIHNvbHV0aW9uIGlzIG5vdCBjaGVja2VkIGZvciBhbnkgZmVhc2liaWxpdHkgYW5kIGlzIGFzc3VtZWQgdG8gYmUgdHJ1c3R3b3J0aHksIGFzIGFueVEBZmVhc2liaWxpdHkgY2hlY2sgaXRzZWxmIGNhbiBpbiBwcmluY2lwbGUgY2F1c2UgdGhlIGVsZWN0aW9uIHByb2Nlc3MgdG8gZmFpbCAoZHVlIHRvaG1lbW9yeS93ZWlnaHQgY29uc3RyYWlucykuGHN1Ym1pdAQBMHJhd19zb2x1dGlvbrUDAbBCb3g8UmF3U29sdXRpb248U29sdXRpb25PZjxUOjpNaW5lckNvbmZpZz4+PgADJJxTdWJtaXQgYSBzb2x1dGlvbiBmb3IgdGhlIHNpZ25lZCBwaGFzZS4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gZm8gdGhpcyBjYWxsIG11c3QgYmUgX19zaWduZWRfXy4AXQFUaGUgc29sdXRpb24gaXMgcG90ZW50aWFsbHkgcXVldWVkLCBiYXNlZCBvbiB0aGUgY2xhaW1lZCBzY29yZSBhbmQgcHJvY2Vzc2VkIGF0IHRoZSBlbmRQb2YgdGhlIHNpZ25lZCBwaGFzZS4AXQFBIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgYW5kIHJlY29yZGVkIGZvciB0aGUgc29sdXRpb24uIEJhc2VkIG9uIHRoZSBvdXRjb21lLCB0aGUgc29sdXRpb24VAW1pZ2h0IGJlIHJld2FyZGVkLCBzbGFzaGVkLCBvciBnZXQgYWxsIG9yIGEgcGFydCBvZiB0aGUgZGVwb3NpdCBiYWNrLkxnb3Zlcm5hbmNlX2ZhbGxiYWNrCAFAbWF5YmVfbWF4X3ZvdGVyc6EEASxPcHRpb248dTMyPgABRG1heWJlX21heF90YXJnZXRzoQQBLE9wdGlvbjx1MzI+AAQQgFRyaWdnZXIgdGhlIGdvdmVybmFuY2UgZmFsbGJhY2suAEkBVGhpcyBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiBbYFBoYXNlOjpFbWVyZ2VuY3lgXSBpcyBlbmFibGVkLCBhcyBhbiBhbHRlcm5hdGl2ZSB0b8BjYWxsaW5nIFtgQ2FsbDo6c2V0X2VtZXJnZW5jeV9lbGVjdGlvbl9yZXN1bHRgXS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMutQMIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZSxSYXdTb2x1dGlvbgQEUwG5AwAMASBzb2x1dGlvbrkDAQRTAAEUc2NvcmVBAQE0RWxlY3Rpb25TY29yZQABFHJvdW5kEAEMdTMyAAC5Awg8d2VzdGVuZF9ydW50aW1lVE5wb3NDb21wYWN0U29sdXRpb24xNgAAQAEYdm90ZXMxvQMAAAEYdm90ZXMyyQMAAAEYdm90ZXMz3QMAAAEYdm90ZXM06QMAAAEYdm90ZXM19QMAAAEYdm90ZXM2AQQAAAEYdm90ZXM3DQQAAAEYdm90ZXM4GQQAAAEYdm90ZXM5JQQAAAEcdm90ZXMxMDEEAAABHHZvdGVzMTE9BAAAARx2b3RlczEySQQAAAEcdm90ZXMxM1UEAAABHHZvdGVzMTRhBAAAARx2b3RlczE1bQQAAAEcdm90ZXMxNnkEAAAAvQMAAALBAwDBAwAABAipAcUDAMUDAAAGLQEAyQMAAALNAwDNAwAABAypAdEDxQMA0QMAAAQIxQPVAwDVAwAABtkDANkDDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3MYUGVyVTE2AAAEAC0BAQx1MTYAAN0DAAAC4QMA4QMAAAQMqQHlA8UDAOUDAAADAgAAANEDAOkDAAAC7QMA7QMAAAQMqQHxA8UDAPEDAAADAwAAANEDAPUDAAAC+QMA+QMAAAQMqQH9A8UDAP0DAAADBAAAANEDAAEEAAACBQQABQQAAAQMqQEJBMUDAAkEAAADBQAAANEDAA0EAAACEQQAEQQAAAQMqQEVBMUDABUEAAADBgAAANEDABkEAAACHQQAHQQAAAQMqQEhBMUDACEEAAADBwAAANEDACUEAAACKQQAKQQAAAQMqQEtBMUDAC0EAAADCAAAANEDADEEAAACNQQANQQAAAQMqQE5BMUDADkEAAADCQAAANEDAD0EAAACQQQAQQQAAAQMqQFFBMUDAEUEAAADCgAAANEDAEkEAAACTQQATQQAAAQMqQFRBMUDAFEEAAADCwAAANEDAFUEAAACWQQAWQQAAAQMqQFdBMUDAF0EAAADDAAAANEDAGEEAAACZQQAZQQAAAQMqQFpBMUDAGkEAAADDQAAANEDAG0EAAACcQQAcQQAAAQMqQF1BMUDAHUEAAADDgAAANEDAHkEAAACfQQAfQQAAAQMqQGBBMUDAIEEAAADDwAAANEDAIUECJBwYWxsZXRfZWxlY3Rpb25fcHJvdmlkZXJfbXVsdGlfcGhhc2VYU29sdXRpb25PclNuYXBzaG90U2l6ZQAACAEYdm90ZXJzqQEBDHUzMgABHHRhcmdldHOpAQEMdTMyAACJBAQYT3B0aW9uBARUAUEBAQgQTm9uZQAAABBTb21lBABBAQAAAQAAjQQAAAKRBACRBAAABAgAlQQAlQQIRHNwX25wb3NfZWxlY3Rpb25zHFN1cHBvcnQEJEFjY291bnRJZAEAAAgBFHRvdGFsGAE8RXh0ZW5kZWRCYWxhbmNlAAEYdm90ZXJzmQQBhFZlYzwoQWNjb3VudElkLCBFeHRlbmRlZEJhbGFuY2UpPgAAmQQAAAKdBACdBAAABAgAGAChBAQYT3B0aW9uBARUARABCBBOb25lAAAAEFNvbWUEABAAAAEAAKUEDEBwYWxsZXRfYmFnc19saXN0GHBhbGxldBBDYWxsCARUAARJAAEMFHJlYmFnBAEoZGlzbG9jYXRlZM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAKFkBRGVjbGFyZSB0aGF0IHNvbWUgYGRpc2xvY2F0ZWRgIGFjY291bnQgaGFzLCB0aHJvdWdoIHJld2FyZHMgb3IgcGVuYWx0aWVzLCBzdWZmaWNpZW50bHlRAWNoYW5nZWQgaXRzIHNjb3JlIHRoYXQgaXQgc2hvdWxkIHByb3Blcmx5IGZhbGwgaW50byBhIGRpZmZlcmVudCBiYWcgdGhhbiBpdHMgY3VycmVudBBvbmUuAB0BQW55b25lIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gYWJvdXQgYW55IHBvdGVudGlhbGx5IGRpc2xvY2F0ZWQgYWNjb3VudC4ASQFXaWxsIGFsd2F5cyB1cGRhdGUgdGhlIHN0b3JlZCBzY29yZSBvZiBgZGlzbG9jYXRlZGAgdG8gdGhlIGNvcnJlY3Qgc2NvcmUsIGJhc2VkIG9uQGBTY29yZVByb3ZpZGVyYC4A1ElmIGBkaXNsb2NhdGVkYCBkb2VzIG5vdCBleGlzdHMsIGl0IHJldHVybnMgYW4gZXJyb3IuPHB1dF9pbl9mcm9udF9vZgQBHGxpZ2h0ZXLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASjQTW92ZSB0aGUgY2FsbGVyJ3MgSWQgZGlyZWN0bHkgaW4gZnJvbnQgb2YgYGxpZ2h0ZXJgLgBZAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBjYW4gb25seSBiZSBjYWxsZWQgYnkgdGhlIElkIG9mNQF0aGUgYWNjb3VudCBnb2luZyBpbiBmcm9udCBvZiBgbGlnaHRlcmAuIEZlZSBpcyBwYXllZCBieSB0aGUgb3JpZ2luIHVuZGVyIGFsbDhjaXJjdW1zdGFuY2VzLgA4T25seSB3b3JrcyBpZjoAlC0gYm90aCBub2RlcyBhcmUgd2l0aGluIHRoZSBzYW1lIGJhZyzQLSBhbmQgYG9yaWdpbmAgaGFzIGEgZ3JlYXRlciBgU2NvcmVgIHRoYW4gYGxpZ2h0ZXJgLlRwdXRfaW5fZnJvbnRfb2Zfb3RoZXIIARxoZWF2aWVyzQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcbGlnaHRlcs0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgACDBEBU2FtZSBhcyBbYFBhbGxldDo6cHV0X2luX2Zyb250X29mYF0sIGJ1dCBpdCBjYW4gYmUgY2FsbGVkIGJ5IGFueW9uZS4AyEZlZSBpcyBwYWlkIGJ5IHRoZSBvcmlnaW4gdW5kZXIgYWxsIGNpcmN1bXN0YW5jZXMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkEDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQQQ2FsbAQEVAABaBBqb2luCAEYYW1vdW503QEBMEJhbGFuY2VPZjxUPgABHHBvb2xfaWQQARhQb29sSWQAADxZAVN0YWtlIGZ1bmRzIHdpdGggYSBwb29sLiBUaGUgYW1vdW50IHRvIGJvbmQgaXMgdHJhbnNmZXJyZWQgZnJvbSB0aGUgbWVtYmVyIHRvIHRoZSBwb29sxGFjY291bnQgYW5kIGltbWVkaWF0ZWx5IGluY3JlYXNlcyB0aGUgcG9vbHMgYm9uZC4AKQFUaGUgbWV0aG9kIG9mIHRyYW5zZmVycmluZyB0aGUgYW1vdW50IHRvIHRoZSBwb29sIGFjY291bnQgaXMgZGV0ZXJtaW5lZCBieQEBW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZWBdLiBJZiB0aGUgcG9vbCBpcyBjb25maWd1cmVkIHRvIHVzZTEBW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXSwgdGhlIGZ1bmRzIHJlbWFpbiBpbiB0aGUgYWNjb3VudCBvZjEBdGhlIGBvcmlnaW5gLCB3aGlsZSB0aGUgcG9vbCBnYWlucyB0aGUgcmlnaHQgdG8gdXNlIHRoZXNlIGZ1bmRzIGZvciBzdGFraW5nLgAYIyBOb3RlAMwqIEFuIGFjY291bnQgY2FuIG9ubHkgYmUgYSBtZW1iZXIgb2YgYSBzaW5nbGUgcG9vbC7YKiBBbiBhY2NvdW50IGNhbm5vdCBqb2luIHRoZSBzYW1lIHBvb2wgbXVsdGlwbGUgdGltZXMuQQEqIFRoaXMgY2FsbCB3aWxsICpub3QqIGR1c3QgdGhlIG1lbWJlciBhY2NvdW50LCBzbyB0aGUgbWVtYmVyIG11c3QgaGF2ZSBhdCBsZWFzdMggIGBleGlzdGVudGlhbCBkZXBvc2l0ICsgYW1vdW50YCBpbiB0aGVpciBhY2NvdW50LtAqIE9ubHkgYSBwb29sIHdpdGggW2BQb29sU3RhdGU6Ok9wZW5gXSBjYW4gYmUgam9pbmVkKGJvbmRfZXh0cmEEARRleHRyYa0EAVxCb25kRXh0cmE8QmFsYW5jZU9mPFQ+PgABHEUBQm9uZCBgZXh0cmFgIG1vcmUgZnVuZHMgZnJvbSBgb3JpZ2luYCBpbnRvIHRoZSBwb29sIHRvIHdoaWNoIHRoZXkgYWxyZWFkeSBiZWxvbmcuAEkBQWRkaXRpb25hbCBmdW5kcyBjYW4gY29tZSBmcm9tIGVpdGhlciB0aGUgZnJlZSBiYWxhbmNlIG9mIHRoZSBhY2NvdW50LCBvZiBmcm9tIHRoZZxhY2N1bXVsYXRlZCByZXdhcmRzLCBzZWUgW2BCb25kRXh0cmFgXS4APQFCb25kaW5nIGV4dHJhIGZ1bmRzIGltcGxpZXMgYW4gYXV0b21hdGljIHBheW91dCBvZiBhbGwgcGVuZGluZyByZXdhcmRzIGFzIHdlbGwuCQFTZWUgYGJvbmRfZXh0cmFfb3RoZXJgIHRvIGJvbmQgcGVuZGluZyByZXdhcmRzIG9mIGBvdGhlcmAgbWVtYmVycy4wY2xhaW1fcGF5b3V0AAIgVQFBIGJvbmRlZCBtZW1iZXIgY2FuIHVzZSB0aGlzIHRvIGNsYWltIHRoZWlyIHBheW91dCBiYXNlZCBvbiB0aGUgcmV3YXJkcyB0aGF0IHRoZSBwb29sYQFoYXMgYWNjdW11bGF0ZWQgc2luY2UgdGhlaXIgbGFzdCBjbGFpbWVkIHBheW91dCAoT1Igc2luY2Ugam9pbmluZyBpZiB0aGlzIGlzIHRoZWlyIGZpcnN0PQF0aW1lIGNsYWltaW5nIHJld2FyZHMpLiBUaGUgcGF5b3V0IHdpbGwgYmUgdHJhbnNmZXJyZWQgdG8gdGhlIG1lbWJlcidzIGFjY291bnQuAEkBVGhlIG1lbWJlciB3aWxsIGVhcm4gcmV3YXJkcyBwcm8gcmF0YSBiYXNlZCBvbiB0aGUgbWVtYmVycyBzdGFrZSB2cyB0aGUgc3VtIG9mIHRoZdBtZW1iZXJzIGluIHRoZSBwb29scyBzdGFrZS4gUmV3YXJkcyBkbyBub3QgImV4cGlyZSIuAEEBU2VlIGBjbGFpbV9wYXlvdXRfb3RoZXJgIHRvIGNsYWltIHJld2FyZHMgb24gYmVoYWxmIG9mIHNvbWUgYG90aGVyYCBwb29sIG1lbWJlci4YdW5ib25kCAE4bWVtYmVyX2FjY291bnTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUB1bmJvbmRpbmdfcG9pbnRz3QEBMEJhbGFuY2VPZjxUPgADfEUBVW5ib25kIHVwIHRvIGB1bmJvbmRpbmdfcG9pbnRzYCBvZiB0aGUgYG1lbWJlcl9hY2NvdW50YCdzIGZ1bmRzIGZyb20gdGhlIHBvb2wuIEl0RQFpbXBsaWNpdGx5IGNvbGxlY3RzIHRoZSByZXdhcmRzIG9uZSBsYXN0IHRpbWUsIHNpbmNlIG5vdCBkb2luZyBzbyB3b3VsZCBtZWFuIHNvbWVscmV3YXJkcyB3b3VsZCBiZSBmb3JmZWl0ZWQuAE0BVW5kZXIgY2VydGFpbiBjb25kaXRpb25zLCB0aGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSAoaS5lLiBieSBhbnkkYWNjb3VudCkuAKwjIENvbmRpdGlvbnMgZm9yIGEgcGVybWlzc2lvbmxlc3MgZGlzcGF0Y2guAF0BKiBUaGUgcG9vbCBpcyBibG9ja2VkIGFuZCB0aGUgY2FsbGVyIGlzIGVpdGhlciB0aGUgcm9vdCBvciBib3VuY2VyLiBUaGlzIGlzIHJlZmVyZWVkIHRvMCAgYXMgYSBraWNrLvQqIFRoZSBwb29sIGlzIGRlc3Ryb3lpbmcgYW5kIHRoZSBtZW1iZXIgaXMgbm90IHRoZSBkZXBvc2l0b3IuVQEqIFRoZSBwb29sIGlzIGRlc3Ryb3lpbmcsIHRoZSBtZW1iZXIgaXMgdGhlIGRlcG9zaXRvciBhbmQgbm8gb3RoZXIgbWVtYmVycyBhcmUgaW4gdGhlHCAgcG9vbC4AEQEjIyBDb25kaXRpb25zIGZvciBwZXJtaXNzaW9uZWQgZGlzcGF0Y2ggKGkuZS4gdGhlIGNhbGxlciBpcyBhbHNvIHRoZUhgbWVtYmVyX2FjY291bnRgKToAiCogVGhlIGNhbGxlciBpcyBub3QgdGhlIGRlcG9zaXRvci5VASogVGhlIGNhbGxlciBpcyB0aGUgZGVwb3NpdG9yLCB0aGUgcG9vbCBpcyBkZXN0cm95aW5nIGFuZCBubyBvdGhlciBtZW1iZXJzIGFyZSBpbiB0aGUcICBwb29sLgAYIyBOb3RlAB0BSWYgdGhlcmUgYXJlIHRvbyBtYW55IHVubG9ja2luZyBjaHVua3MgdG8gdW5ib25kIHdpdGggdGhlIHBvb2wgYWNjb3VudCxRAVtgQ2FsbDo6cG9vbF93aXRoZHJhd191bmJvbmRlZGBdIGNhbiBiZSBjYWxsZWQgdG8gdHJ5IGFuZCBtaW5pbWl6ZSB1bmxvY2tpbmcgY2h1bmtzLlkBVGhlIFtgU3Rha2luZ0ludGVyZmFjZTo6dW5ib25kYF0gd2lsbCBpbXBsaWNpdGx5IGNhbGwgW2BDYWxsOjpwb29sX3dpdGhkcmF3X3VuYm9uZGVkYF1VAXRvIHRyeSB0byBmcmVlIGNodW5rcyBpZiBuZWNlc3NhcnkgKGllLiBpZiB1bmJvdW5kIHdhcyBjYWxsZWQgYW5kIG5vIHVubG9ja2luZyBjaHVua3NhAWFyZSBhdmFpbGFibGUpLiBIb3dldmVyLCBpdCBtYXkgbm90IGJlIHBvc3NpYmxlIHRvIHJlbGVhc2UgdGhlIGN1cnJlbnQgdW5sb2NraW5nIGNodW5rcyxdAWluIHdoaWNoIGNhc2UsIHRoZSByZXN1bHQgb2YgdGhpcyBjYWxsIHdpbGwgbGlrZWx5IGJlIHRoZSBgTm9Nb3JlQ2h1bmtzYCBlcnJvciBmcm9tIHRoZTxzdGFraW5nIHN5c3RlbS5YcG9vbF93aXRoZHJhd191bmJvbmRlZAgBHHBvb2xfaWQQARhQb29sSWQAAUhudW1fc2xhc2hpbmdfc3BhbnMQAQx1MzIABBhVAUNhbGwgYHdpdGhkcmF3X3VuYm9uZGVkYCBmb3IgdGhlIHBvb2xzIGFjY291bnQuIFRoaXMgY2FsbCBjYW4gYmUgbWFkZSBieSBhbnkgYWNjb3VudC4AQQFUaGlzIGlzIHVzZWZ1bCBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgdW5sb2NraW5nIGNodW5rcyB0byBjYWxsIGB1bmJvbmRgLCBhbmQgc29tZWEBY2FuIGJlIGNsZWFyZWQgYnkgd2l0aGRyYXdpbmcuIEluIHRoZSBjYXNlIHRoZXJlIGFyZSB0b28gbWFueSB1bmxvY2tpbmcgY2h1bmtzLCB0aGUgdXNlclEBd291bGQgcHJvYmFibHkgc2VlIGFuIGVycm9yIGxpa2UgYE5vTW9yZUNodW5rc2AgZW1pdHRlZCBmcm9tIHRoZSBzdGFraW5nIHN5c3RlbSB3aGVuXHRoZXkgYXR0ZW1wdCB0byB1bmJvbmQuRHdpdGhkcmF3X3VuYm9uZGVkCAE4bWVtYmVyX2FjY291bnTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAUhudW1fc2xhc2hpbmdfc3BhbnMQAQx1MzIABVhVAVdpdGhkcmF3IHVuYm9uZGVkIGZ1bmRzIGZyb20gYG1lbWJlcl9hY2NvdW50YC4gSWYgbm8gYm9uZGVkIGZ1bmRzIGNhbiBiZSB1bmJvbmRlZCwgYW5IZXJyb3IgaXMgcmV0dXJuZWQuAE0BVW5kZXIgY2VydGFpbiBjb25kaXRpb25zLCB0aGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSAoaS5lLiBieSBhbnkkYWNjb3VudCkuAKgjIENvbmRpdGlvbnMgZm9yIGEgcGVybWlzc2lvbmxlc3MgZGlzcGF0Y2gACQEqIFRoZSBwb29sIGlzIGluIGRlc3Ryb3kgbW9kZSBhbmQgdGhlIHRhcmdldCBpcyBub3QgdGhlIGRlcG9zaXRvci4xASogVGhlIHRhcmdldCBpcyB0aGUgZGVwb3NpdG9yIGFuZCB0aGV5IGFyZSB0aGUgb25seSBtZW1iZXIgaW4gdGhlIHN1YiBwb29scy4NASogVGhlIHBvb2wgaXMgYmxvY2tlZCBhbmQgdGhlIGNhbGxlciBpcyBlaXRoZXIgdGhlIHJvb3Qgb3IgYm91bmNlci4AmCMgQ29uZGl0aW9ucyBmb3IgcGVybWlzc2lvbmVkIGRpc3BhdGNoAOgqIFRoZSBjYWxsZXIgaXMgdGhlIHRhcmdldCBhbmQgdGhleSBhcmUgbm90IHRoZSBkZXBvc2l0b3IuABgjIE5vdGUA9C0gSWYgdGhlIHRhcmdldCBpcyB0aGUgZGVwb3NpdG9yLCB0aGUgcG9vbCB3aWxsIGJlIGRlc3Ryb3llZC5hAS0gSWYgdGhlIHBvb2wgaGFzIGFueSBwZW5kaW5nIHNsYXNoLCB3ZSBhbHNvIHRyeSB0byBzbGFzaCB0aGUgbWVtYmVyIGJlZm9yZSBsZXR0aW5nIHRoZW1dAXdpdGhkcmF3LiBUaGlzIGNhbGN1bGF0aW9uIGFkZHMgc29tZSB3ZWlnaHQgb3ZlcmhlYWQgYW5kIGlzIG9ubHkgZGVmZW5zaXZlLiBJbiByZWFsaXR5LFUBcG9vbCBzbGFzaGVzIG11c3QgaGF2ZSBiZWVuIGFscmVhZHkgYXBwbGllZCB2aWEgcGVybWlzc2lvbmxlc3MgW2BDYWxsOjphcHBseV9zbGFzaGBdLhhjcmVhdGUQARhhbW91bnTdAQEwQmFsYW5jZU9mPFQ+AAEQcm9vdM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJG5vbWluYXRvcs0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGJvdW5jZXLNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4ABkR0Q3JlYXRlIGEgbmV3IGRlbGVnYXRpb24gcG9vbC4ALCMgQXJndW1lbnRzAFUBKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgZnVuZHMgdG8gZGVsZWdhdGUgdG8gdGhlIHBvb2wuIFRoaXMgYWxzbyBhY3RzIG9mIGEgc29ydCBvZk0BICBkZXBvc2l0IHNpbmNlIHRoZSBwb29scyBjcmVhdG9yIGNhbm5vdCBmdWxseSB1bmJvbmQgZnVuZHMgdW50aWwgdGhlIHBvb2wgaXMgYmVpbmcwICBkZXN0cm95ZWQuUQEqIGBpbmRleGAgLSBBIGRpc2FtYmlndWF0aW9uIGluZGV4IGZvciBjcmVhdGluZyB0aGUgYWNjb3VudC4gTGlrZWx5IG9ubHkgdXNlZnVsIHdoZW7AICBjcmVhdGluZyBtdWx0aXBsZSBwb29scyBpbiB0aGUgc2FtZSBleHRyaW5zaWMu1CogYHJvb3RgIC0gVGhlIGFjY291bnQgdG8gc2V0IGFzIFtgUG9vbFJvbGVzOjpyb290YF0uDQEqIGBub21pbmF0b3JgIC0gVGhlIGFjY291bnQgdG8gc2V0IGFzIHRoZSBbYFBvb2xSb2xlczo6bm9taW5hdG9yYF0u/CogYGJvdW5jZXJgIC0gVGhlIGFjY291bnQgdG8gc2V0IGFzIHRoZSBbYFBvb2xSb2xlczo6Ym91bmNlcmBdLgAYIyBOb3RlAGEBSW4gYWRkaXRpb24gdG8gYGFtb3VudGAsIHRoZSBjYWxsZXIgd2lsbCB0cmFuc2ZlciB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdDsgc28gdGhlIGNhbGxlcg0BbmVlZHMgYXQgaGF2ZSBhdCBsZWFzdCBgYW1vdW50ICsgZXhpc3RlbnRpYWxfZGVwb3NpdGAgdHJhbnNmZXJhYmxlLkxjcmVhdGVfd2l0aF9wb29sX2lkFAEYYW1vdW503QEBMEJhbGFuY2VPZjxUPgABEHJvb3TNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRub21pbmF0b3LNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxib3VuY2VyzQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEccG9vbF9pZBABGFBvb2xJZAAHGOxDcmVhdGUgYSBuZXcgZGVsZWdhdGlvbiBwb29sIHdpdGggYSBwcmV2aW91c2x5IHVzZWQgcG9vbCBpZAAsIyBBcmd1bWVudHMAmHNhbWUgYXMgYGNyZWF0ZWAgd2l0aCB0aGUgaW5jbHVzaW9uIG9meCogYHBvb2xfaWRgIC0gYEEgdmFsaWQgUG9vbElkLiBub21pbmF0ZQgBHHBvb2xfaWQQARhQb29sSWQAASh2YWxpZGF0b3Jz4QEBRFZlYzxUOjpBY2NvdW50SWQ+AAgwfE5vbWluYXRlIG9uIGJlaGFsZiBvZiB0aGUgcG9vbC4ARQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBub21pbmF0b3Igb3IgdGhlIHBvb2wocm9vdCByb2xlLgBJAVRoaXMgZGlyZWN0bHkgZm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgc3Rha2luZyBwYWxsZXQsIG9uIGJlaGFsZiBvZiB0aGUgcG9vbCBib25kZWQgYWNjb3VudC4AGCMgTm90ZQBdAUluIGFkZGl0aW9uIHRvIGEgYHJvb3RgIG9yIGBub21pbmF0b3JgIHJvbGUgb2YgYG9yaWdpbmAsIHBvb2wncyBkZXBvc2l0b3IgbmVlZHMgdG8gaGF2ZfhhdCBsZWFzdCBgZGVwb3NpdG9yX21pbl9ib25kYCBpbiB0aGUgcG9vbCB0byBzdGFydCBub21pbmF0aW5nLiRzZXRfc3RhdGUIARxwb29sX2lkEAEYUG9vbElkAAEUc3RhdGVVAQEkUG9vbFN0YXRlAAkodFNldCBhIG5ldyBzdGF0ZSBmb3IgdGhlIHBvb2wuAFUBSWYgYSBwb29sIGlzIGFscmVhZHkgaW4gdGhlIGBEZXN0cm95aW5nYCBzdGF0ZSwgdGhlbiB1bmRlciBubyBjb25kaXRpb24gY2FuIGl0cyBzdGF0ZTRjaGFuZ2UgYWdhaW4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGVpdGhlcjoA3DEuIHNpZ25lZCBieSB0aGUgYm91bmNlciwgb3IgdGhlIHJvb3Qgcm9sZSBvZiB0aGUgcG9vbCxdATIuIGlmIHRoZSBwb29sIGNvbmRpdGlvbnMgdG8gYmUgb3BlbiBhcmUgTk9UIG1ldCAoYXMgZGVzY3JpYmVkIGJ5IGBva190b19iZV9vcGVuYCksIGFuZDkBICAgdGhlbiB0aGUgc3RhdGUgb2YgdGhlIHBvb2wgY2FuIGJlIHBlcm1pc3Npb25sZXNzbHkgY2hhbmdlZCB0byBgRGVzdHJveWluZ2AuMHNldF9tZXRhZGF0YQgBHHBvb2xfaWQQARhQb29sSWQAASBtZXRhZGF0YTgBHFZlYzx1OD4AChCAU2V0IGEgbmV3IG1ldGFkYXRhIGZvciB0aGUgcG9vbC4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgYm91bmNlciwgb3IgdGhlIHJvb3Qgcm9sZSBvZiB0aGUUcG9vbC4sc2V0X2NvbmZpZ3MYATRtaW5fam9pbl9ib25ksQQBWENvbmZpZ09wPEJhbGFuY2VPZjxUPj4AATxtaW5fY3JlYXRlX2JvbmSxBAFYQ29uZmlnT3A8QmFsYW5jZU9mPFQ+PgABJG1heF9wb29sc7UEATRDb25maWdPcDx1MzI+AAEsbWF4X21lbWJlcnO1BAE0Q29uZmlnT3A8dTMyPgABUG1heF9tZW1iZXJzX3Blcl9wb29stQQBNENvbmZpZ09wPHUzMj4AAVRnbG9iYWxfbWF4X2NvbW1pc3Npb265BAFEQ29uZmlnT3A8UGVyYmlsbD4ACyxBAVVwZGF0ZSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG5vbWluYXRpb24gcG9vbHMuIFRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlYFtgQ29uZmlnOjpBZG1pbk9yaWdpbmBdLgAsIyBBcmd1bWVudHMAoCogYG1pbl9qb2luX2JvbmRgIC0gU2V0IFtgTWluSm9pbkJvbmRgXS6wKiBgbWluX2NyZWF0ZV9ib25kYCAtIFNldCBbYE1pbkNyZWF0ZUJvbmRgXS6EKiBgbWF4X3Bvb2xzYCAtIFNldCBbYE1heFBvb2xzYF0upCogYG1heF9tZW1iZXJzYCAtIFNldCBbYE1heFBvb2xNZW1iZXJzYF0u5CogYG1heF9tZW1iZXJzX3Blcl9wb29sYCAtIFNldCBbYE1heFBvb2xNZW1iZXJzUGVyUG9vbGBdLuAqIGBnbG9iYWxfbWF4X2NvbW1pc3Npb25gIC0gU2V0IFtgR2xvYmFsTWF4Q29tbWlzc2lvbmBdLjB1cGRhdGVfcm9sZXMQARxwb29sX2lkEAEYUG9vbElkAAEgbmV3X3Jvb3S9BAFYQ29uZmlnT3A8VDo6QWNjb3VudElkPgABNG5ld19ub21pbmF0b3K9BAFYQ29uZmlnT3A8VDo6QWNjb3VudElkPgABLG5ld19ib3VuY2VyvQQBWENvbmZpZ09wPFQ6OkFjY291bnRJZD4ADBx0VXBkYXRlIHRoZSByb2xlcyBvZiB0aGUgcG9vbC4APQFUaGUgcm9vdCBpcyB0aGUgb25seSBlbnRpdHkgdGhhdCBjYW4gY2hhbmdlIGFueSBvZiB0aGUgcm9sZXMsIGluY2x1ZGluZyBpdHNlbGYsuGV4Y2x1ZGluZyB0aGUgZGVwb3NpdG9yLCB3aG8gY2FuIG5ldmVyIGNoYW5nZS4AUQFJdCBlbWl0cyBhbiBldmVudCwgbm90aWZ5aW5nIFVJcyBvZiB0aGUgcm9sZSBjaGFuZ2UuIFRoaXMgZXZlbnQgaXMgcXVpdGUgcmVsZXZhbnQgdG8dAW1vc3QgcG9vbCBtZW1iZXJzIGFuZCB0aGV5IHNob3VsZCBiZSBpbmZvcm1lZCBvZiBjaGFuZ2VzIHRvIHBvb2wgcm9sZXMuFGNoaWxsBAEccG9vbF9pZBABGFBvb2xJZAANQHBDaGlsbCBvbiBiZWhhbGYgb2YgdGhlIHBvb2wuAEEBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgY2FuIGJlIHNpZ25lZCBieSB0aGUgcG9vbCBub21pbmF0b3Igb3IgdGhlIHBvb2ygcm9vdCByb2xlLCBzYW1lIGFzIFtgUGFsbGV0Ojpub21pbmF0ZWBdLgBNAVVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucywgdGhpcyBjYWxsIGNhbiBiZSBkaXNwYXRjaGVkIHBlcm1pc3Npb25sZXNzbHkgKGkuZS4gYnkgYW55JGFjY291bnQpLgCsIyBDb25kaXRpb25zIGZvciBhIHBlcm1pc3Npb25sZXNzIGRpc3BhdGNoOlkBKiBXaGVuIHBvb2wgZGVwb3NpdG9yIGhhcyBsZXNzIHRoYW4gYE1pbk5vbWluYXRvckJvbmRgIHN0YWtlZCwgb3RoZXJ3aXNlICBwb29sIG1lbWJlcnNcICBhcmUgdW5hYmxlIHRvIHVuYm9uZC4AnCMgQ29uZGl0aW9ucyBmb3IgcGVybWlzc2lvbmVkIGRpc3BhdGNoOtgqIFRoZSBjYWxsZXIgaGFzIGEgbm9taW5hdG9yIG9yIHJvb3Qgcm9sZSBvZiB0aGUgcG9vbC5JAVRoaXMgZGlyZWN0bHkgZm9yd2FyZCB0aGUgY2FsbCB0byB0aGUgc3Rha2luZyBwYWxsZXQsIG9uIGJlaGFsZiBvZiB0aGUgcG9vbCBib25kZWQgYWNjb3VudC5AYm9uZF9leHRyYV9vdGhlcggBGG1lbWJlcs0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGV4dHJhrQQBXEJvbmRFeHRyYTxCYWxhbmNlT2Y8VD4+AA4kVQFgb3JpZ2luYCBib25kcyBmdW5kcyBmcm9tIGBleHRyYWAgZm9yIHNvbWUgcG9vbCBtZW1iZXIgYG1lbWJlcmAgaW50byB0aGVpciByZXNwZWN0aXZlGHBvb2xzLgBJAWBvcmlnaW5gIGNhbiBib25kIGV4dHJhIGZ1bmRzIGZyb20gZnJlZSBiYWxhbmNlIG9yIHBlbmRpbmcgcmV3YXJkcyB3aGVuIGBvcmlnaW4gPT0cb3RoZXJgLgBFAUluIHRoZSBjYXNlIG9mIGBvcmlnaW4gIT0gb3RoZXJgLCBgb3JpZ2luYCBjYW4gb25seSBib25kIGV4dHJhIHBlbmRpbmcgcmV3YXJkcyBvZhUBYG90aGVyYCBtZW1iZXJzIGFzc3VtaW5nIHNldF9jbGFpbV9wZXJtaXNzaW9uIGZvciB0aGUgZ2l2ZW4gbWVtYmVyIGlzwGBQZXJtaXNzaW9ubGVzc0NvbXBvdW5kYCBvciBgUGVybWlzc2lvbmxlc3NBbGxgLlBzZXRfY2xhaW1fcGVybWlzc2lvbgQBKHBlcm1pc3Npb27BBAE8Q2xhaW1QZXJtaXNzaW9uAA8cSQFBbGxvd3MgYSBwb29sIG1lbWJlciB0byBzZXQgYSBjbGFpbSBwZXJtaXNzaW9uIHRvIGFsbG93IG9yIGRpc2FsbG93IHBlcm1pc3Npb25sZXNzYGJvbmRpbmcgYW5kIHdpdGhkcmF3aW5nLgAsIyBBcmd1bWVudHMAeCogYG9yaWdpbmAgLSBNZW1iZXIgb2YgYSBwb29sLrgqIGBwZXJtaXNzaW9uYCAtIFRoZSBwZXJtaXNzaW9uIHRvIGJlIGFwcGxpZWQuSGNsYWltX3BheW91dF9vdGhlcgQBFG90aGVyAAEwVDo6QWNjb3VudElkABAQAQFgb3JpZ2luYCBjYW4gY2xhaW0gcGF5b3V0cyBvbiBzb21lIHBvb2wgbWVtYmVyIGBvdGhlcmAncyBiZWhhbGYuAFUBUG9vbCBtZW1iZXIgYG90aGVyYCBtdXN0IGhhdmUgYSBgUGVybWlzc2lvbmxlc3NXaXRoZHJhd2Agb3IgYFBlcm1pc3Npb25sZXNzQWxsYCBjbGFpbahwZXJtaXNzaW9uIGZvciB0aGlzIGNhbGwgdG8gYmUgc3VjY2Vzc2Z1bC44c2V0X2NvbW1pc3Npb24IARxwb29sX2lkEAEYUG9vbElkAAE4bmV3X2NvbW1pc3Npb25ZAQF8T3B0aW9uPChQZXJiaWxsLCBUOjpBY2NvdW50SWQpPgARFHRTZXQgdGhlIGNvbW1pc3Npb24gb2YgYSBwb29sLlUBQm90aCBhIGNvbW1pc3Npb24gcGVyY2VudGFnZSBhbmQgYSBjb21taXNzaW9uIHBheWVlIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIGBjdXJyZW50YF0BdHVwbGUuIFdoZXJlIGEgYGN1cnJlbnRgIG9mIGBOb25lYCBpcyBwcm92aWRlZCwgYW55IGN1cnJlbnQgY29tbWlzc2lvbiB3aWxsIGJlIHJlbW92ZWQuAE0BLSBJZiBhIGBOb25lYCBpcyBzdXBwbGllZCB0byBgbmV3X2NvbW1pc3Npb25gLCBleGlzdGluZyBjb21taXNzaW9uIHdpbGwgYmUgcmVtb3ZlZC5Ic2V0X2NvbW1pc3Npb25fbWF4CAEccG9vbF9pZBABGFBvb2xJZAABOG1heF9jb21taXNzaW9ulAEcUGVyYmlsbAASFJRTZXQgdGhlIG1heGltdW0gY29tbWlzc2lvbiBvZiBhIHBvb2wuADkBLSBJbml0aWFsIG1heCBjYW4gYmUgc2V0IHRvIGFueSBgUGVyYmlsbGAsIGFuZCBvbmx5IHNtYWxsZXIgdmFsdWVzIHRoZXJlYWZ0ZXIuNQEtIEN1cnJlbnQgY29tbWlzc2lvbiB3aWxsIGJlIGxvd2VyZWQgaW4gdGhlIGV2ZW50IGl0IGlzIGhpZ2hlciB0aGFuIGEgbmV3IG1heDQgIGNvbW1pc3Npb24uaHNldF9jb21taXNzaW9uX2NoYW5nZV9yYXRlCAEccG9vbF9pZBABGFBvb2xJZAABLGNoYW5nZV9yYXRlYQEBnENvbW1pc3Npb25DaGFuZ2VSYXRlPEJsb2NrTnVtYmVyRm9yPFQ+PgATEKhTZXQgdGhlIGNvbW1pc3Npb24gY2hhbmdlIHJhdGUgZm9yIGEgcG9vbC4APQFJbml0aWFsIGNoYW5nZSByYXRlIGlzIG5vdCBib3VuZGVkLCB3aGVyZWFzIHN1YnNlcXVlbnQgdXBkYXRlcyBjYW4gb25seSBiZSBtb3JldHJlc3RyaWN0aXZlIHRoYW4gdGhlIGN1cnJlbnQuQGNsYWltX2NvbW1pc3Npb24EARxwb29sX2lkEAEYUG9vbElkABQUZENsYWltIHBlbmRpbmcgY29tbWlzc2lvbi4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgYHJvb3RgIHJvbGUgb2YgdGhlIHBvb2wuIFBlbmRpbmddAWNvbW1pc3Npb24gaXMgcGFpZCBvdXQgYW5kIGFkZGVkIHRvIHRvdGFsIGNsYWltZWQgY29tbWlzc2lvbmAuIFRvdGFsIHBlbmRpbmcgY29tbWlzc2lvbnhpcyByZXNldCB0byB6ZXJvLiB0aGUgY3VycmVudC5MYWRqdXN0X3Bvb2xfZGVwb3NpdAQBHHBvb2xfaWQQARhQb29sSWQAFRzsVG9wIHVwIHRoZSBkZWZpY2l0IG9yIHdpdGhkcmF3IHRoZSBleGNlc3MgRUQgZnJvbSB0aGUgcG9vbC4AUQFXaGVuIGEgcG9vbCBpcyBjcmVhdGVkLCB0aGUgcG9vbCBkZXBvc2l0b3IgdHJhbnNmZXJzIEVEIHRvIHRoZSByZXdhcmQgYWNjb3VudCBvZiB0aGVVAXBvb2wuIEVEIGlzIHN1YmplY3QgdG8gY2hhbmdlIGFuZCBvdmVyIHRpbWUsIHRoZSBkZXBvc2l0IGluIHRoZSByZXdhcmQgYWNjb3VudCBtYXkgYmVRAWluc3VmZmljaWVudCB0byBjb3ZlciB0aGUgRUQgZGVmaWNpdCBvZiB0aGUgcG9vbCBvciB2aWNlLXZlcnNhIHdoZXJlIHRoZXJlIGlzIGV4Y2VzczEBZGVwb3NpdCB0byB0aGUgcG9vbC4gVGhpcyBjYWxsIGFsbG93cyBhbnlvbmUgdG8gYWRqdXN0IHRoZSBFRCBkZXBvc2l0IG9mIHRoZfRwb29sIGJ5IGVpdGhlciB0b3BwaW5nIHVwIHRoZSBkZWZpY2l0IG9yIGNsYWltaW5nIHRoZSBleGNlc3MufHNldF9jb21taXNzaW9uX2NsYWltX3Blcm1pc3Npb24IARxwb29sX2lkEAEYUG9vbElkAAEocGVybWlzc2lvbmUBAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAWEMxTZXQgb3IgcmVtb3ZlIGEgcG9vbCdzIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbi4AYQFEZXRlcm1pbmVzIHdobyBjYW4gY2xhaW0gdGhlIHBvb2wncyBwZW5kaW5nIGNvbW1pc3Npb24uIE9ubHkgdGhlIGBSb290YCByb2xlIG9mIHRoZSBwb29syGlzIGFibGUgdG8gY29uZmlndXJlIGNvbW1pc3Npb24gY2xhaW0gcGVybWlzc2lvbnMuLGFwcGx5X3NsYXNoBAE4bWVtYmVyX2FjY291bnTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AFxyIQXBwbHkgYSBwZW5kaW5nIHNsYXNoIG9uIGEgbWVtYmVyLgAlAUZhaWxzIHVubGVzcyBbYGNyYXRlOjpwYWxsZXQ6OkNvbmZpZzo6U3Rha2VBZGFwdGVyYF0gaXMgb2Ygc3RyYXRlZ3kgdHlwZTqkW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXS4AVQFUaGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSAoaS5lLiBieSBhbnkgYWNjb3VudCkuIElmIHRoZSBtZW1iZXIgaGFzHQFzbGFzaCB0byBiZSBhcHBsaWVkLCBjYWxsZXIgbWF5IGJlIHJld2FyZGVkIHdpdGggdGhlIHBhcnQgb2YgdGhlIHNsYXNoLkhtaWdyYXRlX2RlbGVnYXRpb24EAThtZW1iZXJfYWNjb3VudM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgAYJB0BTWlncmF0ZXMgZGVsZWdhdGVkIGZ1bmRzIGZyb20gdGhlIHBvb2wgYWNjb3VudCB0byB0aGUgYG1lbWJlcl9hY2NvdW50YC4AJQFGYWlscyB1bmxlc3MgW2BjcmF0ZTo6cGFsbGV0OjpDb25maWc6OlN0YWtlQWRhcHRlcmBdIGlzIG9mIHN0cmF0ZWd5IHR5cGU6pFtgYWRhcHRlcjo6U3Rha2VTdHJhdGVneVR5cGU6OkRlbGVnYXRlYF0uACkBVGhpcyBpcyBhIHBlcm1pc3Npb24tbGVzcyBjYWxsIGFuZCByZWZ1bmRzIGFueSBmZWUgaWYgY2xhaW0gaXMgc3VjY2Vzc2Z1bC4AXQFJZiB0aGUgcG9vbCBoYXMgbWlncmF0ZWQgdG8gZGVsZWdhdGlvbiBiYXNlZCBzdGFraW5nLCB0aGUgc3Rha2VkIHRva2VucyBvZiBwb29sIG1lbWJlcnMpAWNhbiBiZSBtb3ZlZCBhbmQgaGVsZCBpbiB0aGVpciBvd24gYWNjb3VudC4gU2VlIFtgYWRhcHRlcjo6RGVsZWdhdGVTdGFrZWBdeG1pZ3JhdGVfcG9vbF90b19kZWxlZ2F0ZV9zdGFrZQQBHHBvb2xfaWQQARhQb29sSWQAGST0TWlncmF0ZSBwb29sIGZyb20gW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6VHJhbnNmZXJgXSB0b6RbYGFkYXB0ZXI6OlN0YWtlU3RyYXRlZ3lUeXBlOjpEZWxlZ2F0ZWBdLgAlAUZhaWxzIHVubGVzcyBbYGNyYXRlOjpwYWxsZXQ6OkNvbmZpZzo6U3Rha2VBZGFwdGVyYF0gaXMgb2Ygc3RyYXRlZ3kgdHlwZTqkW2BhZGFwdGVyOjpTdGFrZVN0cmF0ZWd5VHlwZTo6RGVsZWdhdGVgXS4AQQFUaGlzIGNhbGwgY2FuIGJlIGRpc3BhdGNoZWQgcGVybWlzc2lvbmxlc3NseSwgYW5kIHJlZnVuZHMgYW55IGZlZSBpZiBzdWNjZXNzZnVsLgBJAUlmIHRoZSBwb29sIGhhcyBhbHJlYWR5IG1pZ3JhdGVkIHRvIGRlbGVnYXRpb24gYmFzZWQgc3Rha2luZywgdGhpcyBjYWxsIHdpbGwgZmFpbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMurQQIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzJEJvbmRFeHRyYQQcQmFsYW5jZQEYAQgsRnJlZUJhbGFuY2UEABgBHEJhbGFuY2UAAAAcUmV3YXJkcwABAACxBAhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgQ29uZmlnT3AEBFQBGAEMEE5vb3AAAAAMU2V0BAAYAQRUAAEAGFJlbW92ZQACAAC1BAhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgQ29uZmlnT3AEBFQBEAEMEE5vb3AAAAAMU2V0BAAQAQRUAAEAGFJlbW92ZQACAAC5BAhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgQ29uZmlnT3AEBFQBlAEMEE5vb3AAAAAMU2V0BACUAQRUAAEAGFJlbW92ZQACAAC9BAhccGFsbGV0X25vbWluYXRpb25fcG9vbHMgQ29uZmlnT3AEBFQBAAEMEE5vb3AAAAAMU2V0BAAAAQRUAAEAGFJlbW92ZQACAADBBAhccGFsbGV0X25vbWluYXRpb25fcG9vbHM8Q2xhaW1QZXJtaXNzaW9uAAEQMFBlcm1pc3Npb25lZAAAAFhQZXJtaXNzaW9ubGVzc0NvbXBvdW5kAAEAWFBlcm1pc3Npb25sZXNzV2l0aGRyYXcAAgBEUGVybWlzc2lvbmxlc3NBbGwAAwAAxQQMTHBhbGxldF9mYXN0X3Vuc3Rha2UYcGFsbGV0EENhbGwEBFQAAQxUcmVnaXN0ZXJfZmFzdF91bnN0YWtlAABoiFJlZ2lzdGVyIG9uZXNlbGYgZm9yIGZhc3QtdW5zdGFrZS4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgKnNpZ25lZCogYnkgd2hvZXZlciBpcyBwZXJtaXR0ZWQgdG8gY2FsbPB1bmJvbmQgZnVuZHMgYnkgdGhlIHN0YWtpbmcgc3lzdGVtLiBTZWUgW2BDb25maWc6OlN0YWtpbmdgXS4AKCMjIERldGFpbHMAOQFUaGUgc3Rhc2ggYXNzb2NpYXRlZCB3aXRoIHRoZSBvcmlnaW4gbXVzdCBoYXZlIG5vIG9uZ29pbmcgdW5sb2NraW5nIGNodW5rcy4gSWZdAXN1Y2Nlc3NmdWwsIHRoaXMgd2lsbCBmdWxseSB1bmJvbmQgYW5kIGNoaWxsIHRoZSBzdGFzaC4gVGhlbiwgaXQgd2lsbCBlbnF1ZXVlIHRoZSBzdGFzaIB0byBiZSBjaGVja2VkIGluIGZ1cnRoZXIgYmxvY2tzLgBRAUlmIGJ5IHRoZSB0aW1lIHRoaXMgaXMgY2FsbGVkLCB0aGUgc3Rhc2ggaXMgYWN0dWFsbHkgZWxpZ2libGUgZm9yIGZhc3QtdW5zdGFrZSwgdGhlbkUBdGhleSBhcmUgZ3VhcmFudGVlZCB0byByZW1haW4gZWxpZ2libGUsIGJlY2F1c2UgdGhlIGNhbGwgd2lsbCBjaGlsbCB0aGVtIGFzIHdlbGwuAD0BSWYgdGhlIGNoZWNrIHdvcmtzLCB0aGUgZW50aXJlIHN0YWtpbmcgZGF0YSBpcyByZW1vdmVkLCBpLmUuIHRoZSBzdGFzaCBpcyBmdWxseSR1bnN0YWtlZC4AXQFJZiB0aGUgY2hlY2sgZmFpbHMsIHRoZSBzdGFzaCByZW1haW5zIGNoaWxsZWQgYW5kIHdhaXRpbmcgZm9yIGJlaW5nIHVuYm9uZGVkIGFzIGluIHdpdGhhAXRoZSBub3JtYWwgc3Rha2luZyBzeXN0ZW0sIGJ1dCB0aGV5IGxvc2UgcGFydCBvZiB0aGVpciB1bmJvbmRpbmcgY2h1bmtzIGR1ZSB0byBjb25zdW1pbmdYdGhlIGNoYWluJ3MgcmVzb3VyY2VzLgAkIyMgRXZlbnRzAAkBU29tZSBldmVudHMgZnJvbSB0aGUgc3Rha2luZyBhbmQgY3VycmVuY3kgc3lzdGVtIG1pZ2h0IGJlIGVtaXR0ZWQuKGRlcmVnaXN0ZXIAAUikRGVyZWdpc3RlciBvbmVzZWxmIGZyb20gdGhlIGZhc3QtdW5zdGFrZS4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgKnNpZ25lZCogYnkgd2hvZXZlciBpcyBwZXJtaXR0ZWQgdG8gY2FsbPB1bmJvbmQgZnVuZHMgYnkgdGhlIHN0YWtpbmcgc3lzdGVtLiBTZWUgW2BDb25maWc6OlN0YWtpbmdgXS4AKCMjIERldGFpbHMAYQFUaGlzIGlzIHVzZWZ1bCBpZiBvbmUgaXMgcmVnaXN0ZXJlZCwgdGhleSBhcmUgc3RpbGwgd2FpdGluZywgYW5kIHRoZXkgY2hhbmdlIHRoZWlyIG1pbmQuAFkBTm90ZSB0aGF0IHRoZSBhc3NvY2lhdGVkIHN0YXNoIGlzIHN0aWxsIGZ1bGx5IHVuYm9uZGVkIGFuZCBjaGlsbGVkIGFzIGEgY29uc2VxdWVuY2Ugb2ZZAWNhbGxpbmcgW2BQYWxsZXQ6OnJlZ2lzdGVyX2Zhc3RfdW5zdGFrZWBdLiBUaGVyZWZvcmUsIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGZvbGxvd2VksGJ5IGEgY2FsbCB0byBgcmVib25kYCBpbiB0aGUgc3Rha2luZyBzeXN0ZW0uACQjIyBFdmVudHMACQFTb21lIGV2ZW50cyBmcm9tIHRoZSBzdGFraW5nIGFuZCBjdXJyZW5jeSBzeXN0ZW0gbWlnaHQgYmUgZW1pdHRlZC4cY29udHJvbAQBNGVyYXNfdG9fY2hlY2sQASBFcmFJbmRleAACNJRDb250cm9sIHRoZSBvcGVyYXRpb24gb2YgdGhpcyBwYWxsZXQuAEgjIyBEaXNwYXRjaCBPcmlnaW4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFtgQ29uZmlnOjpDb250cm9sT3JpZ2luYF0uACgjIyBEZXRhaWxzAEEBQ2FuIHNldCB0aGUgbnVtYmVyIG9mIGVyYXMgdG8gY2hlY2sgcGVyIGJsb2NrLCBhbmQgcG90ZW50aWFsbHkgb3RoZXIgYWRtaW4gd29yay4AJCMjIEV2ZW50cwCkTm8gZXZlbnRzIGFyZSBlbWl0dGVkIGZyb20gdGhpcyBkaXNwYXRjaC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuyQQMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQQQ2FsbAgEVAAESQABGBB2b3RlCAEocG9sbF9pbmRleKkBAURQb2xsSW5kZXhPZjxULCBJPgABEHZvdGV5AQFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgAAJBkBVm90ZSBpbiBhIHBvbGwuIElmIGB2b3RlLmlzX2F5ZSgpYCwgdGhlIHZvdGUgaXMgdG8gZW5hY3QgdGhlIHByb3Bvc2FsO7hvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgDILSBgcG9sbF9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcG9sbCB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uABUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBoYXMgdm90ZWQgb24uIGRlbGVnYXRlEAEUY2xhc3MtAQE0Q2xhc3NPZjxULCBJPgABCHRvzQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoY29udmljdGlvbs0EAShDb252aWN0aW9uAAEcYmFsYW5jZRgBPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzcy0BATRDbGFzc09mPFQsIEk+AAI4TQFVbmRlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgb2YgdGhlIHNlbmRpbmcgYWNjb3VudCBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHBvbGxzLgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZAkBb2YgdGhlIGNvbnZpY3Rpb24gd2l0aCB3aGljaCB0aGUgZGVsZWdhdGlvbiB3YXMgaXNzdWVkIGhhcyBwYXNzZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgDwLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0aW9uIGZyb20uAFBFbWl0cyBgVW5kZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuGHVubG9jawgBFGNsYXNzLQEBNENsYXNzT2Y8VCwgST4AARh0YXJnZXTNAQFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3PRBAFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgQAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldM0BAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGNsYXNzLQEBNENsYXNzT2Y8VCwgST4AARRpbmRleBABRFBvbGxJbmRleE9mPFQsIEk+AAVAZFJlbW92ZSBhIHZvdGUgZm9yIGEgcG9sbC4ATQFJZiB0aGUgYHRhcmdldGAgaXMgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGlzIGZ1bmN0aW9uIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0by0BYHJlbW92ZV92b3RlYC4gSWYgbm90IGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhlIHZvdGUgbXVzdCBoYXZlIGV4cGlyZWQsJQFlaXRoZXIgYmVjYXVzZSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBiZWNhdXNlIHRoZSB2b3RlciBsb3N0IHRoZSBwb2xsIG9ymGJlY2F1c2UgdGhlIGNvbnZpY3Rpb24gcGVyaW9kIGlzIG92ZXIuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBhAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yIHBvbGwoICBgaW5kZXhgLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiBwb2xsIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuhC0gYGNsYXNzYDogVGhlIGNsYXNzIG9mIHRoZSBwb2xsLgBFAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQQMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZyhjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAADRBAQYT3B0aW9uBARUAS0BAQgQTm9uZQAAABBTb21lBAAtAQAAAQAA1QQMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2lugQIBXEJveDxQYWxsZXRzT3JpZ2luT2Y8VD4+AAEgcHJvcG9zYWyFAQFMQm91bmRlZENhbGxPZjxULCBJPgABQGVuYWN0bWVudF9tb21lbnTZBAF8RGlzcGF0Y2hUaW1lPEJsb2NrTnVtYmVyRm9yPFQ+PgAAJLBQcm9wb3NlIGEgcmVmZXJlbmR1bSBvbiBhIHByaXZpbGVnZWQgYWN0aW9uLgBZAS0gYG9yaWdpbmA6IG11c3QgYmUgYFN1Ym1pdE9yaWdpbmAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBgU3VibWlzc2lvbkRlcG9zaXRgIGZ1bmRzMCAgYXZhaWxhYmxlLi0BLSBgcHJvcG9zYWxfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZXhlY3V0ZWQubC0gYHByb3Bvc2FsYDogVGhlIHByb3Bvc2FsLhUBLSBgZW5hY3RtZW50X21vbWVudGA6IFRoZSBtb21lbnQgdGhhdCB0aGUgcHJvcG9zYWwgc2hvdWxkIGJlIGVuYWN0ZWQuAEhFbWl0cyBgU3VibWl0dGVkYC5YcGxhY2VfZGVjaXNpb25fZGVwb3NpdAQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAEgrFBvc3QgdGhlIERlY2lzaW9uIERlcG9zaXQgZm9yIGEgcmVmZXJlbmR1bS4AOQEtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgYWNjb3VudCBtdXN0IGhhdmUgZnVuZHMgYXZhaWxhYmxlIGZvciB0aGWgICByZWZlcmVuZHVtJ3MgdHJhY2sncyBEZWNpc2lvbiBEZXBvc2l0LlEBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHN1Ym1pdHRlZCByZWZlcmVuZHVtIHdob3NlIERlY2lzaW9uIERlcG9zaXQgaXMgeWV0IHRvIGJlJCAgcG9zdGVkLgB4RW1pdHMgYERlY2lzaW9uRGVwb3NpdFBsYWNlZGAuXHJlZnVuZF9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgAAhwpAVJlZnVuZCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5NAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBoYXMgbm90IHlldCBiZWVuLCAgcmVmdW5kZWQuAIBFbWl0cyBgRGVjaXNpb25EZXBvc2l0UmVmdW5kZWRgLhhjYW5jZWwEARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAADGHRDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtLgCcLSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYENhbmNlbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4ASEVtaXRzIGBDYW5jZWxsZWRgLhBraWxsBAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABBjQQ2FuY2VsIGFuIG9uZ29pbmcgcmVmZXJlbmR1bSBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgCULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLtwtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byBiZSBjYW5jZWxsZWQuAJBFbWl0cyBgS2lsbGVkYCBhbmQgYERlcG9zaXRTbGFzaGVkYC5AbnVkZ2VfcmVmZXJlbmR1bQQBFGluZGV4EAE8UmVmZXJlbmR1bUluZGV4AAUQHQFBZHZhbmNlIGEgcmVmZXJlbmR1bSBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAupC0gYGluZGV4YDogdGhlIHJlZmVyZW5kdW0gdG8gYmUgYWR2YW5jZWQuSG9uZV9mZXdlcl9kZWNpZGluZwQBFHRyYWNrLQEBPFRyYWNrSWRPZjxULCBJPgAGJAkBQWR2YW5jZSBhIHRyYWNrIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6QLSBgdHJhY2tgOiB0aGUgdHJhY2sgdG8gYmUgYWR2YW5jZWQuAFEBQWN0aW9uIGl0ZW0gZm9yIHdoZW4gdGhlcmUgaXMgbm93IG9uZSBmZXdlciByZWZlcmVuZHVtIGluIHRoZSBkZWNpZGluZyBwaGFzZSBhbmQgdGhlFQFgRGVjaWRpbmdDb3VudGAgaXMgbm90IHlldCB1cGRhdGVkLiBUaGlzIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIGVpdGhlcjolAS0gYmVnaW4gZGVjaWRpbmcgYW5vdGhlciByZWZlcmVuZHVtIChhbmQgbGVhdmUgYERlY2lkaW5nQ291bnRgIGFsb25lKTsgb3JwLSBkZWNyZW1lbnQgYERlY2lkaW5nQ291bnRgLmRyZWZ1bmRfc3VibWlzc2lvbl9kZXBvc2l0BAEUaW5kZXgQATxSZWZlcmVuZHVtSW5kZXgABxwxAVJlZnVuZCB0aGUgU3VibWlzc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLlUBLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBTdWJtaXNzaW9uIERlcG9zaXQgaGFzIG5vdCB5ZXQgYmVlbiwgIHJlZnVuZGVkLgCIRW1pdHMgYFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWRgLjBzZXRfbWV0YWRhdGEIARRpbmRleBABPFJlZmVyZW5kdW1JbmRleAABKG1heWJlX2hhc2jdBAE8T3B0aW9uPFQ6Okhhc2g+AAgcmFNldCBvciBjbGVhciBtZXRhZGF0YSBvZiBhIHJlZmVyZW5kdW0uACxQYXJhbWV0ZXJzOkUBLSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYCBieSBhIGNyZWF0b3Igb2YgYSByZWZlcmVuZHVtIG9yIGJ5IGFueW9uZSB0byBjbGVhciBhkCAgbWV0YWRhdGEgb2YgYSBmaW5pc2hlZCByZWZlcmVuZHVtLg0BLSBgaW5kZXhgOiAgVGhlIGluZGV4IG9mIGEgcmVmZXJlbmR1bSB0byBzZXQgb3IgY2xlYXIgbWV0YWRhdGEgZm9yLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkEEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyBzY2hlZHVsZTBEaXNwYXRjaFRpbWUELEJsb2NrTnVtYmVyARABCAhBdAQAEAEsQmxvY2tOdW1iZXIAAAAUQWZ0ZXIEABABLEJsb2NrTnVtYmVyAAEAAN0EBBhPcHRpb24EBFQBNAEIEE5vbmUAAAAQU29tZQQANAAAAQAA4QQMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0EENhbGwEBFQAARA4d2hpdGVsaXN0X2NhbGwEASRjYWxsX2hhc2g0ARxUOjpIYXNoAAAAXHJlbW92ZV93aGl0ZWxpc3RlZF9jYWxsBAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABAGRkaXNwYXRjaF93aGl0ZWxpc3RlZF9jYWxsDAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABQGNhbGxfZW5jb2RlZF9sZW4QAQx1MzIAAUxjYWxsX3dlaWdodF93aXRuZXNzKAEYV2VpZ2h0AAIAnGRpc3BhdGNoX3doaXRlbGlzdGVkX2NhbGxfd2l0aF9wcmVpbWFnZQQBEGNhbGyJAQF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7lBAw8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBBDYWxsCARUAARJAAEYLHNwZW5kX2xvY2FsCAEYYW1vdW503QEBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5zQEBUEFjY291bnRJZExvb2t1cE9mPFQ+AANEuFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0IGBhbW91bnRgLgAsIyMjIERldGFpbHNFAU5PVEU6IEZvciByZWNvcmQta2VlcGluZyBwdXJwb3NlcywgdGhlIHByb3Bvc2VyIGlzIGRlZW1lZCB0byBiZSBlcXVpdmFsZW50IHRvIHRoZTBiZW5lZmljaWFyeS4AOCMjIyBQYXJhbWV0ZXJzQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLugtIGBiZW5lZmljaWFyeWA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgdHJhbnNmZXIuACQjIyBFdmVudHMAtEVtaXRzIFtgRXZlbnQ6OlNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLjxyZW1vdmVfYXBwcm92YWwEASxwcm9wb3NhbF9pZKkBATRQcm9wb3NhbEluZGV4AARULQFGb3JjZSBhIHByZXZpb3VzbHkgYXBwcm92ZWQgcHJvcG9zYWwgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBhcHByb3ZhbCBxdWV1ZS4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAMBUaGUgb3JpZ2luYWwgZGVwb3NpdCB3aWxsIG5vIGxvbmdlciBiZSByZXR1cm5lZC4AOCMjIyBQYXJhbWV0ZXJzoC0gYHByb3Bvc2FsX2lkYDogVGhlIGluZGV4IG9mIGEgcHJvcG9zYWwAOCMjIyBDb21wbGV4aXR5rC0gTyhBKSB3aGVyZSBgQWAgaXMgdGhlIG51bWJlciBvZiBhcHByb3ZhbHMAKCMjIyBFcnJvcnNFAS0gW2BFcnJvcjo6UHJvcG9zYWxOb3RBcHByb3ZlZGBdOiBUaGUgYHByb3Bvc2FsX2lkYCBzdXBwbGllZCB3YXMgbm90IGZvdW5kIGluIHRoZVEBICBhcHByb3ZhbCBxdWV1ZSwgaS5lLiwgdGhlIHByb3Bvc2FsIGhhcyBub3QgYmVlbiBhcHByb3ZlZC4gVGhpcyBjb3VsZCBhbHNvIG1lYW4gdGhlWQEgIHByb3Bvc2FsIGRvZXMgbm90IGV4aXN0IGFsdG9nZXRoZXIsIHRodXMgdGhlcmUgaXMgbm8gd2F5IGl0IHdvdWxkIGhhdmUgYmVlbiBhcHByb3ZlZFQgIGluIHRoZSBmaXJzdCBwbGFjZS4Uc3BlbmQQAShhc3NldF9raW5k6QQBREJveDxUOjpBc3NldEtpbmQ+AAEYYW1vdW503QEBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkJBQF4Qm94PEJlbmVmaWNpYXJ5TG9va3VwT2Y8VCwgST4+AAEodmFsaWRfZnJvbaEEAWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAVouFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgAdAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0VQFgYW1vdW50YCBvZiBgYXNzZXRfa2luZGAgaW4gdGhlIG5hdGl2ZSBhc3NldC4gVGhlIGFtb3VudCBvZiBgYXNzZXRfa2luZGAgaXMgY29udmVydGVk1GZvciBhc3NlcnRpb24gdXNpbmcgdGhlIFtgQ29uZmlnOjpCYWxhbmNlQ29udmVydGVyYF0uACgjIyBEZXRhaWxzAEkBQ3JlYXRlIGFuIGFwcHJvdmVkIHNwZW5kIGZvciB0cmFuc2ZlcnJpbmcgYSBzcGVjaWZpYyBgYW1vdW50YCBvZiBgYXNzZXRfa2luZGAgdG8gYWEBZGVzaWduYXRlZCBiZW5lZmljaWFyeS4gVGhlIHNwZW5kIG11c3QgYmUgY2xhaW1lZCB1c2luZyB0aGUgYHBheW91dGAgZGlzcGF0Y2hhYmxlIHdpdGhpbnR0aGUgW2BDb25maWc6OlBheW91dFBlcmlvZGBdLgA4IyMjIFBhcmFtZXRlcnMVAS0gYGFzc2V0X2tpbmRgOiBBbiBpbmRpY2F0b3Igb2YgdGhlIHNwZWNpZmljIGFzc2V0IGNsYXNzIHRvIGJlIHNwZW50LkEBLSBgYW1vdW50YDogVGhlIGFtb3VudCB0byBiZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSB0cmVhc3VyeSB0byB0aGUgYGJlbmVmaWNpYXJ5YC64LSBgYmVuZWZpY2lhcnlgOiBUaGUgYmVuZWZpY2lhcnkgb2YgdGhlIHNwZW5kLlUBLSBgdmFsaWRfZnJvbWA6IFRoZSBibG9jayBudW1iZXIgZnJvbSB3aGljaCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQuIEl0IGNhbiByZWZlciB0bxkBICB0aGUgcGFzdCBpZiB0aGUgcmVzdWx0aW5nIHNwZW5kIGhhcyBub3QgeWV0IGV4cGlyZWQgYWNjb3JkaW5nIHRvIHRoZUUBICBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uIElmIGBOb25lYCwgdGhlIHNwZW5kIGNhbiBiZSBjbGFpbWVkIGltbWVkaWF0ZWx5IGFmdGVyLCAgYXBwcm92YWwuACQjIyBFdmVudHMAyEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRBcHByb3ZlZGBdIGlmIHN1Y2Nlc3NmdWwuGHBheW91dAQBFGluZGV4EAEoU3BlbmRJbmRleAAGTDhDbGFpbSBhIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luADhNdXN0IGJlIHNpZ25lZAAoIyMgRGV0YWlscwBVAVNwZW5kcyBtdXN0IGJlIGNsYWltZWQgd2l0aGluIHNvbWUgdGVtcG9yYWwgYm91bmRzLiBBIHNwZW5kIG1heSBiZSBjbGFpbWVkIHdpdGhpbiBvbmXUW2BDb25maWc6OlBheW91dFBlcmlvZGBdIGZyb20gdGhlIGB2YWxpZF9mcm9tYCBibG9jay5VAUluIGNhc2Ugb2YgYSBwYXlvdXQgZmFpbHVyZSwgdGhlIHNwZW5kIHN0YXR1cyBtdXN0IGJlIHVwZGF0ZWQgd2l0aCB0aGUgYGNoZWNrX3N0YXR1c2DcZGlzcGF0Y2hhYmxlIGJlZm9yZSByZXRyeWluZyB3aXRoIHRoZSBjdXJyZW50IGZ1bmN0aW9uLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAkEVtaXRzIFtgRXZlbnQ6OlBhaWRgXSBpZiBzdWNjZXNzZnVsLjBjaGVja19zdGF0dXMEARRpbmRleBABKFNwZW5kSW5kZXgAB0wpAUNoZWNrIHRoZSBzdGF0dXMgb2YgdGhlIHNwZW5kIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgc3RvcmFnZSBpZiBwcm9jZXNzZWQuAEgjIyBEaXNwYXRjaCBPcmlnaW4APE11c3QgYmUgc2lnbmVkLgAoIyMgRGV0YWlscwABAVRoZSBzdGF0dXMgY2hlY2sgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIHJldHJ5aW5nIGEgZmFpbGVkIHBheW91dC5JAUlmIGEgc3BlbmQgaGFzIGVpdGhlciBzdWNjZWVkZWQgb3IgZXhwaXJlZCwgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlIGJ5IHRoaXPsZnVuY3Rpb24uIEluIHN1Y2ggaW5zdGFuY2VzLCB0cmFuc2FjdGlvbiBmZWVzIGFyZSByZWZ1bmRlZC4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAPhFbWl0cyBbYEV2ZW50OjpQYXltZW50RmFpbGVkYF0gaWYgdGhlIHNwZW5kIHBheW91dCBoYXMgZmFpbGVkLgEBRW1pdHMgW2BFdmVudDo6U3BlbmRQcm9jZXNzZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBzdWNjZWVkLih2b2lkX3NwZW5kBAEUaW5kZXgQAShTcGVuZEluZGV4AAhAfFZvaWQgcHJldmlvdXNseSBhcHByb3ZlZCBzcGVuZC4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAB0BQSBzcGVuZCB2b2lkIGlzIG9ubHkgcG9zc2libGUgaWYgdGhlIHBheW91dCBoYXMgbm90IGJlZW4gYXR0ZW1wdGVkIHlldC4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAMBFbWl0cyBbYEV2ZW50OjpBc3NldFNwZW5kVm9pZGVkYF0gaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu6QQMXHBvbGthZG90X3J1bnRpbWVfY29tbW9uFGltcGxzXFZlcnNpb25lZExvY2F0YWJsZUFzc2V0AAEICFYzCAEgbG9jYXRpb27tBAFEeGNtOjp2Mzo6TG9jYXRpb24AASBhc3NldF9pZAEFAUB4Y206OnYzOjpBc3NldElkAAMACFY0CAEgbG9jYXRpb26ZAgFEeGNtOjp2NDo6TG9jYXRpb24AASBhc3NldF9pZAUFAUB4Y206OnY0OjpBc3NldElkAAQAAO0EECxzdGFnaW5nX3hjbQh2MzRtdWx0aWxvY2F0aW9uNE11bHRpTG9jYXRpb24AAAgBHHBhcmVudHMIAQh1OAABIGludGVyaW9y8QQBJEp1bmN0aW9ucwAA8QQQDHhjbQh2MyRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAPUEASBKdW5jdGlvbgABAAhYMggA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAgAIWDMMAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAwAIWDQQAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAEAAhYNRQA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24ABQAIWDYYAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24ABgAIWDccAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAHAAhYOCAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24AAPUEASBKdW5jdGlvbgAA9QQBIEp1bmN0aW9uAAD1BAEgSnVuY3Rpb24ACAAA9QQQDHhjbQh2MyBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAKkBAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr+QQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmv5BAFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleCwBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3Jr+QQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V51QEBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAN0BARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWSxAgEYQm9keUlkAAEQcGFydLUCASBCb2R5UGFydAAIADxHbG9iYWxDb25zZW5zdXMEAP0EASROZXR3b3JrSWQACQAA+QQEGE9wdGlvbgQEVAH9BAEIEE5vbmUAAAAQU29tZQQA/QQAAAEAAP0EEAx4Y20IdjMganVuY3Rpb24kTmV0d29ya0lkAAEsJEJ5R2VuZXNpcwQABAEgW3U4OyAzMl0AAAAYQnlGb3JrCAEwYmxvY2tfbnVtYmVyMAEMdTY0AAEoYmxvY2tfaGFzaAQBIFt1ODsgMzJdAAEAIFBvbGthZG90AAIAGEt1c2FtYQADABxXZXN0ZW5kAAQAGFJvY29jbwAFABhXb2NvY28ABgAgRXRoZXJldW0EASBjaGFpbl9pZCwBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAAAEFEAx4Y20IdjMobXVsdGlhc3NldBxBc3NldElkAAEIIENvbmNyZXRlBADtBAE0TXVsdGlMb2NhdGlvbgAAACBBYnN0cmFjdAQABAEgW3U4OyAzMl0AAQAABQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0HEFzc2V0SWQAAAQAmQIBIExvY2F0aW9uAAAJBQgMeGNtRFZlcnNpb25lZExvY2F0aW9uAAEMCFYyBAANBQFEdjI6Ok11bHRpTG9jYXRpb24AAQAIVjMEAO0EAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAmQIBMHY0OjpMb2NhdGlvbgAEAAANBRAMeGNtCHYyNG11bHRpbG9jYXRpb240TXVsdGlMb2NhdGlvbgAACAEccGFyZW50cwgBCHU4AAEgaW50ZXJpb3IRBQEkSnVuY3Rpb25zAAARBRAMeGNtCHYyNG11bHRpbG9jYXRpb24kSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEABUFASBKdW5jdGlvbgABAAhYMggAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AAgAIWDMMABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AAwAIWDQQABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAEAAhYNRQAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24ABQAIWDYYABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24ABgAIWDccABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAHAAhYOCAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24AABUFASBKdW5jdGlvbgAAFQUBIEp1bmN0aW9uAAAVBQEgSnVuY3Rpb24ACAAAFQUQDHhjbQh2MiBqdW5jdGlvbiBKdW5jdGlvbgABJCRQYXJhY2hhaW4EAKkBAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrGQUBJE5ldHdvcmtJZAABCGlkBAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrGQUBJE5ldHdvcmtJZAABFGluZGV4LAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmsZBQEkTmV0d29ya0lkAAEMa2V51QEBIFt1ODsgMjBdAAMAOFBhbGxldEluc3RhbmNlBAAIAQh1OAAEADBHZW5lcmFsSW5kZXgEAN0BARB1MTI4AAUAKEdlbmVyYWxLZXkEAB0FAYBXZWFrQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MzI+PgAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWQhBQEYQm9keUlkAAEQcGFydCUFASBCb2R5UGFydAAIAAAZBQwMeGNtCHYyJE5ldHdvcmtJZAABEAxBbnkAAAAUTmFtZWQEAB0FAYBXZWFrQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8MzI+PgABACBQb2xrYWRvdAACABhLdXNhbWEAAwAAHQUMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAAhBQwMeGNtCHYyGEJvZHlJZAABKBBVbml0AAAAFE5hbWVkBAAdBQGAV2Vha0JvdW5kZWRWZWM8dTgsIENvbnN0VTMyPDMyPj4AAQAUSW5kZXgEAKkBAQx1MzIAAgAkRXhlY3V0aXZlAAMAJFRlY2huaWNhbAAEACxMZWdpc2xhdGl2ZQAFACBKdWRpY2lhbAAGABxEZWZlbnNlAAcAOEFkbWluaXN0cmF0aW9uAAgAIFRyZWFzdXJ5AAkAACUFDAx4Y20IdjIgQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW50qQEBDHUzMgABACBGcmFjdGlvbggBDG5vbakBAQx1MzIAARRkZW5vbakBAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub22pAQEMdTMyAAEUZGVub22pAQEMdTMyAAMASE1vcmVUaGFuUHJvcG9ydGlvbggBDG5vbakBAQx1MzIAARRkZW5vbakBAQx1MzIABAAAKQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczRjb25maWd1cmF0aW9uGHBhbGxldBBDYWxsBARUAAHAfHNldF92YWxpZGF0aW9uX3VwZ3JhZGVfY29vbGRvd24EAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAABJBTZXQgdGhlIHZhbGlkYXRpb24gdXBncmFkZSBjb29sZG93bi5wc2V0X3ZhbGlkYXRpb25fdXBncmFkZV9kZWxheQQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+AAEEhFNldCB0aGUgdmFsaWRhdGlvbiB1cGdyYWRlIGRlbGF5LmRzZXRfY29kZV9yZXRlbnRpb25fcGVyaW9kBAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4AAgTQU2V0IHRoZSBhY2NlcHRhbmNlIHBlcmlvZCBmb3IgYW4gaW5jbHVkZWQgY2FuZGlkYXRlLkRzZXRfbWF4X2NvZGVfc2l6ZQQBDG5ldxABDHUzMgADBNxTZXQgdGhlIG1heCB2YWxpZGF0aW9uIGNvZGUgc2l6ZSBmb3IgaW5jb21pbmcgdXBncmFkZXMuQHNldF9tYXhfcG92X3NpemUEAQxuZXcQAQx1MzIABATEU2V0IHRoZSBtYXggUE9WIGJsb2NrIHNpemUgZm9yIGluY29taW5nIHVwZ3JhZGVzLlhzZXRfbWF4X2hlYWRfZGF0YV9zaXplBAEMbmV3EAEMdTMyAAUElFNldCB0aGUgbWF4IGhlYWQgZGF0YSBzaXplIGZvciBwYXJhcy5Ic2V0X2NvcmV0aW1lX2NvcmVzBAEMbmV3EAEMdTMyAAYQrFNldCB0aGUgbnVtYmVyIG9mIGNvcmV0aW1lIGV4ZWN1dGlvbiBjb3Jlcy4AUQFOT1RFOiB0aGF0IHRoaXMgY29uZmlndXJhdGlvbiBpcyBtYW5hZ2VkIGJ5IHRoZSBjb3JldGltZSBjaGFpbi4gT25seSBtYW51YWxseSBjaGFuZ2WwdGhpcywgaWYgeW91IHJlYWxseSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyF0c2V0X21heF9hdmFpbGFiaWxpdHlfdGltZW91dHMEAQxuZXcQAQx1MzIABwRBAVNldCB0aGUgbWF4IG51bWJlciBvZiB0aW1lcyBhIGNsYWltIG1heSB0aW1lb3V0IG9uIGEgY29yZSBiZWZvcmUgaXQgaXMgYWJhbmRvbmVkcHNldF9ncm91cF9yb3RhdGlvbl9mcmVxdWVuY3kEAQxuZXcQAURCbG9ja051bWJlckZvcjxUPgAIBNBTZXQgdGhlIHBhcmFjaGFpbiB2YWxpZGF0b3ItZ3JvdXAgcm90YXRpb24gZnJlcXVlbmN5dHNldF9wYXJhc19hdmFpbGFiaWxpdHlfcGVyaW9kBAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4ACQSYU2V0IHRoZSBhdmFpbGFiaWxpdHkgcGVyaW9kIGZvciBwYXJhcy5gc2V0X3NjaGVkdWxpbmdfbG9va2FoZWFkBAEMbmV3EAEMdTMyAAsEOQFTZXQgdGhlIHNjaGVkdWxpbmcgbG9va2FoZWFkLCBpbiBleHBlY3RlZCBudW1iZXIgb2YgYmxvY2tzIGF0IHBlYWsgdGhyb3VnaHB1dC5sc2V0X21heF92YWxpZGF0b3JzX3Blcl9jb3JlBAEMbmV3oQQBLE9wdGlvbjx1MzI+AAwE7FNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdmFsaWRhdG9ycyB0byBhc3NpZ24gdG8gYW55IGNvcmUuSHNldF9tYXhfdmFsaWRhdG9ycwQBDG5ld6EEASxPcHRpb248dTMyPgANBA0BU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YWxpZGF0b3JzIHRvIHVzZSBpbiBwYXJhY2hhaW4gY29uc2Vuc3VzLkhzZXRfZGlzcHV0ZV9wZXJpb2QEAQxuZXcQATBTZXNzaW9uSW5kZXgADgQNAVNldCB0aGUgZGlzcHV0ZSBwZXJpb2QsIGluIG51bWJlciBvZiBzZXNzaW9ucyB0byBrZWVwIGZvciBkaXNwdXRlcy60c2V0X2Rpc3B1dGVfcG9zdF9jb25jbHVzaW9uX2FjY2VwdGFuY2VfcGVyaW9kBAEMbmV3EAFEQmxvY2tOdW1iZXJGb3I8VD4ADwTIU2V0IHRoZSBkaXNwdXRlIHBvc3QgY29uY2x1c2lvbiBhY2NlcHRhbmNlIHBlcmlvZC5Ec2V0X25vX3Nob3dfc2xvdHMEAQxuZXcQAQx1MzIAEgj4U2V0IHRoZSBubyBzaG93IHNsb3RzLCBpbiBudW1iZXIgb2YgbnVtYmVyIG9mIGNvbnNlbnN1cyBzbG90cy5MTXVzdCBiZSBhdCBsZWFzdCAxLlBzZXRfbl9kZWxheV90cmFuY2hlcwQBDG5ldxABDHUzMgATBJxTZXQgdGhlIHRvdGFsIG51bWJlciBvZiBkZWxheSB0cmFuY2hlcy54c2V0X3plcm90aF9kZWxheV90cmFuY2hlX3dpZHRoBAEMbmV3EAEMdTMyABQEjFNldCB0aGUgemVyb3RoIGRlbGF5IHRyYW5jaGUgd2lkdGguUHNldF9uZWVkZWRfYXBwcm92YWxzBAEMbmV3EAEMdTMyABUE3FNldCB0aGUgbnVtYmVyIG9mIHZhbGlkYXRvcnMgbmVlZGVkIHRvIGFwcHJvdmUgYSBibG9jay5wc2V0X3JlbGF5X3ZyZl9tb2R1bG9fc2FtcGxlcwQBDG5ldxABDHUzMgAWBFkBU2V0IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyB0byBkbyBvZiB0aGUgYFJlbGF5VlJGTW9kdWxvYCBhcHByb3ZhbCBhc3NpZ25tZW50IGNyaXRlcmlvbi5oc2V0X21heF91cHdhcmRfcXVldWVfY291bnQEAQxuZXcQAQx1MzIAFwQtAVNldHMgdGhlIG1heGltdW0gaXRlbXMgdGhhdCBjYW4gcHJlc2VudCBpbiBhIHVwd2FyZCBkaXNwYXRjaCBxdWV1ZSBhdCBvbmNlLmRzZXRfbWF4X3Vwd2FyZF9xdWV1ZV9zaXplBAEMbmV3EAEMdTMyABgITQFTZXRzIHRoZSBtYXhpbXVtIHRvdGFsIHNpemUgb2YgaXRlbXMgdGhhdCBjYW4gcHJlc2VudCBpbiBhIHVwd2FyZCBkaXNwYXRjaCBxdWV1ZSBhdBRvbmNlLnRzZXRfbWF4X2Rvd253YXJkX21lc3NhZ2Vfc2l6ZQQBDG5ldxABDHUzMgAZBJxTZXQgdGhlIGNyaXRpY2FsIGRvd253YXJkIG1lc3NhZ2Ugc2l6ZS5sc2V0X21heF91cHdhcmRfbWVzc2FnZV9zaXplBAEMbmV3EAEMdTMyABsELQFTZXRzIHRoZSBtYXhpbXVtIHNpemUgb2YgYW4gdXB3YXJkIG1lc3NhZ2UgdGhhdCBjYW4gYmUgc2VudCBieSBhIGNhbmRpZGF0ZS6gc2V0X21heF91cHdhcmRfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZQQBDG5ldxABDHUzMgAcBAUBU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCBhIGNhbmRpZGF0ZSBjYW4gY29udGFpbi5kc2V0X2hybXBfb3Blbl9yZXF1ZXN0X3R0bAQBDG5ldxABDHUzMgAdBDUBU2V0cyB0aGUgbnVtYmVyIG9mIHNlc3Npb25zIGFmdGVyIHdoaWNoIGFuIEhSTVAgb3BlbiBjaGFubmVsIHJlcXVlc3QgZXhwaXJlcy5cc2V0X2hybXBfc2VuZGVyX2RlcG9zaXQEAQxuZXcYARxCYWxhbmNlAB4EUQFTZXRzIHRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCB0aGUgc2VuZGVyIHNob3VsZCBwcm92aWRlIGZvciBvcGVuaW5nIGFuIEhSTVAgY2hhbm5lbC5oc2V0X2hybXBfcmVjaXBpZW50X2RlcG9zaXQEAQxuZXcYARxCYWxhbmNlAB8IYQFTZXRzIHRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCB0aGUgcmVjaXBpZW50IHNob3VsZCBwcm92aWRlIGZvciBhY2NlcHRpbmcgb3BlbmluZyBhbiBIUk1QIGNoYW5uZWwudHNldF9ocm1wX2NoYW5uZWxfbWF4X2NhcGFjaXR5BAEMbmV3EAEMdTMyACAEHQFTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyBhbGxvd2VkIGluIGFuIEhSTVAgY2hhbm5lbCBhdCBvbmNlLnxzZXRfaHJtcF9jaGFubmVsX21heF90b3RhbF9zaXplBAEMbmV3EAEMdTMyACEEUQFTZXRzIHRoZSBtYXhpbXVtIHRvdGFsIHNpemUgb2YgbWVzc2FnZXMgaW4gYnl0ZXMgYWxsb3dlZCBpbiBhbiBIUk1QIGNoYW5uZWwgYXQgb25jZS6cc2V0X2hybXBfbWF4X3BhcmFjaGFpbl9pbmJvdW5kX2NoYW5uZWxzBAEMbmV3EAEMdTMyACIESQFTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmJvdW5kIEhSTVAgY2hhbm5lbHMgYSBwYXJhY2hhaW4gaXMgYWxsb3dlZCB0byBhY2NlcHQuhHNldF9ocm1wX2NoYW5uZWxfbWF4X21lc3NhZ2Vfc2l6ZQQBDG5ldxABDHUzMgAkBD0BU2V0cyB0aGUgbWF4aW11bSBzaXplIG9mIGEgbWVzc2FnZSB0aGF0IGNvdWxkIGV2ZXIgYmUgcHV0IGludG8gYW4gSFJNUCBjaGFubmVsLqBzZXRfaHJtcF9tYXhfcGFyYWNoYWluX291dGJvdW5kX2NoYW5uZWxzBAEMbmV3EAEMdTMyACUERQFTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBvdXRib3VuZCBIUk1QIGNoYW5uZWxzIGEgcGFyYWNoYWluIGlzIGFsbG93ZWQgdG8gb3Blbi6Yc2V0X2hybXBfbWF4X21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUEAQxuZXcQAQx1MzIAJwQ1AVNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIG91dGJvdW5kIEhSTVAgbWVzc2FnZXMgY2FuIGJlIHNlbnQgYnkgYSBjYW5kaWRhdGUuSHNldF9wdmZfdm90aW5nX3R0bAQBDG5ldxABMFNlc3Npb25JbmRleAAqBFEBU2V0IHRoZSBudW1iZXIgb2Ygc2Vzc2lvbiBjaGFuZ2VzIGFmdGVyIHdoaWNoIGEgUFZGIHByZS1jaGVja2luZyB2b3RpbmcgaXMgcmVqZWN0ZWQukHNldF9taW5pbXVtX3ZhbGlkYXRpb25fdXBncmFkZV9kZWxheQQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+ACsQVQFTZXRzIHRoZSBtaW5pbXVtIGRlbGF5IGJldHdlZW4gYW5ub3VuY2luZyB0aGUgdXBncmFkZSBibG9jayBmb3IgYSBwYXJhY2hhaW4gdW50aWwgdGhlVHVwZ3JhZGUgdGFraW5nIHBsYWNlLgA5AVNlZSB0aGUgZmllbGQgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gYW5kIGNvbnN0cmFpbnRzIGZvciB0aGUgbmV3IHZhbHVlLnBzZXRfYnlwYXNzX2NvbnNpc3RlbmN5X2NoZWNrBAEMbmV3IAEQYm9vbAAsCE0BU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCBkaXNhYmxlIGNvbnNpc3RlbmN5IGNoZWNrcyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGVycy5EVXNlIHdpdGggY2F1dGlvbi5gc2V0X2FzeW5jX2JhY2tpbmdfcGFyYW1zBAEMbmV3LQUBSEFzeW5jQmFja2luZ1BhcmFtcwAtBKBTZXQgdGhlIGFzeW5jaHJvbm91cyBiYWNraW5nIHBhcmFtZXRlcnMuTHNldF9leGVjdXRvcl9wYXJhbXMEAQxuZXcxBQE4RXhlY3V0b3JQYXJhbXMALgRwU2V0IFBWRiBleGVjdXRvciBwYXJhbWV0ZXJzLlhzZXRfb25fZGVtYW5kX2Jhc2VfZmVlBAEMbmV3GAEcQmFsYW5jZQAvBKRTZXQgdGhlIG9uIGRlbWFuZCAocGFyYXRocmVhZHMpIGJhc2UgZmVlLnRzZXRfb25fZGVtYW5kX2ZlZV92YXJpYWJpbGl0eQQBDG5ld5QBHFBlcmJpbGwAMATAU2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSBmZWUgdmFyaWFiaWxpdHkucHNldF9vbl9kZW1hbmRfcXVldWVfbWF4X3NpemUEAQxuZXcQAQx1MzIAMQS8U2V0IHRoZSBvbiBkZW1hbmQgKHBhcmF0aHJlYWRzKSBxdWV1ZSBtYXggc2l6ZS6Yc2V0X29uX2RlbWFuZF90YXJnZXRfcXVldWVfdXRpbGl6YXRpb24EAQxuZXeUARxQZXJiaWxsADIEwFNldCB0aGUgb24gZGVtYW5kIChwYXJhdGhyZWFkcykgZmVlIHZhcmlhYmlsaXR5LkRzZXRfb25fZGVtYW5kX3R0bAQBDG5ldxABREJsb2NrTnVtYmVyRm9yPFQ+ADME2FNldCB0aGUgb24gZGVtYW5kIChwYXJhdGhyZWFkcykgdHRsIGluIHRoZSBjbGFpbXF1ZXVlLmRzZXRfbWluaW11bV9iYWNraW5nX3ZvdGVzBAEMbmV3EAEMdTMyADQEoFNldCB0aGUgbWluaW11bSBiYWNraW5nIHZvdGVzIHRocmVzaG9sZC5Ac2V0X25vZGVfZmVhdHVyZQgBFGluZGV4CAEIdTgAARR2YWx1ZSABEGJvb2wANQRkU2V0L1Vuc2V0IGEgbm9kZSBmZWF0dXJlLmhzZXRfYXBwcm92YWxfdm90aW5nX3BhcmFtcwQBDG5ld0UFAVBBcHByb3ZhbFZvdGluZ1BhcmFtcwA2BGxTZXQgYXBwcm92YWwtdm90aW5nLXBhcmFtcy5Qc2V0X3NjaGVkdWxlcl9wYXJhbXMEAQxuZXdJBQGIU2NoZWR1bGVyUGFyYW1zPEJsb2NrTnVtYmVyRm9yPFQ+PgA3BFRTZXQgc2NoZWR1bGVyLXBhcmFtcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0YXN5bmNfYmFja2luZ0hBc3luY0JhY2tpbmdQYXJhbXMAAAgBTG1heF9jYW5kaWRhdGVfZGVwdGgQAQx1MzIAAVBhbGxvd2VkX2FuY2VzdHJ5X2xlbhABDHUzMgAAMQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg8ZXhlY3V0b3JfcGFyYW1zOEV4ZWN1dG9yUGFyYW1zAAAEADUFAUhWZWM8RXhlY3V0b3JQYXJhbT4AADUFAAACOQUAOQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg8ZXhlY3V0b3JfcGFyYW1zNEV4ZWN1dG9yUGFyYW0AARw4TWF4TWVtb3J5UGFnZXMEABABDHUzMgABADxTdGFja0xvZ2ljYWxNYXgEABABDHUzMgACADhTdGFja05hdGl2ZU1heAQAEAEMdTMyAAMAUFByZWNoZWNraW5nTWF4TWVtb3J5BAAwAQx1NjQABAA4UHZmUHJlcFRpbWVvdXQIAD0FASxQdmZQcmVwS2luZAAAMAEMdTY0AAUAOFB2ZkV4ZWNUaW1lb3V0CABBBQEsUHZmRXhlY0tpbmQAADABDHU2NAAGAERXYXNtRXh0QnVsa01lbW9yeQAHAAA9BQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OCxQdmZQcmVwS2luZAABCCBQcmVjaGVjawAAABxQcmVwYXJlAAEAAEEFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4LFB2ZkV4ZWNLaW5kAAEIHEJhY2tpbmcAAAAgQXBwcm92YWwAAQAARQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhQQXBwcm92YWxWb3RpbmdQYXJhbXMAAAQBbG1heF9hcHByb3ZhbF9jb2FsZXNjZV9jb3VudBABDHUzMgAASQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg8U2NoZWR1bGVyUGFyYW1zBCxCbG9ja051bWJlcgEQACwBYGdyb3VwX3JvdGF0aW9uX2ZyZXF1ZW5jeRABLEJsb2NrTnVtYmVyAAFkcGFyYXNfYXZhaWxhYmlsaXR5X3BlcmlvZBABLEJsb2NrTnVtYmVyAAFcbWF4X3ZhbGlkYXRvcnNfcGVyX2NvcmWhBAEsT3B0aW9uPHUzMj4AASRsb29rYWhlYWQQAQx1MzIAASRudW1fY29yZXMQAQx1MzIAAWRtYXhfYXZhaWxhYmlsaXR5X3RpbWVvdXRzEAEMdTMyAAFgb25fZGVtYW5kX3F1ZXVlX21heF9zaXplEAEMdTMyAAGIb25fZGVtYW5kX3RhcmdldF9xdWV1ZV91dGlsaXphdGlvbpQBHFBlcmJpbGwAAWRvbl9kZW1hbmRfZmVlX3ZhcmlhYmlsaXR5lAEcUGVyYmlsbAABSG9uX2RlbWFuZF9iYXNlX2ZlZRgBHEJhbGFuY2UAAQx0dGwQASxCbG9ja051bWJlcgAATQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxhzaGFyZWQYcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuUQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuVQUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczhwYXJhc19pbmhlcmVudBhwYWxsZXQQQ2FsbAQEVAABBBRlbnRlcgQBEGRhdGFZBQGQUGFyYWNoYWluc0luaGVyZW50RGF0YTxIZWFkZXJGb3I8VD4+AAAEMQFFbnRlciB0aGUgcGFyYXMgaW5oZXJlbnQuIFRoaXMgd2lsbCBwcm9jZXNzIGJpdGZpZWxkcyBhbmQgYmFja2VkIGNhbmRpZGF0ZXMuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4MEluaGVyZW50RGF0YQQMSERSAaUBABABJGJpdGZpZWxkc10FAZBVbmNoZWNrZWRTaWduZWRBdmFpbGFiaWxpdHlCaXRmaWVsZHMAAURiYWNrZWRfY2FuZGlkYXRlc3kFAXxWZWM8QmFja2VkQ2FuZGlkYXRlPEhEUjo6SGFzaD4+AAEgZGlzcHV0ZXO9BQFgTXVsdGlEaXNwdXRlU3RhdGVtZW50U2V0AAE0cGFyZW50X2hlYWRlcqUBAQxIRFIAAF0FAAACYQUAYQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgYc2lnbmVkPFVuY2hlY2tlZFNpZ25lZAgcUGF5bG9hZAFlBSxSZWFsUGF5bG9hZAFlBQAMARxwYXlsb2FkZQUBHFBheWxvYWQAATx2YWxpZGF0b3JfaW5kZXhxBQE4VmFsaWRhdG9ySW5kZXgAASRzaWduYXR1cmV1BQFIVmFsaWRhdG9yU2lnbmF0dXJlAABlBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OFBBdmFpbGFiaWxpdHlCaXRmaWVsZAAABABpBQF8Qml0VmVjPHU4LCBiaXR2ZWM6Om9yZGVyOjpMc2IwPgAAaQUAAAcIbQUAbQUMGGJpdHZlYxRvcmRlchBMc2IwAAAAAHEFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4OFZhbGlkYXRvckluZGV4AAAEABABDHUzMgAAdQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0dmFsaWRhdG9yX2FwcCRTaWduYXR1cmUAAAQAZQIBSHNyMjU1MTk6OlNpZ25hdHVyZQAAeQUAAAJ9BQB9BQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODxCYWNrZWRDYW5kaWRhdGUEBEgBNAAMASRjYW5kaWRhdGWBBQFwQ29tbWl0dGVkQ2FuZGlkYXRlUmVjZWlwdDxIPgABOHZhbGlkaXR5X3ZvdGVztQUBYFZlYzxWYWxpZGl0eUF0dGVzdGF0aW9uPgABRHZhbGlkYXRvcl9pbmRpY2VzaQUBfEJpdFZlYzx1OCwgYml0dmVjOjpvcmRlcjo6THNiMD4AAIEFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ZENvbW1pdHRlZENhbmRpZGF0ZVJlY2VpcHQEBEgBNAAIAShkZXNjcmlwdG9yhQUBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AASxjb21taXRtZW50c5UFAVBDYW5kaWRhdGVDb21taXRtZW50cwAAhQUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhMQ2FuZGlkYXRlRGVzY3JpcHRvcgQESAE0ACQBHHBhcmFfaWSRAgEISWQAATByZWxheV9wYXJlbnQ0AQRIAAEgY29sbGF0b3KJBQEoQ29sbGF0b3JJZAABeHBlcnNpc3RlZF92YWxpZGF0aW9uX2RhdGFfaGFzaDQBEEhhc2gAASBwb3ZfaGFzaDQBEEhhc2gAATBlcmFzdXJlX3Jvb3Q0ARBIYXNoAAEkc2lnbmF0dXJljQUBRENvbGxhdG9yU2lnbmF0dXJlAAEkcGFyYV9oZWFkNAEQSGFzaAABUHZhbGlkYXRpb25fY29kZV9oYXNokQUBSFZhbGlkYXRpb25Db2RlSGFzaAAAiQUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgwY29sbGF0b3JfYXBwGFB1YmxpYwAABAAEATxzcjI1NTE5OjpQdWJsaWMAAI0FEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4MGNvbGxhdG9yX2FwcCRTaWduYXR1cmUAAAQAZQIBSHNyMjU1MTk6OlNpZ25hdHVyZQAAkQUMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXNIVmFsaWRhdGlvbkNvZGVIYXNoAAAEADQBEEhhc2gAAJUFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4UENhbmRpZGF0ZUNvbW1pdG1lbnRzBAROARAAGAE8dXB3YXJkX21lc3NhZ2VzmQUBOFVwd2FyZE1lc3NhZ2VzAAFMaG9yaXpvbnRhbF9tZXNzYWdlc50FAUhIb3Jpem9udGFsTWVzc2FnZXMAAUxuZXdfdmFsaWRhdGlvbl9jb2RlqQUBWE9wdGlvbjxWYWxpZGF0aW9uQ29kZT4AASRoZWFkX2RhdGGxBQEgSGVhZERhdGEAAWxwcm9jZXNzZWRfZG93bndhcmRfbWVzc2FnZXMQAQx1MzIAAThocm1wX3dhdGVybWFyaxABBE4AAJkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAJkBARhWZWM8VD4AAJ0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBoQUEUwAABAClBQEYVmVjPFQ+AAChBQhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAZECAAgBJHJlY2lwaWVudJECAQhJZAABEGRhdGE4AUxhbGxvYzo6dmVjOjpWZWM8dTg+AAClBQAAAqEFAKkFBBhPcHRpb24EBFQBrQUBCBBOb25lAAAAEFNvbWUEAK0FAAABAACtBQx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAA4ARxWZWM8dTg+AACxBQx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAA4ARxWZWM8dTg+AAC1BQAAArkFALkFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4TFZhbGlkaXR5QXR0ZXN0YXRpb24AAQggSW1wbGljaXQEAHUFAUhWYWxpZGF0b3JTaWduYXR1cmUAAQAgRXhwbGljaXQEAHUFAUhWYWxpZGF0b3JTaWduYXR1cmUAAgAAvQUAAALBBQDBBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExEaXNwdXRlU3RhdGVtZW50U2V0AAAMAThjYW5kaWRhdGVfaGFzaMUFATRDYW5kaWRhdGVIYXNoAAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABKHN0YXRlbWVudHPJBQHsVmVjPChEaXNwdXRlU3RhdGVtZW50LCBWYWxpZGF0b3JJbmRleCwgVmFsaWRhdG9yU2lnbmF0dXJlKT4AAMUFCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXM0Q2FuZGlkYXRlSGFzaAAABAA0ARBIYXNoAADJBQAAAs0FAM0FAAAEDNEFcQV1BQDRBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OEBEaXNwdXRlU3RhdGVtZW50AAEIFFZhbGlkBADVBQFkVmFsaWREaXNwdXRlU3RhdGVtZW50S2luZAAAABxJbnZhbGlkBADdBQFsSW52YWxpZERpc3B1dGVTdGF0ZW1lbnRLaW5kAAEAANUFDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4ZFZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAARQgRXhwbGljaXQAAAA8QmFja2luZ1NlY29uZGVkBAA0ARBIYXNoAAEAMEJhY2tpbmdWYWxpZAQANAEQSGFzaAACAEBBcHByb3ZhbENoZWNraW5nAAMAiEFwcHJvdmFsQ2hlY2tpbmdNdWx0aXBsZUNhbmRpZGF0ZXMEANkFAUhWZWM8Q2FuZGlkYXRlSGFzaD4ABAAA2QUAAALFBQDdBQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OGxJbnZhbGlkRGlzcHV0ZVN0YXRlbWVudEtpbmQAAQQgRXhwbGljaXQAAAAA4QUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhcxhwYWxsZXQQQ2FsbAQEVAABJFhmb3JjZV9zZXRfY3VycmVudF9jb2RlCAEQcGFyYZECARhQYXJhSWQAASBuZXdfY29kZa0FAThWYWxpZGF0aW9uQ29kZQAABPhTZXQgdGhlIHN0b3JhZ2UgZm9yIHRoZSBwYXJhY2hhaW4gdmFsaWRhdGlvbiBjb2RlIGltbWVkaWF0ZWx5Llhmb3JjZV9zZXRfY3VycmVudF9oZWFkCAEQcGFyYZECARhQYXJhSWQAASBuZXdfaGVhZLEFASBIZWFkRGF0YQABBAEBU2V0IHRoZSBzdG9yYWdlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gaGVhZCBkYXRhIGltbWVkaWF0ZWx5Lmxmb3JjZV9zY2hlZHVsZV9jb2RlX3VwZ3JhZGUMARBwYXJhkQIBGFBhcmFJZAABIG5ld19jb2RlrQUBOFZhbGlkYXRpb25Db2RlAAFMcmVsYXlfcGFyZW50X251bWJlchABREJsb2NrTnVtYmVyRm9yPFQ+AAIELQFTY2hlZHVsZSBhbiB1cGdyYWRlIGFzIGlmIGl0IHdhcyBzY2hlZHVsZWQgaW4gdGhlIGdpdmVuIHJlbGF5IHBhcmVudCBibG9jay5MZm9yY2Vfbm90ZV9uZXdfaGVhZAgBEHBhcmGRAgEYUGFyYUlkAAEgbmV3X2hlYWSxBQEgSGVhZERhdGEAAwQdAU5vdGUgYSBuZXcgYmxvY2sgaGVhZCBmb3IgcGFyYSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgYmxvY2suSGZvcmNlX3F1ZXVlX2FjdGlvbgQBEHBhcmGRAgEYUGFyYUlkAAQM+FB1dCBhIHBhcmFjaGFpbiBkaXJlY3RseSBpbnRvIHRoZSBuZXh0IHNlc3Npb24ncyBhY3Rpb24gcXVldWUu9FdlIGNhbid0IHF1ZXVlIGl0IGFueSBzb29uZXIgdGhhbiB0aGlzIHdpdGhvdXQgZ29pbmcgaW50byB0aGU4aW5pdGlhbGl6ZXIuLi5sYWRkX3RydXN0ZWRfdmFsaWRhdGlvbl9jb2RlBAE8dmFsaWRhdGlvbl9jb2RlrQUBOFZhbGlkYXRpb25Db2RlAAU4oEFkZHMgdGhlIHZhbGlkYXRpb24gY29kZSB0byB0aGUgc3RvcmFnZS4AWQFUaGUgY29kZSB3aWxsIG5vdCBiZSBhZGRlZCBpZiBpdCBpcyBhbHJlYWR5IHByZXNlbnQuIEFkZGl0aW9uYWxseSwgaWYgUFZGIHByZS1jaGVja2luZ+BpcyBydW5uaW5nIGZvciB0aGF0IGNvZGUsIGl0IHdpbGwgYmUgaW5zdGFudGx5IGFjY2VwdGVkLgBRAU90aGVyd2lzZSwgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZCBpbnRvIHRoZSBzdG9yYWdlLiBOb3RlIHRoYXQgdGhlIGNvZGUgd2lsbCBiZSBhZGRlZGEBaW50byBzdG9yYWdlIHdpdGggcmVmZXJlbmNlIGNvdW50IDAuIFRoaXMgaXMgdG8gYWNjb3VudCB0aGUgZmFjdCB0aGF0IHRoZXJlIGFyZSBubyB1c2Vyc00BZm9yIHRoaXMgY29kZSB5ZXQuIFRoZSBjYWxsZXIgd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgY29kZSBldmVudHVhbGx5IGdldHNJAXVzZWQgYnkgc29tZSBwYXJhY2hhaW4gb3IgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlIHRvIGF2b2lkIHN0b3JhZ2UgbGVha3MuIEZvciB0aGVJAWxhdHRlciBwcmVmZXIgdG8gdXNlIHRoZSBgcG9rZV91bnVzZWRfdmFsaWRhdGlvbl9jb2RlYCBkaXNwYXRjaGFibGUgdG8gcmF3IHN0b3JhZ2U0bWFuaXB1bGF0aW9uLgBRAVRoaXMgZnVuY3Rpb24gaXMgbWFpbmx5IG1lYW50IHRvIGJlIHVzZWQgZm9yIHVwZ3JhZGluZyBwYXJhY2hhaW5zIHRoYXQgZG8gbm90IGZvbGxvdwkBdGhlIGdvLWFoZWFkIHNpZ25hbCB3aGlsZSB0aGUgUFZGIHByZS1jaGVja2luZyBmZWF0dXJlIGlzIGVuYWJsZWQubHBva2VfdW51c2VkX3ZhbGlkYXRpb25fY29kZQQBUHZhbGlkYXRpb25fY29kZV9oYXNokQUBSFZhbGlkYXRpb25Db2RlSGFzaAAGFCUBUmVtb3ZlIHRoZSB2YWxpZGF0aW9uIGNvZGUgZnJvbSB0aGUgc3RvcmFnZSBpZmYgdGhlIHJlZmVyZW5jZSBjb3VudCBpcyAwLgBZAVRoaXMgaXMgYmV0dGVyIHRoYW4gcmVtb3ZpbmcgdGhlIHN0b3JhZ2UgZGlyZWN0bHksIGJlY2F1c2UgaXQgd2lsbCBub3QgcmVtb3ZlIHRoZSBjb2RlQQF0aGF0IHdhcyBzdWRkZW5seSBnb3QgdXNlZCBieSBzb21lIHBhcmFjaGFpbiB3aGlsZSB0aGlzIGRpc3BhdGNoYWJsZSB3YXMgcGVuZGluZzBkaXNwYXRjaGluZy5saW5jbHVkZV9wdmZfY2hlY2tfc3RhdGVtZW50CAEQc3RtdOUFAURQdmZDaGVja1N0YXRlbWVudAABJHNpZ25hdHVyZXUFAUhWYWxpZGF0b3JTaWduYXR1cmUABwhVAUluY2x1ZGVzIGEgc3RhdGVtZW50IGZvciBhIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS4gUG90ZW50aWFsbHksIGZpbmFsaXplcyB0aGUgdm90ZSBhbmRBAWVuYWN0cyB0aGUgcmVzdWx0cyBpZiB0aGF0IHdhcyB0aGUgbGFzdCB2b3RlIGJlZm9yZSBhY2hpZXZpbmcgdGhlIHN1cGVybWFqb3JpdHkudGZvcmNlX3NldF9tb3N0X3JlY2VudF9jb250ZXh0CAEQcGFyYZECARhQYXJhSWQAARxjb250ZXh0EAFEQmxvY2tOdW1iZXJGb3I8VD4ACAQBAVNldCB0aGUgc3RvcmFnZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGhlYWQgZGF0YSBpbW1lZGlhdGVseS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu5QUMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhEUHZmQ2hlY2tTdGF0ZW1lbnQAABABGGFjY2VwdCABEGJvb2wAARxzdWJqZWN0kQUBSFZhbGlkYXRpb25Db2RlSGFzaAABNHNlc3Npb25faW5kZXgQATBTZXNzaW9uSW5kZXgAATx2YWxpZGF0b3JfaW5kZXhxBQE4VmFsaWRhdG9ySW5kZXgAAOkFEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMsaW5pdGlhbGl6ZXIYcGFsbGV0EENhbGwEBFQAAQQ0Zm9yY2VfYXBwcm92ZQQBFHVwX3RvEAEsQmxvY2tOdW1iZXIAAAw5AUlzc3VlIGEgc2lnbmFsIHRvIHRoZSBjb25zZW5zdXMgZW5naW5lIHRvIGZvcmNpYmx5IGFjdCBhcyB0aG91Z2ggYWxsIHBhcmFjaGFpblEBYmxvY2tzIGluIGFsbCByZWxheSBjaGFpbiBibG9ja3MgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgZ2l2ZW4gbnVtYmVyIGluIHRoZSBjdXJyZW50oGNoYWluIGFyZSB2YWxpZCBhbmQgc2hvdWxkIGJlIGZpbmFsaXplZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu7QUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBBDYWxsBARUAAEsWGhybXBfaW5pdF9vcGVuX2NoYW5uZWwMASRyZWNpcGllbnSRAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAAKE0BSW5pdGlhdGUgb3BlbmluZyBhIGNoYW5uZWwgZnJvbSBhIHBhcmFjaGFpbiB0byBhIGdpdmVuIHJlY2lwaWVudCB3aXRoIGdpdmVuIGNoYW5uZWwscGFyYW1ldGVycy4AWQEtIGBwcm9wb3NlZF9tYXhfY2FwYWNpdHlgIC0gc3BlY2lmaWVzIGhvdyBtYW55IG1lc3NhZ2VzIGNhbiBiZSBpbiB0aGUgY2hhbm5lbCBhdCBvbmNlLi0BLSBgcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZWAgLSBzcGVjaWZpZXMgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWVzc2FnZXMuABEBVGhlc2UgbnVtYmVycyBhcmUgYSBzdWJqZWN0IHRvIHRoZSByZWxheS1jaGFpbiBjb25maWd1cmF0aW9uIGxpbWl0cy4AUQFUaGUgY2hhbm5lbCBjYW4gYmUgb3BlbmVkIG9ubHkgYWZ0ZXIgdGhlIHJlY2lwaWVudCBjb25maXJtcyBpdCBhbmQgb25seSBvbiBhIHNlc3Npb24cY2hhbmdlLmBocm1wX2FjY2VwdF9vcGVuX2NoYW5uZWwEARhzZW5kZXKRAgEYUGFyYUlkAAEM8EFjY2VwdCBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QgZnJvbSB0aGUgZ2l2ZW4gc2VuZGVyLgD0VGhlIGNoYW5uZWwgd2lsbCBiZSBvcGVuZWQgb25seSBvbiB0aGUgbmV4dCBzZXNzaW9uIGJvdW5kYXJ5Lkhocm1wX2Nsb3NlX2NoYW5uZWwEAShjaGFubmVsX2lk8QUBNEhybXBDaGFubmVsSWQAAhBVAUluaXRpYXRlIHVuaWxhdGVyYWwgY2xvc2luZyBvZiBhIGNoYW5uZWwuIFRoZSBvcmlnaW4gbXVzdCBiZSBlaXRoZXIgdGhlIHNlbmRlciBvciB0aGWYcmVjaXBpZW50IGluIHRoZSBjaGFubmVsIGJlaW5nIGNsb3NlZC4AwFRoZSBjbG9zdXJlIGNhbiBvbmx5IGhhcHBlbiBvbiBhIHNlc3Npb24gY2hhbmdlLkBmb3JjZV9jbGVhbl9ocm1wDAEQcGFyYZECARhQYXJhSWQAASxudW1faW5ib3VuZBABDHUzMgABMG51bV9vdXRib3VuZBABDHUzMgADHF0BVGhpcyBleHRyaW5zaWMgdHJpZ2dlcnMgdGhlIGNsZWFudXAgb2YgYWxsIHRoZSBIUk1QIHN0b3JhZ2UgaXRlbXMgdGhhdCBhIHBhcmEgbWF5IGhhdmUuSQFOb3JtYWxseSB0aGlzIGhhcHBlbnMgb25jZSBwZXIgc2Vzc2lvbiwgYnV0IHRoaXMgYWxsb3dzIHlvdSB0byB0cmlnZ2VyIHRoZSBjbGVhbnVwlGltbWVkaWF0ZWx5IGZvciBhIHNwZWNpZmljIHBhcmFjaGFpbi4AUQFOdW1iZXIgb2YgaW5ib3VuZCBhbmQgb3V0Ym91bmQgY2hhbm5lbHMgZm9yIGBwYXJhYCBtdXN0IGJlIHByb3ZpZGVkIGFzIHdpdG5lc3MgZGF0YS4AkE9yaWdpbiBtdXN0IGJlIHRoZSBgQ2hhbm5lbE1hbmFnZXJgLlxmb3JjZV9wcm9jZXNzX2hybXBfb3BlbgQBIGNoYW5uZWxzEAEMdTMyAAQgpEZvcmNlIHByb2Nlc3MgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMuAFUBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdHMsIHlvdSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gdG8gcHJvY2Vzc4hhbGwgb2YgdGhvc2UgcmVxdWVzdHMgaW1tZWRpYXRlbHkuAAkBVG90YWwgbnVtYmVyIG9mIG9wZW5pbmcgY2hhbm5lbHMgbXVzdCBiZSBwcm92aWRlZCBhcyB3aXRuZXNzIGRhdGEuAJBPcmlnaW4gbXVzdCBiZSB0aGUgYENoYW5uZWxNYW5hZ2VyYC5gZm9yY2VfcHJvY2Vzc19ocm1wX2Nsb3NlBAEgY2hhbm5lbHMQAQx1MzIABSCoRm9yY2UgcHJvY2VzcyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMuAFkBSWYgdGhlcmUgYXJlIHBlbmRpbmcgSFJNUCBjbG9zZSBjaGFubmVsIHJlcXVlc3RzLCB5b3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHByb2Nlc3OIYWxsIG9mIHRob3NlIHJlcXVlc3RzIGltbWVkaWF0ZWx5LgAJAVRvdGFsIG51bWJlciBvZiBjbG9zaW5nIGNoYW5uZWxzIG11c3QgYmUgcHJvdmlkZWQgYXMgd2l0bmVzcyBkYXRhLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGhybXBfY2FuY2VsX29wZW5fcmVxdWVzdAgBKGNoYW5uZWxfaWTxBQE0SHJtcENoYW5uZWxJZAABNG9wZW5fcmVxdWVzdHMQAQx1MzIABiBdAVRoaXMgY2FuY2VscyBhIHBlbmRpbmcgb3BlbiBjaGFubmVsIHJlcXVlc3QuIEl0IGNhbiBiZSBjYW5jZWxlZCBieSBlaXRoZXIgb2YgdGhlIHNlbmRlchkBb3IgdGhlIHJlY2lwaWVudCBmb3IgdGhhdCByZXF1ZXN0LiBUaGUgb3JpZ2luIG11c3QgYmUgZWl0aGVyIG9mIHRob3NlLgBdAVRoZSBjYW5jZWxsYXRpb24gaGFwcGVucyBpbW1lZGlhdGVseS4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGNhbmNlbCB0aGUgcmVxdWVzdCBpZiBpdCBpc0RhbHJlYWR5IGFjY2VwdGVkLgBZAVRvdGFsIG51bWJlciBvZiBvcGVuIHJlcXVlc3RzIChpLmUuIGBIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0c0xpc3RgKSBtdXN0IGJlIHByb3ZpZGVkIGFzNHdpdG5lc3MgZGF0YS5cZm9yY2Vfb3Blbl9ocm1wX2NoYW5uZWwQARhzZW5kZXKRAgEYUGFyYUlkAAEkcmVjaXBpZW50kQIBGFBhcmFJZAABMG1heF9jYXBhY2l0eRABDHUzMgABQG1heF9tZXNzYWdlX3NpemUQAQx1MzIAByBhAU9wZW4gYSBjaGFubmVsIGZyb20gYSBgc2VuZGVyYCB0byBhIGByZWNpcGllbnRgIGBQYXJhSWRgLiBBbHRob3VnaCBvcGVuZWQgYnkgZ292ZXJuYW5jZSxBAXRoZSBgbWF4X2NhcGFjaXR5YCBhbmQgYG1heF9tZXNzYWdlX3NpemVgIGFyZSBzdGlsbCBzdWJqZWN0IHRvIHRoZSBSZWxheSBDaGFpbidzSGNvbmZpZ3VyZWQgbGltaXRzLgBNAUV4cGVjdGVkIHVzZSBpcyB3aGVuIG9uZSAoYW5kIG9ubHkgb25lKSBvZiB0aGUgYFBhcmFJZGBzIGludm9sdmVkIGluIHRoZSBjaGFubmVsIGlzwGdvdmVybmVkIGJ5IHRoZSBzeXN0ZW0sIGUuZy4gYSBzeXN0ZW0gcGFyYWNoYWluLgCQT3JpZ2luIG11c3QgYmUgdGhlIGBDaGFubmVsTWFuYWdlcmAuYGVzdGFibGlzaF9zeXN0ZW1fY2hhbm5lbAgBGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAgwUQFFc3RhYmxpc2ggYW4gSFJNUCBjaGFubmVsIGJldHdlZW4gdHdvIHN5c3RlbSBjaGFpbnMuIElmIHRoZSBjaGFubmVsIGRvZXMgbm90IGFscmVhZHlRAWV4aXN0LCB0aGUgdHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHJlZnVuZGVkIHRvIHRoZSBjYWxsZXIuIFRoZSBzeXN0ZW0gZG9lcyBub3QgdGFrZVkBZGVwb3NpdHMgZm9yIGNoYW5uZWxzIGJldHdlZW4gc3lzdGVtIGNoYWlucywgYW5kIGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgbWVzc2FnZSBudW1iZXIZAWFuZCBzaXplIGxpbWl0cyB0byB0aGUgbWF4aW11bSBhbGxvd2VkIGJ5IHRoZSBuZXR3b3JrJ3MgY29uZmlndXJhdGlvbi4AKEFyZ3VtZW50czoAlC0gYHNlbmRlcmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC6gLSBgcmVjaXBpZW50YDogQSBzeXN0ZW0gY2hhaW4sIGBQYXJhSWRgLgBVAUFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24sIGJ1dCBfYm90aF8gaW5wdXRzIE1VU1QgYmUgc3lzdGVtIGNoYWlucy4gSWbAdGhlIGNoYW5uZWwgZG9lcyBub3QgZXhpc3QgeWV0LCB0aGVyZSBpcyBubyBmZWUuVHBva2VfY2hhbm5lbF9kZXBvc2l0cwgBGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAkkUQFVcGRhdGUgdGhlIGRlcG9zaXRzIGhlbGQgZm9yIGFuIEhSTVAgY2hhbm5lbCB0byB0aGUgbGF0ZXN0IGBDb25maWd1cmF0aW9uYC4gQ2hhbm5lbHOwd2l0aCBzeXN0ZW0gY2hhaW5zIGRvIG5vdCByZXF1aXJlIGEgZGVwb3NpdC4AKEFyZ3VtZW50czoAeC0gYHNlbmRlcmA6IEEgY2hhaW4sIGBQYXJhSWRgLoQtIGByZWNpcGllbnRgOiBBIGNoYWluLCBgUGFyYUlkYC4ApEFueSBzaWduZWQgb3JpZ2luIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24udGVzdGFibGlzaF9jaGFubmVsX3dpdGhfc3lzdGVtBAFMdGFyZ2V0X3N5c3RlbV9jaGFpbpECARhQYXJhSWQAChw5AUVzdGFibGlzaCBhIGJpZGlyZWN0aW9uYWwgSFJNUCBjaGFubmVsIGJldHdlZW4gYSBwYXJhY2hhaW4gYW5kIGEgc3lzdGVtIGNoYWluLgAoQXJndW1lbnRzOgDILSBgdGFyZ2V0X3N5c3RlbV9jaGFpbmA6IEEgc3lzdGVtIGNoYWluLCBgUGFyYUlkYC4AsFRoZSBvcmlnaW4gbmVlZHMgdG8gYmUgdGhlIHBhcmFjaGFpbiBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLvEFDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzNEhybXBDaGFubmVsSWQAAAgBGHNlbmRlcpECAQhJZAABJHJlY2lwaWVudJECAQhJZAAA9QUQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBkaXNwdXRlcxhwYWxsZXQQQ2FsbAQEVAABBDhmb3JjZV91bmZyZWV6ZQAAAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy75BRRscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzIHNsYXNoaW5nGHBhbGxldBBDYWxsBARUAAEEcHJlcG9ydF9kaXNwdXRlX2xvc3RfdW5zaWduZWQIATRkaXNwdXRlX3Byb29m/QUBREJveDxEaXNwdXRlUHJvb2Y+AAE8a2V5X293bmVyX3Byb29mtQEBQFQ6OktleU93bmVyUHJvb2YAAAAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu/QUQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmcwRGlzcHV0ZVByb29mAAAQASR0aW1lX3Nsb3QBBgFARGlzcHV0ZXNUaW1lU2xvdAABEGtpbmQFBgFMU2xhc2hpbmdPZmZlbmNlS2luZAABPHZhbGlkYXRvcl9pbmRleHEFAThWYWxpZGF0b3JJbmRleAABMHZhbGlkYXRvcl9pZDkCASxWYWxpZGF0b3JJZAAAAQYQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmdARGlzcHV0ZXNUaW1lU2xvdAAACAE0c2Vzc2lvbl9pbmRleBABMFNlc3Npb25JbmRleAABOGNhbmRpZGF0ZV9oYXNoxQUBNENhbmRpZGF0ZUhhc2gAAAUGEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4IHNsYXNoaW5nTFNsYXNoaW5nT2ZmZW5jZUtpbmQAAQgoRm9ySW52YWxpZAAAADBBZ2FpbnN0VmFsaWQAAQAACQYQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQYcGFsbGV0EENhbGwEBFQAAQhccGxhY2Vfb3JkZXJfYWxsb3dfZGVhdGgIAShtYXhfYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEccGFyYV9pZJECARhQYXJhSWQAADyUQ3JlYXRlIGEgc2luZ2xlIG9uIGRlbWFuZCBjb3JlIG9yZGVyLkkBV2lsbCB1c2UgdGhlIHNwb3QgcHJpY2UgZm9yIHRoZSBjdXJyZW50IGJsb2NrIGFuZCB3aWxsIHJlYXAgdGhlIGFjY291bnQgaWYgbmVlZGVkLgAsUGFyYW1ldGVyczo5AS0gYG9yaWdpbmA6IFRoZSBzZW5kZXIgb2YgdGhlIGNhbGwsIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduIGZyb20gdGhpcyBhY2NvdW50LkkBLSBgbWF4X2Ftb3VudGA6IFRoZSBtYXhpbXVtIGJhbGFuY2UgdG8gd2l0aGRyYXcgZnJvbSB0aGUgb3JpZ2luIHRvIHBsYWNlIGFuIG9yZGVyLg0BLSBgcGFyYV9pZGA6IEEgYFBhcmFJZGAgdGhlIG9yaWdpbiB3YW50cyB0byBwcm92aWRlIGJsb2Nrc3BhY2UgZm9yLgAcRXJyb3JzOuQtIGBJbnN1ZmZpY2llbnRCYWxhbmNlYDogZnJvbSB0aGUgQ3VycmVuY3kgaW1wbGVtZW50YXRpb240LSBgUXVldWVGdWxsYIAtIGBTcG90UHJpY2VIaWdoZXJUaGFuTWF4QW1vdW50YAAcRXZlbnRzOlwtIGBPbkRlbWFuZE9yZGVyUGxhY2VkYFhwbGFjZV9vcmRlcl9rZWVwX2FsaXZlCAEobWF4X2Ftb3VudBgBMEJhbGFuY2VPZjxUPgABHHBhcmFfaWSRAgEYUGFyYUlkAAE8YQFTYW1lIGFzIHRoZSBbYHBsYWNlX29yZGVyX2FsbG93X2RlYXRoYF0oU2VsZjo6cGxhY2Vfb3JkZXJfYWxsb3dfZGVhdGgpIGNhbGwgLCBidXQgd2l0aCBh3GNoZWNrIHRoYXQgcGxhY2luZyB0aGUgb3JkZXIgd2lsbCBub3QgcmVhcCB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6OQEtIGBvcmlnaW5gOiBUaGUgc2VuZGVyIG9mIHRoZSBjYWxsLCBmdW5kcyB3aWxsIGJlIHdpdGhkcmF3biBmcm9tIHRoaXMgYWNjb3VudC5JAS0gYG1heF9hbW91bnRgOiBUaGUgbWF4aW11bSBiYWxhbmNlIHRvIHdpdGhkcmF3IGZyb20gdGhlIG9yaWdpbiB0byBwbGFjZSBhbiBvcmRlci4NAS0gYHBhcmFfaWRgOiBBIGBQYXJhSWRgIHRoZSBvcmlnaW4gd2FudHMgdG8gcHJvdmlkZSBibG9ja3NwYWNlIGZvci4AHEVycm9yczrkLSBgSW5zdWZmaWNpZW50QmFsYW5jZWA6IGZyb20gdGhlIEN1cnJlbmN5IGltcGxlbWVudGF0aW9uNC0gYFF1ZXVlRnVsbGCALSBgU3BvdFByaWNlSGlnaGVyVGhhbk1heEFtb3VudGAAHEV2ZW50czpcLSBgT25EZW1hbmRPcmRlclBsYWNlZGAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuDQYQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uPHBhcmFzX3JlZ2lzdHJhchhwYWxsZXQQQ2FsbAQEVAABJCByZWdpc3RlcgwBCGlkkQIBGFBhcmFJZAABMGdlbmVzaXNfaGVhZLEFASBIZWFkRGF0YQABPHZhbGlkYXRpb25fY29kZa0FAThWYWxpZGF0aW9uQ29kZQAAUPhSZWdpc3RlciBoZWFkIGRhdGEgYW5kIHZhbGlkYXRpb24gY29kZSBmb3IgYSByZXNlcnZlZCBQYXJhIElkLgAwIyMgQXJndW1lbnRzwC0gYG9yaWdpbmA6IE11c3QgYmUgY2FsbGVkIGJ5IGEgYFNpZ25lZGAgb3JpZ2luLi0BLSBgaWRgOiBUaGUgcGFyYSBJRC4gTXVzdCBiZSBvd25lZC9tYW5hZ2VkIGJ5IHRoZSBgb3JpZ2luYCBzaWduaW5nIGFjY291bnQuAQEtIGBnZW5lc2lzX2hlYWRgOiBUaGUgZ2VuZXNpcyBoZWFkIGRhdGEgb2YgdGhlIHBhcmFjaGFpbi90aHJlYWQuJQEtIGB2YWxpZGF0aW9uX2NvZGVgOiBUaGUgaW5pdGlhbCB2YWxpZGF0aW9uIGNvZGUgb2YgdGhlIHBhcmFjaGFpbi90aHJlYWQuAEAjIyBEZXBvc2l0cy9GZWVzCQFUaGUgYWNjb3VudCB3aXRoIHRoZSBvcmlnaW5hdGluZyBzaWduYXR1cmUgbXVzdCByZXNlcnZlIGEgZGVwb3NpdC4ATQFUaGUgZGVwb3NpdCBpcyByZXF1aXJlZCB0byBjb3ZlciB0aGUgY29zdHMgYXNzb2NpYXRlZCB3aXRoIHN0b3JpbmcgdGhlIGdlbmVzaXMgaGVhZHRkYXRhIGFuZCB0aGUgdmFsaWRhdGlvbiBjb2RlLjEBVGhpcyBhY2NvdW50cyBmb3IgdGhlIHBvdGVudGlhbCB0byBzdG9yZSB2YWxpZGF0aW9uIGNvZGUgb2YgYSBzaXplIHVwIHRvIHRoZdxgbWF4X2NvZGVfc2l6ZWAsIGFzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gcGFsbGV0AB0BQW55dGhpbmcgYWxyZWFkeSByZXNlcnZlZCBwcmV2aW91c2x5IGZvciB0aGlzIHBhcmEgSUQgaXMgYWNjb3VudGVkIGZvci4AJCMjIEV2ZW50c9RUaGUgYFJlZ2lzdGVyZWRgIGV2ZW50IGlzIGVtaXR0ZWQgaW4gY2FzZSBvZiBzdWNjZXNzLjhmb3JjZV9yZWdpc3RlchQBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXQYATBCYWxhbmNlT2Y8VD4AAQhpZJECARhQYXJhSWQAATBnZW5lc2lzX2hlYWSxBQEgSGVhZERhdGEAATx2YWxpZGF0aW9uX2NvZGWtBQE4VmFsaWRhdGlvbkNvZGUAARjcRm9yY2UgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIFBhcmEgSWQgb24gdGhlIHJlbGF5IGNoYWluLgC4VGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBieSBhIFJvb3Qgb3JpZ2luLgAZAVRoZSBkZXBvc2l0IHRha2VuIGNhbiBiZSBzcGVjaWZpZWQgZm9yIHRoaXMgcmVnaXN0cmF0aW9uLiBBbnkgYFBhcmFJZGAZAWNhbiBiZSByZWdpc3RlcmVkLCBpbmNsdWRpbmcgc3ViLTEwMDAgSURzIHdoaWNoIGFyZSBTeXN0ZW0gUGFyYWNoYWlucy4oZGVyZWdpc3RlcgQBCGlkkQIBGFBhcmFJZAACEAUBRGVyZWdpc3RlciBhIFBhcmEgSWQsIGZyZWVpbmcgYWxsIGRhdGEgYW5kIHJldHVybmluZyBhbnkgZGVwb3NpdC4AUQFUaGUgY2FsbGVyIG11c3QgYmUgUm9vdCwgdGhlIGBwYXJhYCBvd25lciwgb3IgdGhlIGBwYXJhYCBpdHNlbGYuIFRoZSBwYXJhIG11c3QgYmUgYW5Qb24tZGVtYW5kIHBhcmFjaGFpbi4Qc3dhcAgBCGlkkQIBGFBhcmFJZAABFG90aGVykQIBGFBhcmFJZAADMEEBU3dhcCBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluIHdpdGggYW5vdGhlciBwYXJhY2hhaW4sIGVpdGhlciBvbi1kZW1hbmQgb3IgbGVhc2UgaG9sZGluZy4AAQFUaGUgb3JpZ2luIG11c3QgYmUgUm9vdCwgdGhlIGBwYXJhYCBvd25lciwgb3IgdGhlIGBwYXJhYCBpdHNlbGYuAGEBVGhlIHN3YXAgd2lsbCBoYXBwZW4gb25seSBpZiB0aGVyZSBpcyBhbHJlYWR5IGFuIG9wcG9zaXRlIHN3YXAgcGVuZGluZy4gSWYgdGhlcmUgaXMgbm90LFkBdGhlIHN3YXAgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIHBlbmRpbmcgc3dhcHMgbWFwLCByZWFkeSBmb3IgYSBsYXRlciBjb25maXJtYXRvcnkgc3dhcC4AXQFUaGUgYFBhcmFJZGBzIHJlbWFpbiBtYXBwZWQgdG8gdGhlIHNhbWUgaGVhZCBkYXRhIGFuZCBjb2RlIHNvIGV4dGVybmFsIGNvZGUgY2FuIHJlbHkgb249AWBQYXJhSWRgIHRvIGJlIGEgbG9uZy10ZXJtIGlkZW50aWZpZXIgb2YgYSBub3Rpb25hbCAicGFyYWNoYWluIi4gSG93ZXZlciwgdGhlaXI1AXNjaGVkdWxpbmcgaW5mbyAoaS5lLiB3aGV0aGVyIHRoZXkncmUgYW4gb24tZGVtYW5kIHBhcmFjaGFpbiBvciBsZWFzZSBob2xkaW5nFQFwYXJhY2hhaW4pLCBhdWN0aW9uIGluZm9ybWF0aW9uIGFuZCB0aGUgYXVjdGlvbiBkZXBvc2l0IGFyZSBzd2l0Y2hlZC4scmVtb3ZlX2xvY2sEARBwYXJhkQIBGFBhcmFJZAAEEA0BUmVtb3ZlIGEgbWFuYWdlciBsb2NrIGZyb20gYSBwYXJhLiBUaGlzIHdpbGwgYWxsb3cgdGhlIG1hbmFnZXIgb2YgYTUBcHJldmlvdXNseSBsb2NrZWQgcGFyYSB0byBkZXJlZ2lzdGVyIG9yIHN3YXAgYSBwYXJhIHdpdGhvdXQgdXNpbmcgZ292ZXJuYW5jZS4A3ENhbiBvbmx5IGJlIGNhbGxlZCBieSB0aGUgUm9vdCBvcmlnaW4gb3IgdGhlIHBhcmFjaGFpbi4ccmVzZXJ2ZQAFRJRSZXNlcnZlIGEgUGFyYSBJZCBvbiB0aGUgcmVsYXkgY2hhaW4uAE0BVGhpcyBmdW5jdGlvbiB3aWxsIHJlc2VydmUgYSBuZXcgUGFyYSBJZCB0byBiZSBvd25lZC9tYW5hZ2VkIGJ5IHRoZSBvcmlnaW4gYWNjb3VudC5hAVRoZSBvcmlnaW4gYWNjb3VudCBpcyBhYmxlIHRvIHJlZ2lzdGVyIGhlYWQgZGF0YSBhbmQgdmFsaWRhdGlvbiBjb2RlIHVzaW5nIGByZWdpc3RlcmAgdG9ZAWNyZWF0ZSBhbiBvbi1kZW1hbmQgcGFyYWNoYWluLiBVc2luZyB0aGUgU2xvdHMgcGFsbGV0LCBhbiBvbi1kZW1hbmQgcGFyYWNoYWluIGNhbiB0aGVupGJlIHVwZ3JhZGVkIHRvIGEgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4uADAjIyBBcmd1bWVudHNVAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FsbGVkIGJ5IGEgYFNpZ25lZGAgb3JpZ2luLiBCZWNvbWVzIHRoZSBtYW5hZ2VyL293bmVyIG9mIHRoZSBuZXcoICBwYXJhIElELgBAIyMgRGVwb3NpdHMvRmVlcyEBVGhlIG9yaWdpbiBtdXN0IHJlc2VydmUgYSBkZXBvc2l0IG9mIGBQYXJhRGVwb3NpdGAgZm9yIHRoZSByZWdpc3RyYXRpb24uACQjIyBFdmVudHNZAVRoZSBgUmVzZXJ2ZWRgIGV2ZW50IGlzIGVtaXR0ZWQgaW4gY2FzZSBvZiBzdWNjZXNzLCB3aGljaCBwcm92aWRlcyB0aGUgSUQgcmVzZXJ2ZWQgZm9yEHVzZS4gYWRkX2xvY2sEARBwYXJhkQIBGFBhcmFJZAAGFAkBQWRkIGEgbWFuYWdlciBsb2NrIGZyb20gYSBwYXJhLiBUaGlzIHdpbGwgcHJldmVudCB0aGUgbWFuYWdlciBvZiBhiHBhcmEgdG8gZGVyZWdpc3RlciBvciBzd2FwIGEgcGFyYS4ASQFDYW4gYmUgY2FsbGVkIGJ5IFJvb3QsIHRoZSBwYXJhY2hhaW4sIG9yIHRoZSBwYXJhY2hhaW4gbWFuYWdlciBpZiB0aGUgcGFyYWNoYWluIGlzJHVubG9ja2VkLlRzY2hlZHVsZV9jb2RlX3VwZ3JhZGUIARBwYXJhkQIBGFBhcmFJZAABIG5ld19jb2RlrQUBOFZhbGlkYXRpb25Db2RlAAcsdFNjaGVkdWxlIGEgcGFyYWNoYWluIHVwZ3JhZGUuAFUBVGhpcyB3aWxsIGtpY2sgb2ZmIGEgY2hlY2sgb2YgYG5ld19jb2RlYCBieSBhbGwgdmFsaWRhdG9ycy4gQWZ0ZXIgdGhlIG1ham9yaXR5IG9mIHRoZVUBdmFsaWRhdG9ycyBoYXZlIHJlcG9ydGVkIG9uIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZSwgdGhlIGNvZGUgd2lsbCBlaXRoZXIgYmUgZW5hY3RlZFUBb3IgdGhlIHVwZ3JhZGUgd2lsbCBiZSByZWplY3RlZC4gSWYgdGhlIGNvZGUgd2lsbCBiZSBlbmFjdGVkLCB0aGUgY3VycmVudCBjb2RlIG9mIHRoZV0BcGFyYWNoYWluIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZGlyZWN0bHkuIFRoaXMgbWVhbnMgdGhhdCBhbnkgUG9WIHdpbGwgYmUgY2hlY2tlZCBieSB0aGlzXQFuZXcgY29kZS4gVGhlIHBhcmFjaGFpbiBpdHNlbGYgd2lsbCBub3QgYmUgaW5mb3JtZWQgZXhwbGljaXRseSB0aGF0IHRoZSB2YWxpZGF0aW9uIGNvZGUwaGFzIGNoYW5nZWQuAEkBQ2FuIGJlIGNhbGxlZCBieSBSb290LCB0aGUgcGFyYWNoYWluLCBvciB0aGUgcGFyYWNoYWluIG1hbmFnZXIgaWYgdGhlIHBhcmFjaGFpbiBpcyR1bmxvY2tlZC5Ac2V0X2N1cnJlbnRfaGVhZAgBEHBhcmGRAgEYUGFyYUlkAAEgbmV3X2hlYWSxBQEgSGVhZERhdGEACBCEU2V0IHRoZSBwYXJhY2hhaW4ncyBjdXJyZW50IGhlYWQuAEkBQ2FuIGJlIGNhbGxlZCBieSBSb290LCB0aGUgcGFyYWNoYWluLCBvciB0aGUgcGFyYWNoYWluIG1hbmFnZXIgaWYgdGhlIHBhcmFjaGFpbiBpcyR1bmxvY2tlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuEQYQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uFHNsb3RzGHBhbGxldBBDYWxsBARUAAEMLGZvcmNlX2xlYXNlFAEQcGFyYZECARhQYXJhSWQAARhsZWFzZXIAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AATBwZXJpb2RfYmVnaW4QAUBMZWFzZVBlcmlvZE9mPFQ+AAEwcGVyaW9kX2NvdW50EAFATGVhc2VQZXJpb2RPZjxUPgAAEE0BSnVzdCBhIGNvbm5lY3QgaW50byB0aGUgYGxlYXNlX291dGAgY2FsbCwgaW4gY2FzZSBSb290IHdhbnRzIHRvIGZvcmNlIHNvbWUgbGVhc2UgdG/8aGFwcGVuIGluZGVwZW5kZW50bHkgb2YgYW55IG90aGVyIG9uLWNoYWluIG1lY2hhbmlzbSB0byB1c2UgaXQuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLkBjbGVhcl9hbGxfbGVhc2VzBAEQcGFyYZECARhQYXJhSWQAAQxNAUNsZWFyIGFsbCBsZWFzZXMgZm9yIGEgUGFyYSBJZCwgcmVmdW5kaW5nIGFueSBkZXBvc2l0cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBvd25lcnMuAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBtYXRjaCBgVDo6Rm9yY2VPcmlnaW5gLjx0cmlnZ2VyX29uYm9hcmQEARBwYXJhkQIBGFBhcmFJZAACHCUBVHJ5IHRvIG9uYm9hcmQgYSBwYXJhY2hhaW4gdGhhdCBoYXMgYSBsZWFzZSBmb3IgdGhlIGN1cnJlbnQgbGVhc2UgcGVyaW9kLgBFAVRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWZ1bCBpZiB0aGVyZSB3YXMgc29tZSBzdGF0ZSBpc3N1ZSB3aXRoIGEgcGFyYSB0aGF0IHNob3VsZDkBaGF2ZSBvbmJvYXJkZWQsIGJ1dCB3YXMgdW5hYmxlIHRvLiBBcyBsb25nIGFzIHRoZXkgaGF2ZSBhIGxlYXNlIHBlcmlvZCwgd2UgY2FubGxldCB0aGVtIG9uYm9hcmQgZnJvbSBoZXJlLgDMT3JpZ2luIG11c3QgYmUgc2lnbmVkLCBidXQgY2FuIGJlIGNhbGxlZCBieSBhbnlvbmUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhUGEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbkhwYXJhc19zdWRvX3dyYXBwZXIYcGFsbGV0EENhbGwEBFQAARh0c3Vkb19zY2hlZHVsZV9wYXJhX2luaXRpYWxpemUIAQhpZJECARhQYXJhSWQAARxnZW5lc2lzGQYBPFBhcmFHZW5lc2lzQXJncwAAFA0BU2NoZWR1bGUgYSBwYXJhIHRvIGJlIGluaXRpYWxpemVkIGF0IHRoZSBzdGFydCBvZiB0aGUgbmV4dCBzZXNzaW9uLgBNAVRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3IgVEVTVElORyBhbmQgbm90IG9uIFBST0RVQ1RJT04gY2hhaW5zLiBJdCBhdXRvbWF0aWNhbGx5SQFhc3NpZ25zIENvcmV0aW1lIHRvIHRoZSBjaGFpbiBhbmQgaW5jcmVhc2VzIHRoZSBudW1iZXIgb2YgY29yZXMuIFRodXMsIHRoZXJlIGlzIG5vgHJ1bm5pbmcgY29yZXRpbWUgY2hhaW4gcmVxdWlyZWQuaHN1ZG9fc2NoZWR1bGVfcGFyYV9jbGVhbnVwBAEIaWSRAgEYUGFyYUlkAAEECQFTY2hlZHVsZSBhIHBhcmEgdG8gYmUgY2xlYW5lZCB1cCBhdCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgc2Vzc2lvbi6Ac3Vkb19zY2hlZHVsZV9wYXJhdGhyZWFkX3VwZ3JhZGUEAQhpZJECARhQYXJhSWQAAgQdAVVwZ3JhZGUgYSBwYXJhdGhyZWFkIChvbi1kZW1hbmQgcGFyYWNoYWluKSB0byBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluhHN1ZG9fc2NoZWR1bGVfcGFyYWNoYWluX2Rvd25ncmFkZQQBCGlkkQIBGFBhcmFJZAADBPREb3duZ3JhZGUgYSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB0byBhbiBvbi1kZW1hbmQgcGFyYWNoYWluXHN1ZG9fcXVldWVfZG93bndhcmRfeGNtCAEIaWSRAgEYUGFyYUlkAAEMeGNtHQYBeEJveDx4Y206Om9wYXF1ZTo6VmVyc2lvbmVkWGNtPgAEEJhTZW5kIGEgZG93bndhcmQgWENNIHRvIHRoZSBnaXZlbiBwYXJhLgBRAVRoZSBnaXZlbiBwYXJhY2hhaW4gc2hvdWxkIGV4aXN0IGFuZCB0aGUgcGF5bG9hZCBzaG91bGQgbm90IGV4Y2VlZCB0aGUgcHJlY29uZmlndXJlZKBzaXplIGBjb25maWcubWF4X2Rvd253YXJkX21lc3NhZ2Vfc2l6ZWAubHN1ZG9fZXN0YWJsaXNoX2hybXBfY2hhbm5lbBABGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAEwbWF4X2NhcGFjaXR5EAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAFEAEBRm9yY2VmdWxseSBlc3RhYmxpc2ggYSBjaGFubmVsIGZyb20gdGhlIHNlbmRlciB0byB0aGUgcmVjaXBpZW50LgBVAVRoaXMgaXMgZXF1aXZhbGVudCB0byBzZW5kaW5nIGFuIGBIcm1wOjpocm1wX2luaXRfb3Blbl9jaGFubmVsYCBleHRyaW5zaWMgZm9sbG93ZWQgYnmEYEhybXA6OmhybXBfYWNjZXB0X29wZW5fY2hhbm5lbGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhkGDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXM8UGFyYUdlbmVzaXNBcmdzAAAMATBnZW5lc2lzX2hlYWSxBQEgSGVhZERhdGEAATx2YWxpZGF0aW9uX2NvZGWtBQE4VmFsaWRhdGlvbkNvZGUAASRwYXJhX2tpbmQgASBQYXJhS2luZAAAHQYIDHhjbTBWZXJzaW9uZWRYY20ELFJ1bnRpbWVDYWxsAAEMCFYyBAAhBgFQdjI6OlhjbTxSdW50aW1lQ2FsbD4AAgAIVjMEAG0GAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQA0QYBUHY0OjpYY208UnVudGltZUNhbGw+AAQAACEGDAx4Y20IdjIMWGNtBCxSdW50aW1lQ2FsbAAABAAlBgF0VmVjPEluc3RydWN0aW9uPFJ1bnRpbWVDYWxsPj4AACUGAAACKQYAKQYMDHhjbQh2MixJbnN0cnVjdGlvbgQsUnVudGltZUNhbGwAAXA0V2l0aGRyYXdBc3NldAQALQYBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQALQYBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAC0GASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlDAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2VFBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0LAEMdTY0AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMtBgEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyeQ0FATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzLQYBLE11bHRpQXNzZXRzAAEQZGVzdA0FATRNdWx0aUxvY2F0aW9uAAEMeGNtIQYBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fdHlwZVUGAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCwBDHU2NAABEGNhbGxZBgFoRG91YmxlRW5jb2RlZDxSdW50aW1lQ2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcqkBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplqQEBDHUzMgABMG1heF9jYXBhY2l0eakBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudKkBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yqQEBDHUzMgABGHNlbmRlcqkBAQx1MzIAASRyZWNpcGllbnSpAQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EABEFAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAARBkZXN0DQUBNE11bHRpTG9jYXRpb24AAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0AAwAMERlcG9zaXRBc3NldAwBGGFzc2V0c10GAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c6kBAQx1MzIAASxiZW5lZmljaWFyeQ0FATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQQARhhc3NldHNdBgFATXVsdGlBc3NldEZpbHRlcgABKG1heF9hc3NldHOpAQEMdTMyAAEQZGVzdA0FATRNdWx0aUxvY2F0aW9uAAEMeGNtIQYBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAgBEGdpdmVdBgFATXVsdGlBc3NldEZpbHRlcgABHHJlY2VpdmUtBgEsTXVsdGlBc3NldHMADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNdBgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmUNBQE0TXVsdGlMb2NhdGlvbgABDHhjbSEGARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHNdBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3QNBQE0TXVsdGlMb2NhdGlvbgABDHhjbSEGARxYY208KCk+ABEAMFF1ZXJ5SG9sZGluZxABIHF1ZXJ5X2lkLAEcUXVlcnlJZAABEGRlc3QNBQE0TXVsdGlMb2NhdGlvbgABGGFzc2V0c10GAUBNdWx0aUFzc2V0RmlsdGVyAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAASADBCdXlFeGVjdXRpb24IARBmZWVzNQYBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXRpBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEACEGAUBYY208UnVudGltZUNhbGw+ABUALFNldEFwcGVuZGl4BAAhBgFAWGNtPFJ1bnRpbWVDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHMtBgEsTXVsdGlBc3NldHMAARh0aWNrZXQNBQE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAAC0GEAx4Y20IdjIobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABAAxBgE8VmVjPE11bHRpQXNzZXQ+AAAxBgAAAjUGADUGEAx4Y20IdjIobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZDkGARxBc3NldElkAAEMZnVuPQYBLEZ1bmdpYmlsaXR5AAA5BhAMeGNtCHYyKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQADQUBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEADgBHFZlYzx1OD4AAQAAPQYQDHhjbQh2MihtdWx0aWFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBADdAQEQdTEyOAAAACxOb25GdW5naWJsZQQAQQYBNEFzc2V0SW5zdGFuY2UAAQAAQQYQDHhjbQh2MihtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARwkVW5kZWZpbmVkAAAAFEluZGV4BADdAQEQdTEyOAABABhBcnJheTQEAEgBHFt1ODsgNF0AAgAYQXJyYXk4BAAJAwEcW3U4OyA4XQADABxBcnJheTE2BACoASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFABBCbG9iBAA4ARxWZWM8dTg+AAYAAEUGDAx4Y20IdjIgUmVzcG9uc2UAARAQTnVsbAAAABhBc3NldHMEAC0GASxNdWx0aUFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAEkGAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAQAThzdXBlcjo6VmVyc2lvbgADAABJBgQYT3B0aW9uBARUAU0GAQgQTm9uZQAAABBTb21lBABNBgAAAQAATQYAAAQIEFEGAFEGEAx4Y20IdjIYdHJhaXRzFEVycm9yAAFoIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwBETXVsdGlMb2NhdGlvbkZ1bGwABABoTXVsdGlMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAwAQx1NjQAFQBMVW5oYW5kbGVkWGNtVmVyc2lvbgAWAEhXZWlnaHRMaW1pdFJlYWNoZWQEADABGFdlaWdodAAXABxCYXJyaWVyABgATFdlaWdodE5vdENvbXB1dGFibGUAGQAAVQYMDHhjbQh2MihPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAAWQYMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkOAEcVmVjPHU4PgAAXQYQDHhjbQh2MihtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAC0GASxNdWx0aUFzc2V0cwAAABBXaWxkBABhBgE4V2lsZE11bHRpQXNzZXQAAQAAYQYQDHhjbQh2MihtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEIDEFsbAAAABRBbGxPZggBCGlkOQYBHEFzc2V0SWQAAQxmdW5lBgE8V2lsZEZ1bmdpYmlsaXR5AAEAAGUGEAx4Y20IdjIobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAaQYMDHhjbQh2MixXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQALAEMdTY0AAEAAG0GDAx4Y20IdjMMWGNtBBBDYWxsAAAEAHEGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AABxBgAAAnUGAHUGDAx4Y20IdjMsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAeQYBLE11bHRpQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAeQYBLE11bHRpQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAHkGASxNdWx0aUFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEgcmVzcG9uc2WNBgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AAEccXVlcmllcrUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c3kGASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ57QQBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHN5BgEsTXVsdGlBc3NldHMAARBkZXN07QQBNE11bHRpTG9jYXRpb24AAQx4Y21tBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kuQYBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0KAEYV2VpZ2h0AAEQY2FsbFkGAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXKpAQEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZakBAQx1MzIAATBtYXhfY2FwYWNpdHmpAQEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnSpAQEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcqkBAQx1MzIAARhzZW5kZXKpAQEMdTMyAAEkcmVjaXBpZW50qQEBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADxBAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAC9BgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzwQYBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyee0EATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHPBBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TtBAE0TXVsdGlMb2NhdGlvbgABDHhjbW0GARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlwQYBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50eQYBLE11bHRpQXNzZXRzAAEcbWF4aW1hbCABEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHPBBgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmXtBAE0TXVsdGlMb2NhdGlvbgABDHhjbW0GARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHPBBgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3TtBAE0TXVsdGlMb2NhdGlvbgABDHhjbW0GARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvvQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzwQYBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc4EGAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABtBgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABtBgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c3kGASxNdWx0aUFzc2V0cwABGHRpY2tldO0EATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCgBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAB5BgEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAHkGASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EALUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEAJEGAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQArQYBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb70GAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleKkBAQx1MzIAARBuYW1lOAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABLGNyYXRlX21ham9yqQEBDHUzMgABPG1pbl9jcmF0ZV9taW5vcqkBAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAL0GAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQA9QQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr/QQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9u8QQBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbW0GARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0gQYBKE11bHRpQXNzZXQAASB1bmxvY2tlcu0EATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXSBBgEoTXVsdGlBc3NldAABGHRhcmdldO0EATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXSBBgEoTXVsdGlBc3NldAABFG93bmVy7QQBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0gQYBKE11bHRpQXNzZXQAARhsb2NrZXLtBAE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhdyABEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAO0EATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdM0GASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbrUGAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAAeQYQDHhjbQh2MyhtdWx0aWFzc2V0LE11bHRpQXNzZXRzAAAEAH0GATxWZWM8TXVsdGlBc3NldD4AAH0GAAACgQYAgQYQDHhjbQh2MyhtdWx0aWFzc2V0KE11bHRpQXNzZXQAAAgBCGlkAQUBHEFzc2V0SWQAAQxmdW6FBgEsRnVuZ2liaWxpdHkAAIUGEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQA3QEBEHUxMjgAAAAsTm9uRnVuZ2libGUEAIkGATRBc3NldEluc3RhbmNlAAEAAIkGEAx4Y20IdjMobXVsdGlhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQA3QEBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQACQMBHFt1ODsgOF0AAwAcQXJyYXkxNgQAqAEgW3U4OyAxNl0ABAAcQXJyYXkzMgQABAEgW3U4OyAzMl0ABQAAjQYMDHhjbQh2MyBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAeQYBLE11bHRpQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAkQYBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EABABOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBACdBgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAK0GAThNYXliZUVycm9yQ29kZQAFAACRBgQYT3B0aW9uBARUAZUGAQgQTm9uZQAAABBTb21lBACVBgAAAQAAlQYAAAQIEJkGAJkGEAx4Y20IdjMYdHJhaXRzFEVycm9yAAGgIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEADABDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiAExVbmhhbmRsZWRYY21WZXJzaW9uACMASFdlaWdodExpbWl0UmVhY2hlZAQAKAEYV2VpZ2h0ACQAHEJhcnJpZXIAJQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAmAERFeGNlZWRzU3RhY2tMaW1pdAAnAACdBgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaEGBFMAAAQAqQYBGFZlYzxUPgAAoQYMDHhjbQh2MyhQYWxsZXRJbmZvAAAYARRpbmRleKkBAQx1MzIAARBuYW1lpQYBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWWlBgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcqkBAQx1MzIAARRtaW5vcqkBAQx1MzIAARRwYXRjaKkBAQx1MzIAAKUGDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAqQYAAAKhBgCtBgwMeGNtCHYzOE1heWJlRXJyb3JDb2RlAAEMHFN1Y2Nlc3MAAAAURXJyb3IEALEGAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgABADhUcnVuY2F0ZWRFcnJvcgQAsQYBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAIAALEGDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAtQYEGE9wdGlvbgQEVAHtBAEIEE5vbmUAAAAQU29tZQQA7QQAAAEAALkGDAx4Y20IdjMoT3JpZ2luS2luZAABEBhOYXRpdmUAAABAU292ZXJlaWduQWNjb3VudAABACRTdXBlcnVzZXIAAgAMWGNtAAMAAL0GDAx4Y20IdjNEUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9u7QQBNE11bHRpTG9jYXRpb24AASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAShtYXhfd2VpZ2h0KAEYV2VpZ2h0AADBBhAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAeQYBLE11bHRpQXNzZXRzAAAAEFdpbGQEAMUGAThXaWxkTXVsdGlBc3NldAABAADFBhAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWQBBQEcQXNzZXRJZAABDGZ1bskGATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAqQEBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZAEFARxBc3NldElkAAEMZnVuyQYBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50qQEBDHUzMgADAADJBhAMeGNtCHYzKG11bHRpYXNzZXQ8V2lsZEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlAAAALE5vbkZ1bmdpYmxlAAEAAM0GDAx4Y20IdjMsV2VpZ2h0TGltaXQAAQgkVW5saW1pdGVkAAAAHExpbWl0ZWQEACgBGFdlaWdodAABAADRBgwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEANUGAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AADVBgAAAtkGANkGDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BADdBgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQA3QYBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADdBgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZfEGASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyBQcBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c90GARhBc3NldHMAASxiZW5lZmljaWFyeZkCASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c90GARhBc3NldHMAARBkZXN0mQIBIExvY2F0aW9uAAEMeGNt0QYBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZLkGAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCgBGFdlaWdodAABEGNhbGxZBgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyqQEBDHUzMgABQG1heF9tZXNzYWdlX3NpemWpAQEMdTMyAAEwbWF4X2NhcGFjaXR5qQEBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50qQEBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3KpAQEMdTMyAAEYc2VuZGVyqQEBDHUzMgABJHJlY2lwaWVudKkBAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAnQIBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAAkHAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHMNBwEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeZkCASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyAAEQZGVzdJkCASBMb2NhdGlvbgABDHhjbdEGARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlDQcBLEFzc2V0RmlsdGVyAAEQd2FudN0GARhBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cw0HASxBc3NldEZpbHRlcgABHHJlc2VydmWZAgEgTG9jYXRpb24AAQx4Y23RBgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyAAEQZGVzdJkCASBMb2NhdGlvbgABDHhjbdEGARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvCQcBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPlBgEUQXNzZXQAATB3ZWlnaHRfbGltaXTNBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEANEGASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEANEGASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRz3QYBGEFzc2V0cwABGHRpY2tldJkCASBMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQA3QYBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQA3QYBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAAUHAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBACRBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAK0GAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm8JBwFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXipAQEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcqkBAQx1MzIAATxtaW5fY3JhdGVfbWlub3KpAQEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAAJBwFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAKUCASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya60CASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbp0CAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNt0QYBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTlBgEUQXNzZXQAASB1bmxvY2tlcpkCASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V05QYBFEFzc2V0AAEYdGFyZ2V0mQIBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXTlBgEUQXNzZXQAARRvd25lcpkCASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTlBgEUQXNzZXQAARhsb2NrZXKZAgEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBACZAgEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luBQcBQE9wdGlvbjxMb2NhdGlvbj4ALwAA3QYQLHN0YWdpbmdfeGNtCHY0FGFzc2V0GEFzc2V0cwAABADhBgEoVmVjPEFzc2V0PgAA4QYAAALlBgDlBhAsc3RhZ2luZ194Y20IdjQUYXNzZXQUQXNzZXQAAAgBCGlkBQUBHEFzc2V0SWQAAQxmdW7pBgEsRnVuZ2liaWxpdHkAAOkGECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQA3QEBEHUxMjgAAAAsTm9uRnVuZ2libGUEAO0GATRBc3NldEluc3RhbmNlAAEAAO0GECxzdGFnaW5nX3hjbQh2NBRhc3NldDRBc3NldEluc3RhbmNlAAEYJFVuZGVmaW5lZAAAABRJbmRleAQA3QEBEHUxMjgAAQAYQXJyYXk0BABIARxbdTg7IDRdAAIAGEFycmF5OAQACQMBHFt1ODsgOF0AAwAcQXJyYXkxNgQAqAEgW3U4OyAxNl0ABAAcQXJyYXkzMgQABAEgW3U4OyAzMl0ABQAA8QYMLHN0YWdpbmdfeGNtCHY0IFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBADdBgEYQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAkQYBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EABABOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBAD1BgGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAK0GAThNYXliZUVycm9yQ29kZQAFAAD1BgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfkGBFMAAAQAAQcBGFZlYzxUPgAA+QYMLHN0YWdpbmdfeGNtCHY0KFBhbGxldEluZm8AABgBFGluZGV4qQEBDHUzMgABEG5hbWX9BgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZf0GAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yqQEBDHUzMgABFG1pbm9yqQEBDHUzMgABFHBhdGNoqQEBDHUzMgAA/QYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AAABBwAAAvkGAAUHBBhPcHRpb24EBFQBmQIBCBBOb25lAAAAEFNvbWUEAJkCAAABAAAJBwwsc3RhZ2luZ194Y20IdjREUXVlcnlSZXNwb25zZUluZm8AAAwBLGRlc3RpbmF0aW9umQIBIExvY2F0aW9uAAEgcXVlcnlfaWQsARxRdWVyeUlkAAEobWF4X3dlaWdodCgBGFdlaWdodAAADQcQLHN0YWdpbmdfeGNtCHY0FGFzc2V0LEFzc2V0RmlsdGVyAAEIIERlZmluaXRlBADdBgEYQXNzZXRzAAAAEFdpbGQEABEHASRXaWxkQXNzZXQAAQAAEQcQLHN0YWdpbmdfeGNtCHY0FGFzc2V0JFdpbGRBc3NldAABEAxBbGwAAAAUQWxsT2YIAQhpZAUFARxBc3NldElkAAEMZnVuFQcBPFdpbGRGdW5naWJpbGl0eQABAChBbGxDb3VudGVkBACpAQEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkBQUBHEFzc2V0SWQAAQxmdW4VBwE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnSpAQEMdTMyAAMAABUHECxzdGFnaW5nX3hjbQh2NBRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAGQcQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uIGF1Y3Rpb25zGHBhbGxldBBDYWxsBARUAAEMLG5ld19hdWN0aW9uCAEgZHVyYXRpb26pAQFEQmxvY2tOdW1iZXJGb3I8VD4AAUhsZWFzZV9wZXJpb2RfaW5kZXipAQFATGVhc2VQZXJpb2RPZjxUPgAAFFRDcmVhdGUgYSBuZXcgYXVjdGlvbi4AUQFUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuIHRoZXJlIGlzbid0IGFscmVhZHkgYW4gYXVjdGlvbiBpbiBwcm9ncmVzcyBhbmQgbWF5IG9ubHkgYmUlAWNhbGxlZCBieSB0aGUgcm9vdCBvcmlnaW4uIEFjY2VwdHMgdGhlIGBkdXJhdGlvbmAgb2YgdGhpcyBhdWN0aW9uIGFuZCB0aGVZAWBsZWFzZV9wZXJpb2RfaW5kZXhgIG9mIHRoZSBpbml0aWFsIGxlYXNlIHBlcmlvZCBvZiB0aGUgZm91ciB0aGF0IGFyZSB0byBiZSBhdWN0aW9uZWQuDGJpZBQBEHBhcmEdBwEYUGFyYUlkAAE0YXVjdGlvbl9pbmRleKkBATBBdWN0aW9uSW5kZXgAAShmaXJzdF9zbG90qQEBQExlYXNlUGVyaW9kT2Y8VD4AASRsYXN0X3Nsb3SpAQFATGVhc2VQZXJpb2RPZjxUPgABGGFtb3VudN0BATBCYWxhbmNlT2Y8VD4AAUBJAU1ha2UgYSBuZXcgYmlkIGZyb20gYW4gYWNjb3VudCAoaW5jbHVkaW5nIGEgcGFyYWNoYWluIGFjY291bnQpIGZvciBkZXBsb3lpbmcgYSBuZXcocGFyYWNoYWluLgBZAU11bHRpcGxlIHNpbXVsdGFuZW91cyBiaWRzIGZyb20gdGhlIHNhbWUgYmlkZGVyIGFyZSBhbGxvd2VkIG9ubHkgYXMgbG9uZyBhcyBhbGwgYWN0aXZlPQFiaWRzIG92ZXJsYXAgZWFjaCBvdGhlciAoaS5lLiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlKS4gQmlkcyBjYW5ub3QgYmUgcmVkYWN0ZWQuAFUBLSBgc3ViYCBpcyB0aGUgc3ViLWJpZGRlciBJRCwgYWxsb3dpbmcgZm9yIG11bHRpcGxlIGNvbXBldGluZyBiaWRzIHRvIGJlIG1hZGUgYnkgKGFuZHBmdW5kZWQgYnkpIHRoZSBzYW1lIGFjY291bnQuTQEtIGBhdWN0aW9uX2luZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIGF1Y3Rpb24gdG8gYmlkIG9uLiBTaG91bGQganVzdCBiZSB0aGUgcHJlc2VudGh2YWx1ZSBvZiBgQXVjdGlvbkNvdW50ZXJgLkkBLSBgZmlyc3Rfc2xvdGAgaXMgdGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQkBYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuQQEtIGBsYXN0X3Nsb3RgIGlzIHRoZSBsYXN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQkBYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuSQEtIGBhbW91bnRgIGlzIHRoZSBhbW91bnQgdG8gYmlkIHRvIGJlIGhlbGQgYXMgZGVwb3NpdCBmb3IgdGhlIHBhcmFjaGFpbiBzaG91bGQgdGhlyGJpZCB3aW4uIFRoaXMgYW1vdW50IGlzIGhlbGQgdGhyb3VnaG91dCB0aGUgcmFuZ2UuOGNhbmNlbF9hdWN0aW9uAAIMeENhbmNlbCBhbiBpbi1wcm9ncmVzcyBhdWN0aW9uLgCIQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJvb3Qgb3JpZ2luLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4dBwAABpECACEHEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4YcGFsbGV0EENhbGwEBFQAASQYY3JlYXRlGAEUaW5kZXgdBwEYUGFyYUlkAAEMY2Fw3QEBMEJhbGFuY2VPZjxUPgABMGZpcnN0X3BlcmlvZKkBAUBMZWFzZVBlcmlvZE9mPFQ+AAEsbGFzdF9wZXJpb2SpAQFATGVhc2VQZXJpb2RPZjxUPgABDGVuZKkBAURCbG9ja051bWJlckZvcjxUPgABIHZlcmlmaWVyJQcBTE9wdGlvbjxNdWx0aVNpZ25lcj4AABRNAUNyZWF0ZSBhIG5ldyBjcm93ZGxvYW5pbmcgY2FtcGFpZ24gZm9yIGEgcGFyYWNoYWluIHNsb3Qgd2l0aCB0aGUgZ2l2ZW4gbGVhc2UgcGVyaW9kGHJhbmdlLgBdAVRoaXMgYXBwbGllcyBhIGxvY2sgdG8geW91ciBwYXJhY2hhaW4gY29uZmlndXJhdGlvbiwgZW5zdXJpbmcgdGhhdCBpdCBjYW5ub3QgYmUgY2hhbmdlZGRieSB0aGUgcGFyYWNoYWluIG1hbmFnZXIuKGNvbnRyaWJ1dGUMARRpbmRleB0HARhQYXJhSWQAARR2YWx1Zd0BATBCYWxhbmNlT2Y8VD4AASRzaWduYXR1cmV1AwFYT3B0aW9uPE11bHRpU2lnbmF0dXJlPgABCFEBQ29udHJpYnV0ZSB0byBhIGNyb3dkIHNhbGUuIFRoaXMgd2lsbCB0cmFuc2ZlciBzb21lIGJhbGFuY2Ugb3ZlciB0byBmdW5kIGEgcGFyYWNoYWluUQFzbG90LiBJdCB3aWxsIGJlIHdpdGhkcmF3YWJsZSB3aGVuIHRoZSBjcm93ZGxvYW4gaGFzIGVuZGVkIGFuZCB0aGUgZnVuZHMgYXJlIHVudXNlZC4gd2l0aGRyYXcIAQx3aG8AATBUOjpBY2NvdW50SWQAARRpbmRleB0HARhQYXJhSWQAAkTAV2l0aGRyYXcgZnVsbCBiYWxhbmNlIG9mIGEgc3BlY2lmaWMgY29udHJpYnV0b3IuAMBPcmlnaW4gbXVzdCBiZSBzaWduZWQsIGJ1dCBjYW4gY29tZSBmcm9tIGFueW9uZS4AXQFUaGUgZnVuZCBtdXN0IGJlIGVpdGhlciBpbiwgb3IgcmVhZHkgZm9yLCByZXRpcmVtZW50LiBGb3IgYSBmdW5kIHRvIGJlICppbiogcmV0aXJlbWVudCxJAXRoZW4gdGhlIHJldGlyZW1lbnQgZmxhZyBtdXN0IGJlIHNldC4gRm9yIGEgZnVuZCB0byBiZSByZWFkeSBmb3IgcmV0aXJlbWVudCwgdGhlbjqcLSBpdCBtdXN0IG5vdCBhbHJlYWR5IGJlIGluIHJldGlyZW1lbnQ7TQEtIHRoZSBhbW91bnQgb2YgcmFpc2VkIGZ1bmRzIG11c3QgYmUgYmlnZ2VyIHRoYW4gdGhlIF9mcmVlXyBiYWxhbmNlIG9mIHRoZSBhY2NvdW50OzQtIGFuZCBlaXRoZXI6vCAgLSB0aGUgYmxvY2sgbnVtYmVyIG11c3QgYmUgYXQgbGVhc3QgYGVuZGA7IG9yLQEgIC0gdGhlIGN1cnJlbnQgbGVhc2UgcGVyaW9kIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBmdW5kJ3MgYGxhc3RfcGVyaW9kYC4AVQFJbiB0aGlzIGNhc2UsIHRoZSBmdW5kJ3MgcmV0aXJlbWVudCBmbGFnIGlzIHNldCBhbmQgaXRzIGBlbmRgIGlzIHJlc2V0IHRvIHRoZSBjdXJyZW50NGJsb2NrIG51bWJlci4A8C0gYHdob2A6IFRoZSBhY2NvdW50IHdob3NlIGNvbnRyaWJ1dGlvbiBzaG91bGQgYmUgd2l0aGRyYXduLhkBLSBgaW5kZXhgOiBUaGUgcGFyYWNoYWluIHRvIHdob3NlIGNyb3dkbG9hbiB0aGUgY29udHJpYnV0aW9uIHdhcyBtYWRlLhhyZWZ1bmQEARRpbmRleB0HARhQYXJhSWQAAxTgQXV0b21hdGljYWxseSByZWZ1bmQgY29udHJpYnV0b3JzIG9mIGFuIGVuZGVkIGNyb3dkbG9hbi4hAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZUkBdGltZXMgdG8gZnVsbHkgcmVmdW5kIGFsbCB1c2Vycy4gV2Ugd2lsbCByZWZ1bmQgYFJlbW92ZUtleXNMaW1pdGAgdXNlcnMgYXQgYSB0aW1lLgDAT3JpZ2luIG11c3QgYmUgc2lnbmVkLCBidXQgY2FuIGNvbWUgZnJvbSBhbnlvbmUuIGRpc3NvbHZlBAEUaW5kZXgdBwEYUGFyYUlkAAQEVQFSZW1vdmUgYSBmdW5kIGFmdGVyIHRoZSByZXRpcmVtZW50IHBlcmlvZCBoYXMgZW5kZWQgYW5kIGFsbCBmdW5kcyBoYXZlIGJlZW4gcmV0dXJuZWQuEGVkaXQYARRpbmRleB0HARhQYXJhSWQAAQxjYXDdAQEwQmFsYW5jZU9mPFQ+AAEwZmlyc3RfcGVyaW9kqQEBQExlYXNlUGVyaW9kT2Y8VD4AASxsYXN0X3BlcmlvZKkBAUBMZWFzZVBlcmlvZE9mPFQ+AAEMZW5kqQEBREJsb2NrTnVtYmVyRm9yPFQ+AAEgdmVyaWZpZXIlBwFMT3B0aW9uPE11bHRpU2lnbmVyPgAFDNBFZGl0IHRoZSBjb25maWd1cmF0aW9uIGZvciBhbiBpbi1wcm9ncmVzcyBjcm93ZGxvYW4uAIhDYW4gb25seSBiZSBjYWxsZWQgYnkgUm9vdCBvcmlnaW4uIGFkZF9tZW1vCAEUaW5kZXiRAgEYUGFyYUlkAAEQbWVtbzgBHFZlYzx1OD4ABgzsQWRkIGFuIG9wdGlvbmFsIG1lbW8gdG8gYW4gZXhpc3RpbmcgY3Jvd2Rsb2FuIGNvbnRyaWJ1dGlvbi4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQsIGFuZCB0aGUgdXNlciBtdXN0IGhhdmUgY29udHJpYnV0ZWQgdG8gdGhlIGNyb3dkbG9hbi4QcG9rZQQBFGluZGV4kQIBGFBhcmFJZAAHDHRQb2tlIHRoZSBmdW5kIGludG8gYE5ld1JhaXNlYADcT3JpZ2luIG11c3QgYmUgU2lnbmVkLCBhbmQgdGhlIGZ1bmQgaGFzIG5vbi16ZXJvIHJhaXNlLjhjb250cmlidXRlX2FsbAgBFGluZGV4HQcBGFBhcmFJZAABJHNpZ25hdHVyZXUDAVhPcHRpb248TXVsdGlTaWduYXR1cmU+AAgMYQFDb250cmlidXRlIHlvdXIgZW50aXJlIGJhbGFuY2UgdG8gYSBjcm93ZCBzYWxlLiBUaGlzIHdpbGwgdHJhbnNmZXIgdGhlIGVudGlyZSBiYWxhbmNlIG9mUQFhIHVzZXIgb3ZlciB0byBmdW5kIGEgcGFyYWNoYWluIHNsb3QuIEl0IHdpbGwgYmUgd2l0aGRyYXdhYmxlIHdoZW4gdGhlIGNyb3dkbG9hbiBoYXN8ZW5kZWQgYW5kIHRoZSBmdW5kcyBhcmUgdW51c2VkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4lBwQYT3B0aW9uBARUASkHAQgQTm9uZQAAABBTb21lBAApBwAAAQAAKQcIKHNwX3J1bnRpbWUsTXVsdGlTaWduZXIAAQwcRWQyNTUxOQQABAE8ZWQyNTUxOTo6UHVibGljAAAAHFNyMjU1MTkEAAQBPHNyMjU1MTk6OlB1YmxpYwABABRFY2RzYQQASQIBNGVjZHNhOjpQdWJsaWMAAgAALQcQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uOGFzc2lnbmVkX3Nsb3RzGHBhbGxldBBDYWxsBARUAAEUaGFzc2lnbl9wZXJtX3BhcmFjaGFpbl9zbG90BAEIaWSRAgEYUGFyYUlkAAAEIQFBc3NpZ24gYSBwZXJtYW5lbnQgcGFyYWNoYWluIHNsb3QgYW5kIGltbWVkaWF0ZWx5IGNyZWF0ZSBhIGxlYXNlIGZvciBpdC5oYXNzaWduX3RlbXBfcGFyYWNoYWluX3Nsb3QIAQhpZJECARhQYXJhSWQAAUhsZWFzZV9wZXJpb2Rfc3RhcnQxBwFQU2xvdExlYXNlUGVyaW9kU3RhcnQAAQw5AUFzc2lnbiBhIHRlbXBvcmFyeSBwYXJhY2hhaW4gc2xvdC4gVGhlIGZ1bmN0aW9uIHRyaWVzIHRvIGNyZWF0ZSBhIGxlYXNlIGZvciBpdDkBaW1tZWRpYXRlbHkgaWYgYFNsb3RMZWFzZVBlcmlvZFN0YXJ0OjpDdXJyZW50YCBpcyBzcGVjaWZpZWQsIGFuZCBpZiB0aGUgbnVtYmVyOQFvZiBjdXJyZW50bHkgYWN0aXZlIHRlbXBvcmFyeSBzbG90cyBpcyBiZWxvdyBgTWF4VGVtcG9yYXJ5U2xvdFBlckxlYXNlUGVyaW9kYC5cdW5hc3NpZ25fcGFyYWNoYWluX3Nsb3QEAQhpZJECARhQYXJhSWQAAgTAVW5hc3NpZ24gYSBwZXJtYW5lbnQgb3IgdGVtcG9yYXJ5IHBhcmFjaGFpbiBzbG90XHNldF9tYXhfcGVybWFuZW50X3Nsb3RzBAEUc2xvdHMQAQx1MzIAAwS0U2V0cyB0aGUgc3RvcmFnZSB2YWx1ZSBbYE1heFBlcm1hbmVudFNsb3RzYF0uXHNldF9tYXhfdGVtcG9yYXJ5X3Nsb3RzBAEUc2xvdHMQAQx1MzIABAS0U2V0cyB0aGUgc3RvcmFnZSB2YWx1ZSBbYE1heFRlbXBvcmFyeVNsb3RzYF0uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjEHDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbjhhc3NpZ25lZF9zbG90c1BTbG90TGVhc2VQZXJpb2RTdGFydAABCBxDdXJyZW50AAAAEE5leHQAAQAANQcQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyBjb3JldGltZRhwYWxsZXQQQ2FsbAQEVAABDEhyZXF1ZXN0X2NvcmVfY291bnQEARRjb3VudC0BAQx1MTYAARhRAVJlcXVlc3QgdGhlIGNvbmZpZ3VyYXRpb24gdG8gYmUgdXBkYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNvcmVzLiBXYXJuaW5nOlEBU2luY2UgdGhpcyBvbmx5IHNjaGVkdWxlcyBhIGNvbmZpZ3VyYXRpb24gdXBkYXRlLCBpdCB0YWtlcyB0d28gc2Vzc2lvbnMgdG8gY29tZSBpbnRvHGVmZmVjdC4AmC0gYG9yaWdpbmA6IFJvb3Qgb3IgdGhlIENvcmV0aW1lIENoYWlugC0gYGNvdW50YDogdG90YWwgbnVtYmVyIG9mIGNvcmVzSHJlcXVlc3RfcmV2ZW51ZV9hdAQBEHdoZW4QASxCbG9ja051bWJlcgACEGEBUmVxdWVzdCB0byBjbGFpbSB0aGUgaW5zdGFudGFuZW91cyBjb3JldGltZSBzYWxlcyByZXZlbnVlIHN0YXJ0aW5nIGZyb20gdGhlIGJsb2NrIGl0IHdhc10BbGFzdCBjbGFpbWVkIHVudGlsIGFuZCB1cCB0byB0aGUgYmxvY2sgc3BlY2lmaWVkLiBUaGUgY2xhaW1lZCBhbW91bnQgdmFsdWUgaXMgc2VudCBiYWNrUQF0byB0aGUgQ29yZXRpbWUgY2hhaW4gaW4gYSBgbm90aWZ5X3JldmVudWVgIG1lc3NhZ2UuIEF0IHRoZSBzYW1lIHRpbWUsIHRoZSBhbW91bnQgaXOEdGVsZXBvcnRlZCB0byB0aGUgQ29yZXRpbWUgY2hhaW4uLGFzc2lnbl9jb3JlEAEQY29yZS0BATxCcm9rZXJDb3JlSW5kZXgAARRiZWdpbhABREJsb2NrTnVtYmVyRm9yPFQ+AAEoYXNzaWdubWVudDkHAYxWZWM8KENvcmVBc3NpZ25tZW50LCBQYXJ0c09mNTc2MDApPgABIGVuZF9oaW50oQQBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4ABCRZAVJlY2VpdmUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhlIGBFeHRlcm5hbEJyb2tlck9yaWdpbmAsIGRldGFpbGluZyBob3cgYSBzcGVjaWZpYyBjb3JlIGlzLHRvIGJlIHVzZWQuACxQYXJhbWV0ZXJzOiEBLWBvcmlnaW5gOiBUaGUgYEV4dGVybmFsQnJva2VyT3JpZ2luYCwgYXNzdW1lZCB0byBiZSB0aGUgY29yZXRpbWUgY2hhaW4urC1gY29yZWA6IFRoZSBjb3JlIHRoYXQgc2hvdWxkIGJlIHNjaGVkdWxlZC7YLWBiZWdpbmA6IFRoZSBzdGFydGluZyBibG9ja2hlaWdodCBvZiB0aGUgaW5zdHJ1Y3Rpb24u1C1gYXNzaWdubWVudGA6IEhvdyB0aGUgYmxvY2tzcGFjZSBzaG91bGQgYmUgdXRpbGlzZWQuWQEtYGVuZF9oaW50YDogQW4gb3B0aW9uYWwgaGludCBhcyB0byB3aGVuIHRoaXMgcGFydGljdWxhciBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHdpbGwgZW5kLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy45BwAAAj0HAD0HAAAECEEHRQcAQQcMNHBhbGxldF9icm9rZXJIY29yZXRpbWVfaW50ZXJmYWNlOENvcmVBc3NpZ25tZW50AAEMEElkbGUAAAAQUG9vbAABABBUYXNrBAAQARhUYXNrSWQAAgAARQcMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZTBQYXJ0c09mNTc2MDAAAAQALQEBDHUxNgAASQcMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAATgQc2VuZAgBEGRlc3QJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2UdBgFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3QJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5CQUBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHNNBwFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdAkFAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnkJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c00HAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2VRBwG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodCgBGFdlaWdodAADINBFeGVjdXRlIGFuIFhDTSBtZXNzYWdlIGZyb20gYSBsb2NhbCwgc2lnbmVkLCBvcmlnaW4uAE0BQW4gZXZlbnQgaXMgZGVwb3NpdGVkIGluZGljYXRpbmcgd2hldGhlciBgbXNnYCBjb3VsZCBiZSBleGVjdXRlZCBjb21wbGV0ZWx5IG9yIG9ubHkocGFydGlhbGx5LgBdAU5vIG1vcmUgdGhhbiBgbWF4X3dlaWdodGAgd2lsbCBiZSB1c2VkIGluIGl0cyBhdHRlbXB0ZWQgZXhlY3V0aW9uLiBJZiB0aGlzIGlzIGxlc3MgdGhhbkEBdGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCB0aGF0IHRoZSBtZXNzYWdlIGNvdWxkIHRha2UgdG8gYmUgZXhlY3V0ZWQsIHRoZW4gbm98ZXhlY3V0aW9uIGF0dGVtcHQgd2lsbCBiZSBtYWRlLkRmb3JjZV94Y21fdmVyc2lvbggBIGxvY2F0aW9umQIBNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb26hBAFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbgkFAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb24JBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdAkFAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnkJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c00HAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdAkFAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnkJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c00HAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtEAEMdTMyAAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZCABEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3QJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5CQUBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHNNBwFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbRABDHUzMgABMHdlaWdodF9saW1pdM0GASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRzTQcBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnkJBQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0CQUBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHNNBwFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZX0HAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkgQcBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZX0HAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdB0GAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXTNBgEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLk0HCAx4Y208VmVyc2lvbmVkQXNzZXRzAAEMCFYyBAAtBgE8djI6Ok11bHRpQXNzZXRzAAEACFYzBAB5BgE8djM6Ok11bHRpQXNzZXRzAAMACFY0BADdBgEodjQ6OkFzc2V0cwAEAABRBwgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjIEAFUHAVB2Mjo6WGNtPFJ1bnRpbWVDYWxsPgACAAhWMwQAZQcBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BABxBwFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAAVQcMDHhjbQh2MgxYY20ELFJ1bnRpbWVDYWxsAAAEAFkHAXRWZWM8SW5zdHJ1Y3Rpb248UnVudGltZUNhbGw+PgAAWQcAAAJdBwBdBwwMeGNtCHYyLEluc3RydWN0aW9uBCxSdW50aW1lQ2FsbAABcDRXaXRoZHJhd0Fzc2V0BAAtBgEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAtBgEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQALQYBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UMASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZUUGASBSZXNwb25zZQABKG1heF93ZWlnaHQsAQx1NjQAAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cy0GASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5DQUBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHMtBgEsTXVsdGlBc3NldHMAARBkZXN0DQUBNE11bHRpTG9jYXRpb24AAQx4Y20hBgEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl90eXBlVQYBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N0LAEMdTY0AAEQY2FsbGEHAWhEb3VibGVFbmNvZGVkPFJ1bnRpbWVDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyqQEBDHUzMgABQG1heF9tZXNzYWdlX3NpemWpAQEMdTMyAAEwbWF4X2NhcGFjaXR5qQEBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50qQEBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3KpAQEMdTMyAAEYc2VuZGVyqQEBDHUzMgABJHJlY2lwaWVudKkBAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAEQUBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgwBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABEGRlc3QNBQE0TXVsdGlMb2NhdGlvbgABTG1heF9yZXNwb25zZV93ZWlnaHQsAQx1NjQADAAwRGVwb3NpdEFzc2V0DAEYYXNzZXRzXQYBQE11bHRpQXNzZXRGaWx0ZXIAAShtYXhfYXNzZXRzqQEBDHUzMgABLGJlbmVmaWNpYXJ5DQUBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldBABGGFzc2V0c10GAUBNdWx0aUFzc2V0RmlsdGVyAAEobWF4X2Fzc2V0c6kBAQx1MzIAARBkZXN0DQUBNE11bHRpTG9jYXRpb24AAQx4Y20hBgEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0CAEQZ2l2ZV0GAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVjZWl2ZS0GASxNdWx0aUFzc2V0cwAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c10GAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2ZQ0FATRNdWx0aUxvY2F0aW9uAAEMeGNtIQYBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c10GAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdA0FATRNdWx0aUxvY2F0aW9uAAEMeGNtIQYBHFhjbTwoKT4AEQAwUXVlcnlIb2xkaW5nEAEgcXVlcnlfaWQsARxRdWVyeUlkAAEQZGVzdA0FATRNdWx0aUxvY2F0aW9uAAEYYXNzZXRzXQYBQE11bHRpQXNzZXRGaWx0ZXIAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0LAEMdTY0ABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXM1BgEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdGkGASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAVQcBQFhjbTxSdW50aW1lQ2FsbD4AFQAsU2V0QXBwZW5kaXgEAFUHAUBYY208UnVudGltZUNhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cy0GASxNdWx0aUFzc2V0cwABGHRpY2tldA0FATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEACwBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQsARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodCwBDHU2NAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAAYQcMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkOAEcVmVjPHU4PgAAZQcMDHhjbQh2MwxYY20EEENhbGwAAAQAaQcBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAGkHAAACbQcAbQcMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAB5BgEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAB5BgEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAeQYBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZY0GASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVytQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzeQYBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnntBAE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c3kGASxNdWx0aUFzc2V0cwABEGRlc3TtBAE0TXVsdGlMb2NhdGlvbgABDHhjbW0GARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmS5BgEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3QoARhXZWlnaHQAARBjYWxsYQcBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcqkBAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplqQEBDHUzMgABMG1heF9jYXBhY2l0eakBAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudKkBAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9yqQEBDHUzMgABGHNlbmRlcqkBAQx1MzIAASRyZWNpcGllbnSpAQEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAPEEAVRJbnRlcmlvck11bHRpTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAL0GAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHPBBgFATXVsdGlBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ57QQBNE11bHRpTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c8EGAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdO0EATRNdWx0aUxvY2F0aW9uAAEMeGNtbQYBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmXBBgFATXVsdGlBc3NldEZpbHRlcgABEHdhbnR5BgEsTXVsdGlBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c8EGAUBNdWx0aUFzc2V0RmlsdGVyAAEccmVzZXJ2Ze0EATRNdWx0aUxvY2F0aW9uAAEMeGNtbQYBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c8EGAUBNdWx0aUFzc2V0RmlsdGVyAAEQZGVzdO0EATRNdWx0aUxvY2F0aW9uAAEMeGNtbQYBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm+9BgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHPBBgFATXVsdGlBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzgQYBKE11bHRpQXNzZXQAATB3ZWlnaHRfbGltaXTNBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAGUHASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAGUHASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzeQYBLE11bHRpQXNzZXRzAAEYdGlja2V07QQBNE11bHRpTG9jYXRpb24AGAAQVHJhcAQALAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZCwBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h0KAEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAHkGASxNdWx0aUFzc2V0cwAcACxFeHBlY3RBc3NldAQAeQYBLE11bHRpQXNzZXRzAB0AMEV4cGVjdE9yaWdpbgQAtQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAkQYBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBACtBgE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvvQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4qQEBDHUzMgABEG5hbWU4ARxWZWM8dTg+AAEsbW9kdWxlX25hbWU4ARxWZWM8dTg+AAEsY3JhdGVfbWFqb3KpAQEMdTMyAAE8bWluX2NyYXRlX21pbm9yqQEBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAvQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBAD1BAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmv9BAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27xBAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAEMeGNtbQYBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXSBBgEoTXVsdGlBc3NldAABIHVubG9ja2Vy7QQBNE11bHRpTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldIEGAShNdWx0aUFzc2V0AAEYdGFyZ2V07QQBNE11bHRpTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldIEGAShNdWx0aUFzc2V0AAEUb3duZXLtBAE0TXVsdGlMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXSBBgEoTXVsdGlBc3NldAABGGxvY2tlcu0EATRNdWx0aUxvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3IAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQA7QQBNE11bHRpTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2lutQYBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgAvAABxBwwsc3RhZ2luZ194Y20IdjQMWGNtBBBDYWxsAAAEAHUHAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAB1BwAAAnkHAHkHDCxzdGFnaW5nX3hjbQh2NCxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BADdBgEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQA3QYBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADdBgEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZCwBHFF1ZXJ5SWQAASByZXNwb25zZfEGASBSZXNwb25zZQABKG1heF93ZWlnaHQoARhXZWlnaHQAARxxdWVyaWVyBQcBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c90GARhBc3NldHMAASxiZW5lZmljaWFyeZkCASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c90GARhBc3NldHMAARBkZXN0mQIBIExvY2F0aW9uAAEMeGNt0QYBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZLkGAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdCgBGFdlaWdodAABEGNhbGxhBwFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyqQEBDHUzMgABQG1heF9tZXNzYWdlX3NpemWpAQEMdTMyAAEwbWF4X2NhcGFjaXR5qQEBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50qQEBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3KpAQEMdTMyAAEYc2VuZGVyqQEBDHUzMgABJHJlY2lwaWVudKkBAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAnQIBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAAkHAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHMNBwEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeZkCASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyAAEQZGVzdJkCASBMb2NhdGlvbgABDHhjbdEGARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlDQcBLEFzc2V0RmlsdGVyAAEQd2FudN0GARhBc3NldHMAARxtYXhpbWFsIAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cw0HASxBc3NldEZpbHRlcgABHHJlc2VydmWZAgEgTG9jYXRpb24AAQx4Y23RBgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyAAEQZGVzdJkCASBMb2NhdGlvbgABDHhjbdEGARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvCQcBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzDQcBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXPlBgEUQXNzZXQAATB3ZWlnaHRfbGltaXTNBgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAHEHASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAHEHASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRz3QYBGEFzc2V0cwABGHRpY2tldJkCASBMb2NhdGlvbgAYABBUcmFwBAAsAQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkLAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHQoARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQA3QYBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQA3QYBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAAUHAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBACRBgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAK0GAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lOAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm8JBwFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXipAQEMdTMyAAEQbmFtZTgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZTgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcqkBAQx1MzIAATxtaW5fY3JhdGVfbWlub3KpAQEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAAJBwFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAKUCASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya60CASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbp0CAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNt0QYBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTlBgEUQXNzZXQAASB1bmxvY2tlcpkCASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V05QYBFEFzc2V0AAEYdGFyZ2V0mQIBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXTlBgEUQXNzZXQAARRvd25lcpkCASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTlBgEUQXNzZXQAARhsb2NrZXKZAgEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXcgARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBACZAgEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0zQYBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luBQcBQE9wdGlvbjxMb2NhdGlvbj4ALwAAfQcQUHN0YWdpbmdfeGNtX2V4ZWN1dG9yGHRyYWl0czhhc3NldF90cmFuc2ZlcjBUcmFuc2ZlclR5cGUAARAgVGVsZXBvcnQAAAAwTG9jYWxSZXNlcnZlAAEASERlc3RpbmF0aW9uUmVzZXJ2ZQACADRSZW1vdGVSZXNlcnZlBAAJBQFEVmVyc2lvbmVkTG9jYXRpb24AAwAAgQcIDHhjbUBWZXJzaW9uZWRBc3NldElkAAEICFYzBAABBQEsdjM6OkFzc2V0SWQAAwAIVjQEAAUFASx2NDo6QXNzZXRJZAAEAACFBwxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW6JBwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleBABJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpbokHAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlEAEkUGFnZUluZGV4AAEUaW5kZXgQARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl0KAEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLokHDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkaW5jbHVzaW9uWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQQMVW1wBACNBwEoVW1wUXVldWVJZAAAAACNBwxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJGluY2x1c2lvbihVbXBRdWV1ZUlkAAEEEFBhcmEEAJECARhQYXJhSWQAAAAAkQcMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBBDYWxsBARUAAEMGGNyZWF0ZQgBKGFzc2V0X2tpbmTpBAFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRllQcBJEZpeGVkVTEyOAAAEA0BSW5pdGlhbGl6ZSBhIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYdXBkYXRlCAEoYXNzZXRfa2luZOkEAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGWVBwEkRml4ZWRVMTI4AAEQBQFVcGRhdGUgdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkYcmVtb3ZlBAEoYXNzZXRfa2luZOkEAURCb3g8VDo6QXNzZXRLaW5kPgACECUBUmVtb3ZlIGFuIGV4aXN0aW5nIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMulQcMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEABgBEHUxMjgAAJkHDExwYWxsZXRfcm9vdF90ZXN0aW5nGHBhbGxldBBDYWxsBARUAAEIKGZpbGxfYmxvY2sEARRyYXRpb5QBHFBlcmJpbGwAAAQFAUEgZGlzcGF0Y2ggdGhhdCB3aWxsIGZpbGwgdGhlIGJsb2NrIHdlaWdodCB1cCB0byB0aGUgZ2l2ZW4gcmF0aW8uRHRyaWdnZXJfZGVmZW5zaXZlAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLp0HDDBwYWxsZXRfYmVlZnkYcGFsbGV0EENhbGwEBFQAARxQcmVwb3J0X2RvdWJsZV92b3RpbmcIAUhlcXVpdm9jYXRpb25fcHJvb2ahBwGNAUJveDxEb3VibGVWb3RpbmdQcm9vZjxCbG9ja051bWJlckZvcjxUPiwgVDo6QmVlZnlJZCw8VDo6QmVlZnlJZAphcyBSdW50aW1lQXBwUHVibGljPjo6U2lnbmF0dXJlLD4sPgABPGtleV9vd25lcl9wcm9vZrUBAUBUOjpLZXlPd25lclByb29mAAAQCQFSZXBvcnQgdm90ZXIgZXF1aXZvY2F0aW9uL21pc2JlaGF2aW9yLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGX0ZXF1aXZvY2F0aW9uIHByb29mIGFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZvhhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuIElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZUR3aWxsIGJlIHJlcG9ydGVkLnRyZXBvcnRfZG91YmxlX3ZvdGluZ191bnNpZ25lZAgBSGVxdWl2b2NhdGlvbl9wcm9vZqEHAY0BQm94PERvdWJsZVZvdGluZ1Byb29mPEJsb2NrTnVtYmVyRm9yPFQ+LCBUOjpCZWVmeUlkLDxUOjpCZWVmeUlkCmFzIFJ1bnRpbWVBcHBQdWJsaWM+OjpTaWduYXR1cmUsPiw+AAE8a2V5X293bmVyX3Byb29mtQEBQFQ6OktleU93bmVyUHJvb2YAASQJAVJlcG9ydCB2b3RlciBlcXVpdm9jYXRpb24vbWlzYmVoYXZpb3IuIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZfRlcXVpdm9jYXRpb24gcHJvb2YgYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29m+GFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci4gSWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlRHdpbGwgYmUgcmVwb3J0ZWQuAA0BVGhpcyBleHRyaW5zaWMgbXVzdCBiZSBjYWxsZWQgdW5zaWduZWQgYW5kIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seRUBYmxvY2sgYXV0aG9ycyB3aWxsIGNhbGwgaXQgKHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGApLCBhcyBzdWNoFQFpZiB0aGUgYmxvY2sgYXV0aG9yIGlzIGRlZmluZWQgaXQgd2lsbCBiZSBkZWZpbmVkIGFzIHRoZSBlcXVpdm9jYXRpb24kcmVwb3J0ZXIuPHNldF9uZXdfZ2VuZXNpcwQBPGRlbGF5X2luX2Jsb2NrcxABREJsb2NrTnVtYmVyRm9yPFQ+AAIQXQFSZXNldCBCRUVGWSBjb25zZW5zdXMgYnkgc2V0dGluZyBhIG5ldyBCRUVGWSBnZW5lc2lzIGF0IGBkZWxheV9pbl9ibG9ja3NgIGJsb2NrcyBpbiB0aGUcZnV0dXJlLgC0Tm90ZTogYGRlbGF5X2luX2Jsb2Nrc2AgaGFzIHRvIGJlIGF0IGxlYXN0IDEuSHJlcG9ydF9mb3JrX3ZvdGluZwgBSGVxdWl2b2NhdGlvbl9wcm9vZr0HAa0BQm94PEZvcmtWb3RpbmdQcm9vZjxIZWFkZXJGb3I8VD4sIFQ6OkJlZWZ5SWQsPFQ6OkFuY2VzdHJ5SGVscGVyCmFzIEFuY2VzdHJ5SGVscGVyPEhlYWRlckZvcjxUPj4+OjpQcm9vZiw+LD4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgADDD0BUmVwb3J0IGZvcmsgdm90aW5nIGVxdWl2b2NhdGlvbi4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZikBYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29mIGFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci7ASWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlIHdpbGwgYmUgcmVwb3J0ZWQubHJlcG9ydF9mb3JrX3ZvdGluZ191bnNpZ25lZAgBSGVxdWl2b2NhdGlvbl9wcm9vZr0HAa0BQm94PEZvcmtWb3RpbmdQcm9vZjxIZWFkZXJGb3I8VD4sIFQ6OkJlZWZ5SWQsPFQ6OkFuY2VzdHJ5SGVscGVyCmFzIEFuY2VzdHJ5SGVscGVyPEhlYWRlckZvcjxUPj4+OjpQcm9vZiw+LD4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgAEID0BUmVwb3J0IGZvcmsgdm90aW5nIGVxdWl2b2NhdGlvbi4gVGhpcyBtZXRob2Qgd2lsbCB2ZXJpZnkgdGhlIGVxdWl2b2NhdGlvbiBwcm9vZikBYW5kIHZhbGlkYXRlIHRoZSBnaXZlbiBrZXkgb3duZXJzaGlwIHByb29mIGFnYWluc3QgdGhlIGV4dHJhY3RlZCBvZmZlbmRlci7ASWYgYm90aCBhcmUgdmFsaWQsIHRoZSBvZmZlbmNlIHdpbGwgYmUgcmVwb3J0ZWQuAA0BVGhpcyBleHRyaW5zaWMgbXVzdCBiZSBjYWxsZWQgdW5zaWduZWQgYW5kIGl0IGlzIGV4cGVjdGVkIHRoYXQgb25seRUBYmxvY2sgYXV0aG9ycyB3aWxsIGNhbGwgaXQgKHZhbGlkYXRlZCBpbiBgVmFsaWRhdGVVbnNpZ25lZGApLCBhcyBzdWNoFQFpZiB0aGUgYmxvY2sgYXV0aG9yIGlzIGRlZmluZWQgaXQgd2lsbCBiZSBkZWZpbmVkIGFzIHRoZSBlcXVpdm9jYXRpb24kcmVwb3J0ZXIuaHJlcG9ydF9mdXR1cmVfYmxvY2tfdm90aW5nCAFIZXF1aXZvY2F0aW9uX3Byb29mzQcB6EJveDxGdXR1cmVCbG9ja1ZvdGluZ1Byb29mPEJsb2NrTnVtYmVyRm9yPFQ+LCBUOjpCZWVmeUlkPj4AATxrZXlfb3duZXJfcHJvb2a1AQFAVDo6S2V5T3duZXJQcm9vZgAFDF0BUmVwb3J0IGZ1dHVyZSBibG9jayB2b3RpbmcgZXF1aXZvY2F0aW9uLiBUaGlzIG1ldGhvZCB3aWxsIHZlcmlmeSB0aGUgZXF1aXZvY2F0aW9uIHByb29mKQFhbmQgdmFsaWRhdGUgdGhlIGdpdmVuIGtleSBvd25lcnNoaXAgcHJvb2YgYWdhaW5zdCB0aGUgZXh0cmFjdGVkIG9mZmVuZGVyLsBJZiBib3RoIGFyZSB2YWxpZCwgdGhlIG9mZmVuY2Ugd2lsbCBiZSByZXBvcnRlZC6McmVwb3J0X2Z1dHVyZV9ibG9ja192b3RpbmdfdW5zaWduZWQIAUhlcXVpdm9jYXRpb25fcHJvb2bNBwHoQm94PEZ1dHVyZUJsb2NrVm90aW5nUHJvb2Y8QmxvY2tOdW1iZXJGb3I8VD4sIFQ6OkJlZWZ5SWQ+PgABPGtleV9vd25lcl9wcm9vZrUBAUBUOjpLZXlPd25lclByb29mAAYgXQFSZXBvcnQgZnV0dXJlIGJsb2NrIHZvdGluZyBlcXVpdm9jYXRpb24uIFRoaXMgbWV0aG9kIHdpbGwgdmVyaWZ5IHRoZSBlcXVpdm9jYXRpb24gcHJvb2YpAWFuZCB2YWxpZGF0ZSB0aGUgZ2l2ZW4ga2V5IG93bmVyc2hpcCBwcm9vZiBhZ2FpbnN0IHRoZSBleHRyYWN0ZWQgb2ZmZW5kZXIuwElmIGJvdGggYXJlIHZhbGlkLCB0aGUgb2ZmZW5jZSB3aWxsIGJlIHJlcG9ydGVkLgANAVRoaXMgZXh0cmluc2ljIG11c3QgYmUgY2FsbGVkIHVuc2lnbmVkIGFuZCBpdCBpcyBleHBlY3RlZCB0aGF0IG9ubHkVAWJsb2NrIGF1dGhvcnMgd2lsbCBjYWxsIGl0ICh2YWxpZGF0ZWQgaW4gYFZhbGlkYXRlVW5zaWduZWRgKSwgYXMgc3VjaBUBaWYgdGhlIGJsb2NrIGF1dGhvciBpcyBkZWZpbmVkIGl0IHdpbGwgYmUgZGVmaW5lZCBhcyB0aGUgZXF1aXZvY2F0aW9uJHJlcG9ydGVyLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6hBwhIc3BfY29uc2Vuc3VzX2JlZWZ5RERvdWJsZVZvdGluZ1Byb29mDBhOdW1iZXIBEAhJZAFFAiRTaWduYXR1cmUBpQcACAEUZmlyc3SpBwGIVm90ZU1lc3NhZ2U8TnVtYmVyLCBJZCwgU2lnbmF0dXJlPgABGHNlY29uZKkHAYhWb3RlTWVzc2FnZTxOdW1iZXIsIElkLCBTaWduYXR1cmU+AAClBwxIc3BfY29uc2Vuc3VzX2JlZWZ5MGVjZHNhX2NyeXB0byRTaWduYXR1cmUAAAQAfQMBQGVjZHNhOjpTaWduYXR1cmUAAKkHCEhzcF9jb25zZW5zdXNfYmVlZnksVm90ZU1lc3NhZ2UMGE51bWJlcgEQCElkAUUCJFNpZ25hdHVyZQGlBwAMAShjb21taXRtZW50rQcBSENvbW1pdG1lbnQ8TnVtYmVyPgABCGlkRQIBCElkAAEkc2lnbmF0dXJlpQcBJFNpZ25hdHVyZQAArQcMSHNwX2NvbnNlbnN1c19iZWVmeShjb21taXRtZW50KENvbW1pdG1lbnQEMFRCbG9ja051bWJlcgEQAAwBHHBheWxvYWSxBwEcUGF5bG9hZAABMGJsb2NrX251bWJlchABMFRCbG9ja051bWJlcgABQHZhbGlkYXRvcl9zZXRfaWQwAThWYWxpZGF0b3JTZXRJZAAAsQcMSHNwX2NvbnNlbnN1c19iZWVmeRxwYXlsb2FkHFBheWxvYWQAAAQAtQcBeFZlYzwoQmVlZnlQYXlsb2FkSWQsIFZlYzx1OD4pPgAAtQcAAAK5BwC5BwAABAj1AjgAvQcISHNwX2NvbnNlbnN1c19iZWVmeTxGb3JrVm90aW5nUHJvb2YMGEhlYWRlcgGlAQhJZAFFAjRBbmNlc3RyeVByb29mAcEHAAwBEHZvdGWpBwG4Vm90ZU1lc3NhZ2U8SGVhZGVyOjpOdW1iZXIsIElkLCBJZDo6U2lnbmF0dXJlPgABOGFuY2VzdHJ5X3Byb29mwQcBNEFuY2VzdHJ5UHJvb2YAARhoZWFkZXKlAQEYSGVhZGVyAADBBwhEc3BfbW1yX3ByaW1pdGl2ZXM0QW5jZXN0cnlQcm9vZgQQSGFzaAE0ABABKHByZXZfcGVha3OZAwEkVmVjPEhhc2g+AAE8cHJldl9sZWFmX2NvdW50MAEMdTY0AAEobGVhZl9jb3VudDABJE5vZGVJbmRleAABFGl0ZW1zxQcBQFZlYzwodTY0LCBIYXNoKT4AAMUHAAACyQcAyQcAAAQIMDQAzQcISHNwX2NvbnNlbnN1c19iZWVmeVhGdXR1cmVCbG9ja1ZvdGluZ1Byb29mCBhOdW1iZXIBEAhJZAFFAgAEARB2b3RlqQcBmFZvdGVNZXNzYWdlPE51bWJlciwgSWQsIElkOjpTaWduYXR1cmU+AADRBxBccG9sa2Fkb3RfcnVudGltZV9jb21tb25EaWRlbnRpdHlfbWlncmF0b3IYcGFsbGV0EENhbGwEBFQAAQg0cmVhcF9pZGVudGl0eQQBDHdobwABMFQ6OkFjY291bnRJZAAACEUBUmVhcCB0aGUgYElkZW50aXR5SW5mb2Agb2YgYHdob2AgZnJvbSB0aGUgSWRlbnRpdHkgcGFsbGV0IG9mIGBUYCwgdW5yZXNlcnZpbmcgYW55/GRlcG9zaXRzIGhlbGQgYW5kIHJlbW92aW5nIHN0b3JhZ2UgaXRlbXMgYXNzb2NpYXRlZCB3aXRoIGB3aG9gLjBwb2tlX2RlcG9zaXQEAQx3aG8AATBUOjpBY2NvdW50SWQAAQhRAVVwZGF0ZSB0aGUgZGVwb3NpdCBvZiBgd2hvYC4gTWVhbnQgdG8gYmUgY2FsbGVkIGJ5IHRoZSBzeXN0ZW0gd2l0aCBhbiBYQ00gYFRyYW5zYWN0YDBJbnN0cnVjdGlvbi4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu1QcMKHNwX3J1bnRpbWUYdHJhaXRzLEJsYWtlVHdvMjU2AAAAANkHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAA3QcMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcxRUYWxseQgUVm90ZXMBGBRUb3RhbAAADAEQYXllcxgBFFZvdGVzAAEQbmF5cxgBFFZvdGVzAAEcc3VwcG9ydBgBFFZvdGVzAADhBwxAcGFsbGV0X3doaXRlbGlzdBhwYWxsZXQURXZlbnQEBFQAAQw8Q2FsbFdoaXRlbGlzdGVkBAEkY2FsbF9oYXNoNAEcVDo6SGFzaAAAAFhXaGl0ZWxpc3RlZENhbGxSZW1vdmVkBAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABAGRXaGl0ZWxpc3RlZENhbGxEaXNwYXRjaGVkCAEkY2FsbF9oYXNoNAEcVDo6SGFzaAABGHJlc3VsdOUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwACAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOUHBBhSZXN1bHQIBFQB6QcERQHxBwEICE9rBADpBwAAAAAMRXJyBADxBwAAAQAA6QcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUG9zdERpc3BhdGNoSW5mbwAACAE0YWN0dWFsX3dlaWdodO0HAThPcHRpb248V2VpZ2h0PgABIHBheXNfZmVlZAEQUGF5cwAA7QcEGE9wdGlvbgQEVAEoAQgQTm9uZQAAABBTb21lBAAoAAABAADxBwgoc3BfcnVudGltZWREaXNwYXRjaEVycm9yV2l0aFBvc3RJbmZvBBBJbmZvAekHAAgBJHBvc3RfaW5mb+kHARBJbmZvAAEUZXJyb3JoATREaXNwYXRjaEVycm9yAAD1Bww8cGFsbGV0X3RyZWFzdXJ5GHBhbGxldBRFdmVudAgEVAAESQABMCBTcGVuZGluZwQBQGJ1ZGdldF9yZW1haW5pbmcYATxCYWxhbmNlT2Y8VCwgST4AAATkV2UgaGF2ZSBlbmRlZCBhIHNwZW5kIHBlcmlvZCBhbmQgd2lsbCBub3cgYWxsb2NhdGUgZnVuZHMuHEF3YXJkZWQMAThwcm9wb3NhbF9pbmRleBABNFByb3Bvc2FsSW5kZXgAARRhd2FyZBgBPEJhbGFuY2VPZjxULCBJPgABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAQR8U29tZSBmdW5kcyBoYXZlIGJlZW4gYWxsb2NhdGVkLhRCdXJudAQBLGJ1cm50X2Z1bmRzGAE8QmFsYW5jZU9mPFQsIEk+AAIEiFNvbWUgb2Ygb3VyIGZ1bmRzIGhhdmUgYmVlbiBidXJudC4gUm9sbG92ZXIEAUByb2xsb3Zlcl9iYWxhbmNlGAE8QmFsYW5jZU9mPFQsIEk+AAMELQFTcGVuZGluZyBoYXMgZmluaXNoZWQ7IHRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHJvbGxzIG92ZXIgdW50aWwgbmV4dCBzcGVuZC4cRGVwb3NpdAQBFHZhbHVlGAE8QmFsYW5jZU9mPFQsIEk+AAQEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGRlcG9zaXRlZC40U3BlbmRBcHByb3ZlZAwBOHByb3Bvc2FsX2luZGV4EAE0UHJvcG9zYWxJbmRleAABGGFtb3VudBgBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAEwVDo6QWNjb3VudElkAAUEnEEgbmV3IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLjxVcGRhdGVkSW5hY3RpdmUIASxyZWFjdGl2YXRlZBgBPEJhbGFuY2VPZjxULCBJPgABLGRlYWN0aXZhdGVkGAE8QmFsYW5jZU9mPFQsIEk+AAYEzFRoZSBpbmFjdGl2ZSBmdW5kcyBvZiB0aGUgcGFsbGV0IGhhdmUgYmVlbiB1cGRhdGVkLkhBc3NldFNwZW5kQXBwcm92ZWQYARRpbmRleBABKFNwZW5kSW5kZXgAAShhc3NldF9raW5k6QQBMFQ6OkFzc2V0S2luZAABGGFtb3VudBgBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkJBQE4VDo6QmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tEAFEQmxvY2tOdW1iZXJGb3I8VD4AASRleHBpcmVfYXQQAURCbG9ja051bWJlckZvcjxUPgAHBLRBIG5ldyBhc3NldCBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC5AQXNzZXRTcGVuZFZvaWRlZAQBFGluZGV4EAEoU3BlbmRJbmRleAAIBHRBbiBhcHByb3ZlZCBzcGVuZCB3YXMgdm9pZGVkLhBQYWlkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZDABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACQRMQSBwYXltZW50IGhhcHBlbmVkLjRQYXltZW50RmFpbGVkCAEUaW5kZXgQAShTcGVuZEluZGV4AAEocGF5bWVudF9pZDABZDxUOjpQYXltYXN0ZXIgYXMgUGF5Pjo6SWQACgSQQSBwYXltZW50IGZhaWxlZCBhbmQgY2FuIGJlIHJldHJpZWQuOFNwZW5kUHJvY2Vzc2VkBAEUaW5kZXgQAShTcGVuZEluZGV4AAsITQFBIHNwZW5kIHdhcyBwcm9jZXNzZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZS4gSXQgbWlnaHQgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseXBwYWlkIG9yIGl0IG1heSBoYXZlIGV4cGlyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0+QcMYHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZxhwYWxsZXQURXZlbnQEBFQAARAkRGVsZWdhdGVkDAEUYWdlbnQAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAAR8RnVuZHMgZGVsZWdhdGVkIGJ5IGEgZGVsZWdhdG9yLiBSZWxlYXNlZAwBFGFnZW50AAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEeEZ1bmRzIHJlbGVhc2VkIHRvIGEgZGVsZWdhdG9yLhxTbGFzaGVkDAEUYWdlbnQAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAgR8RnVuZHMgc2xhc2hlZCBmcm9tIGEgZGVsZWdhdG9yLkhNaWdyYXRlZERlbGVnYXRpb24MARRhZ2VudAABMFQ6OkFjY291bnRJZAABJGRlbGVnYXRvcgABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgADBMRVbmNsYWltZWQgZGVsZWdhdGlvbiBmdW5kcyBtaWdyYXRlZCB0byBkZWxlZ2F0b3IuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0/QcQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRpbmNsdXNpb24YcGFsbGV0FEV2ZW50BARUAAEQPENhbmRpZGF0ZUJhY2tlZBAAAQgBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AALEFASBIZWFkRGF0YQAABQgBJENvcmVJbmRleAAACQgBKEdyb3VwSW5kZXgAAATAQSBjYW5kaWRhdGUgd2FzIGJhY2tlZC4gYFtjYW5kaWRhdGUsIGhlYWRfZGF0YV1gRENhbmRpZGF0ZUluY2x1ZGVkEAABCAFkQ2FuZGlkYXRlUmVjZWlwdDxUOjpIYXNoPgAAsQUBIEhlYWREYXRhAAAFCAEkQ29yZUluZGV4AAAJCAEoR3JvdXBJbmRleAABBMhBIGNhbmRpZGF0ZSB3YXMgaW5jbHVkZWQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYERDYW5kaWRhdGVUaW1lZE91dAwAAQgBZENhbmRpZGF0ZVJlY2VpcHQ8VDo6SGFzaD4AALEFASBIZWFkRGF0YQAABQgBJENvcmVJbmRleAACBLxBIGNhbmRpZGF0ZSB0aW1lZCBvdXQuIGBbY2FuZGlkYXRlLCBoZWFkX2RhdGFdYFhVcHdhcmRNZXNzYWdlc1JlY2VpdmVkCAEQZnJvbZECARhQYXJhSWQAARRjb3VudBABDHUzMgADBPhTb21lIHVwd2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldAEIDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4QENhbmRpZGF0ZVJlY2VpcHQEBEgBNAAIAShkZXNjcmlwdG9yhQUBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AAUBjb21taXRtZW50c19oYXNoNAEQSGFzaAAABQgMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgkQ29yZUluZGV4AAAEABABDHUzMgAACQgMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgoR3JvdXBJbmRleAAABAAQAQx1MzIAAA0IEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXMYcGFsbGV0FEV2ZW50AAEgSEN1cnJlbnRDb2RlVXBkYXRlZAQAkQIBGFBhcmFJZAAABMxDdXJyZW50IGNvZGUgaGFzIGJlZW4gdXBkYXRlZCBmb3IgYSBQYXJhLiBgcGFyYV9pZGBIQ3VycmVudEhlYWRVcGRhdGVkBACRAgEYUGFyYUlkAAEEzEN1cnJlbnQgaGVhZCBoYXMgYmVlbiB1cGRhdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYFBDb2RlVXBncmFkZVNjaGVkdWxlZAQAkQIBGFBhcmFJZAACBNxBIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBzY2hlZHVsZWQgZm9yIGEgUGFyYS4gYHBhcmFfaWRgME5ld0hlYWROb3RlZAQAkQIBGFBhcmFJZAADBLxBIG5ldyBoZWFkIGhhcyBiZWVuIG5vdGVkIGZvciBhIFBhcmEuIGBwYXJhX2lkYDBBY3Rpb25RdWV1ZWQIAJECARhQYXJhSWQAABABMFNlc3Npb25JbmRleAAEBPBBIHBhcmEgaGFzIGJlZW4gcXVldWVkIHRvIGV4ZWN1dGUgcGVuZGluZyBhY3Rpb25zLiBgcGFyYV9pZGA8UHZmQ2hlY2tTdGFydGVkCACRBQFIVmFsaWRhdGlvbkNvZGVIYXNoAACRAgEYUGFyYUlkAAUIVQFUaGUgZ2l2ZW4gcGFyYSBlaXRoZXIgaW5pdGlhdGVkIG9yIHN1YnNjcmliZWQgdG8gYSBQVkYgY2hlY2sgZm9yIHRoZSBnaXZlbiB2YWxpZGF0aW9ubGNvZGUuIGBjb2RlX2hhc2hgIGBwYXJhX2lkYEBQdmZDaGVja0FjY2VwdGVkCACRBQFIVmFsaWRhdGlvbkNvZGVIYXNoAACRAgEYUGFyYUlkAAYIEQFUaGUgZ2l2ZW4gdmFsaWRhdGlvbiBjb2RlIHdhcyBhY2NlcHRlZCBieSB0aGUgUFZGIHByZS1jaGVja2luZyB2b3RlLlRgY29kZV9oYXNoYCBgcGFyYV9pZGBAUHZmQ2hlY2tSZWplY3RlZAgAkQUBSFZhbGlkYXRpb25Db2RlSGFzaAAAkQIBGFBhcmFJZAAHCBEBVGhlIGdpdmVuIHZhbGlkYXRpb24gY29kZSB3YXMgcmVqZWN0ZWQgYnkgdGhlIFBWRiBwcmUtY2hlY2tpbmcgdm90ZS5UYGNvZGVfaGFzaGAgYHBhcmFfaWRgBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0EQgQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxBocm1wGHBhbGxldBRFdmVudAQEVAABHFBPcGVuQ2hhbm5lbFJlcXVlc3RlZBABGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAABHBPcGVuIEhSTVAgY2hhbm5lbCByZXF1ZXN0ZWQuTE9wZW5DaGFubmVsQ2FuY2VsZWQIATBieV9wYXJhY2hhaW6RAgEYUGFyYUlkAAEoY2hhbm5lbF9pZPEFATRIcm1wQ2hhbm5lbElkAAEEKQFBbiBIUk1QIGNoYW5uZWwgcmVxdWVzdCBzZW50IGJ5IHRoZSByZWNlaXZlciB3YXMgY2FuY2VsZWQgYnkgZWl0aGVyIHBhcnR5LkxPcGVuQ2hhbm5lbEFjY2VwdGVkCAEYc2VuZGVykQIBGFBhcmFJZAABJHJlY2lwaWVudJECARhQYXJhSWQAAgRsT3BlbiBIUk1QIGNoYW5uZWwgYWNjZXB0ZWQuNENoYW5uZWxDbG9zZWQIATBieV9wYXJhY2hhaW6RAgEYUGFyYUlkAAEoY2hhbm5lbF9pZPEFATRIcm1wQ2hhbm5lbElkAAMEUEhSTVAgY2hhbm5lbCBjbG9zZWQuWEhybXBDaGFubmVsRm9yY2VPcGVuZWQQARhzZW5kZXKRAgEYUGFyYUlkAAEkcmVjaXBpZW50kQIBGFBhcmFJZAABVHByb3Bvc2VkX21heF9jYXBhY2l0eRABDHUzMgABZHByb3Bvc2VkX21heF9tZXNzYWdlX3NpemUQAQx1MzIABASsQW4gSFJNUCBjaGFubmVsIHdhcyBvcGVuZWQgdmlhIFJvb3Qgb3JpZ2luLlxIcm1wU3lzdGVtQ2hhbm5lbE9wZW5lZBABGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAFUcHJvcG9zZWRfbWF4X2NhcGFjaXR5EAEMdTMyAAFkcHJvcG9zZWRfbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgAFBLxBbiBIUk1QIGNoYW5uZWwgd2FzIG9wZW5lZCB3aXRoIGEgc3lzdGVtIGNoYWluLmhPcGVuQ2hhbm5lbERlcG9zaXRzVXBkYXRlZAgBGHNlbmRlcpECARhQYXJhSWQAASRyZWNpcGllbnSRAgEYUGFyYUlkAAYEoEFuIEhSTVAgY2hhbm5lbCdzIGRlcG9zaXRzIHdlcmUgdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQVCBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzGHBhbGxldBRFdmVudAQEVAABDEBEaXNwdXRlSW5pdGlhdGVkCADFBQE0Q2FuZGlkYXRlSGFzaAAAGQgBPERpc3B1dGVMb2NhdGlvbgAABAkBQSBkaXNwdXRlIGhhcyBiZWVuIGluaXRpYXRlZC4gXFtjYW5kaWRhdGUgaGFzaCwgZGlzcHV0ZSBsb2NhdGlvblxdQERpc3B1dGVDb25jbHVkZWQIAMUFATRDYW5kaWRhdGVIYXNoAAAdCAE0RGlzcHV0ZVJlc3VsdAABCMxBIGRpc3B1dGUgaGFzIGNvbmNsdWRlZCBmb3Igb3IgYWdhaW5zdCBhIGNhbmRpZGF0ZS60YFxbcGFyYSBpZCwgY2FuZGlkYXRlIGhhc2gsIGRpc3B1dGUgcmVzdWx0XF1gGFJldmVydAQAEAFEQmxvY2tOdW1iZXJGb3I8VD4AAhD8QSBkaXNwdXRlIGhhcyBjb25jbHVkZWQgd2l0aCBzdXBlcm1ham9yaXR5IGFnYWluc3QgYSBjYW5kaWRhdGUuDQFCbG9jayBhdXRob3JzIHNob3VsZCBubyBsb25nZXIgYnVpbGQgb24gdG9wIG9mIHRoaXMgaGVhZCBhbmQgc2hvdWxkAQFpbnN0ZWFkIHJldmVydCB0aGUgYmxvY2sgYXQgdGhlIGdpdmVuIGhlaWdodC4gVGhpcyBzaG91bGQgYmUgdGhl/G51bWJlciBvZiB0aGUgY2hpbGQgb2YgdGhlIGxhc3Qga25vd24gdmFsaWQgYmxvY2sgaW4gdGhlIGNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBkIDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgZGlzcHV0ZXM8RGlzcHV0ZUxvY2F0aW9uAAEIFExvY2FsAAAAGFJlbW90ZQABAAAdCAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzNERpc3B1dGVSZXN1bHQAAQgUVmFsaWQAAAAcSW52YWxpZAABAAAhCBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJG9uX2RlbWFuZBhwYWxsZXQURXZlbnQEBFQAAQhMT25EZW1hbmRPcmRlclBsYWNlZAwBHHBhcmFfaWSRAgEYUGFyYUlkAAEoc3BvdF9wcmljZRgBMEJhbGFuY2VPZjxUPgABKG9yZGVyZWRfYnkAATBUOjpBY2NvdW50SWQAAAQNAUFuIG9yZGVyIHdhcyBwbGFjZWQgYXQgc29tZSBzcG90IHByaWNlIGFtb3VudCBieSBvcmRlcmVyIG9yZGVyZWRfYnkwU3BvdFByaWNlU2V0BAEoc3BvdF9wcmljZRgBMEJhbGFuY2VPZjxUPgABBLhUaGUgdmFsdWUgb2YgdGhlIHNwb3QgcHJpY2UgaGFzIGxpa2VseSBjaGFuZ2VkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0JQgQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uPHBhcmFzX3JlZ2lzdHJhchhwYWxsZXQURXZlbnQEBFQAARAoUmVnaXN0ZXJlZAgBHHBhcmFfaWSRAgEYUGFyYUlkAAEcbWFuYWdlcgABMFQ6OkFjY291bnRJZAAAADBEZXJlZ2lzdGVyZWQEARxwYXJhX2lkkQIBGFBhcmFJZAABACBSZXNlcnZlZAgBHHBhcmFfaWSRAgEYUGFyYUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAIAHFN3YXBwZWQIARxwYXJhX2lkkQIBGFBhcmFJZAABIG90aGVyX2lkkQIBGFBhcmFJZAADAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCkIEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbhRzbG90cxhwYWxsZXQURXZlbnQEBFQAAQg4TmV3TGVhc2VQZXJpb2QEATBsZWFzZV9wZXJpb2QQAUBMZWFzZVBlcmlvZE9mPFQ+AAAEkEEgbmV3IGBbbGVhc2VfcGVyaW9kXWAgaXMgYmVnaW5uaW5nLhhMZWFzZWQYARxwYXJhX2lkkQIBGFBhcmFJZAABGGxlYXNlcgABMFQ6OkFjY291bnRJZAABMHBlcmlvZF9iZWdpbhABQExlYXNlUGVyaW9kT2Y8VD4AATBwZXJpb2RfY291bnQQAUBMZWFzZVBlcmlvZE9mPFQ+AAE4ZXh0cmFfcmVzZXJ2ZWQYATBCYWxhbmNlT2Y8VD4AATB0b3RhbF9hbW91bnQYATBCYWxhbmNlT2Y8VD4AAQw1AUEgcGFyYSBoYXMgd29uIHRoZSByaWdodCB0byBhIGNvbnRpbnVvdXMgc2V0IG9mIGxlYXNlIHBlcmlvZHMgYXMgYSBwYXJhY2hhaW4uRQFGaXJzdCBiYWxhbmNlIGlzIGFueSBleHRyYSBhbW91bnQgcmVzZXJ2ZWQgb24gdG9wIG9mIHRoZSBwYXJhJ3MgZXhpc3RpbmcgZGVwb3NpdC6wU2Vjb25kIGJhbGFuY2UgaXMgdGhlIHRvdGFsIGFtb3VudCByZXNlcnZlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQtCBBccG9sa2Fkb3RfcnVudGltZV9jb21tb24gYXVjdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEcOEF1Y3Rpb25TdGFydGVkDAE0YXVjdGlvbl9pbmRleBABMEF1Y3Rpb25JbmRleAABMGxlYXNlX3BlcmlvZBABQExlYXNlUGVyaW9kT2Y8VD4AARhlbmRpbmcQAURCbG9ja051bWJlckZvcjxUPgAACEkBQW4gYXVjdGlvbiBzdGFydGVkLiBQcm92aWRlcyBpdHMgaW5kZXggYW5kIHRoZSBibG9jayBudW1iZXIgd2hlcmUgaXQgd2lsbCBiZWdpbiB0bxUBY2xvc2UgYW5kIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2Qgb2YgdGhlIHF1YWRydXBsZXQgdGhhdCBpcyBhdWN0aW9uZWQuNEF1Y3Rpb25DbG9zZWQEATRhdWN0aW9uX2luZGV4EAEwQXVjdGlvbkluZGV4AAEEuEFuIGF1Y3Rpb24gZW5kZWQuIEFsbCBmdW5kcyBiZWNvbWUgdW5yZXNlcnZlZC4gUmVzZXJ2ZWQMARhiaWRkZXIAATBUOjpBY2NvdW50SWQAAThleHRyYV9yZXNlcnZlZBgBMEJhbGFuY2VPZjxUPgABMHRvdGFsX2Ftb3VudBgBMEJhbGFuY2VPZjxUPgACCEkBRnVuZHMgd2VyZSByZXNlcnZlZCBmb3IgYSB3aW5uaW5nIGJpZC4gRmlyc3QgYmFsYW5jZSBpcyB0aGUgZXh0cmEgYW1vdW50IHJlc2VydmVkLlBTZWNvbmQgaXMgdGhlIHRvdGFsLihVbnJlc2VydmVkCAEYYmlkZGVyAAEwVDo6QWNjb3VudElkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAMEKQFGdW5kcyB3ZXJlIHVucmVzZXJ2ZWQgc2luY2UgYmlkZGVyIGlzIG5vIGxvbmdlciBhY3RpdmUuIGBbYmlkZGVyLCBhbW91bnRdYEhSZXNlcnZlQ29uZmlzY2F0ZWQMARxwYXJhX2lkkQIBGFBhcmFJZAABGGxlYXNlcgABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAECFUBU29tZW9uZSBhdHRlbXB0ZWQgdG8gbGVhc2UgdGhlIHNhbWUgc2xvdCB0d2ljZSBmb3IgYSBwYXJhY2hhaW4uIFRoZSBhbW91bnQgaXMgaGVsZCBpbrhyZXNlcnZlIGJ1dCBubyBwYXJhY2hhaW4gc2xvdCBoYXMgYmVlbiBsZWFzZWQuLEJpZEFjY2VwdGVkFAEYYmlkZGVyAAEwVDo6QWNjb3VudElkAAEccGFyYV9pZJECARhQYXJhSWQAARhhbW91bnQYATBCYWxhbmNlT2Y8VD4AAShmaXJzdF9zbG90EAFATGVhc2VQZXJpb2RPZjxUPgABJGxhc3Rfc2xvdBABQExlYXNlUGVyaW9kT2Y8VD4ABQTIQSBuZXcgYmlkIGhhcyBiZWVuIGFjY2VwdGVkIGFzIHRoZSBjdXJyZW50IHdpbm5lci40V2lubmluZ09mZnNldAgBNGF1Y3Rpb25faW5kZXgQATBBdWN0aW9uSW5kZXgAATBibG9ja19udW1iZXIQAURCbG9ja051bWJlckZvcjxUPgAGCFkBVGhlIHdpbm5pbmcgb2Zmc2V0IHdhcyBjaG9zZW4gZm9yIGFuIGF1Y3Rpb24uIFRoaXMgd2lsbCBtYXAgaW50byB0aGUgYFdpbm5pbmdgIHN0b3JhZ2UQbWFwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDEIEFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4YcGFsbGV0FEV2ZW50BARUAAEoHENyZWF0ZWQEARxwYXJhX2lkkQIBGFBhcmFJZAAABIxDcmVhdGUgYSBuZXcgY3Jvd2Rsb2FuaW5nIGNhbXBhaWduLixDb250cmlidXRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABKGZ1bmRfaW5kZXiRAgEYUGFyYUlkAAEYYW1vdW50GAEwQmFsYW5jZU9mPFQ+AAEEcENvbnRyaWJ1dGVkIHRvIGEgY3Jvd2Qgc2FsZS4gV2l0aGRyZXcMAQx3aG8AATBUOjpBY2NvdW50SWQAAShmdW5kX2luZGV4kQIBGFBhcmFJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgACBJxXaXRoZHJldyBmdWxsIGJhbGFuY2Ugb2YgYSBjb250cmlidXRvci5EUGFydGlhbGx5UmVmdW5kZWQEARxwYXJhX2lkkQIBGFBhcmFJZAADCC0BVGhlIGxvYW5zIGluIGEgZnVuZCBoYXZlIGJlZW4gcGFydGlhbGx5IGRpc3NvbHZlZCwgaS5lLiB0aGVyZSBhcmUgc29tZSBsZWZ0tG92ZXIgY2hpbGQga2V5cyB0aGF0IHN0aWxsIG5lZWQgdG8gYmUga2lsbGVkLixBbGxSZWZ1bmRlZAQBHHBhcmFfaWSRAgEYUGFyYUlkAAQEnEFsbCBsb2FucyBpbiBhIGZ1bmQgaGF2ZSBiZWVuIHJlZnVuZGVkLiREaXNzb2x2ZWQEARxwYXJhX2lkkQIBGFBhcmFJZAAFBEhGdW5kIGlzIGRpc3NvbHZlZC48SGFuZGxlQmlkUmVzdWx0CAEccGFyYV9pZJECARhQYXJhSWQAARhyZXN1bHT0AThEaXNwYXRjaFJlc3VsdAAGBPRUaGUgcmVzdWx0IG9mIHRyeWluZyB0byBzdWJtaXQgYSBuZXcgYmlkIHRvIHRoZSBTbG90cyBwYWxsZXQuGEVkaXRlZAQBHHBhcmFfaWSRAgEYUGFyYUlkAAcExFRoZSBjb25maWd1cmF0aW9uIHRvIGEgY3Jvd2Rsb2FuIGhhcyBiZWVuIGVkaXRlZC4sTWVtb1VwZGF0ZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARxwYXJhX2lkkQIBGFBhcmFJZAABEG1lbW84ARxWZWM8dTg+AAgEYEEgbWVtbyBoYXMgYmVlbiB1cGRhdGVkLjxBZGRlZFRvTmV3UmFpc2UEARxwYXJhX2lkkQIBGFBhcmFJZAAJBKBBIHBhcmFjaGFpbiBoYXMgYmVlbiBtb3ZlZCB0byBgTmV3UmFpc2VgBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0NQgQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uOGFzc2lnbmVkX3Nsb3RzGHBhbGxldBRFdmVudAQEVAABEFRQZXJtYW5lbnRTbG90QXNzaWduZWQEAJECARhQYXJhSWQAAATMQSBwYXJhY2hhaW4gd2FzIGFzc2lnbmVkIGEgcGVybWFuZW50IHBhcmFjaGFpbiBzbG90VFRlbXBvcmFyeVNsb3RBc3NpZ25lZAQAkQIBGFBhcmFJZAABBMxBIHBhcmFjaGFpbiB3YXMgYXNzaWduZWQgYSB0ZW1wb3JhcnkgcGFyYWNoYWluIHNsb3RgTWF4UGVybWFuZW50U2xvdHNDaGFuZ2VkBAEUc2xvdHMQAQx1MzIAAgTYVGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcm1hbmVudCBzbG90cyBoYXMgYmVlbiBjaGFuZ2VkYE1heFRlbXBvcmFyeVNsb3RzQ2hhbmdlZAQBFHNsb3RzEAEMdTMyAAME2FRoZSBtYXhpbXVtIG51bWJlciBvZiB0ZW1wb3Jhcnkgc2xvdHMgaGFzIGJlZW4gY2hhbmdlZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldDkIEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgY29yZXRpbWUYcGFsbGV0FEV2ZW50BARUAAEIUFJldmVudWVJbmZvUmVxdWVzdGVkBAEQd2hlbhABREJsb2NrTnVtYmVyRm9yPFQ+AAAEIQFUaGUgYnJva2VyIGNoYWluIGhhcyBhc2tlZCBmb3IgcmV2ZW51ZSBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBibG9jay4wQ29yZUFzc2lnbmVkBAEQY29yZQUIASRDb3JlSW5kZXgAAQTsQSBjb3JlIGhhcyByZWNlaXZlZCBhIG5ldyBhc3NpZ25tZW50IGZyb20gdGhlIGJyb2tlciBjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9CAwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAWAkQXR0ZW1wdGVkBAEcb3V0Y29tZUEIAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbpkCASBMb2NhdGlvbgABLGRlc3RpbmF0aW9umQIBIExvY2F0aW9uAAEcbWVzc2FnZdEGARxYY208KCk+AAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAAQRcQSBYQ00gbWVzc2FnZSB3YXMgc2VudC5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lumQIBIExvY2F0aW9uAAEgcXVlcnlfaWQwARxRdWVyeUlkAAIMWQFRdWVyeSByZXNwb25zZSByZWNlaXZlZCB3aGljaCBkb2VzIG5vdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcXVlcnkuIFRoaXMgbWF5IGJlIGJlY2F1c2UgYVUBbWF0Y2hpbmcgcXVlcnkgd2FzIG5ldmVyIHJlZ2lzdGVyZWQsIGl0IG1heSBiZSBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlIHJlc3BvbnNlLCBvcnBiZWNhdXNlIHRoZSBxdWVyeSB0aW1lZCBvdXQuNFJlc3BvbnNlUmVhZHkIASBxdWVyeV9pZDABHFF1ZXJ5SWQAASByZXNwb25zZfEGASBSZXNwb25zZQADCF0BUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIGlzIHJlYWR5IGZvciB0YWtpbmcgd2l0aCBgdGFrZV9yZXNwb25zZWAuIFRoZXJlIGlzgG5vIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGNhbGwuIE5vdGlmaWVkDAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgABAhZAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gaGFzqGJlZW4gZGlzcGF0Y2hlZCBhbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LkBOb3RpZnlPdmVyd2VpZ2h0FAEgcXVlcnlfaWQwARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgAATRhY3R1YWxfd2VpZ2h0KAEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodCgBGFdlaWdodAAFDEkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvblkBY291bGQgbm90IGJlIGRpc3BhdGNoZWQgYmVjYXVzZSB0aGUgZGlzcGF0Y2ggd2VpZ2h0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB3ZWlnaHTkb3JpZ2luYWxseSBidWRnZXRlZCBieSB0aGlzIHJ1bnRpbWUgZm9yIHRoZSBxdWVyeSByZXN1bHQuTE5vdGlmeURpc3BhdGNoRXJyb3IMASBxdWVyeV9pZDABHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAGCFUBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZXJlIHdhcyBhIGdlbmVyYWwgZXJyb3Igd2l0aIhkaXNwYXRjaGluZyB0aGUgbm90aWZpY2F0aW9uIGNhbGwuSE5vdGlmeURlY29kZUZhaWxlZAwBIHF1ZXJ5X2lkMAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAcMUQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIGRpc3BhdGNoIHdhcyB1bmFibGUgdG8gYmVZAWRlY29kZWQgaW50byBhIGBDYWxsYDsgdGhpcyBtaWdodCBiZSBkdWUgdG8gZGlzcGF0Y2ggZnVuY3Rpb24gaGF2aW5nIGEgc2lnbmF0dXJlIHdoaWNolGlzIG5vdCBgKG9yaWdpbiwgUXVlcnlJZCwgUmVzcG9uc2UpYC5ASW52YWxpZFJlc3BvbmRlcgwBGG9yaWdpbpkCASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAABRGV4cGVjdGVkX2xvY2F0aW9uBQcBQE9wdGlvbjxMb2NhdGlvbj4ACAxZAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgb3JpZ2luIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzVQFub3QgbWF0Y2ggdGhhdCBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlxJbnZhbGlkUmVzcG9uZGVyVmVyc2lvbggBGG9yaWdpbpkCASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAAJHFEBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBvcmlnaW4gbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjRSZXNwb25zZVRha2VuBAEgcXVlcnlfaWQwARxRdWVyeUlkAAoEyFJlY2VpdmVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlYWQgYW5kIHJlbW92ZWQuNEFzc2V0c1RyYXBwZWQMARBoYXNoNAEQSDI1NgABGG9yaWdpbpkCASBMb2NhdGlvbgABGGFzc2V0c00HATxWZXJzaW9uZWRBc3NldHMACwS4U29tZSBhc3NldHMgaGF2ZSBiZWVuIHBsYWNlZCBpbiBhbiBhc3NldCB0cmFwLlRWZXJzaW9uQ2hhbmdlTm90aWZpZWQQASxkZXN0aW5hdGlvbpkCASBMb2NhdGlvbgABGHJlc3VsdBABKFhjbVZlcnNpb24AARBjb3N03QYBGEFzc2V0cwABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAwMJQFBbiBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgaGFzIGJlZW4gYXR0ZW1wdGVkIHRvIGJlIHNlbnQuAOBUaGUgY29zdCBvZiBzZW5kaW5nIGl0IChib3JuZSBieSB0aGUgY2hhaW4pIGlzIGluY2x1ZGVkLlxTdXBwb3J0ZWRWZXJzaW9uQ2hhbmdlZAgBIGxvY2F0aW9umQIBIExvY2F0aW9uAAEcdmVyc2lvbhABKFhjbVZlcnNpb24ADQg5AVRoZSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBhIGxvY2F0aW9uIGhhcyBiZWVuIGNoYW5nZWQuIFRoaXMgbWlnaHQgYmUgdGhyb3VnaCBhbsBhdXRvbWF0aWMgbm90aWZpY2F0aW9uIG9yIGEgbWFudWFsIGludGVydmVudGlvbi5QTm90aWZ5VGFyZ2V0U2VuZEZhaWwMASBsb2NhdGlvbpkCASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAABFGVycm9ymQYBIFhjbUVycm9yAA4IWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcnxzZW5kaW5nIHRoZSBub3RpZmljYXRpb24gdG8gaXQuZE5vdGlmeVRhcmdldE1pZ3JhdGlvbkZhaWwIASBsb2NhdGlvbgkFAURWZXJzaW9uZWRMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAAPCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3K0bWlncmF0aW5nIHRoZSBsb2NhdGlvbiB0byBvdXIgbmV3IFhDTSBmb3JtYXQuVEludmFsaWRRdWVyaWVyVmVyc2lvbggBGG9yaWdpbpkCASBMb2NhdGlvbgABIHF1ZXJ5X2lkMAEcUXVlcnlJZAAQHFUBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBxdWVyaWVyIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC44SW52YWxpZFF1ZXJpZXIQARhvcmlnaW6ZAgEgTG9jYXRpb24AASBxdWVyeV9pZDABHFF1ZXJ5SWQAAUBleHBlY3RlZF9xdWVyaWVymQIBIExvY2F0aW9uAAFQbWF5YmVfYWN0dWFsX3F1ZXJpZXIFBwFAT3B0aW9uPExvY2F0aW9uPgARDF0BRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBxdWVyaWVyIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzUQFub3QgbWF0Y2ggdGhlIGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uUFZlcnNpb25Ob3RpZnlTdGFydGVkDAEsZGVzdGluYXRpb26ZAgEgTG9jYXRpb24AARBjb3N03QYBGEFzc2V0cwABKG1lc3NhZ2VfaWQEARxYY21IYXNoABIIWQFBIHJlbW90ZSBoYXMgcmVxdWVzdGVkIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gZnJvbSB1cyBhbmQgd2UgaGF2ZSBob25vcmVkIGl0Lh0BQSB2ZXJzaW9uIGluZm9ybWF0aW9uIG1lc3NhZ2UgaXMgc2VudCB0byB0aGVtIGFuZCBpdHMgY29zdCBpcyBpbmNsdWRlZC5YVmVyc2lvbk5vdGlmeVJlcXVlc3RlZAwBLGRlc3RpbmF0aW9umQIBIExvY2F0aW9uAAEQY29zdN0GARhBc3NldHMAAShtZXNzYWdlX2lkBAEcWGNtSGFzaAATBD0BV2UgaGF2ZSByZXF1ZXN0ZWQgdGhhdCBhIHJlbW90ZSBjaGFpbiBzZW5kIHVzIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb25zLmBWZXJzaW9uTm90aWZ5VW5yZXF1ZXN0ZWQMASxkZXN0aW5hdGlvbpkCASBMb2NhdGlvbgABEGNvc3TdBgEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAFAglAVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc3RvcHMgc2VuZGluZyB1cyBYQ00gdmVyc2lvbiBjaGFuZ2U4bm90aWZpY2F0aW9ucy4gRmVlc1BhaWQIARhwYXlpbmeZAgEgTG9jYXRpb24AARBmZWVz3QYBGEFzc2V0cwAVBDEBRmVlcyB3ZXJlIHBhaWQgZnJvbSBhIGxvY2F0aW9uIGZvciBhbiBvcGVyYXRpb24gKG9mdGVuIGZvciB1c2luZyBgU2VuZFhjbWApLjRBc3NldHNDbGFpbWVkDAEQaGFzaDQBEEgyNTYAARhvcmlnaW6ZAgEgTG9jYXRpb24AARhhc3NldHNNBwE8VmVyc2lvbmVkQXNzZXRzABYEwFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBjbGFpbWVkIGZyb20gYW4gYXNzZXQgdHJhcGBWZXJzaW9uTWlncmF0aW9uRmluaXNoZWQEARx2ZXJzaW9uEAEoWGNtVmVyc2lvbgAXBIRBIFhDTSB2ZXJzaW9uIG1pZ3JhdGlvbiBmaW5pc2hlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRBCBAsc3RhZ2luZ194Y20IdjQYdHJhaXRzHE91dGNvbWUAAQwgQ29tcGxldGUEARB1c2VkKAEYV2VpZ2h0AAAAKEluY29tcGxldGUIARB1c2VkKAEYV2VpZ2h0AAEUZXJyb3KZBgEURXJyb3IAAQAURXJyb3IEARRlcnJvcpkGARRFcnJvcgACAABFCAxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEV2ZW50BARUAAEQQFByb2Nlc3NpbmdGYWlsZWQMAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbokHAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BFGVycm9ySQgBTFByb2Nlc3NNZXNzYWdlRXJyb3IQYFRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgBJAVRoaXMgZXJyb3IgaXMgcHJldHR5IG9wYXF1ZS4gTW9yZSBmaW5lLWdyYWluZWQgZXJyb3JzIG5lZWQgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4ABFUBTWVzc2FnZSBkaXNjYXJkZWQgZHVlIHRvIGFuIGVycm9yIGluIHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAgKHVzdWFsbHkgYSBmb3JtYXQgZXJyb3IpLiRQcm9jZXNzZWQQAQhpZDQBEEgyNTYElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbokHAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BLHdlaWdodF91c2VkKAEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3MgARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkBAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbokHAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXgQASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleBABHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbokHAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4EAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0SQgQNGZyYW1lX3N1cHBvcnQYdHJhaXRzIG1lc3NhZ2VzTFByb2Nlc3NNZXNzYWdlRXJyb3IAARgkQmFkRm9ybWF0AAAAHENvcnJ1cHQAAQAsVW5zdXBwb3J0ZWQAAgAoT3ZlcndlaWdodAQAKAEYV2VpZ2h0AAMAFFlpZWxkAAQARFN0YWNrTGltaXRSZWFjaGVkAAUAAE0IDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQURXZlbnQEBFQAAQxAQXNzZXRSYXRlQ3JlYXRlZAgBKGFzc2V0X2tpbmTpBAEwVDo6QXNzZXRLaW5kAAEQcmF0ZZUHASRGaXhlZFUxMjgAAABAQXNzZXRSYXRlUmVtb3ZlZAQBKGFzc2V0X2tpbmTpBAEwVDo6QXNzZXRLaW5kAAEAQEFzc2V0UmF0ZVVwZGF0ZWQMAShhc3NldF9raW5k6QQBMFQ6OkFzc2V0S2luZAABDG9sZJUHASRGaXhlZFUxMjgAAQxuZXeVBwEkRml4ZWRVMTI4AAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0UQgMTHBhbGxldF9yb290X3Rlc3RpbmcYcGFsbGV0FEV2ZW50BARUAAEERERlZmVuc2l2ZVRlc3RDYWxsAAAEAQFFdmVudCBkaXNwYXRjaGVkIHdoZW4gdGhlIHRyaWdnZXJfZGVmZW5zaXZlIGV4dHJpbnNpYyBpcyBjYWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0VQgQXHBvbGthZG90X3J1bnRpbWVfY29tbW9uRGlkZW50aXR5X21pZ3JhdG9yGHBhbGxldBRFdmVudAQEVAABCDhJZGVudGl0eVJlYXBlZAQBDHdobwABMFQ6OkFjY291bnRJZAAABOBUaGUgaWRlbnRpdHkgYW5kIGFsbCBzdWIgYWNjb3VudHMgd2VyZSByZWFwZWQgZm9yIGB3aG9gLjhEZXBvc2l0VXBkYXRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABIGlkZW50aXR5GAEwQmFsYW5jZU9mPFQ+AAEQc3VicxgBMEJhbGFuY2VPZjxUPgABCEEBVGhlIGRlcG9zaXRzIGhlbGQgZm9yIGB3aG9gIHdlcmUgdXBkYXRlZC4gYGlkZW50aXR5YCBpcyB0aGUgbmV3IGRlcG9zaXQgaGVsZCBmb3IdAWlkZW50aXR5IGluZm8sIGFuZCBgc3Vic2AgaXMgdGhlIG5ldyBkZXBvc2l0IGhlbGQgZm9yIHRoZSBzdWItYWNjb3VudHMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0WQgIMGZyYW1lX3N5c3RlbRRQaGFzZQABDDhBcHBseUV4dHJpbnNpYwQAEAEMdTMyAAAAMEZpbmFsaXphdGlvbgABADhJbml0aWFsaXphdGlvbgACAABdCAAAAhEBAGEICDBmcmFtZV9zeXN0ZW1YTGFzdFJ1bnRpbWVVcGdyYWRlSW5mbwAACAEwc3BlY192ZXJzaW9uqQEBTGNvZGVjOjpDb21wYWN0PHUzMj4AASRzcGVjX25hbWVlCAFkc3BfcnVudGltZTo6UnVudGltZVN0cmluZwAAZQgAAAUCAGkICDBmcmFtZV9zeXN0ZW1gQ29kZVVwZ3JhZGVBdXRob3JpemF0aW9uBARUAAAIASRjb2RlX2hhc2g0ARxUOjpIYXNoAAE0Y2hlY2tfdmVyc2lvbiABEGJvb2wAAG0IDDBmcmFtZV9zeXN0ZW0YbGltaXRzMEJsb2NrV2VpZ2h0cwAADAEoYmFzZV9ibG9jaygBGFdlaWdodAABJG1heF9ibG9jaygBGFdlaWdodAABJHBlcl9jbGFzc3EIAYRQZXJEaXNwYXRjaENsYXNzPFdlaWdodHNQZXJDbGFzcz4AAHEIDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBdQgADAEYbm9ybWFsdQgBBFQAASxvcGVyYXRpb25hbHUIAQRUAAEkbWFuZGF0b3J5dQgBBFQAAHUIDDBmcmFtZV9zeXN0ZW0YbGltaXRzPFdlaWdodHNQZXJDbGFzcwAAEAE4YmFzZV9leHRyaW5zaWMoARhXZWlnaHQAATRtYXhfZXh0cmluc2lj7QcBOE9wdGlvbjxXZWlnaHQ+AAEkbWF4X3RvdGFs7QcBOE9wdGlvbjxXZWlnaHQ+AAEgcmVzZXJ2ZWTtBwE4T3B0aW9uPFdlaWdodD4AAHkIDDBmcmFtZV9zeXN0ZW0YbGltaXRzLEJsb2NrTGVuZ3RoAAAEAQxtYXh9CAFUUGVyRGlzcGF0Y2hDbGFzczx1MzI+AAB9CAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUARAADAEYbm9ybWFsEAEEVAABLG9wZXJhdGlvbmFsEAEEVAABJG1hbmRhdG9yeRABBFQAAIEICChzcF93ZWlnaHRzPFJ1bnRpbWVEYldlaWdodAAACAEQcmVhZDABDHU2NAABFHdyaXRlMAEMdTY0AACFCAgoc3BfdmVyc2lvbjhSdW50aW1lVmVyc2lvbgAAIAEkc3BlY19uYW1lZQgBNFJ1bnRpbWVTdHJpbmcAASRpbXBsX25hbWVlCAE0UnVudGltZVN0cmluZwABRGF1dGhvcmluZ192ZXJzaW9uEAEMdTMyAAEwc3BlY192ZXJzaW9uEAEMdTMyAAEwaW1wbF92ZXJzaW9uEAEMdTMyAAEQYXBpc4kIARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbhABDHUzMgABNHN0YXRlX3ZlcnNpb24IAQh1OAAAiQgEDENvdwQEVAGNCAAEAI0IAAAAjQgAAAKRCACRCAAABAgJAxAAlQgMMGZyYW1lX3N5c3RlbRhwYWxsZXQURXJyb3IEBFQAASQ8SW52YWxpZFNwZWNOYW1lAAAIEQFUaGUgbmFtZSBvZiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLmhTcGVjVmVyc2lvbk5lZWRzVG9JbmNyZWFzZQABCEEBVGhlIHNwZWNpZmljYXRpb24gdmVyc2lvbiBpcyBub3QgYWxsb3dlZCB0byBkZWNyZWFzZSBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS50RmFpbGVkVG9FeHRyYWN0UnVudGltZVZlcnNpb24AAgzsRmFpbGVkIHRvIGV4dHJhY3QgdGhlIHJ1bnRpbWUgdmVyc2lvbiBmcm9tIHRoZSBuZXcgcnVudGltZS4ACQFFaXRoZXIgY2FsbGluZyBgQ29yZV92ZXJzaW9uYCBvciBkZWNvZGluZyBgUnVudGltZVZlcnNpb25gIGZhaWxlZC5MTm9uRGVmYXVsdENvbXBvc2l0ZQADBPxTdWljaWRlIGNhbGxlZCB3aGVuIHRoZSBhY2NvdW50IGhhcyBub24tZGVmYXVsdCBjb21wb3NpdGUgZGF0YS48Tm9uWmVyb1JlZkNvdW50AAQENQFUaGVyZSBpcyBhIG5vbi16ZXJvIHJlZmVyZW5jZSBjb3VudCBwcmV2ZW50aW5nIHRoZSBhY2NvdW50IGZyb20gYmVpbmcgcHVyZ2VkLjBDYWxsRmlsdGVyZWQABQTQVGhlIG9yaWdpbiBmaWx0ZXIgcHJldmVudCB0aGUgY2FsbCB0byBiZSBkaXNwYXRjaGVkLmxNdWx0aUJsb2NrTWlncmF0aW9uc09uZ29pbmcABgRVAUEgbXVsdGktYmxvY2sgbWlncmF0aW9uIGlzIG9uZ29pbmcgYW5kIHByZXZlbnRzIHRoZSBjdXJyZW50IGNvZGUgZnJvbSBiZWluZyByZXBsYWNlZC5ETm90aGluZ0F1dGhvcml6ZWQABwRYTm8gdXBncmFkZSBhdXRob3JpemVkLjBVbmF1dGhvcml6ZWQACASUVGhlIHN1Ym1pdHRlZCBjb2RlIGlzIG5vdCBhdXRob3JpemVkLgRsRXJyb3IgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0mQgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAGdCARTAAAEAKEIARhWZWM8VD4AAJ0IAAAECK0BMAChCAAAAp0IAKUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAKkIARhWZWM8VD4AAKkIAAACBACtCAQYT3B0aW9uBARUAbEIAQgQTm9uZQAAABBTb21lBACxCAAAAQAAsQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHMkUHJlRGlnZXN0AAEMHFByaW1hcnkEALUIAUBQcmltYXJ5UHJlRGlnZXN0AAEAOFNlY29uZGFyeVBsYWluBAC9CAFcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAgAwU2Vjb25kYXJ5VlJGBADBCAFUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAMAALUIDERzcF9jb25zZW5zdXNfYmFiZRxkaWdlc3RzQFByaW1hcnlQcmVEaWdlc3QAAAwBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SxAQEQU2xvdAABNHZyZl9zaWduYXR1cmW5CAEwVnJmU2lnbmF0dXJlAAC5CBAcc3BfY29yZRxzcjI1NTE5DHZyZjBWcmZTaWduYXR1cmUAAAgBKHByZV9vdXRwdXQEATBWcmZQcmVPdXRwdXQAARRwcm9vZmUCASBWcmZQcm9vZgAAvQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNcU2Vjb25kYXJ5UGxhaW5QcmVEaWdlc3QAAAgBPGF1dGhvcml0eV9pbmRleBABVHN1cGVyOjpBdXRob3JpdHlJbmRleAABEHNsb3SxAQEQU2xvdAAAwQgMRHNwX2NvbnNlbnN1c19iYWJlHGRpZ2VzdHNUU2Vjb25kYXJ5VlJGUHJlRGlnZXN0AAAMATxhdXRob3JpdHlfaW5kZXgQAVRzdXBlcjo6QXV0aG9yaXR5SW5kZXgAARBzbG90sQEBEFNsb3QAATR2cmZfc2lnbmF0dXJluQgBMFZyZlNpZ25hdHVyZQAAxQgIRHNwX2NvbnNlbnN1c19iYWJlWEJhYmVFcG9jaENvbmZpZ3VyYXRpb24AAAgBBGO9AQEoKHU2NCwgdTY0KQABNGFsbG93ZWRfc2xvdHPBAQEwQWxsb3dlZFNsb3RzAADJCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAc0IBFMAAAQA0QgBGFZlYzxUPgAAzQgAAAQIMBAA0QgAAALNCADVCAwscGFsbGV0X2JhYmUYcGFsbGV0FEVycm9yBARUAAEQYEludmFsaWRFcXVpdm9jYXRpb25Qcm9vZgAABDEBQW4gZXF1aXZvY2F0aW9uIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkS2V5T3duZXJzaGlwUHJvb2YAAQQxAUEga2V5IG93bmVyc2hpcCBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAACBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuUEludmFsaWRDb25maWd1cmF0aW9uAAMEjFN1Ym1pdHRlZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkIAAAEDAAYIADdCAw4cGFsbGV0X2luZGljZXMYcGFsbGV0FEVycm9yBARUAAEULE5vdEFzc2lnbmVkAAAEjFRoZSBpbmRleCB3YXMgbm90IGFscmVhZHkgYXNzaWduZWQuIE5vdE93bmVyAAEEpFRoZSBpbmRleCBpcyBhc3NpZ25lZCB0byBhbm90aGVyIGFjY291bnQuFEluVXNlAAIEcFRoZSBpbmRleCB3YXMgbm90IGF2YWlsYWJsZS4sTm90VHJhbnNmZXIAAwTIVGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWNjb3VudHMgYXJlIGlkZW50aWNhbC4kUGVybWFuZW50AAQE0FRoZSBpbmRleCBpcyBwZXJtYW5lbnQgYW5kIG1heSBub3QgYmUgZnJlZWQvY2hhbmdlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu4QgMTGJvdW5kZWRfY29sbGVjdGlvbnNAd2Vha19ib3VuZGVkX3ZlYzhXZWFrQm91bmRlZFZlYwgEVAHlCARTAAAEAO0IARhWZWM8VD4AAOUIDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQmFsYW5jZUxvY2sEHEJhbGFuY2UBGAAMAQhpZAkDAThMb2NrSWRlbnRpZmllcgABGGFtb3VudBgBHEJhbGFuY2UAARxyZWFzb25z6QgBHFJlYXNvbnMAAOkIDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMcUmVhc29ucwABDAxGZWUAAAAQTWlzYwABAAxBbGwAAgAA7QgAAALlCADxCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfUIBFMAAAQA+QgBGFZlYzxUPgAA9QgMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIBCQMcQmFsYW5jZQEYAAgBCGlkCQMBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50GAEcQmFsYW5jZQAA+QgAAAL1CAD9CAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQEJBFMAAAQAEQkBGFZlYzxUPgAAAQkUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAEFCRxCYWxhbmNlARgACAEIaWQFCQEISWQAARhhbW91bnQYARxCYWxhbmNlAAAFCQg8d2VzdGVuZF9ydW50aW1lRFJ1bnRpbWVIb2xkUmVhc29uAAEIIFByZWltYWdlBAAJCQFscGFsbGV0X3ByZWltYWdlOjpIb2xkUmVhc29uABwAQERlbGVnYXRlZFN0YWtpbmcEAA0JAZBwYWxsZXRfZGVsZWdhdGVkX3N0YWtpbmc6OkhvbGRSZWFzb24AJgAACQkMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQoSG9sZFJlYXNvbgABBCBQcmVpbWFnZQAAAAANCQxgcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nGHBhbGxldChIb2xkUmVhc29uAAEERFN0YWtpbmdEZWxlZ2F0aW9uAAAAABEJAAACAQkAFQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZCQRTAAAEACUJARhWZWM8VD4AABkJFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBHQkcQmFsYW5jZQEYAAgBCGlkHQkBCElkAAEYYW1vdW50GAEcQmFsYW5jZQAAHQkIPHdlc3RlbmRfcnVudGltZUxSdW50aW1lRnJlZXplUmVhc29uAAEEPE5vbWluYXRpb25Qb29scwQAIQkBlHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpGcmVlemVSZWFzb24AHQAAIQkMXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzGHBhbGxldDBGcmVlemVSZWFzb24AAQQ4UG9vbE1pbkJhbGFuY2UAAAAAJQkAAAIZCQApCQw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABMDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgE+E51bWJlciBvZiBob2xkcyBleGNlZWQgYFZhcmlhbnRDb3VudE9mPFQ6OlJ1bnRpbWVIb2xkUmVhc29uPmAuOFRvb01hbnlGcmVlemVzAAkEmE51bWJlciBvZiBmcmVlemVzIGV4Y2VlZCBgTWF4RnJlZXplc2AuTElzc3VhbmNlRGVhY3RpdmF0ZWQACgQBAVRoZSBpc3N1YW5jZSBjYW5ub3QgYmUgbW9kaWZpZWQgc2luY2UgaXQgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZC4kRGVsdGFaZXJvAAsEZFRoZSBkZWx0YSBjYW5ub3QgYmUgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQkIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50IFJlbGVhc2VzAAEIJFYxQW5jaWVudAAAAAhWMgABAAAxCQg4cGFsbGV0X3N0YWtpbmc0U3Rha2luZ0xlZGdlcgQEVAAAFAEUc3Rhc2gAATBUOjpBY2NvdW50SWQAARR0b3RhbN0BATBCYWxhbmNlT2Y8VD4AARhhY3RpdmXdAQEwQmFsYW5jZU9mPFQ+AAEkdW5sb2NraW5nEQIB8EJvdW5kZWRWZWM8VW5sb2NrQ2h1bms8QmFsYW5jZU9mPFQ+PiwgVDo6TWF4VW5sb2NraW5nQ2h1bmtzPgABWGxlZ2FjeV9jbGFpbWVkX3Jld2FyZHM1CQGUQm91bmRlZFZlYzxFcmFJbmRleCwgVDo6SGlzdG9yeURlcHRoPgAANQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAcQEBGFZlYzxUPgAAOQkIOHBhbGxldF9zdGFraW5nLE5vbWluYXRpb25zBARUAAAMARx0YXJnZXRzPQkBtEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBNYXhOb21pbmF0aW9uc09mPFQ+PgABMHN1Ym1pdHRlZF9pbhABIEVyYUluZGV4AAEoc3VwcHJlc3NlZCABEGJvb2wAAD0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAOEBARhWZWM8VD4AAEEJCDhwYWxsZXRfc3Rha2luZzRBY3RpdmVFcmFJbmZvAAAIARRpbmRleBABIEVyYUluZGV4AAEUc3RhcnRFCQEsT3B0aW9uPHU2ND4AAEUJBBhPcHRpb24EBFQBMAEIEE5vbmUAAAAQU29tZQQAMAAAAQAASQkAAAQIEAAATQkIKHNwX3N0YWtpbmcgRXhwb3N1cmUIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAMARR0b3RhbN0BARxCYWxhbmNlAAEMb3du3QEBHEJhbGFuY2UAARhvdGhlcnNRCQGsVmVjPEluZGl2aWR1YWxFeHBvc3VyZTxBY2NvdW50SWQsIEJhbGFuY2U+PgAAUQkAAAJVCQBVCQgoc3Bfc3Rha2luZ0hJbmRpdmlkdWFsRXhwb3N1cmUIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAIAQx3aG8AASRBY2NvdW50SWQAARR2YWx1Zd0BARxCYWxhbmNlAABZCQgoc3Bfc3Rha2luZ1RQYWdlZEV4cG9zdXJlTWV0YWRhdGEEHEJhbGFuY2UBGAAQARR0b3RhbN0BARxCYWxhbmNlAAEMb3du3QEBHEJhbGFuY2UAATxub21pbmF0b3JfY291bnQQAQx1MzIAAShwYWdlX2NvdW50EAEQUGFnZQAAXQkAAAQMEAAQAGEJCChzcF9zdGFraW5nMEV4cG9zdXJlUGFnZQgkQWNjb3VudElkAQAcQmFsYW5jZQEYAAgBKHBhZ2VfdG90YWzdAQEcQmFsYW5jZQABGG90aGVyc1EJAaxWZWM8SW5kaXZpZHVhbEV4cG9zdXJlPEFjY291bnRJZCwgQmFsYW5jZT4+AABlCQg4cGFsbGV0X3N0YWtpbmc8RXJhUmV3YXJkUG9pbnRzBCRBY2NvdW50SWQBAAAIARR0b3RhbBABLFJld2FyZFBvaW50AAEoaW5kaXZpZHVhbGkJAYBCVHJlZU1hcDxBY2NvdW50SWQsIFJld2FyZFBvaW50PgAAaQkEIEJUcmVlTWFwCARLAQAEVgEQAAQAbQkAAABtCQAAAnEJAHEJAAAECAAQAHUJAAACeQkAeQkIOHBhbGxldF9zdGFraW5nOFVuYXBwbGllZFNsYXNoCCRBY2NvdW50SWQBABxCYWxhbmNlARgAFAEkdmFsaWRhdG9yAAEkQWNjb3VudElkAAEMb3duGAEcQmFsYW5jZQABGG90aGVyc5kEAWRWZWM8KEFjY291bnRJZCwgQmFsYW5jZSk+AAEkcmVwb3J0ZXJz4QEBOFZlYzxBY2NvdW50SWQ+AAEYcGF5b3V0GAEcQmFsYW5jZQAAfQkAAAQIlBgAgQkMOHBhbGxldF9zdGFraW5nIHNsYXNoaW5nNFNsYXNoaW5nU3BhbnMAABABKHNwYW5faW5kZXgQASRTcGFuSW5kZXgAAShsYXN0X3N0YXJ0EAEgRXJhSW5kZXgAAUhsYXN0X25vbnplcm9fc2xhc2gQASBFcmFJbmRleAABFHByaW9ycQEBNFZlYzxFcmFJbmRleD4AAIUJDDhwYWxsZXRfc3Rha2luZyBzbGFzaGluZyhTcGFuUmVjb3JkBBxCYWxhbmNlARgACAEcc2xhc2hlZBgBHEJhbGFuY2UAASBwYWlkX291dBgBHEJhbGFuY2UAAIkJEDhwYWxsZXRfc3Rha2luZxhwYWxsZXQYcGFsbGV0FEVycm9yBARUAAF8NE5vdENvbnRyb2xsZXIAAARkTm90IGEgY29udHJvbGxlciBhY2NvdW50LiBOb3RTdGFzaAABBFBOb3QgYSBzdGFzaCBhY2NvdW50LjRBbHJlYWR5Qm9uZGVkAAIEYFN0YXNoIGlzIGFscmVhZHkgYm9uZGVkLjRBbHJlYWR5UGFpcmVkAAMEdENvbnRyb2xsZXIgaXMgYWxyZWFkeSBwYWlyZWQuMEVtcHR5VGFyZ2V0cwAEBGBUYXJnZXRzIGNhbm5vdCBiZSBlbXB0eS44RHVwbGljYXRlSW5kZXgABQRARHVwbGljYXRlIGluZGV4LkRJbnZhbGlkU2xhc2hJbmRleAAGBIRTbGFzaCByZWNvcmQgaW5kZXggb3V0IG9mIGJvdW5kcy5ASW5zdWZmaWNpZW50Qm9uZAAHDFkBQ2Fubm90IGhhdmUgYSB2YWxpZGF0b3Igb3Igbm9taW5hdG9yIHJvbGUsIHdpdGggdmFsdWUgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGRlZmluZWQgYnk9AWdvdmVybmFuY2UgKHNlZSBgTWluVmFsaWRhdG9yQm9uZGAgYW5kIGBNaW5Ob21pbmF0b3JCb25kYCkuIElmIHVuYm9uZGluZyBpcyB0aGUVAWludGVudGlvbiwgYGNoaWxsYCBmaXJzdCB0byByZW1vdmUgb25lJ3Mgcm9sZSBhcyB2YWxpZGF0b3Ivbm9taW5hdG9yLjBOb01vcmVDaHVua3MACASQQ2FuIG5vdCBzY2hlZHVsZSBtb3JlIHVubG9jayBjaHVua3MuNE5vVW5sb2NrQ2h1bmsACQSgQ2FuIG5vdCByZWJvbmQgd2l0aG91dCB1bmxvY2tpbmcgY2h1bmtzLjBGdW5kZWRUYXJnZXQACgTIQXR0ZW1wdGluZyB0byB0YXJnZXQgYSBzdGFzaCB0aGF0IHN0aWxsIGhhcyBmdW5kcy5ISW52YWxpZEVyYVRvUmV3YXJkAAsEWEludmFsaWQgZXJhIHRvIHJld2FyZC5oSW52YWxpZE51bWJlck9mTm9taW5hdGlvbnMADAR4SW52YWxpZCBudW1iZXIgb2Ygbm9taW5hdGlvbnMuSE5vdFNvcnRlZEFuZFVuaXF1ZQANBIBJdGVtcyBhcmUgbm90IHNvcnRlZCBhbmQgdW5pcXVlLjhBbHJlYWR5Q2xhaW1lZAAOBAkBUmV3YXJkcyBmb3IgdGhpcyBlcmEgaGF2ZSBhbHJlYWR5IGJlZW4gY2xhaW1lZCBmb3IgdGhpcyB2YWxpZGF0b3IuLEludmFsaWRQYWdlAA8EhE5vIG5vbWluYXRvcnMgZXhpc3Qgb24gdGhpcyBwYWdlLlRJbmNvcnJlY3RIaXN0b3J5RGVwdGgAEATASW5jb3JyZWN0IHByZXZpb3VzIGhpc3RvcnkgZGVwdGggaW5wdXQgcHJvdmlkZWQuWEluY29ycmVjdFNsYXNoaW5nU3BhbnMAEQSwSW5jb3JyZWN0IG51bWJlciBvZiBzbGFzaGluZyBzcGFucyBwcm92aWRlZC4gQmFkU3RhdGUAEgQ5AUludGVybmFsIHN0YXRlIGhhcyBiZWNvbWUgc29tZWhvdyBjb3JydXB0ZWQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IGNvbnRpbnVlLjhUb29NYW55VGFyZ2V0cwATBJRUb28gbWFueSBub21pbmF0aW9uIHRhcmdldHMgc3VwcGxpZWQuJEJhZFRhcmdldAAUBD0BQSBub21pbmF0aW9uIHRhcmdldCB3YXMgc3VwcGxpZWQgdGhhdCB3YXMgYmxvY2tlZCBvciBvdGhlcndpc2Ugbm90IGEgdmFsaWRhdG9yLkBDYW5ub3RDaGlsbE90aGVyABUEVQFUaGUgdXNlciBoYXMgZW5vdWdoIGJvbmQgYW5kIHRodXMgY2Fubm90IGJlIGNoaWxsZWQgZm9yY2VmdWxseSBieSBhbiBleHRlcm5hbCBwZXJzb24uRFRvb01hbnlOb21pbmF0b3JzABYITQFUaGVyZSBhcmUgdG9vIG1hbnkgbm9taW5hdG9ycyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGUgc3Rha2luZ7RzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5EVG9vTWFueVZhbGlkYXRvcnMAFwhVAVRoZXJlIGFyZSB0b28gbWFueSB2YWxpZGF0b3IgY2FuZGlkYXRlcyBpbiB0aGUgc3lzdGVtLiBHb3Zlcm5hbmNlIG5lZWRzIHRvIGFkanVzdCB0aGXUc3Rha2luZyBzZXR0aW5ncyB0byBrZWVwIHRoaW5ncyBzYWZlIGZvciB0aGUgcnVudGltZS5AQ29tbWlzc2lvblRvb0xvdwAYBOBDb21taXNzaW9uIGlzIHRvbyBsb3cuIE11c3QgYmUgYXQgbGVhc3QgYE1pbkNvbW1pc3Npb25gLixCb3VuZE5vdE1ldAAZBFhTb21lIGJvdW5kIGlzIG5vdCBtZXQuUENvbnRyb2xsZXJEZXByZWNhdGVkABoEAQFVc2VkIHdoZW4gYXR0ZW1wdGluZyB0byB1c2UgZGVwcmVjYXRlZCBjb250cm9sbGVyIGFjY291bnQgbG9naWMuTENhbm5vdFJlc3RvcmVMZWRnZXIAGwRYQ2Fubm90IHJlc2V0IGEgbGVkZ2VyLmxSZXdhcmREZXN0aW5hdGlvblJlc3RyaWN0ZWQAHASsUHJvdmlkZWQgcmV3YXJkIGRlc3RpbmF0aW9uIGlzIG5vdCBhbGxvd2VkLjhOb3RFbm91Z2hGdW5kcwAdBJxOb3QgZW5vdWdoIGZ1bmRzIGF2YWlsYWJsZSB0byB3aXRoZHJhdy5cVmlydHVhbFN0YWtlck5vdEFsbG93ZWQAHgSoT3BlcmF0aW9uIG5vdCBhbGxvd2VkIGZvciB2aXJ0dWFsIHN0YWtlcnMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lo0JDChzcF9zdGFraW5nHG9mZmVuY2U4T2ZmZW5jZURldGFpbHMIIFJlcG9ydGVyAQAgT2ZmZW5kZXIBkQkACAEgb2ZmZW5kZXKRCQEgT2ZmZW5kZXIAASRyZXBvcnRlcnPhAQE0VmVjPFJlcG9ydGVyPgAAkQkAAAQIAE0JAJUJAAAECKg4AJkJAAAECDQQAJ0JAAACoQkAoQkAAAQIADUCAKUJAAAECKkJOACpCQwcc3BfY29yZRhjcnlwdG8kS2V5VHlwZUlkAAAEAEgBHFt1ODsgNF0AAK0JDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQURXJyb3IEBFQAARQwSW52YWxpZFByb29mAAAEYEludmFsaWQgb3duZXJzaGlwIHByb29mLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAABBJxObyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRCBmb3IgYWNjb3VudC40RHVwbGljYXRlZEtleQACBGRSZWdpc3RlcmVkIGR1cGxpY2F0ZSBrZXkuGE5vS2V5cwADBKRObyBrZXlzIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY2NvdW50LiROb0FjY291bnQABAQZAUtleSBzZXR0aW5nIGFjY291bnQgaXMgbm90IGxpdmUsIHNvIGl0J3MgaW1wb3NzaWJsZSB0byBhc3NvY2lhdGUga2V5cy4EdEVycm9yIGZvciB0aGUgc2Vzc2lvbiBwYWxsZXQusQkIOHBhbGxldF9ncmFuZHBhLFN0b3JlZFN0YXRlBAROARABEBBMaXZlAAAAMFBlbmRpbmdQYXVzZQgBMHNjaGVkdWxlZF9hdBABBE4AARRkZWxheRABBE4AAQAYUGF1c2VkAAIANFBlbmRpbmdSZXN1bWUIATBzY2hlZHVsZWRfYXQQAQROAAEUZGVsYXkQAQROAAMAALUJCDhwYWxsZXRfZ3JhbmRwYUxTdG9yZWRQZW5kaW5nQ2hhbmdlCAROARAUTGltaXQAABABMHNjaGVkdWxlZF9hdBABBE4AARRkZWxheRABBE4AAUBuZXh0X2F1dGhvcml0aWVzuQkBbEJvdW5kZWRBdXRob3JpdHlMaXN0PExpbWl0PgABGGZvcmNlZKEEASRPcHRpb248Tj4AALkJDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQB6ARTAAAEAOQBGFZlYzxUPgAAvQkMOHBhbGxldF9ncmFuZHBhGHBhbGxldBRFcnJvcgQEVAABHCxQYXVzZUZhaWxlZAAACAUBQXR0ZW1wdCB0byBzaWduYWwgR1JBTkRQQSBwYXVzZSB3aGVuIHRoZSBhdXRob3JpdHkgc2V0IGlzbid0IGxpdmWkKGVpdGhlciBwYXVzZWQgb3IgYWxyZWFkeSBwZW5kaW5nIHBhdXNlKS4wUmVzdW1lRmFpbGVkAAEIEQFBdHRlbXB0IHRvIHNpZ25hbCBHUkFORFBBIHJlc3VtZSB3aGVuIHRoZSBhdXRob3JpdHkgc2V0IGlzbid0IHBhdXNlZKAoZWl0aGVyIGxpdmUgb3IgYWxyZWFkeSBwZW5kaW5nIHJlc3VtZSkuNENoYW5nZVBlbmRpbmcAAgToQXR0ZW1wdCB0byBzaWduYWwgR1JBTkRQQSBjaGFuZ2Ugd2l0aCBvbmUgYWxyZWFkeSBwZW5kaW5nLhxUb29Tb29uAAMEvENhbm5vdCBzaWduYWwgZm9yY2VkIGNoYW5nZSBzbyBzb29uIGFmdGVyIGxhc3QuYEludmFsaWRLZXlPd25lcnNoaXBQcm9vZgAEBDEBQSBrZXkgb3duZXJzaGlwIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLmBJbnZhbGlkRXF1aXZvY2F0aW9uUHJvb2YABQQxAUFuIGVxdWl2b2NhdGlvbiBwcm9vZiBwcm92aWRlZCBhcyBwYXJ0IG9mIGFuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgaW52YWxpZC5YRHVwbGljYXRlT2ZmZW5jZVJlcG9ydAAGBBUBQSBnaXZlbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIHZhbGlkIGJ1dCBhbHJlYWR5IHByZXZpb3VzbHkgcmVwb3J0ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEJDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBQQIEUwAABADFCQEYVmVjPFQ+AADFCQAAAkECAMkJDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXJyb3IEBFQAAQQwVG9vTWFueUNhbGxzAAAEXFRvbyBtYW55IGNhbGxzIGJhdGNoZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ls0JAAAECNEJ4QkA0QkMPHBhbGxldF9pZGVudGl0eRR0eXBlczBSZWdpc3RyYXRpb24MHEJhbGFuY2UBGDRNYXhKdWRnZW1lbnRzADBJZGVudGl0eUluZm8B3QIADAEoanVkZ2VtZW50c9UJAfxCb3VuZGVkVmVjPChSZWdpc3RyYXJJbmRleCwgSnVkZ2VtZW50PEJhbGFuY2U+KSwgTWF4SnVkZ2VtZW50cz4AARxkZXBvc2l0GAEcQmFsYW5jZQABEGluZm/dAgEwSWRlbnRpdHlJbmZvAADVCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdkJBFMAAAQA3QkBGFZlYzxUPgAA2QkAAAQIEHEDAN0JAAAC2QkA4QkEGE9wdGlvbgQEVAEBAQEIEE5vbmUAAAAQU29tZQQAAQEAAAEAAOUJAAAECBjpCQDpCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABADhAQEYVmVjPFQ+AADtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEJBFMAAAQA+QkBGFZlYzxUPgAA8QkEGE9wdGlvbgQEVAH1CQEIEE5vbmUAAAAQU29tZQQA9QkAAAEAAPUJDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXM0UmVnaXN0cmFySW5mbwwcQmFsYW5jZQEYJEFjY291bnRJZAEAHElkRmllbGQBMAAMARxhY2NvdW50AAEkQWNjb3VudElkAAEMZmVlGAEcQmFsYW5jZQABGGZpZWxkczABHElkRmllbGQAAPkJAAAC8QkA/QkMPHBhbGxldF9pZGVudGl0eRR0eXBlc0xBdXRob3JpdHlQcm9wZXJ0aWVzBBhTdWZmaXgBAQoACAEYc3VmZml4AQoBGFN1ZmZpeAABKGFsbG9jYXRpb24QAShBbGxvY2F0aW9uAAABCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAA4ARhWZWM8VD4AAAUKDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0FEVycm9yBARUAAFoSFRvb01hbnlTdWJBY2NvdW50cwAABFxUb28gbWFueSBzdWJzLWFjY291bnRzLiBOb3RGb3VuZAABBFBBY2NvdW50IGlzbid0IGZvdW5kLiBOb3ROYW1lZAACBFBBY2NvdW50IGlzbid0IG5hbWVkLihFbXB0eUluZGV4AAMEMEVtcHR5IGluZGV4LihGZWVDaGFuZ2VkAAQEPEZlZSBpcyBjaGFuZ2VkLihOb0lkZW50aXR5AAUESE5vIGlkZW50aXR5IGZvdW5kLjxTdGlja3lKdWRnZW1lbnQABgREU3RpY2t5IGp1ZGdlbWVudC44SnVkZ2VtZW50R2l2ZW4ABwRASnVkZ2VtZW50IGdpdmVuLkBJbnZhbGlkSnVkZ2VtZW50AAgESEludmFsaWQganVkZ2VtZW50LjBJbnZhbGlkSW5kZXgACQRUVGhlIGluZGV4IGlzIGludmFsaWQuNEludmFsaWRUYXJnZXQACgRYVGhlIHRhcmdldCBpcyBpbnZhbGlkLkRUb29NYW55UmVnaXN0cmFycwALBOhNYXhpbXVtIGFtb3VudCBvZiByZWdpc3RyYXJzIHJlYWNoZWQuIENhbm5vdCBhZGQgYW55IG1vcmUuOEFscmVhZHlDbGFpbWVkAAwEcEFjY291bnQgSUQgaXMgYWxyZWFkeSBuYW1lZC4YTm90U3ViAA0EcFNlbmRlciBpcyBub3QgYSBzdWItYWNjb3VudC4gTm90T3duZWQADgSIU3ViLWFjY291bnQgaXNuJ3Qgb3duZWQgYnkgc2VuZGVyLnRKdWRnZW1lbnRGb3JEaWZmZXJlbnRJZGVudGl0eQAPBNBUaGUgcHJvdmlkZWQganVkZ2VtZW50IHdhcyBmb3IgYSBkaWZmZXJlbnQgaWRlbnRpdHkuWEp1ZGdlbWVudFBheW1lbnRGYWlsZWQAEAT4RXJyb3IgdGhhdCBvY2N1cnMgd2hlbiB0aGVyZSBpcyBhbiBpc3N1ZSBwYXlpbmcgZm9yIGp1ZGdlbWVudC40SW52YWxpZFN1ZmZpeAARBIBUaGUgcHJvdmlkZWQgc3VmZml4IGlzIHRvbyBsb25nLlBOb3RVc2VybmFtZUF1dGhvcml0eQASBOBUaGUgc2VuZGVyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBpc3N1ZSBhIHVzZXJuYW1lLjBOb0FsbG9jYXRpb24AEwTEVGhlIGF1dGhvcml0eSBjYW5ub3QgYWxsb2NhdGUgYW55IG1vcmUgdXNlcm5hbWVzLkBJbnZhbGlkU2lnbmF0dXJlABQEqFRoZSBzaWduYXR1cmUgb24gYSB1c2VybmFtZSB3YXMgbm90IHZhbGlkLkRSZXF1aXJlc1NpZ25hdHVyZQAVBAkBU2V0dGluZyB0aGlzIHVzZXJuYW1lIHJlcXVpcmVzIGEgc2lnbmF0dXJlLCBidXQgbm9uZSB3YXMgcHJvdmlkZWQuPEludmFsaWRVc2VybmFtZQAWBLBUaGUgdXNlcm5hbWUgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzLjRVc2VybmFtZVRha2VuABcEeFRoZSB1c2VybmFtZSBpcyBhbHJlYWR5IHRha2VuLihOb1VzZXJuYW1lABgEmFRoZSByZXF1ZXN0ZWQgdXNlcm5hbWUgZG9lcyBub3QgZXhpc3QuKE5vdEV4cGlyZWQAGQQtAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgZm9yY2VmdWxseSByZW1vdmVkIGJlY2F1c2UgaXQgY2FuIHN0aWxsIGJlIGFjY2VwdGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4JCgg8cGFsbGV0X3JlY292ZXJ5OFJlY292ZXJ5Q29uZmlnDCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGBxGcmllbmRzAQ0KABABMGRlbGF5X3BlcmlvZBABLEJsb2NrTnVtYmVyAAEcZGVwb3NpdBgBHEJhbGFuY2UAARxmcmllbmRzDQoBHEZyaWVuZHMAASR0aHJlc2hvbGQtAQEMdTE2AAANCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABADhAQEYVmVjPFQ+AAARCgAABAgAAAAVCgg8cGFsbGV0X3JlY292ZXJ5OEFjdGl2ZVJlY292ZXJ5DCxCbG9ja051bWJlcgEQHEJhbGFuY2UBGBxGcmllbmRzAQ0KAAwBHGNyZWF0ZWQQASxCbG9ja051bWJlcgABHGRlcG9zaXQYARxCYWxhbmNlAAEcZnJpZW5kcw0KARxGcmllbmRzAAAZCgw8cGFsbGV0X3JlY292ZXJ5GHBhbGxldBRFcnJvcgQEVAABQChOb3RBbGxvd2VkAAAE8FVzZXIgaXMgbm90IGFsbG93ZWQgdG8gbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mIHRoaXMgYWNjb3VudDRaZXJvVGhyZXNob2xkAAEEjFRocmVzaG9sZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvQE5vdEVub3VnaEZyaWVuZHMAAgTQRnJpZW5kcyBsaXN0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gYW5kIHRocmVzaG9sZChNYXhGcmllbmRzAAMEqEZyaWVuZHMgbGlzdCBtdXN0IGJlIGxlc3MgdGhhbiBtYXggZnJpZW5kcyROb3RTb3J0ZWQABATIRnJpZW5kcyBsaXN0IG11c3QgYmUgc29ydGVkIGFuZCBmcmVlIG9mIGR1cGxpY2F0ZXM4Tm90UmVjb3ZlcmFibGUABQScVGhpcyBhY2NvdW50IGlzIG5vdCBzZXQgdXAgZm9yIHJlY292ZXJ5SEFscmVhZHlSZWNvdmVyYWJsZQAGBKxUaGlzIGFjY291bnQgaXMgYWxyZWFkeSBzZXQgdXAgZm9yIHJlY292ZXJ5OEFscmVhZHlTdGFydGVkAAcE3EEgcmVjb3ZlcnkgcHJvY2VzcyBoYXMgYWxyZWFkeSBzdGFydGVkIGZvciB0aGlzIGFjY291bnQoTm90U3RhcnRlZAAIBMxBIHJlY292ZXJ5IHByb2Nlc3MgaGFzIG5vdCBzdGFydGVkIGZvciB0aGlzIHJlc2N1ZXIkTm90RnJpZW5kAAkEqFRoaXMgYWNjb3VudCBpcyBub3QgYSBmcmllbmQgd2hvIGNhbiB2b3VjaCxEZWxheVBlcmlvZAAKBBkBVGhlIGZyaWVuZCBtdXN0IHdhaXQgdW50aWwgdGhlIGRlbGF5IHBlcmlvZCB0byB2b3VjaCBmb3IgdGhpcyByZWNvdmVyeThBbHJlYWR5Vm91Y2hlZAALBLxUaGlzIHVzZXIgaGFzIGFscmVhZHkgdm91Y2hlZCBmb3IgdGhpcyByZWNvdmVyeSRUaHJlc2hvbGQADAToVGhlIHRocmVzaG9sZCBmb3IgcmVjb3ZlcmluZyB0aGlzIGFjY291bnQgaGFzIG5vdCBiZWVuIG1ldCxTdGlsbEFjdGl2ZQANBPxUaGVyZSBhcmUgc3RpbGwgYWN0aXZlIHJlY292ZXJ5IGF0dGVtcHRzIHRoYXQgbmVlZCB0byBiZSBjbG9zZWQwQWxyZWFkeVByb3h5AA4ErFRoaXMgYWNjb3VudCBpcyBhbHJlYWR5IHNldCB1cCBmb3IgcmVjb3ZlcnkgQmFkU3RhdGUADwR4U29tZSBpbnRlcm5hbCBzdGF0ZSBpcyBicm9rZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lh0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBiQMEUwAABAAhCgEYVmVjPFQ+AAAhCgAAAokDACUKCDhwYWxsZXRfdmVzdGluZyBSZWxlYXNlcwABCAhWMAAAAAhWMQABAAApCgw4cGFsbGV0X3Zlc3RpbmcYcGFsbGV0FEVycm9yBARUAAEUKE5vdFZlc3RpbmcAAASEVGhlIGFjY291bnQgZ2l2ZW4gaXMgbm90IHZlc3RpbmcuVEF0TWF4VmVzdGluZ1NjaGVkdWxlcwABCCUBVGhlIGFjY291bnQgYWxyZWFkeSBoYXMgYE1heFZlc3RpbmdTY2hlZHVsZXNgIGNvdW50IG9mIHNjaGVkdWxlcyBhbmQgdGh1c1EBY2Fubm90IGFkZCBhbm90aGVyIG9uZS4gQ29uc2lkZXIgbWVyZ2luZyBleGlzdGluZyBzY2hlZHVsZXMgaW4gb3JkZXIgdG8gYWRkIGFub3RoZXIuJEFtb3VudExvdwACBAUBQW1vdW50IGJlaW5nIHRyYW5zZmVycmVkIGlzIHRvbyBsb3cgdG8gY3JlYXRlIGEgdmVzdGluZyBzY2hlZHVsZS5gU2NoZWR1bGVJbmRleE91dE9mQm91bmRzAAME0EFuIGluZGV4IHdhcyBvdXQgb2YgYm91bmRzIG9mIHRoZSB2ZXN0aW5nIHNjaGVkdWxlcy5USW52YWxpZFNjaGVkdWxlUGFyYW1zAAQEDQFGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IHNjaGVkdWxlIGJlY2F1c2Ugc29tZSBwYXJhbWV0ZXIgd2FzIGludmFsaWQuBHRFcnJvciBmb3IgdGhlIHZlc3RpbmcgcGFsbGV0Li0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBMQoEUwAABAA5CgEYVmVjPFQ+AAAxCgQYT3B0aW9uBARUATUKAQgQTm9uZQAAABBTb21lBAA1CgAAAQAANQoIQHBhbGxldF9zY2hlZHVsZXIkU2NoZWR1bGVkFBBOYW1lAQQQQ2FsbAGFASxCbG9ja051bWJlcgEQNFBhbGxldHNPcmlnaW4BgQIkQWNjb3VudElkAQAAFAEgbWF5YmVfaWQVAQEwT3B0aW9uPE5hbWU+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxshQEBEENhbGwAAThtYXliZV9wZXJpb2RpY5EDAZRPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlcj4+AAEYb3JpZ2lugQIBNFBhbGxldHNPcmlnaW4AADkKAAACMQoAPQoIQHBhbGxldF9zY2hlZHVsZXIsUmV0cnlDb25maWcEGFBlcmlvZAEQAAwBNHRvdGFsX3JldHJpZXMIAQh1OAABJHJlbWFpbmluZwgBCHU4AAEYcGVyaW9kEAEYUGVyaW9kAABBCgxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQURXJyb3IEBFQAARRARmFpbGVkVG9TY2hlZHVsZQAABGRGYWlsZWQgdG8gc2NoZWR1bGUgYSBjYWxsIE5vdEZvdW5kAAEEfENhbm5vdCBmaW5kIHRoZSBzY2hlZHVsZWQgY2FsbC5cVGFyZ2V0QmxvY2tOdW1iZXJJblBhc3QAAgSkR2l2ZW4gdGFyZ2V0IGJsb2NrIG51bWJlciBpcyBpbiB0aGUgcGFzdC5IUmVzY2hlZHVsZU5vQ2hhbmdlAAME8FJlc2NoZWR1bGUgZmFpbGVkIGJlY2F1c2UgaXQgZG9lcyBub3QgY2hhbmdlIHNjaGVkdWxlZCB0aW1lLhROYW1lZAAEBNBBdHRlbXB0IHRvIHVzZSBhIG5vbi1uYW1lZCBmdW5jdGlvbiBvbiBhIG5hbWVkIHRhc2suBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkUKCDxwYWxsZXRfcHJlaW1hZ2VAT2xkUmVxdWVzdFN0YXR1cwgkQWNjb3VudElkAQAcQmFsYW5jZQEYAQgsVW5yZXF1ZXN0ZWQIARxkZXBvc2l0nQQBUChBY2NvdW50SWQsIEJhbGFuY2UpAAEMbGVuEAEMdTMyAAAAJFJlcXVlc3RlZAwBHGRlcG9zaXRJCgFwT3B0aW9uPChBY2NvdW50SWQsIEJhbGFuY2UpPgABFGNvdW50EAEMdTMyAAEMbGVuoQQBLE9wdGlvbjx1MzI+AAEAAEkKBBhPcHRpb24EBFQBnQQBCBBOb25lAAAAEFNvbWUEAJ0EAAABAABNCgg8cGFsbGV0X3ByZWltYWdlNFJlcXVlc3RTdGF0dXMIJEFjY291bnRJZAEAGFRpY2tldAFRCgEILFVucmVxdWVzdGVkCAEYdGlja2V0VQoBTChBY2NvdW50SWQsIFRpY2tldCkAAQxsZW4QAQx1MzIAAAAkUmVxdWVzdGVkDAEwbWF5YmVfdGlja2V0WQoBbE9wdGlvbjwoQWNjb3VudElkLCBUaWNrZXQpPgABFGNvdW50EAEMdTMyAAEkbWF5YmVfbGVuoQQBLE9wdGlvbjx1MzI+AAEAAFEKFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEABgBKEY6OkJhbGFuY2UAAFUKAAAECABRCgBZCgQYT3B0aW9uBARUAVUKAQgQTm9uZQAAABBTb21lBABVCgAAAQAAXQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAOAEYVmVjPFQ+AABhCgw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFcnJvcgQEVAABIBhUb29CaWcAAASgUHJlaW1hZ2UgaXMgdG9vIGxhcmdlIHRvIHN0b3JlIG9uLWNoYWluLjBBbHJlYWR5Tm90ZWQAAQSkUHJlaW1hZ2UgaGFzIGFscmVhZHkgYmVlbiBub3RlZCBvbi1jaGFpbi40Tm90QXV0aG9yaXplZAACBMhUaGUgdXNlciBpcyBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLiBOb3ROb3RlZAADBPxUaGUgcHJlaW1hZ2UgY2Fubm90IGJlIHJlbW92ZWQgc2luY2UgaXQgaGFzIG5vdCB5ZXQgYmVlbiBub3RlZC4kUmVxdWVzdGVkAAQECQFBIHByZWltYWdlIG1heSBub3QgYmUgcmVtb3ZlZCB3aGVuIHRoZXJlIGFyZSBvdXRzdGFuZGluZyByZXF1ZXN0cy4wTm90UmVxdWVzdGVkAAUELQFUaGUgcHJlaW1hZ2UgcmVxdWVzdCBjYW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBubyBvdXRzdGFuZGluZyByZXF1ZXN0cyBleGlzdC4cVG9vTWFueQAGBFUBTW9yZSB0aGFuIGBNQVhfSEFTSF9VUEdSQURFX0JVTEtfQ09VTlRgIGhhc2hlcyB3ZXJlIHJlcXVlc3RlZCB0byBiZSB1cGdyYWRlZCBhdCBvbmNlLhhUb29GZXcABwTkVG9vIGZldyBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgKGkuZS4gemVybykuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmUKDCxwYWxsZXRfc3VkbxhwYWxsZXQURXJyb3IEBFQAAQQsUmVxdWlyZVN1ZG8AAASAU2VuZGVyIG11c3QgYmUgdGhlIFN1ZG8gYWNjb3VudC4EaEVycm9yIGZvciB0aGUgU3VkbyBwYWxsZXQuaQoAAAQIbQoYAG0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBcQoEUwAABAB1CgEYVmVjPFQ+AABxCggwcGFsbGV0X3Byb3h5PFByb3h5RGVmaW5pdGlvbgwkQWNjb3VudElkAQAkUHJveHlUeXBlASkBLEJsb2NrTnVtYmVyARAADAEgZGVsZWdhdGUAASRBY2NvdW50SWQAAShwcm94eV90eXBlKQEBJFByb3h5VHlwZQABFGRlbGF5EAEsQmxvY2tOdW1iZXIAAHUKAAACcQoAeQoAAAQIfQoYAH0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBgQoEUwAABACFCgEYVmVjPFQ+AACBCggwcGFsbGV0X3Byb3h5MEFubm91bmNlbWVudAwkQWNjb3VudElkAQAQSGFzaAE0LEJsb2NrTnVtYmVyARAADAEQcmVhbAABJEFjY291bnRJZAABJGNhbGxfaGFzaDQBEEhhc2gAARhoZWlnaHQQASxCbG9ja051bWJlcgAAhQoAAAKBCgCJCgwwcGFsbGV0X3Byb3h5GHBhbGxldBRFcnJvcgQEVAABIBxUb29NYW55AAAEIQFUaGVyZSBhcmUgdG9vIG1hbnkgcHJveGllcyByZWdpc3RlcmVkIG9yIHRvbyBtYW55IGFubm91bmNlbWVudHMgcGVuZGluZy4gTm90Rm91bmQAAQR0UHJveHkgcmVnaXN0cmF0aW9uIG5vdCBmb3VuZC4gTm90UHJveHkAAgTMU2VuZGVyIGlzIG5vdCBhIHByb3h5IG9mIHRoZSBhY2NvdW50IHRvIGJlIHByb3hpZWQuLFVucHJveHlhYmxlAAMEIQFBIGNhbGwgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHByb3h5IHR5cGUncyBmaWx0ZXIgd2FzIGF0dGVtcHRlZC4kRHVwbGljYXRlAAQEbEFjY291bnQgaXMgYWxyZWFkeSBhIHByb3h5LjBOb1Blcm1pc3Npb24ABQQVAUNhbGwgbWF5IG5vdCBiZSBtYWRlIGJ5IHByb3h5IGJlY2F1c2UgaXQgbWF5IGVzY2FsYXRlIGl0cyBwcml2aWxlZ2VzLixVbmFubm91bmNlZAAGBNBBbm5vdW5jZW1lbnQsIGlmIG1hZGUgYXQgYWxsLCB3YXMgbWFkZSB0b28gcmVjZW50bHkuLE5vU2VsZlByb3h5AAcEZENhbm5vdCBhZGQgc2VsZiBhcyBwcm94eS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQujQoAAAQIAAQAkQoIPHBhbGxldF9tdWx0aXNpZyBNdWx0aXNpZxAsQmxvY2tOdW1iZXIBEBxCYWxhbmNlARgkQWNjb3VudElkAQAwTWF4QXBwcm92YWxzAAAQARB3aGVuNQEBWFRpbWVwb2ludDxCbG9ja051bWJlcj4AARxkZXBvc2l0GAEcQmFsYW5jZQABJGRlcG9zaXRvcgABJEFjY291bnRJZAABJGFwcHJvdmFsc5UKAYxCb3VuZGVkVmVjPEFjY291bnRJZCwgTWF4QXBwcm92YWxzPgAAlQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQA4QEBGFZlYzxUPgAAmQoMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwTcTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCB3aGVuIGF0dGVtcHRpbmcgdG8gY2FuY2VsLiBOb3RPd25lcgAIBC0BT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQuLE5vVGltZXBvaW50AAkEHQFObyB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgdGhlIG11bHRpc2lnIG9wZXJhdGlvbiBpcyBhbHJlYWR5IHVuZGVyd2F5LjhXcm9uZ1RpbWVwb2ludAAKBC0BQSBkaWZmZXJlbnQgdGltZXBvaW50IHdhcyBnaXZlbiB0byB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIHRoYXQgaXMgdW5kZXJ3YXkuTFVuZXhwZWN0ZWRUaW1lcG9pbnQACwT0QSB0aW1lcG9pbnQgd2FzIGdpdmVuLCB5ZXQgbm8gbXVsdGlzaWcgb3BlcmF0aW9uIGlzIHVuZGVyd2F5LjxNYXhXZWlnaHRUb29Mb3cADATQVGhlIG1heGltdW0gd2VpZ2h0IGluZm9ybWF0aW9uIHByb3ZpZGVkIHdhcyB0b28gbG93LjRBbHJlYWR5U3RvcmVkAA0EoFRoZSBkYXRhIHRvIGJlIHN0b3JlZCBpcyBhbHJlYWR5IHN0b3JlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQunQoIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZTRSZWFkeVNvbHV0aW9uCCRBY2NvdW50SWQAKE1heFdpbm5lcnMAAAwBIHN1cHBvcnRzoQoBmEJvdW5kZWRTdXBwb3J0czxBY2NvdW50SWQsIE1heFdpbm5lcnM+AAEUc2NvcmVBAQE0RWxlY3Rpb25TY29yZQABHGNvbXB1dGU9AQE8RWxlY3Rpb25Db21wdXRlAAChCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZEEBFMAAAQAjQQBGFZlYzxUPgAApQoIkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZTRSb3VuZFNuYXBzaG90CCRBY2NvdW50SWQBADBEYXRhUHJvdmlkZXIBqQoACAEYdm90ZXJzrQoBRFZlYzxEYXRhUHJvdmlkZXI+AAEcdGFyZ2V0c+EBAThWZWM8QWNjb3VudElkPgAAqQoAAAQMADA9CQCtCgAAAqkKALEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBtQoEUwAABAC5CgEYVmVjPFQ+AAC1CgAABAxBARAQALkKAAACtQoAvQoMkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZRhzaWduZWRAU2lnbmVkU3VibWlzc2lvbgwkQWNjb3VudElkAQAcQmFsYW5jZQEYIFNvbHV0aW9uAbkDABABDHdobwABJEFjY291bnRJZAABHGRlcG9zaXQYARxCYWxhbmNlAAEwcmF3X3NvbHV0aW9utQMBVFJhd1NvbHV0aW9uPFNvbHV0aW9uPgABIGNhbGxfZmVlGAEcQmFsYW5jZQAAwQoMkHBhbGxldF9lbGVjdGlvbl9wcm92aWRlcl9tdWx0aV9waGFzZRhwYWxsZXQURXJyb3IEBFQAATxoUHJlRGlzcGF0Y2hFYXJseVN1Ym1pc3Npb24AAARkU3VibWlzc2lvbiB3YXMgdG9vIGVhcmx5LmxQcmVEaXNwYXRjaFdyb25nV2lubmVyQ291bnQAAQSIV3JvbmcgbnVtYmVyIG9mIHdpbm5lcnMgcHJlc2VudGVkLmRQcmVEaXNwYXRjaFdlYWtTdWJtaXNzaW9uAAIEkFN1Ym1pc3Npb24gd2FzIHRvbyB3ZWFrLCBzY29yZS13aXNlLjxTaWduZWRRdWV1ZUZ1bGwAAwRJAVRoZSBxdWV1ZSB3YXMgZnVsbCwgYW5kIHRoZSBzb2x1dGlvbiB3YXMgbm90IGJldHRlciB0aGFuIGFueSBvZiB0aGUgZXhpc3Rpbmcgb25lcy5YU2lnbmVkQ2Fubm90UGF5RGVwb3NpdAAEBJRUaGUgb3JpZ2luIGZhaWxlZCB0byBwYXkgdGhlIGRlcG9zaXQuUFNpZ25lZEludmFsaWRXaXRuZXNzAAUEoFdpdG5lc3MgZGF0YSB0byBkaXNwYXRjaGFibGUgaXMgaW52YWxpZC5MU2lnbmVkVG9vTXVjaFdlaWdodAAGBLhUaGUgc2lnbmVkIHN1Ym1pc3Npb24gY29uc3VtZXMgdG9vIG11Y2ggd2VpZ2h0PE9jd0NhbGxXcm9uZ0VyYQAHBJhPQ1cgc3VibWl0dGVkIHNvbHV0aW9uIGZvciB3cm9uZyByb3VuZFxNaXNzaW5nU25hcHNob3RNZXRhZGF0YQAIBKhTbmFwc2hvdCBtZXRhZGF0YSBzaG91bGQgZXhpc3QgYnV0IGRpZG4ndC5YSW52YWxpZFN1Ym1pc3Npb25JbmRleAAJBNBgU2VsZjo6aW5zZXJ0X3N1Ym1pc3Npb25gIHJldHVybmVkIGFuIGludmFsaWQgaW5kZXguOENhbGxOb3RBbGxvd2VkAAoEmFRoZSBjYWxsIGlzIG5vdCBhbGxvd2VkIGF0IHRoaXMgcG9pbnQuOEZhbGxiYWNrRmFpbGVkAAsETFRoZSBmYWxsYmFjayBmYWlsZWQsQm91bmROb3RNZXQADARIU29tZSBib3VuZCBub3QgbWV0OFRvb01hbnlXaW5uZXJzAA0EnFN1Ym1pdHRlZCBzb2x1dGlvbiBoYXMgdG9vIG1hbnkgd2lubmVyc2RQcmVEaXNwYXRjaERpZmZlcmVudFJvdW5kAA4EuFN1Ym1pc3Npb24gd2FzIHByZXBhcmVkIGZvciBhIGRpZmZlcmVudCByb3VuZC4EDQFFcnJvciBvZiB0aGUgcGFsbGV0IHRoYXQgY2FuIGJlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGRpc3BhdGNoZXMuxQoMQHBhbGxldF9iYWdzX2xpc3QQbGlzdBBOb2RlCARUAARJAAAUAQhpZAABMFQ6OkFjY291bnRJZAABEHByZXYhAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AARBuZXh0IQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEkYmFnX3VwcGVyMAEgVDo6U2NvcmUAARRzY29yZTABIFQ6OlNjb3JlAADJCgxAcGFsbGV0X2JhZ3NfbGlzdBBsaXN0DEJhZwgEVAAESQAACAEQaGVhZCEBAVBPcHRpb248VDo6QWNjb3VudElkPgABEHRhaWwhAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AAM0KAAACMADRCgxAcGFsbGV0X2JhZ3NfbGlzdBhwYWxsZXQURXJyb3IIBFQABEkAAQQQTGlzdAQA1QoBJExpc3RFcnJvcgAABLRBIGVycm9yIGluIHRoZSBsaXN0IGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbi4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu1QoMQHBhbGxldF9iYWdzX2xpc3QQbGlzdCRMaXN0RXJyb3IAARAkRHVwbGljYXRlAAAAKE5vdEhlYXZpZXIAAQAwTm90SW5TYW1lQmFnAAIAME5vZGVOb3RGb3VuZAADAADZCghccGFsbGV0X25vbWluYXRpb25fcG9vbHMoUG9vbE1lbWJlcgQEVAAAEAEccG9vbF9pZBABGFBvb2xJZAABGHBvaW50cxgBMEJhbGFuY2VPZjxUPgABcGxhc3RfcmVjb3JkZWRfcmV3YXJkX2NvdW50ZXKVBwFAVDo6UmV3YXJkQ291bnRlcgABOHVuYm9uZGluZ19lcmFz3QoB4EJvdW5kZWRCVHJlZU1hcDxFcmFJbmRleCwgQmFsYW5jZU9mPFQ+LCBUOjpNYXhVbmJvbmRpbmc+AADdCgxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX21hcDxCb3VuZGVkQlRyZWVNYXAMBEsBEARWARgEUwAABADhCgE4QlRyZWVNYXA8SywgVj4AAOEKBCBCVHJlZU1hcAgESwEQBFYBGAAEAOUKAAAA5QoAAALpCgDpCgAABAgQGADtCghccGFsbGV0X25vbWluYXRpb25fcG9vbHM8Qm9uZGVkUG9vbElubmVyBARUAAAUAShjb21taXNzaW9u8QoBNENvbW1pc3Npb248VD4AAThtZW1iZXJfY291bnRlchABDHUzMgABGHBvaW50cxgBMEJhbGFuY2VPZjxUPgABFHJvbGVz/QoBXFBvb2xSb2xlczxUOjpBY2NvdW50SWQ+AAEUc3RhdGVVAQEkUG9vbFN0YXRlAADxCghccGFsbGV0X25vbWluYXRpb25fcG9vbHMoQ29tbWlzc2lvbgQEVAAAFAEcY3VycmVudFkBAXxPcHRpb248KFBlcmJpbGwsIFQ6OkFjY291bnRJZCk+AAEMbWF49QoBPE9wdGlvbjxQZXJiaWxsPgABLGNoYW5nZV9yYXRl+QoBvE9wdGlvbjxDb21taXNzaW9uQ2hhbmdlUmF0ZTxCbG9ja051bWJlckZvcjxUPj4+AAE0dGhyb3R0bGVfZnJvbaEEAWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAFAY2xhaW1fcGVybWlzc2lvbmUBAbxPcHRpb248Q29tbWlzc2lvbkNsYWltUGVybWlzc2lvbjxUOjpBY2NvdW50SWQ+PgAA9QoEGE9wdGlvbgQEVAGUAQgQTm9uZQAAABBTb21lBACUAAABAAD5CgQYT3B0aW9uBARUAWEBAQgQTm9uZQAAABBTb21lBABhAQAAAQAA/QoIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzJFBvb2xSb2xlcwQkQWNjb3VudElkAQAAEAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEQcm9vdCEBAURPcHRpb248QWNjb3VudElkPgABJG5vbWluYXRvciEBAURPcHRpb248QWNjb3VudElkPgABHGJvdW5jZXIhAQFET3B0aW9uPEFjY291bnRJZD4AAAELCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyhSZXdhcmRQb29sBARUAAAUAXBsYXN0X3JlY29yZGVkX3Jld2FyZF9jb3VudGVylQcBQFQ6OlJld2FyZENvdW50ZXIAAWxsYXN0X3JlY29yZGVkX3RvdGFsX3BheW91dHMYATBCYWxhbmNlT2Y8VD4AAVR0b3RhbF9yZXdhcmRzX2NsYWltZWQYATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX3BlbmRpbmcYATBCYWxhbmNlT2Y8VD4AAWB0b3RhbF9jb21taXNzaW9uX2NsYWltZWQYATBCYWxhbmNlT2Y8VD4AAAULCFxwYWxsZXRfbm9taW5hdGlvbl9wb29scyBTdWJQb29scwQEVAAACAEYbm9fZXJhCQsBNFVuYm9uZFBvb2w8VD4AASB3aXRoX2VyYQ0LAQEBQm91bmRlZEJUcmVlTWFwPEVyYUluZGV4LCBVbmJvbmRQb29sPFQ+LCBUb3RhbFVuYm9uZGluZ1Bvb2xzPFQ+PgAACQsIXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzKFVuYm9uZFBvb2wEBFQAAAgBGHBvaW50cxgBMEJhbGFuY2VPZjxUPgABHGJhbGFuY2UYATBCYWxhbmNlT2Y8VD4AAA0LDExib3VuZGVkX2NvbGxlY3Rpb25zRGJvdW5kZWRfYnRyZWVfbWFwPEJvdW5kZWRCVHJlZU1hcAwESwEQBFYBCQsEUwAABAARCwE4QlRyZWVNYXA8SywgVj4AABELBCBCVHJlZU1hcAgESwEQBFYBCQsABAAVCwAAABULAAACGQsAGQsAAAQIEAkLAB0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAAIQsINGZyYW1lX3N1cHBvcnQgUGFsbGV0SWQAAAQACQMBHFt1ODsgOF0AACULDFxwYWxsZXRfbm9taW5hdGlvbl9wb29scxhwYWxsZXQURXJyb3IEBFQAAZAwUG9vbE5vdEZvdW5kAAAEiEEgKGJvbmRlZCkgcG9vbCBpZCBkb2VzIG5vdCBleGlzdC5IUG9vbE1lbWJlck5vdEZvdW5kAAEEbEFuIGFjY291bnQgaXMgbm90IGEgbWVtYmVyLkhSZXdhcmRQb29sTm90Rm91bmQAAgQhAUEgcmV3YXJkIHBvb2wgZG9lcyBub3QgZXhpc3QuIEluIGFsbCBjYXNlcyB0aGlzIGlzIGEgc3lzdGVtIGxvZ2ljIGVycm9yLkBTdWJQb29sc05vdEZvdW5kAAMEaEEgc3ViIHBvb2wgZG9lcyBub3QgZXhpc3QuZEFjY291bnRCZWxvbmdzVG9PdGhlclBvb2wABAhNAUFuIGFjY291bnQgaXMgYWxyZWFkeSBkZWxlZ2F0aW5nIGluIGFub3RoZXIgcG9vbC4gQW4gYWNjb3VudCBtYXkgb25seSBiZWxvbmcgdG8gb25lPHBvb2wgYXQgYSB0aW1lLjhGdWxseVVuYm9uZGluZwAFCD0BVGhlIG1lbWJlciBpcyBmdWxseSB1bmJvbmRlZCAoYW5kIHRodXMgY2Fubm90IGFjY2VzcyB0aGUgYm9uZGVkIGFuZCByZXdhcmQgcG9vbKhhbnltb3JlIHRvLCBmb3IgZXhhbXBsZSwgY29sbGVjdCByZXdhcmRzKS5ETWF4VW5ib25kaW5nTGltaXQABgQJAVRoZSBtZW1iZXIgY2Fubm90IHVuYm9uZCBmdXJ0aGVyIGNodW5rcyBkdWUgdG8gcmVhY2hpbmcgdGhlIGxpbWl0LkRDYW5ub3RXaXRoZHJhd0FueQAHBE0BTm9uZSBvZiB0aGUgZnVuZHMgY2FuIGJlIHdpdGhkcmF3biB5ZXQgYmVjYXVzZSB0aGUgYm9uZGluZyBkdXJhdGlvbiBoYXMgbm90IHBhc3NlZC5ETWluaW11bUJvbmROb3RNZXQACBQpAVRoZSBhbW91bnQgZG9lcyBub3QgbWVldCB0aGUgbWluaW11bSBib25kIHRvIGVpdGhlciBqb2luIG9yIGNyZWF0ZSBhIHBvb2wuAFUBVGhlIGRlcG9zaXRvciBjYW4gbmV2ZXIgdW5ib25kIHRvIGEgdmFsdWUgbGVzcyB0aGFuIGBQYWxsZXQ6OmRlcG9zaXRvcl9taW5fYm9uZGAuIFRoZV0BY2FsbGVyIGRvZXMgbm90IGhhdmUgbm9taW5hdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBvb2wuIE1lbWJlcnMgY2FuIG5ldmVyIHVuYm9uZCB0byBhaHZhbHVlIGJlbG93IGBNaW5Kb2luQm9uZGAuME92ZXJmbG93UmlzawAJBCEBVGhlIHRyYW5zYWN0aW9uIGNvdWxkIG5vdCBiZSBleGVjdXRlZCBkdWUgdG8gb3ZlcmZsb3cgcmlzayBmb3IgdGhlIHBvb2wuNE5vdERlc3Ryb3lpbmcACghdAUEgcG9vbCBtdXN0IGJlIGluIFtgUG9vbFN0YXRlOjpEZXN0cm95aW5nYF0gaW4gb3JkZXIgZm9yIHRoZSBkZXBvc2l0b3IgdG8gdW5ib25kIG9yIGZvcrhvdGhlciBtZW1iZXJzIHRvIGJlIHBlcm1pc3Npb25sZXNzbHkgdW5ib25kZWQuME5vdE5vbWluYXRvcgALBPRUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgbm9taW5hdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBvb2wuVE5vdEtpY2tlck9yRGVzdHJveWluZwAMBD0BRWl0aGVyIGEpIHRoZSBjYWxsZXIgY2Fubm90IG1ha2UgYSB2YWxpZCBraWNrIG9yIGIpIHRoZSBwb29sIGlzIG5vdCBkZXN0cm95aW5nLhxOb3RPcGVuAA0EcFRoZSBwb29sIGlzIG5vdCBvcGVuIHRvIGpvaW4gTWF4UG9vbHMADgSEVGhlIHN5c3RlbSBpcyBtYXhlZCBvdXQgb24gcG9vbHMuOE1heFBvb2xNZW1iZXJzAA8EnFRvbyBtYW55IG1lbWJlcnMgaW4gdGhlIHBvb2wgb3Igc3lzdGVtLkRDYW5Ob3RDaGFuZ2VTdGF0ZQAQBIhUaGUgcG9vbHMgc3RhdGUgY2Fubm90IGJlIGNoYW5nZWQuVERvZXNOb3RIYXZlUGVybWlzc2lvbgARBLhUaGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgYWRlcXVhdGUgcGVybWlzc2lvbnMuVE1ldGFkYXRhRXhjZWVkc01heExlbgASBKxNZXRhZGF0YSBleGNlZWRzIFtgQ29uZmlnOjpNYXhNZXRhZGF0YUxlbmBdJERlZmVuc2l2ZQQAKQsBOERlZmVuc2l2ZUVycm9yABMIMQFTb21lIGVycm9yIG9jY3VycmVkIHRoYXQgc2hvdWxkIG5ldmVyIGhhcHBlbi4gVGhpcyBzaG91bGQgYmUgcmVwb3J0ZWQgdG8gdGhlMG1haW50YWluZXJzLpxQYXJ0aWFsVW5ib25kTm90QWxsb3dlZFBlcm1pc3Npb25sZXNzbHkAFAS8UGFydGlhbCB1bmJvbmRpbmcgbm93IGFsbG93ZWQgcGVybWlzc2lvbmxlc3NseS5cTWF4Q29tbWlzc2lvblJlc3RyaWN0ZWQAFQQdAVRoZSBwb29sJ3MgbWF4IGNvbW1pc3Npb24gY2Fubm90IGJlIHNldCBoaWdoZXIgdGhhbiB0aGUgZXhpc3RpbmcgdmFsdWUuYENvbW1pc3Npb25FeGNlZWRzTWF4aW11bQAWBOxUaGUgc3VwcGxpZWQgY29tbWlzc2lvbiBleGNlZWRzIHRoZSBtYXggYWxsb3dlZCBjb21taXNzaW9uLnhDb21taXNzaW9uRXhjZWVkc0dsb2JhbE1heGltdW0AFwToVGhlIHN1cHBsaWVkIGNvbW1pc3Npb24gZXhjZWVkcyBnbG9iYWwgbWF4aW11bSBjb21taXNzaW9uLmRDb21taXNzaW9uQ2hhbmdlVGhyb3R0bGVkABgECQFOb3QgZW5vdWdoIGJsb2NrcyBoYXZlIHN1cnBhc3NlZCBzaW5jZSB0aGUgbGFzdCBjb21taXNzaW9uIHVwZGF0ZS54Q29tbWlzc2lvbkNoYW5nZVJhdGVOb3RBbGxvd2VkABkEAQFUaGUgc3VibWl0dGVkIGNoYW5nZXMgdG8gY29tbWlzc2lvbiBjaGFuZ2UgcmF0ZSBhcmUgbm90IGFsbG93ZWQuTE5vUGVuZGluZ0NvbW1pc3Npb24AGgSgVGhlcmUgaXMgbm8gcGVuZGluZyBjb21taXNzaW9uIHRvIGNsYWltLlhOb0NvbW1pc3Npb25DdXJyZW50U2V0ABsEjE5vIGNvbW1pc3Npb24gY3VycmVudCBoYXMgYmVlbiBzZXQuLFBvb2xJZEluVXNlABwEZFBvb2wgaWQgY3VycmVudGx5IGluIHVzZS40SW52YWxpZFBvb2xJZAAdBJxQb29sIGlkIHByb3ZpZGVkIGlzIG5vdCBjb3JyZWN0L3VzYWJsZS5MQm9uZEV4dHJhUmVzdHJpY3RlZAAeBPxCb25kaW5nIGV4dHJhIGlzIHJlc3RyaWN0ZWQgdG8gdGhlIGV4YWN0IHBlbmRpbmcgcmV3YXJkIGFtb3VudC48Tm90aGluZ1RvQWRqdXN0AB8EsE5vIGltYmFsYW5jZSBpbiB0aGUgRUQgZGVwb3NpdCBmb3IgdGhlIHBvb2wuOE5vdGhpbmdUb1NsYXNoACAEzE5vIHNsYXNoIHBlbmRpbmcgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgbWVtYmVyLjxBbHJlYWR5TWlncmF0ZWQAIQQVAVRoZSBwb29sIG9yIG1lbWJlciBkZWxlZ2F0aW9uIGhhcyBhbHJlYWR5IG1pZ3JhdGVkIHRvIGRlbGVnYXRlIHN0YWtlLixOb3RNaWdyYXRlZAAiBBUBVGhlIHBvb2wgb3IgbWVtYmVyIGRlbGVnYXRpb24gaGFzIG5vdCBtaWdyYXRlZCB5ZXQgdG8gZGVsZWdhdGUgc3Rha2UuME5vdFN1cHBvcnRlZAAjBPBUaGlzIGNhbGwgaXMgbm90IGFsbG93ZWQgaW4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHBhbGxldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuKQsMXHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzGHBhbGxldDhEZWZlbnNpdmVFcnJvcgABHGhOb3RFbm91Z2hTcGFjZUluVW5ib25kUG9vbAAAADBQb29sTm90Rm91bmQAAQBIUmV3YXJkUG9vbE5vdEZvdW5kAAIAQFN1YlBvb2xzTm90Rm91bmQAAwBwQm9uZGVkU3Rhc2hLaWxsZWRQcmVtYXR1cmVseQAEAFREZWxlZ2F0aW9uVW5zdXBwb3J0ZWQABQA8U2xhc2hOb3RBcHBsaWVkAAYAAC0LDExwYWxsZXRfZmFzdF91bnN0YWtlFHR5cGVzOFVuc3Rha2VSZXF1ZXN0BARUAAAIARxzdGFzaGVzMQsB2EJvdW5kZWRWZWM8KFQ6OkFjY291bnRJZCwgQmFsYW5jZU9mPFQ+KSwgVDo6QmF0Y2hTaXplPgABHGNoZWNrZWQ1CwGQQm91bmRlZFZlYzxFcmFJbmRleCwgTWF4Q2hlY2tpbmc8VD4+AAAxCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAZ0EBFMAAAQAmQQBGFZlYzxUPgAANQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEQBFMAAAQAcQEBGFZlYzxUPgAAOQsMTHBhbGxldF9mYXN0X3Vuc3Rha2UYcGFsbGV0FEVycm9yBARUAAEYNE5vdENvbnRyb2xsZXIAAAy4VGhlIHByb3ZpZGVkIENvbnRyb2xsZXIgYWNjb3VudCB3YXMgbm90IGZvdW5kLgDAVGhpcyBtZWFucyB0aGF0IHRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBib25kZWQuNEFscmVhZHlRdWV1ZWQAAQSsVGhlIGJvbmRlZCBhY2NvdW50IGhhcyBhbHJlYWR5IGJlZW4gcXVldWVkLjhOb3RGdWxseUJvbmRlZAACBLxUaGUgYm9uZGVkIGFjY291bnQgaGFzIGFjdGl2ZSB1bmxvY2tpbmcgY2h1bmtzLiROb3RRdWV1ZWQAAwS0VGhlIHByb3ZpZGVkIHVuLXN0YWtlciBpcyBub3QgaW4gdGhlIGBRdWV1ZWAuLEFscmVhZHlIZWFkAAQEBQFUaGUgcHJvdmlkZWQgdW4tc3Rha2VyIGlzIGFscmVhZHkgaW4gSGVhZCwgYW5kIGNhbm5vdCBkZXJlZ2lzdGVyLjhDYWxsTm90QWxsb3dlZAAFBB0BVGhlIGNhbGwgaXMgbm90IGFsbG93ZWQgYXQgdGhpcyBwb2ludCBiZWNhdXNlIHRoZSBwYWxsZXQgaXMgbm90IGFjdGl2ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuPQsAAAQIAC0BAEELDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRhWb3RpbmcUHEJhbGFuY2UBGCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEQJFBvbGxJbmRleAEQIE1heFZvdGVzAAEIHENhc3RpbmcEAEULAchDYXN0aW5nPEJhbGFuY2UsIEJsb2NrTnVtYmVyLCBQb2xsSW5kZXgsIE1heFZvdGVzPgAAAChEZWxlZ2F0aW5nBABdCwGsRGVsZWdhdGluZzxCYWxhbmNlLCBBY2NvdW50SWQsIEJsb2NrTnVtYmVyPgABAABFCwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUcQ2FzdGluZxAcQmFsYW5jZQEYLEJsb2NrTnVtYmVyARAkUG9sbEluZGV4ARAgTWF4Vm90ZXMAAAwBFHZvdGVzSQsB3EJvdW5kZWRWZWM8KFBvbGxJbmRleCwgQWNjb3VudFZvdGU8QmFsYW5jZT4pLCBNYXhWb3Rlcz4AASxkZWxlZ2F0aW9uc1ULAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9yWQsBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAEkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBTQsEUwAABABRCwEYVmVjPFQ+AABNCwAABAgQeQEAUQsAAAJNCwBVCwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzLERlbGVnYXRpb25zBBxCYWxhbmNlARgACAEUdm90ZXMYARxCYWxhbmNlAAEcY2FwaXRhbBgBHEJhbGFuY2UAAFkLDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZSRQcmlvckxvY2sILEJsb2NrTnVtYmVyARAcQmFsYW5jZQEYAAgAEAEsQmxvY2tOdW1iZXIAABgBHEJhbGFuY2UAAF0LDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZShEZWxlZ2F0aW5nDBxCYWxhbmNlARgkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBEAAUARxiYWxhbmNlGAEcQmFsYW5jZQABGHRhcmdldAABJEFjY291bnRJZAABKGNvbnZpY3Rpb27NBAEoQ29udmljdGlvbgABLGRlbGVnYXRpb25zVQsBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3JZCwF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgAAYQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFlCwRTAAAEAGkLARhWZWM8VD4AAGULAAAECC0BGABpCwAAAmULAG0LDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0FEVycm9yCARUAARJAAEwKE5vdE9uZ29pbmcAAARQUG9sbCBpcyBub3Qgb25nb2luZy4gTm90Vm90ZXIAAQSsVGhlIGdpdmVuIGFjY291bnQgZGlkIG5vdCB2b3RlIG9uIHRoZSBwb2xsLjBOb1Blcm1pc3Npb24AAgTIVGhlIGFjdG9yIGhhcyBubyBwZXJtaXNzaW9uIHRvIGNvbmR1Y3QgdGhlIGFjdGlvbi48Tm9QZXJtaXNzaW9uWWV0AAMEWQFUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uIHJpZ2h0IG5vdyBidXQgd2lsbCBkbyBpbiB0aGUgZnV0dXJlLkRBbHJlYWR5RGVsZWdhdGluZwAEBIhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGRlbGVnYXRpbmcuNEFscmVhZHlWb3RpbmcABQhVAVRoZSBhY2NvdW50IGN1cnJlbnRseSBoYXMgdm90ZXMgYXR0YWNoZWQgdG8gaXQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IHN1Y2NlZWQgdW50aWygdGhlc2UgYXJlIHJlbW92ZWQgdGhyb3VnaCBgcmVtb3ZlX3ZvdGVgLkRJbnN1ZmZpY2llbnRGdW5kcwAGBPxUb28gaGlnaCBhIGJhbGFuY2Ugd2FzIHByb3ZpZGVkIHRoYXQgdGhlIGFjY291bnQgY2Fubm90IGFmZm9yZC40Tm90RGVsZWdhdGluZwAHBKBUaGUgYWNjb3VudCBpcyBub3QgY3VycmVudGx5IGRlbGVnYXRpbmcuIE5vbnNlbnNlAAgElERlbGVnYXRpb24gdG8gb25lc2VsZiBtYWtlcyBubyBzZW5zZS48TWF4Vm90ZXNSZWFjaGVkAAkEgE1heGltdW0gbnVtYmVyIG9mIHZvdGVzIHJlYWNoZWQuLENsYXNzTmVlZGVkAAoEOQFUaGUgY2xhc3MgbXVzdCBiZSBzdXBwbGllZCBzaW5jZSBpdCBpcyBub3QgZWFzaWx5IGRldGVybWluYWJsZSBmcm9tIHRoZSBzdGF0ZS4gQmFkQ2xhc3MACwSEVGhlIGNsYXNzIElEIHN1cHBsaWVkIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnELDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOFJlZmVyZW5kdW1JbmZvIBxUcmFja0lkAS0BNFJ1bnRpbWVPcmlnaW4BgQIYTW9tZW50ARAQQ2FsbAGFARxCYWxhbmNlARgUVGFsbHkB3QckQWNjb3VudElkAQA8U2NoZWR1bGVBZGRyZXNzAREBARgcT25nb2luZwQAdQsBjQFSZWZlcmVuZHVtU3RhdHVzPFRyYWNrSWQsIFJ1bnRpbWVPcmlnaW4sIE1vbWVudCwgQ2FsbCwgQmFsYW5jZSwgVGFsbHksCkFjY291bnRJZCwgU2NoZWR1bGVBZGRyZXNzLD4AAAAgQXBwcm92ZWQMABABGE1vbWVudAAAfQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAB9CwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAQAgUmVqZWN0ZWQMABABGE1vbWVudAAAfQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAB9CwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAgAkQ2FuY2VsbGVkDAAQARhNb21lbnQAAH0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAfQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAMAIFRpbWVkT3V0DAAQARhNb21lbnQAAH0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAAfQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAQAGEtpbGxlZAQAEAEYTW9tZW50AAUAAHULDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMgHFRyYWNrSWQBLQE0UnVudGltZU9yaWdpbgGBAhhNb21lbnQBEBBDYWxsAYUBHEJhbGFuY2UBGBRUYWxseQHdByRBY2NvdW50SWQBADxTY2hlZHVsZUFkZHJlc3MBEQEALAEUdHJhY2stAQEcVHJhY2tJZAABGG9yaWdpboECATRSdW50aW1lT3JpZ2luAAEgcHJvcG9zYWyFAQEQQ2FsbAABJGVuYWN0bWVudNkEAVBEaXNwYXRjaFRpbWU8TW9tZW50PgABJHN1Ym1pdHRlZBABGE1vbWVudAABSHN1Ym1pc3Npb25fZGVwb3NpdHkLAWxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4AAUBkZWNpc2lvbl9kZXBvc2l0fQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEgZGVjaWRpbmeBCwF4T3B0aW9uPERlY2lkaW5nU3RhdHVzPE1vbWVudD4+AAEUdGFsbHndBwEUVGFsbHkAASBpbl9xdWV1ZSABEGJvb2wAARRhbGFybYkLAYRPcHRpb248KE1vbWVudCwgU2NoZWR1bGVBZGRyZXNzKT4AAHkLDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzHERlcG9zaXQIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAIAQx3aG8AASRBY2NvdW50SWQAARhhbW91bnQYARxCYWxhbmNlAAB9CwQYT3B0aW9uBARUAXkLAQgQTm9uZQAAABBTb21lBAB5CwAAAQAAgQsEGE9wdGlvbgQEVAGFCwEIEE5vbmUAAAAQU29tZQQAhQsAAAEAAIULDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOERlY2lkaW5nU3RhdHVzBCxCbG9ja051bWJlcgEQAAgBFHNpbmNlEAEsQmxvY2tOdW1iZXIAAShjb25maXJtaW5noQQBTE9wdGlvbjxCbG9ja051bWJlcj4AAIkLBBhPcHRpb24EBFQBjQsBCBBOb25lAAAAEFNvbWUEAI0LAAABAACNCwAABAgQEQEAkQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHpCgRTAAAEAOUKARhWZWM8VD4AAJULAAACmQsAmQsAAAQILQGdCwCdCwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcyRUcmFja0luZm8IHEJhbGFuY2UBGBhNb21lbnQBEAAkARBuYW1lZQgBMCYnc3RhdGljIHN0cgABMG1heF9kZWNpZGluZxABDHUzMgABQGRlY2lzaW9uX2RlcG9zaXQYARxCYWxhbmNlAAE4cHJlcGFyZV9wZXJpb2QQARhNb21lbnQAATxkZWNpc2lvbl9wZXJpb2QQARhNb21lbnQAAThjb25maXJtX3BlcmlvZBABGE1vbWVudAABUG1pbl9lbmFjdG1lbnRfcGVyaW9kEAEYTW9tZW50AAEwbWluX2FwcHJvdmFsoQsBFEN1cnZlAAEsbWluX3N1cHBvcnShCwEUQ3VydmUAAKELDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzFEN1cnZlAAEMQExpbmVhckRlY3JlYXNpbmcMARhsZW5ndGiUARxQZXJiaWxsAAEUZmxvb3KUARxQZXJiaWxsAAEQY2VpbJQBHFBlcmJpbGwAAABEU3RlcHBlZERlY3JlYXNpbmcQARRiZWdpbpQBHFBlcmJpbGwAAQxlbmSUARxQZXJiaWxsAAEQc3RlcJQBHFBlcmJpbGwAARhwZXJpb2SUARxQZXJiaWxsAAEAKFJlY2lwcm9jYWwMARhmYWN0b3KlCwEgRml4ZWRJNjQAASB4X29mZnNldKULASBGaXhlZEk2NAABIHlfb2Zmc2V0pQsBIEZpeGVkSTY0AAIAAKULDDRzcF9hcml0aG1ldGljLGZpeGVkX3BvaW50IEZpeGVkSTY0AAAEAKkLAQxpNjQAAKkLAAAFDACtCwxAcGFsbGV0X3JlZmVyZW5kYRhwYWxsZXQURXJyb3IIBFQABEkAATgoTm90T25nb2luZwAABGhSZWZlcmVuZHVtIGlzIG5vdCBvbmdvaW5nLihIYXNEZXBvc2l0AAEEuFJlZmVyZW5kdW0ncyBkZWNpc2lvbiBkZXBvc2l0IGlzIGFscmVhZHkgcGFpZC4gQmFkVHJhY2sAAgScVGhlIHRyYWNrIGlkZW50aWZpZXIgZ2l2ZW4gd2FzIGludmFsaWQuEEZ1bGwAAwQxAVRoZXJlIGFyZSBhbHJlYWR5IGEgZnVsbCBjb21wbGVtZW50IG9mIHJlZmVyZW5kYSBpbiBwcm9ncmVzcyBmb3IgdGhpcyB0cmFjay4oUXVldWVFbXB0eQAEBIBUaGUgcXVldWUgb2YgdGhlIHRyYWNrIGlzIGVtcHR5LjRCYWRSZWZlcmVuZHVtAAUE5FRoZSByZWZlcmVuZHVtIGluZGV4IHByb3ZpZGVkIGlzIGludmFsaWQgaW4gdGhpcyBjb250ZXh0LixOb3RoaW5nVG9EbwAGBKxUaGVyZSB3YXMgbm90aGluZyB0byBkbyBpbiB0aGUgYWR2YW5jZW1lbnQuHE5vVHJhY2sABwSgTm8gdHJhY2sgZXhpc3RzIGZvciB0aGUgcHJvcG9zYWwgb3JpZ2luLihVbmZpbmlzaGVkAAgEAQFBbnkgZGVwb3NpdCBjYW5ub3QgYmUgcmVmdW5kZWQgdW50aWwgYWZ0ZXIgdGhlIGRlY2lzaW9uIGlzIG92ZXIuME5vUGVybWlzc2lvbgAJBKhUaGUgZGVwb3NpdCByZWZ1bmRlciBpcyBub3QgdGhlIGRlcG9zaXRvci4kTm9EZXBvc2l0AAoEzFRoZSBkZXBvc2l0IGNhbm5vdCBiZSByZWZ1bmRlZCBzaW5jZSBub25lIHdhcyBtYWRlLiRCYWRTdGF0dXMACwTQVGhlIHJlZmVyZW5kdW0gc3RhdHVzIGlzIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uLkBQcmVpbWFnZU5vdEV4aXN0AAwEcFRoZSBwcmVpbWFnZSBkb2VzIG5vdCBleGlzdC6EUHJlaW1hZ2VTdG9yZWRXaXRoRGlmZmVyZW50TGVuZ3RoAA0EFQFUaGUgcHJlaW1hZ2UgaXMgc3RvcmVkIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIHRoYW4gdGhlIG9uZSBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQusQsMQHBhbGxldF93aGl0ZWxpc3QYcGFsbGV0FEVycm9yBARUAAEUTFVuYXZhaWxhYmxlUHJlSW1hZ2UAAATIVGhlIHByZWltYWdlIG9mIHRoZSBjYWxsIGhhc2ggY291bGQgbm90IGJlIGxvYWRlZC48VW5kZWNvZGFibGVDYWxsAAEEeFRoZSBjYWxsIGNvdWxkIG5vdCBiZSBkZWNvZGVkLmBJbnZhbGlkQ2FsbFdlaWdodFdpdG5lc3MAAgTsVGhlIHdlaWdodCBvZiB0aGUgZGVjb2RlZCBjYWxsIHdhcyBoaWdoZXIgdGhhbiB0aGUgd2l0bmVzcy5QQ2FsbElzTm90V2hpdGVsaXN0ZWQAAwR0VGhlIGNhbGwgd2FzIG5vdCB3aGl0ZWxpc3RlZC5YQ2FsbEFscmVhZHlXaGl0ZWxpc3RlZAAEBKBUaGUgY2FsbCB3YXMgYWxyZWFkeSB3aGl0ZWxpc3RlZDsgTm8tT3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrULCDxwYWxsZXRfdHJlYXN1cnkgUHJvcG9zYWwIJEFjY291bnRJZAEAHEJhbGFuY2UBGAAQASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlGAEcQmFsYW5jZQABLGJlbmVmaWNpYXJ5AAEkQWNjb3VudElkAAEQYm9uZBgBHEJhbGFuY2UAALkLDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBEARTAAAEAHEBARhWZWM8VD4AAL0LCDxwYWxsZXRfdHJlYXN1cnksU3BlbmRTdGF0dXMUJEFzc2V0S2luZAHpBDBBc3NldEJhbGFuY2UBGCxCZW5lZmljaWFyeQEJBSxCbG9ja051bWJlcgEQJFBheW1lbnRJZAEwABgBKGFzc2V0X2tpbmTpBAEkQXNzZXRLaW5kAAEYYW1vdW50GAEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnkJBQEsQmVuZWZpY2lhcnkAASh2YWxpZF9mcm9tEAEsQmxvY2tOdW1iZXIAASRleHBpcmVfYXQQASxCbG9ja051bWJlcgABGHN0YXR1c8ELAVxQYXltZW50U3RhdGU8UGF5bWVudElkPgAAwQsIPHBhbGxldF90cmVhc3VyeTBQYXltZW50U3RhdGUECElkATABDBxQZW5kaW5nAAAAJEF0dGVtcHRlZAQBCGlkMAEISWQAAQAYRmFpbGVkAAIAAMULDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVybWlsbAAABAAQAQx1MzIAAMkLDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0FEVycm9yCARUAARJAAEsMEludmFsaWRJbmRleAAABKxObyBwcm9wb3NhbCwgYm91bnR5IG9yIHNwZW5kIGF0IHRoYXQgaW5kZXguQFRvb01hbnlBcHByb3ZhbHMAAQSAVG9vIG1hbnkgYXBwcm92YWxzIGluIHRoZSBxdWV1ZS5YSW5zdWZmaWNpZW50UGVybWlzc2lvbgACCEUBVGhlIHNwZW5kIG9yaWdpbiBpcyB2YWxpZCBidXQgdGhlIGFtb3VudCBpdCBpcyBhbGxvd2VkIHRvIHNwZW5kIGlzIGxvd2VyIHRoYW4gdGhlTGFtb3VudCB0byBiZSBzcGVudC5MUHJvcG9zYWxOb3RBcHByb3ZlZAADBHxQcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuWEZhaWxlZFRvQ29udmVydEJhbGFuY2UABARRAVRoZSBiYWxhbmNlIG9mIHRoZSBhc3NldCBraW5kIGlzIG5vdCBjb252ZXJ0aWJsZSB0byB0aGUgYmFsYW5jZSBvZiB0aGUgbmF0aXZlIGFzc2V0LjBTcGVuZEV4cGlyZWQABQSwVGhlIHNwZW5kIGhhcyBleHBpcmVkIGFuZCBjYW5ub3QgYmUgY2xhaW1lZC4sRWFybHlQYXlvdXQABgSkVGhlIHNwZW5kIGlzIG5vdCB5ZXQgZWxpZ2libGUgZm9yIHBheW91dC5AQWxyZWFkeUF0dGVtcHRlZAAHBJxUaGUgcGF5bWVudCBoYXMgYWxyZWFkeSBiZWVuIGF0dGVtcHRlZC4sUGF5b3V0RXJyb3IACATMVGhlcmUgd2FzIHNvbWUgaXNzdWUgd2l0aCB0aGUgbWVjaGFuaXNtIG9mIHBheW1lbnQuME5vdEF0dGVtcHRlZAAJBKRUaGUgcGF5b3V0IHdhcyBub3QgeWV0IGF0dGVtcHRlZC9jbGFpbWVkLjBJbmNvbmNsdXNpdmUACgTEVGhlIHBheW1lbnQgaGFzIG5laXRoZXIgZmFpbGVkIG5vciBzdWNjZWVkZWQgeWV0LgR4RXJyb3IgZm9yIHRoZSB0cmVhc3VyeSBwYWxsZXQuzQsMYHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZxR0eXBlcyhEZWxlZ2F0aW9uBARUAAAIARRhZ2VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudBgBMEJhbGFuY2VPZjxUPgAA0QsMYHBhbGxldF9kZWxlZ2F0ZWRfc3Rha2luZxR0eXBlcyxBZ2VudExlZGdlcgQEVAAAEAEUcGF5ZWUAATBUOjpBY2NvdW50SWQAATx0b3RhbF9kZWxlZ2F0ZWTdAQEwQmFsYW5jZU9mPFQ+AAFUdW5jbGFpbWVkX3dpdGhkcmF3YWxz3QEBMEJhbGFuY2VPZjxUPgABNHBlbmRpbmdfc2xhc2jdAQEwQmFsYW5jZU9mPFQ+AADVCwxgcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nGHBhbGxldBRFcnJvcgQEVAABMChOb3RBbGxvd2VkAAAEqFRoZSBhY2NvdW50IGNhbm5vdCBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uLjhBbHJlYWR5U3Rha2luZwABBLhBbiBleGlzdGluZyBzdGFrZXIgY2Fubm90IHBlcmZvcm0gdGhpcyBhY3Rpb24uYEludmFsaWRSZXdhcmREZXN0aW5hdGlvbgACBNRSZXdhcmQgRGVzdGluYXRpb24gY2Fubm90IGJlIHNhbWUgYXMgYEFnZW50YCBhY2NvdW50LkRJbnZhbGlkRGVsZWdhdGlvbgADFIhEZWxlZ2F0aW9uIGNvbmRpdGlvbnMgYXJlIG5vdCBtZXQuAExQb3NzaWJsZSBpc3N1ZXMgYXJlbDEpIENhbm5vdCBkZWxlZ2F0ZSB0byBzZWxmLKQyKSBDYW5ub3QgZGVsZWdhdGUgdG8gbXVsdGlwbGUgZGVsZWdhdGVzLjhOb3RFbm91Z2hGdW5kcwAEBAEBVGhlIGFjY291bnQgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZnVuZHMgdG8gcGVyZm9ybSB0aGUgb3BlcmF0aW9uLiBOb3RBZ2VudAAFBIBOb3QgYW4gZXhpc3RpbmcgYEFnZW50YCBhY2NvdW50LjBOb3REZWxlZ2F0b3IABgRgTm90IGEgRGVsZWdhdG9yIGFjY291bnQuIEJhZFN0YXRlAAcEiFNvbWUgY29ycnVwdGlvbiBpbiBpbnRlcm5hbCBzdGF0ZS44VW5hcHBsaWVkU2xhc2gACATcVW5hcHBsaWVkIHBlbmRpbmcgc2xhc2ggcmVzdHJpY3RzIG9wZXJhdGlvbiBvbiBgQWdlbnRgLjhOb3RoaW5nVG9TbGFzaAAJBKxgQWdlbnRgIGhhcyBubyBwZW5kaW5nIHNsYXNoIHRvIGJlIGFwcGxpZWQuOFdpdGhkcmF3RmFpbGVkAAoEsEZhaWxlZCB0byB3aXRoZHJhdyBhbW91bnQgZnJvbSBDb3JlIFN0YWtpbmcuME5vdFN1cHBvcnRlZAALBJxPcGVyYXRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIHBhbGxldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu2QsMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluczRjb25maWd1cmF0aW9uREhvc3RDb25maWd1cmF0aW9uBCxCbG9ja051bWJlcgEQAIwBNG1heF9jb2RlX3NpemUQAQx1MzIAAUhtYXhfaGVhZF9kYXRhX3NpemUQAQx1MzIAAVhtYXhfdXB3YXJkX3F1ZXVlX2NvdW50EAEMdTMyAAFUbWF4X3Vwd2FyZF9xdWV1ZV9zaXplEAEMdTMyAAFcbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemUQAQx1MzIAAZBtYXhfdXB3YXJkX21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAAYhocm1wX21heF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlEAEMdTMyAAFsdmFsaWRhdGlvbl91cGdyYWRlX2Nvb2xkb3duEAEsQmxvY2tOdW1iZXIAAWB2YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXkQASxCbG9ja051bWJlcgABUGFzeW5jX2JhY2tpbmdfcGFyYW1zLQUBSEFzeW5jQmFja2luZ1BhcmFtcwABMG1heF9wb3Zfc2l6ZRABDHUzMgABZG1heF9kb3dud2FyZF9tZXNzYWdlX3NpemUQAQx1MzIAAZBocm1wX21heF9wYXJhY2hhaW5fb3V0Ym91bmRfY2hhbm5lbHMQAQx1MzIAAUxocm1wX3NlbmRlcl9kZXBvc2l0GAEcQmFsYW5jZQABWGhybXBfcmVjaXBpZW50X2RlcG9zaXQYARxCYWxhbmNlAAFkaHJtcF9jaGFubmVsX21heF9jYXBhY2l0eRABDHUzMgABbGhybXBfY2hhbm5lbF9tYXhfdG90YWxfc2l6ZRABDHUzMgABjGhybXBfbWF4X3BhcmFjaGFpbl9pbmJvdW5kX2NoYW5uZWxzEAEMdTMyAAF0aHJtcF9jaGFubmVsX21heF9tZXNzYWdlX3NpemUQAQx1MzIAATxleGVjdXRvcl9wYXJhbXMxBQE4RXhlY3V0b3JQYXJhbXMAAVRjb2RlX3JldGVudGlvbl9wZXJpb2QQASxCbG9ja051bWJlcgABOG1heF92YWxpZGF0b3JzoQQBLE9wdGlvbjx1MzI+AAE4ZGlzcHV0ZV9wZXJpb2QQATBTZXNzaW9uSW5kZXgAAaRkaXNwdXRlX3Bvc3RfY29uY2x1c2lvbl9hY2NlcHRhbmNlX3BlcmlvZBABLEJsb2NrTnVtYmVyAAE0bm9fc2hvd19zbG90cxABDHUzMgABQG5fZGVsYXlfdHJhbmNoZXMQAQx1MzIAAWh6ZXJvdGhfZGVsYXlfdHJhbmNoZV93aWR0aBABDHUzMgABQG5lZWRlZF9hcHByb3ZhbHMQAQx1MzIAAWByZWxheV92cmZfbW9kdWxvX3NhbXBsZXMQAQx1MzIAAThwdmZfdm90aW5nX3R0bBABMFNlc3Npb25JbmRleAABgG1pbmltdW1fdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5EAEsQmxvY2tOdW1iZXIAAVRtaW5pbXVtX2JhY2tpbmdfdm90ZXMQAQx1MzIAATRub2RlX2ZlYXR1cmVzaQUBME5vZGVGZWF0dXJlcwABWGFwcHJvdmFsX3ZvdGluZ19wYXJhbXNFBQFQQXBwcm92YWxWb3RpbmdQYXJhbXMAAUBzY2hlZHVsZXJfcGFyYW1zSQUBcFNjaGVkdWxlclBhcmFtczxCbG9ja051bWJlcj4AAN0LAAAC4QsA4QsAAAQIENkLAOULEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnM0Y29uZmlndXJhdGlvbhhwYWxsZXQURXJyb3IEBFQAAQQ8SW52YWxpZE5ld1ZhbHVlAAAE3FRoZSBuZXcgdmFsdWUgZm9yIGEgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu6QsAAAJxBQDtCwAAAjkCAPELDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMYc2hhcmVkaEFsbG93ZWRSZWxheVBhcmVudHNUcmFja2VyCBBIYXNoATQsQmxvY2tOdW1iZXIBEAAIARhidWZmZXL1CwFYVmVjRGVxdWU8KEhhc2gsIEhhc2gpPgABNGxhdGVzdF9udW1iZXIQASxCbG9ja051bWJlcgAA9QsAAAL5CwD5CwAABAg0NAD9CwAAAgEMAAEMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkaW5jbHVzaW9ucENhbmRpZGF0ZVBlbmRpbmdBdmFpbGFiaWxpdHkIBEgBNAROARAAJAEQY29yZQUIASRDb3JlSW5kZXgAARBoYXNoxQUBNENhbmRpZGF0ZUhhc2gAAShkZXNjcmlwdG9yhQUBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AASxjb21taXRtZW50c5UFAVBDYW5kaWRhdGVDb21taXRtZW50cwABSGF2YWlsYWJpbGl0eV92b3Rlc2kFAWBCaXRWZWM8dTgsIEJpdE9yZGVyTHNiMD4AARxiYWNrZXJzaQUBYEJpdFZlYzx1OCwgQml0T3JkZXJMc2IwPgABTHJlbGF5X3BhcmVudF9udW1iZXIQAQROAAFAYmFja2VkX2luX251bWJlchABBE4AATRiYWNraW5nX2dyb3VwCQgBKEdyb3VwSW5kZXgAAAUMEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkaW5jbHVzaW9uGHBhbGxldBRFcnJvcgQEVAABRGRWYWxpZGF0b3JJbmRleE91dE9mQm91bmRzAAAEeFZhbGlkYXRvciBpbmRleCBvdXQgb2YgYm91bmRzLlBVbnNjaGVkdWxlZENhbmRpZGF0ZQABBKxDYW5kaWRhdGUgc3VibWl0dGVkIGJ1dCBwYXJhIG5vdCBzY2hlZHVsZWQuQEhlYWREYXRhVG9vTGFyZ2UAAgSkSGVhZCBkYXRhIGV4Y2VlZHMgdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS5QUHJlbWF0dXJlQ29kZVVwZ3JhZGUAAwRkQ29kZSB1cGdyYWRlIHByZW1hdHVyZWx5LjxOZXdDb2RlVG9vTGFyZ2UABARgT3V0cHV0IGNvZGUgaXMgdG9vIGxhcmdlVERpc2FsbG93ZWRSZWxheVBhcmVudAAFCOxUaGUgY2FuZGlkYXRlJ3MgcmVsYXktcGFyZW50IHdhcyBub3QgYWxsb3dlZC4gRWl0aGVyIGl0IHdhcyUBbm90IHJlY2VudCBlbm91Z2ggb3IgaXQgZGlkbid0IGFkdmFuY2UgYmFzZWQgb24gdGhlIGxhc3QgcGFyYWNoYWluIGJsb2NrLkRJbnZhbGlkQXNzaWdubWVudAAGCBUBRmFpbGVkIHRvIGNvbXB1dGUgZ3JvdXAgaW5kZXggZm9yIHRoZSBjb3JlOiBlaXRoZXIgaXQncyBvdXQgb2YgYm91bmRz6G9yIHRoZSByZWxheSBwYXJlbnQgZG9lc24ndCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi5ESW52YWxpZEdyb3VwSW5kZXgABwScSW52YWxpZCBncm91cCBpbmRleCBpbiBjb3JlIGFzc2lnbm1lbnQuTEluc3VmZmljaWVudEJhY2tpbmcACASQSW5zdWZmaWNpZW50IChub24tbWFqb3JpdHkpIGJhY2tpbmcuOEludmFsaWRCYWNraW5nAAkE5EludmFsaWQgKGJhZCBzaWduYXR1cmUsIHVua25vd24gdmFsaWRhdG9yLCBldGMuKSBiYWNraW5nLmhWYWxpZGF0aW9uRGF0YUhhc2hNaXNtYXRjaAAKBMRUaGUgdmFsaWRhdGlvbiBkYXRhIGhhc2ggZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQugEluY29ycmVjdERvd253YXJkTWVzc2FnZUhhbmRsaW5nAAsE2FRoZSBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGlzIG5vdCBwcm9jZXNzZWQgY29ycmVjdGx5LlRJbnZhbGlkVXB3YXJkTWVzc2FnZXMADAQdAUF0IGxlYXN0IG9uZSB1cHdhcmQgbWVzc2FnZSBzZW50IGRvZXMgbm90IHBhc3MgdGhlIGFjY2VwdGFuY2UgY3JpdGVyaWEuYEhybXBXYXRlcm1hcmtNaXNoYW5kbGluZwANBBEBVGhlIGNhbmRpZGF0ZSBkaWRuJ3QgZm9sbG93IHRoZSBydWxlcyBvZiBIUk1QIHdhdGVybWFyayBhZHZhbmNlbWVudC5MSW52YWxpZE91dGJvdW5kSHJtcAAOBNRUaGUgSFJNUCBtZXNzYWdlcyBzZW50IGJ5IHRoZSBjYW5kaWRhdGUgaXMgbm90IHZhbGlkLmRJbnZhbGlkVmFsaWRhdGlvbkNvZGVIYXNoAA8E3FRoZSB2YWxpZGF0aW9uIGNvZGUgaGFzaCBvZiB0aGUgY2FuZGlkYXRlIGlzIG5vdCB2YWxpZC5AUGFyYUhlYWRNaXNtYXRjaAAQCFUBVGhlIGBwYXJhX2hlYWRgIGhhc2ggaW4gdGhlIGNhbmRpZGF0ZSBkZXNjcmlwdG9yIGRvZXNuJ3QgbWF0Y2ggdGhlIGhhc2ggb2YgdGhlIGFjdHVhbHRwYXJhIGhlYWQgaW4gdGhlIGNvbW1pdG1lbnRzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4JDAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExTY3JhcGVkT25DaGFpblZvdGVzBARIATQADAEcc2Vzc2lvbhABMFNlc3Npb25JbmRleAABgGJhY2tpbmdfdmFsaWRhdG9yc19wZXJfY2FuZGlkYXRlDQwBHQFWZWM8KENhbmRpZGF0ZVJlY2VpcHQ8SD4sIFZlYzwoVmFsaWRhdG9ySW5kZXgsIFZhbGlkaXR5QXR0ZXN0YXRpb24pPikKPgABIGRpc3B1dGVzvQUBYE11bHRpRGlzcHV0ZVN0YXRlbWVudFNldAAADQwAAAIRDAARDAAABAgBCBUMABUMAAACGQwAGQwAAAQIcQW5BQAdDBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zOHBhcmFzX2luaGVyZW50GHBhbGxldBRFcnJvcgQEVAABFGRUb29NYW55SW5jbHVzaW9uSW5oZXJlbnRzAAAEzEluY2x1c2lvbiBpbmhlcmVudCBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGJsb2NrLkxJbnZhbGlkUGFyZW50SGVhZGVyAAEIVQFUaGUgaGFzaCBvZiB0aGUgc3VibWl0dGVkIHBhcmVudCBoZWFkZXIgZG9lc24ndCBjb3JyZXNwb25kIHRvIHRoZSBzYXZlZCBibG9jayBoYXNoIG9mLHRoZSBwYXJlbnQuSEluaGVyZW50T3ZlcndlaWdodAACBAkBVGhlIGRhdGEgZ2l2ZW4gdG8gdGhlIGluaGVyZW50IHdpbGwgcmVzdWx0IGluIGFuIG92ZXJ3ZWlnaHQgYmxvY2suhENhbmRpZGF0ZXNGaWx0ZXJlZER1cmluZ0V4ZWN1dGlvbgADCE0BQSBjYW5kaWRhdGUgd2FzIGZpbHRlcmVkIGR1cmluZyBpbmhlcmVudCBleGVjdXRpb24uIFRoaXMgc2hvdWxkIGhhdmUgb25seSBiZWVuIGRvbmVAZHVyaW5nIGNyZWF0aW9uLlBVbnNjaGVkdWxlZENhbmRpZGF0ZQAEBHRUb28gbWFueSBjYW5kaWRhdGVzIHN1cHBsaWVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4hDAAAAukLACUMAAACKQwAKQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRzY2hlZHVsZXIYcGFsbGV0MENvcmVPY2N1cGllZAQETgEQAQgQRnJlZQAAABRQYXJhcwQALQwBNFBhcmFzRW50cnk8Tj4AAQAALQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRzY2hlZHVsZXIYcGFsbGV0KFBhcmFzRW50cnkEBE4BEAAMAShhc3NpZ25tZW50MQwBKEFzc2lnbm1lbnQAAVRhdmFpbGFiaWxpdHlfdGltZW91dHMQAQx1MzIAAQx0dGwQAQROAAAxDBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJHNjaGVkdWxlchhjb21tb24oQXNzaWdubWVudAABCBBQb29sCAEccGFyYV9pZJECARhQYXJhSWQAAShjb3JlX2luZGV4BQgBJENvcmVJbmRleAAAABBCdWxrBACRAgEYUGFyYUlkAAEAADUMBCBCVHJlZU1hcAgESwEFCARWATkMAAQAPQwAAAA5DAAAAi0MAD0MAAACQQwAQQwAAAQIBQg5DABFDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzXFB2ZkNoZWNrQWN0aXZlVm90ZVN0YXRlBCxCbG9ja051bWJlcgEQABQBMHZvdGVzX2FjY2VwdGkFAWBCaXRWZWM8dTgsIEJpdE9yZGVyTHNiMD4AATB2b3Rlc19yZWplY3RpBQFgQml0VmVjPHU4LCBCaXRPcmRlckxzYjA+AAEMYWdlEAEwU2Vzc2lvbkluZGV4AAEoY3JlYXRlZF9hdBABLEJsb2NrTnVtYmVyAAEYY2F1c2VzSQwBfFZlYzxQdmZDaGVja0NhdXNlPEJsb2NrTnVtYmVyPj4AAEkMAAACTQwATQwMbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhczRQdmZDaGVja0NhdXNlBCxCbG9ja051bWJlcgEQAQgoT25ib2FyZGluZwQAkQIBGFBhcmFJZAAAABxVcGdyYWRlDAEIaWSRAgEYUGFyYUlkAAEsaW5jbHVkZWRfYXQQASxCbG9ja051bWJlcgABQHVwZ3JhZGVfc3RyYXRlZ3lRDAE8VXBncmFkZVN0cmF0ZWd5AAEAAFEMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXM8VXBncmFkZVN0cmF0ZWd5AAEIQFNldEdvQWhlYWRTaWduYWwAAABQQXBwbHlBdEV4cGVjdGVkQmxvY2sAAQAAVQwAAAKRBQBZDAAAApECAF0MDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMUcGFyYXM0UGFyYUxpZmVjeWNsZQABHChPbmJvYXJkaW5nAAAAKFBhcmF0aHJlYWQAAQAkUGFyYWNoYWluAAIATFVwZ3JhZGluZ1BhcmF0aHJlYWQAAwBQRG93bmdyYWRpbmdQYXJhY2hhaW4ABABUT2ZmYm9hcmRpbmdQYXJhdGhyZWFkAAUAUE9mZmJvYXJkaW5nUGFyYWNoYWluAAYAAGEMAAAECJECEABlDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzQFBhcmFQYXN0Q29kZU1ldGEEBE4BEAAIATR1cGdyYWRlX3RpbWVzaQwBYFZlYzxSZXBsYWNlbWVudFRpbWVzPE4+PgABLGxhc3RfcHJ1bmVkoQQBJE9wdGlvbjxOPgAAaQwAAAJtDABtDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zFHBhcmFzQFJlcGxhY2VtZW50VGltZXMEBE4BEAAIASxleHBlY3RlZF9hdBABBE4AATBhY3RpdmF0ZWRfYXQQAQROAABxDAAAAmEMAHUMDExwb2xrYWRvdF9wcmltaXRpdmVzCHY4OFVwZ3JhZGVHb0FoZWFkAAEIFEFib3J0AAAAHEdvQWhlYWQAAQAAeQwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAAfQwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucxRwYXJhcxhwYWxsZXQURXJyb3IEBFQAATQ0Tm90UmVnaXN0ZXJlZAAABJRQYXJhIGlzIG5vdCByZWdpc3RlcmVkIGluIG91ciBzeXN0ZW0uNENhbm5vdE9uYm9hcmQAAQQVAVBhcmEgY2Fubm90IGJlIG9uYm9hcmRlZCBiZWNhdXNlIGl0IGlzIGFscmVhZHkgdHJhY2tlZCBieSBvdXIgc3lzdGVtLjhDYW5ub3RPZmZib2FyZAACBJxQYXJhIGNhbm5vdCBiZSBvZmZib2FyZGVkIGF0IHRoaXMgdGltZS40Q2Fubm90VXBncmFkZQADBNRQYXJhIGNhbm5vdCBiZSB1cGdyYWRlZCB0byBhIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluLjxDYW5ub3REb3duZ3JhZGUABATQUGFyYSBjYW5ub3QgYmUgZG93bmdyYWRlZCB0byBhbiBvbi1kZW1hbmQgcGFyYWNoYWluLlhQdmZDaGVja1N0YXRlbWVudFN0YWxlAAUEsFRoZSBzdGF0ZW1lbnQgZm9yIFBWRiBwcmUtY2hlY2tpbmcgaXMgc3RhbGUuXFB2ZkNoZWNrU3RhdGVtZW50RnV0dXJlAAYE7FRoZSBzdGF0ZW1lbnQgZm9yIFBWRiBwcmUtY2hlY2tpbmcgaXMgZm9yIGEgZnV0dXJlIHNlc3Npb24uhFB2ZkNoZWNrVmFsaWRhdG9ySW5kZXhPdXRPZkJvdW5kcwAHBKRDbGFpbWVkIHZhbGlkYXRvciBpbmRleCBpcyBvdXQgb2YgYm91bmRzLmBQdmZDaGVja0ludmFsaWRTaWduYXR1cmUACATIVGhlIHNpZ25hdHVyZSBmb3IgdGhlIFBWRiBwcmUtY2hlY2tpbmcgaXMgaW52YWxpZC5IUHZmQ2hlY2tEb3VibGVWb3RlAAkEsFRoZSBnaXZlbiB2YWxpZGF0b3IgYWxyZWFkeSBoYXMgY2FzdCBhIHZvdGUuWFB2ZkNoZWNrU3ViamVjdEludmFsaWQACgT0VGhlIGdpdmVuIFBWRiBkb2VzIG5vdCBleGlzdCBhdCB0aGUgbW9tZW50IG9mIHByb2Nlc3MgYSB2b3RlLkRDYW5ub3RVcGdyYWRlQ29kZQALBMxQYXJhY2hhaW4gY2Fubm90IGN1cnJlbnRseSBzY2hlZHVsZSBhIGNvZGUgdXBncmFkZS4sSW52YWxpZENvZGUADAR0SW52YWxpZCB2YWxpZGF0aW9uIGNvZGUgc2l6ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQugQwAAAKFDACFDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zLGluaXRpYWxpemVyVEJ1ZmZlcmVkU2Vzc2lvbkNoYW5nZQAADAEodmFsaWRhdG9yc+0LAUBWZWM8VmFsaWRhdG9ySWQ+AAEYcXVldWVk7QsBQFZlYzxWYWxpZGF0b3JJZD4AATRzZXNzaW9uX2luZGV4EAEwU2Vzc2lvbkluZGV4AACJDAAAAo0MAI0MCGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNYSW5ib3VuZERvd253YXJkTWVzc2FnZQQsQmxvY2tOdW1iZXIBEAAIARxzZW50X2F0EAEsQmxvY2tOdW1iZXIAAQxtc2c4ATxEb3dud2FyZE1lc3NhZ2UAAJEMDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMQaHJtcFhIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0AAAYASRjb25maXJtZWQgARBib29sAAEQX2FnZRABMFNlc3Npb25JbmRleAABOHNlbmRlcl9kZXBvc2l0GAEcQmFsYW5jZQABQG1heF9tZXNzYWdlX3NpemUQAQx1MzIAATBtYXhfY2FwYWNpdHkQAQx1MzIAAThtYXhfdG90YWxfc2l6ZRABDHUzMgAAlQwAAALxBQCZDAxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zEGhybXAsSHJtcENoYW5uZWwAACABMG1heF9jYXBhY2l0eRABDHUzMgABOG1heF90b3RhbF9zaXplEAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZRABDHUzMgABJG1zZ19jb3VudBABDHUzMgABKHRvdGFsX3NpemUQAQx1MzIAASBtcWNfaGVhZN0EATBPcHRpb248SGFzaD4AAThzZW5kZXJfZGVwb3NpdBgBHEJhbGFuY2UAAURyZWNpcGllbnRfZGVwb3NpdBgBHEJhbGFuY2UAAJ0MAAACoQwAoQwIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc0hJbmJvdW5kSHJtcE1lc3NhZ2UELEJsb2NrTnVtYmVyARAACAEcc2VudF9hdBABLEJsb2NrTnVtYmVyAAEQZGF0YTgBTGFsbG9jOjp2ZWM6OlZlYzx1OD4AAKUMAAACqQwAqQwAAAQIEFkMAK0MEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMQaHJtcBhwYWxsZXQURXJyb3IEBFQAAVBUT3BlbkhybXBDaGFubmVsVG9TZWxmAAAExFRoZSBzZW5kZXIgdHJpZWQgdG8gb3BlbiBhIGNoYW5uZWwgdG8gdGhlbXNlbHZlcy58T3BlbkhybXBDaGFubmVsSW52YWxpZFJlY2lwaWVudAABBIhUaGUgcmVjaXBpZW50IGlzIG5vdCBhIHZhbGlkIHBhcmEubE9wZW5Icm1wQ2hhbm5lbFplcm9DYXBhY2l0eQACBHxUaGUgcmVxdWVzdGVkIGNhcGFjaXR5IGlzIHplcm8ujE9wZW5Icm1wQ2hhbm5lbENhcGFjaXR5RXhjZWVkc0xpbWl0AAMEwFRoZSByZXF1ZXN0ZWQgY2FwYWNpdHkgZXhjZWVkcyB0aGUgZ2xvYmFsIGxpbWl0LnhPcGVuSHJtcENoYW5uZWxaZXJvTWVzc2FnZVNpemUABASgVGhlIHJlcXVlc3RlZCBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSBpcyAwLphPcGVuSHJtcENoYW5uZWxNZXNzYWdlU2l6ZUV4Y2VlZHNMaW1pdAAFBCkBVGhlIG9wZW4gcmVxdWVzdCByZXF1ZXN0ZWQgdGhlIG1lc3NhZ2Ugc2l6ZSB0aGF0IGV4Y2VlZHMgdGhlIGdsb2JhbCBsaW1pdC5wT3BlbkhybXBDaGFubmVsQWxyZWFkeUV4aXN0cwAGBGhUaGUgY2hhbm5lbCBhbHJlYWR5IGV4aXN0c3xPcGVuSHJtcENoYW5uZWxBbHJlYWR5UmVxdWVzdGVkAAcE0FRoZXJlIGlzIGFscmVhZHkgYSByZXF1ZXN0IHRvIG9wZW4gdGhlIHNhbWUgY2hhbm5lbC5wT3BlbkhybXBDaGFubmVsTGltaXRFeGNlZWRlZAAIBB0BVGhlIHNlbmRlciBhbHJlYWR5IGhhcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBvdXRib3VuZCBjaGFubmVscy5wQWNjZXB0SHJtcENoYW5uZWxEb2VzbnRFeGlzdAAJBOBUaGUgY2hhbm5lbCBmcm9tIHRoZSBzZW5kZXIgdG8gdGhlIG9yaWdpbiBkb2Vzbid0IGV4aXN0LoRBY2NlcHRIcm1wQ2hhbm5lbEFscmVhZHlDb25maXJtZWQACgSEVGhlIGNoYW5uZWwgaXMgYWxyZWFkeSBjb25maXJtZWQueEFjY2VwdEhybXBDaGFubmVsTGltaXRFeGNlZWRlZAALBCUBVGhlIHJlY2lwaWVudCBhbHJlYWR5IGhhcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBpbmJvdW5kIGNoYW5uZWxzLnBDbG9zZUhybXBDaGFubmVsVW5hdXRob3JpemVkAAwEVQFUaGUgb3JpZ2luIHRyaWVzIHRvIGNsb3NlIGEgY2hhbm5lbCB3aGVyZSBpdCBpcyBuZWl0aGVyIHRoZSBzZW5kZXIgbm9yIHRoZSByZWNpcGllbnQubENsb3NlSHJtcENoYW5uZWxEb2VzbnRFeGlzdAANBJxUaGUgY2hhbm5lbCB0byBiZSBjbG9zZWQgZG9lc24ndCBleGlzdC58Q2xvc2VIcm1wQ2hhbm5lbEFscmVhZHlVbmRlcndheQAOBLxUaGUgY2hhbm5lbCBjbG9zZSByZXF1ZXN0IGlzIGFscmVhZHkgcmVxdWVzdGVkLoRDYW5jZWxIcm1wT3BlbkNoYW5uZWxVbmF1dGhvcml6ZWQADwRdAUNhbmNlbGluZyBpcyByZXF1ZXN0ZWQgYnkgbmVpdGhlciB0aGUgc2VuZGVyIG5vciByZWNpcGllbnQgb2YgdGhlIG9wZW4gY2hhbm5lbCByZXF1ZXN0LmhPcGVuSHJtcENoYW5uZWxEb2VzbnRFeGlzdAAQBHxUaGUgb3BlbiByZXF1ZXN0IGRvZXNuJ3QgZXhpc3QufE9wZW5Icm1wQ2hhbm5lbEFscmVhZHlDb25maXJtZWQAEQQtAUNhbm5vdCBjYW5jZWwgYW4gSFJNUCBvcGVuIGNoYW5uZWwgcmVxdWVzdCBiZWNhdXNlIGl0IGlzIGFscmVhZHkgY29uZmlybWVkLjBXcm9uZ1dpdG5lc3MAEgSMVGhlIHByb3ZpZGVkIHdpdG5lc3MgZGF0YSBpcyB3cm9uZy5wQ2hhbm5lbENyZWF0aW9uTm90QXV0aG9yaXplZAATBOhUaGUgY2hhbm5lbCBiZXR3ZWVuIHRoZXNlIHR3byBjaGFpbnMgY2Fubm90IGJlIGF1dGhvcml6ZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrEMAAACPQIAtQwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgsU2Vzc2lvbkluZm8AADQBYGFjdGl2ZV92YWxpZGF0b3JfaW5kaWNlc+kLAUxWZWM8VmFsaWRhdG9ySW5kZXg+AAEscmFuZG9tX3NlZWQEASBbdTg7IDMyXQABOGRpc3B1dGVfcGVyaW9kEAEwU2Vzc2lvbkluZGV4AAEodmFsaWRhdG9yc7kMAZxJbmRleGVkVmVjPFZhbGlkYXRvckluZGV4LCBWYWxpZGF0b3JJZD4AAThkaXNjb3Zlcnlfa2V5c8UJAWRWZWM8QXV0aG9yaXR5RGlzY292ZXJ5SWQ+AAE8YXNzaWdubWVudF9rZXlzsQwBRFZlYzxBc3NpZ25tZW50SWQ+AAFAdmFsaWRhdG9yX2dyb3Vwc70MAaxJbmRleGVkVmVjPEdyb3VwSW5kZXgsIFZlYzxWYWxpZGF0b3JJbmRleD4+AAEcbl9jb3JlcxABDHUzMgABaHplcm90aF9kZWxheV90cmFuY2hlX3dpZHRoEAEMdTMyAAFgcmVsYXlfdnJmX21vZHVsb19zYW1wbGVzEAEMdTMyAAFAbl9kZWxheV90cmFuY2hlcxABDHUzMgABNG5vX3Nob3dfc2xvdHMQAQx1MzIAAUBuZWVkZWRfYXBwcm92YWxzEAEMdTMyAAC5DAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OChJbmRleGVkVmVjCARLAXEFBFYBOQIABADtCwEYVmVjPFY+AAC9DAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OChJbmRleGVkVmVjCARLAQkIBFYB6QsABAAhDAEYVmVjPFY+AADBDAAABAgQxQUAxQwMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjgwRGlzcHV0ZVN0YXRlBAROARAAEAE4dmFsaWRhdG9yc19mb3JpBQF8Qml0VmVjPHU4LCBiaXR2ZWM6Om9yZGVyOjpMc2IwPgABSHZhbGlkYXRvcnNfYWdhaW5zdGkFAXxCaXRWZWM8dTgsIGJpdHZlYzo6b3JkZXI6OkxzYjA+AAEUc3RhcnQQAQROAAEwY29uY2x1ZGVkX2F0oQQBJE9wdGlvbjxOPgAAyQwEIEJUcmVlU2V0BARUAXEFAAQA6QsAAADNDBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzGHBhbGxldBRFcnJvcgQEVAABJHREdXBsaWNhdGVEaXNwdXRlU3RhdGVtZW50U2V0cwAABKhEdXBsaWNhdGUgZGlzcHV0ZSBzdGF0ZW1lbnQgc2V0cyBwcm92aWRlZC5cQW5jaWVudERpc3B1dGVTdGF0ZW1lbnQAAQSMQW5jaWVudCBkaXNwdXRlIHN0YXRlbWVudCBwcm92aWRlZC5kVmFsaWRhdG9ySW5kZXhPdXRPZkJvdW5kcwACBOhWYWxpZGF0b3IgaW5kZXggb24gc3RhdGVtZW50IGlzIG91dCBvZiBib3VuZHMgZm9yIHNlc3Npb24uQEludmFsaWRTaWduYXR1cmUAAwR8SW52YWxpZCBzaWduYXR1cmUgb24gc3RhdGVtZW50LkhEdXBsaWNhdGVTdGF0ZW1lbnQABATMVmFsaWRhdG9yIHZvdGUgc3VibWl0dGVkIG1vcmUgdGhhbiBvbmNlIHRvIGRpc3B1dGUuSFNpbmdsZVNpZGVkRGlzcHV0ZQAFBMRBIGRpc3B1dGUgd2hlcmUgdGhlcmUgYXJlIG9ubHkgdm90ZXMgb24gb25lIHNpZGUuPE1hbGljaW91c0JhY2tlcgAGBJxBIGRpc3B1dGUgdm90ZSBmcm9tIGEgbWFsaWNpb3VzIGJhY2tlci5MTWlzc2luZ0JhY2tpbmdWb3RlcwAHBOBObyBiYWNraW5nIHZvdGVzIHdlcmUgcHJvdmlkZXMgYWxvbmcgZGlzcHV0ZSBzdGF0ZW1lbnRzLkhVbmNvbmZpcm1lZERpc3B1dGUACASwVW5jb25maXJtZWQgZGlzcHV0ZSBzdGF0ZW1lbnQgc2V0cyBwcm92aWRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu0QwQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmc4UGVuZGluZ1NsYXNoZXMAAAgBEGtleXPVDAGUQlRyZWVNYXA8VmFsaWRhdG9ySW5kZXgsIFZhbGlkYXRvcklkPgABEGtpbmQFBgFMU2xhc2hpbmdPZmZlbmNlS2luZAAA1QwEIEJUcmVlTWFwCARLAXEFBFYBOQIABADZDAAAANkMAAAC3QwA3QwAAAQIcQU5AgDhDBRscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zIGRpc3B1dGVzIHNsYXNoaW5nGHBhbGxldBRFcnJvcgQEVAABGGBJbnZhbGlkS2V5T3duZXJzaGlwUHJvb2YAAASMVGhlIGtleSBvd25lcnNoaXAgcHJvb2YgaXMgaW52YWxpZC5MSW52YWxpZFNlc3Npb25JbmRleAABBKBUaGUgc2Vzc2lvbiBpbmRleCBpcyB0b28gb2xkIG9yIGludmFsaWQuUEludmFsaWRDYW5kaWRhdGVIYXNoAAIEeFRoZSBjYW5kaWRhdGUgaGFzaCBpcyBpbnZhbGlkLlRJbnZhbGlkVmFsaWRhdG9ySW5kZXgAAwgBAVRoZXJlIGlzIG5vIHBlbmRpbmcgc2xhc2ggZm9yIHRoZSBnaXZlbiB2YWxpZGF0b3IgaW5kZXggYW5kIHRpbWUUc2xvdC5gVmFsaWRhdG9ySW5kZXhJZE1pc21hdGNoAAQE0FRoZSB2YWxpZGF0b3IgaW5kZXggZG9lcyBub3QgbWF0Y2ggdGhlIHZhbGlkYXRvciBpZC5cRHVwbGljYXRlU2xhc2hpbmdSZXBvcnQABQQNAVRoZSBnaXZlbiBzbGFzaGluZyByZXBvcnQgaXMgdmFsaWQgYnV0IGFscmVhZHkgcHJldmlvdXNseSByZXBvcnRlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu5QwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQUdHlwZXNEQ29yZUFmZmluaXR5Q291bnQAAAgBKGNvcmVfaW5kZXgFCAEkQ29yZUluZGV4AAEUY291bnQQAQx1MzIAAOkMEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kFHR5cGVzPFF1ZXVlU3RhdHVzVHlwZQAAEAEcdHJhZmZpY5UHASRGaXhlZFUxMjgAAShuZXh0X2luZGV47QwBKFF1ZXVlSW5kZXgAAThzbWFsbGVzdF9pbmRleO0MAShRdWV1ZUluZGV4AAE0ZnJlZWRfaW5kaWNlc/EMAXRCaW5hcnlIZWFwPFJldmVyc2VRdWV1ZUluZGV4PgAA7QwQbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWlucyRvbl9kZW1hbmQUdHlwZXMoUXVldWVJbmRleAAABAAQAQx1MzIAAPEMBChCaW5hcnlIZWFwBARUAfUMAAQA+QwAAAD1DBBscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zJG9uX2RlbWFuZBR0eXBlc0RSZXZlcnNlUXVldWVJbmRleAAABAAQAQx1MzIAAPkMAAAC9QwA/QwEKEJpbmFyeUhlYXAEBFQBAQ0ABAAFDQAAAAENEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kFHR5cGVzNEVucXVldWVkT3JkZXIAAAgBHHBhcmFfaWSRAgEYUGFyYUlkAAEMaWR47QwBKFF1ZXVlSW5kZXgAAAUNAAACAQ0ACQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEYBFMAAAQADQ0BGFZlYzxUPgAADQ0AAAIYABENEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMkb25fZGVtYW5kGHBhbGxldBRFcnJvcgQEVAABCCRRdWV1ZUZ1bGwAAATkVGhlIG9yZGVyIHF1ZXVlIGlzIGZ1bGwsIGBwbGFjZV9vcmRlcmAgd2lsbCBub3QgY29udGludWUucFNwb3RQcmljZUhpZ2hlclRoYW5NYXhBbW91bnQAAQhNAVRoZSBjdXJyZW50IHNwb3QgcHJpY2UgaXMgaGlnaGVyIHRoYW4gdGhlIG1heCBhbW91bnQgc3BlY2lmaWVkIGluIHRoZSBgcGxhY2Vfb3JkZXJgYGNhbGwsIG1ha2luZyBpdCBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4VDQAABAgQBQgAGQ0MbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZSBTY2hlZHVsZQQETgEQAAwBLGFzc2lnbm1lbnRzOQcBjFZlYzwoQ29yZUFzc2lnbm1lbnQsIFBhcnRzT2Y1NzYwMCk+AAEgZW5kX2hpbnShBAEkT3B0aW9uPE4+AAE0bmV4dF9zY2hlZHVsZaEEASRPcHRpb248Tj4AAB0NDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWU4Q29yZURlc2NyaXB0b3IEBE4BEAAIARRxdWV1ZSENAWhPcHRpb248UXVldWVEZXNjcmlwdG9yPE4+PgABMGN1cnJlbnRfd29yaykNAVBPcHRpb248V29ya1N0YXRlPE4+PgAAIQ0EGE9wdGlvbgQEVAElDQEIEE5vbmUAAAAQU29tZQQAJQ0AAAEAACUNDGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWU8UXVldWVEZXNjcmlwdG9yBAROARAACAEUZmlyc3QQAQROAAEQbGFzdBABBE4AACkNBBhPcHRpb24EBFQBLQ0BCBBOb25lAAAAEFNvbWUEAC0NAAABAAAtDQxscG9sa2Fkb3RfcnVudGltZV9wYXJhY2hhaW5zRGFzc2lnbmVyX2NvcmV0aW1lJFdvcmtTdGF0ZQQETgEQABABLGFzc2lnbm1lbnRzMQ0BmFZlYzwoQ29yZUFzc2lnbm1lbnQsIEFzc2lnbm1lbnRTdGF0ZSk+AAEgZW5kX2hpbnShBAEkT3B0aW9uPE4+AAEMcG9zLQEBDHUxNgABEHN0ZXBFBwEwUGFydHNPZjU3NjAwAAAxDQAAAjUNADUNAAAECEEHOQ0AOQ0MbHBvbGthZG90X3J1bnRpbWVfcGFyYWNoYWluc0Rhc3NpZ25lcl9jb3JldGltZTxBc3NpZ25tZW50U3RhdGUAAAgBFHJhdGlvRQcBMFBhcnRzT2Y1NzYwMAABJHJlbWFpbmluZ0UHATBQYXJ0c09mNTc2MDAAAD0NEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnNEYXNzaWduZXJfY29yZXRpbWUYcGFsbGV0FEVycm9yBARUAAEYQEFzc2lnbm1lbnRzRW1wdHkAAAA0T3ZlclNjaGVkdWxlZAABBJBBc3NpZ25tZW50cyB0b2dldGhlciBleGNlZWRlZCA1NzYwMC44VW5kZXJTY2hlZHVsZWQAAgSQQXNzaWdubWVudHMgdG9nZXRoZXIgbGVzcyB0aGFuIDU3NjAwQERpc2FsbG93ZWRJbnNlcnQAAwhRAWFzc2lnbl9jb3JlIGlzIG9ubHkgYWxsb3dlZCB0byBhcHBlbmQgbmV3IGFzc2lnbm1lbnRzIGF0IHRoZSBlbmQgb2YgYWxyZWFkeSBleGlzdGluZxRvbmVzLjxEdXBsaWNhdGVJbnNlcnQABARVAVRyaWVkIHRvIGluc2VydCBhIHNjaGVkdWxlIGZvciB0aGUgc2FtZSBjb3JlIGFuZCBibG9jayBudW1iZXIgYXMgYW4gZXhpc3Rpbmcgc2NoZWR1bGVQQXNzaWdubWVudHNOb3RTb3J0ZWQABQSsVHJpZWQgdG8gYWRkIGFuIHVuc29ydGVkIHNldCBvZiBhc3NpZ25tZW50cwSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5BDQxccG9sa2Fkb3RfcnVudGltZV9jb21tb248cGFyYXNfcmVnaXN0cmFyIFBhcmFJbmZvCBxBY2NvdW50AQAcQmFsYW5jZQEYAAwBHG1hbmFnZXIAARxBY2NvdW50AAEcZGVwb3NpdBgBHEJhbGFuY2UAARhsb2NrZWQtAgEwT3B0aW9uPGJvb2w+AABFDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb248cGFyYXNfcmVnaXN0cmFyGHBhbGxldBRFcnJvcgQEVAABODROb3RSZWdpc3RlcmVkAAAEZFRoZSBJRCBpcyBub3QgcmVnaXN0ZXJlZC5EQWxyZWFkeVJlZ2lzdGVyZWQAAQR0VGhlIElEIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC4gTm90T3duZXIAAgScVGhlIGNhbGxlciBpcyBub3QgdGhlIG93bmVyIG9mIHRoaXMgSWQuMENvZGVUb29MYXJnZQADBFxJbnZhbGlkIHBhcmEgY29kZSBzaXplLkBIZWFkRGF0YVRvb0xhcmdlAAQEcEludmFsaWQgcGFyYSBoZWFkIGRhdGEgc2l6ZS4wTm90UGFyYWNoYWluAAUEYFBhcmEgaXMgbm90IGEgUGFyYWNoYWluLjROb3RQYXJhdGhyZWFkAAYEvFBhcmEgaXMgbm90IGEgUGFyYXRocmVhZCAob24tZGVtYW5kIHBhcmFjaGFpbikuQENhbm5vdERlcmVnaXN0ZXIABwRYQ2Fubm90IGRlcmVnaXN0ZXIgcGFyYTxDYW5ub3REb3duZ3JhZGUACAQtAUNhbm5vdCBzY2hlZHVsZSBkb3duZ3JhZGUgb2YgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4gdG8gb24tZGVtYW5kIHBhcmFjaGFpbjRDYW5ub3RVcGdyYWRlAAkEJQFDYW5ub3Qgc2NoZWR1bGUgdXBncmFkZSBvZiBvbi1kZW1hbmQgcGFyYWNoYWluIHRvIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWluKFBhcmFMb2NrZWQACghJAVBhcmEgaXMgbG9ja2VkIGZyb20gbWFuaXB1bGF0aW9uIGJ5IHRoZSBtYW5hZ2VyLiBNdXN0IHVzZSBwYXJhY2hhaW4gb3IgcmVsYXkgY2hhaW4sZ292ZXJuYW5jZS4sTm90UmVzZXJ2ZWQACwTQVGhlIElEIGdpdmVuIGZvciByZWdpc3RyYXRpb24gaGFzIG5vdCBiZWVuIHJlc2VydmVkLixJbnZhbGlkQ29kZQAMBHxUaGUgdmFsaWRhdGlvbiBjb2RlIGlzIGludmFsaWQuKENhbm5vdFN3YXAADQhRAUNhbm5vdCBwZXJmb3JtIGEgcGFyYWNoYWluIHNsb3QgLyBsaWZlY3ljbGUgc3dhcC4gQ2hlY2sgdGhhdCB0aGUgc3RhdGUgb2YgYm90aCBwYXJhc4RhcmUgY29ycmVjdCBmb3IgdGhlIHN3YXAgdG8gd29yay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSQ0AAAJJCgBNDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24Uc2xvdHMYcGFsbGV0FEVycm9yBARUAAEIRFBhcmFOb3RPbmJvYXJkaW5nAAAEjFRoZSBwYXJhY2hhaW4gSUQgaXMgbm90IG9uYm9hcmRpbmcuKExlYXNlRXJyb3IAAQSIVGhlcmUgd2FzIGFuIGVycm9yIHdpdGggdGhlIGxlYXNlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5RDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb25IcGFyYXNfc3Vkb193cmFwcGVyGHBhbGxldBRFcnJvcgQEVAABJDxQYXJhRG9lc250RXhpc3QAAASoVGhlIHNwZWNpZmllZCBwYXJhY2hhaW4gaXMgbm90IHJlZ2lzdGVyZWQuRFBhcmFBbHJlYWR5RXhpc3RzAAEEuFRoZSBzcGVjaWZpZWQgcGFyYWNoYWluIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5URXhjZWVkc01heE1lc3NhZ2VTaXplAAIIQQFBIERNUCBtZXNzYWdlIGNvdWxkbid0IGJlIHNlbnQgYmVjYXVzZSBpdCBleGNlZWRzIHRoZSBtYXhpbXVtIHNpemUgYWxsb3dlZCBmb3IgYURkb3dud2FyZCBtZXNzYWdlLjhDb3VsZG50Q2xlYW51cAADBIBDb3VsZCBub3Qgc2NoZWR1bGUgcGFyYSBjbGVhbnVwLjROb3RQYXJhdGhyZWFkAAQEnE5vdCBhIHBhcmF0aHJlYWQgKG9uLWRlbWFuZCBwYXJhY2hhaW4pLjBOb3RQYXJhY2hhaW4ABQR4Tm90IGEgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4uNENhbm5vdFVwZ3JhZGUABgT4Q2Fubm90IHVwZ3JhZGUgb24tZGVtYW5kIHBhcmFjaGFpbiB0byBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbi48Q2Fubm90RG93bmdyYWRlAAcE2ENhbm5vdCBkb3duZ3JhZGUgbGVhc2UgaG9sZGluZyBwYXJhY2hhaW4gdG8gb24tZGVtYW5kLjBUb29NYW55Q29yZXMACATMVGhlcmUgYXJlIG1vcmUgY29yZXMgdGhhbiBzdXBwb3J0ZWQgYnkgdGhlIHJ1bnRpbWUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlUNAAAECACRAgBZDQAAAyQAAABdDQBdDQQYT3B0aW9uBARUAWENAQgQTm9uZQAAABBTb21lBABhDQAAAQAAYQ0AAAQMAJECGABlDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24gYXVjdGlvbnMYcGFsbGV0FEVycm9yBARUAAEcREF1Y3Rpb25JblByb2dyZXNzAAAEkFRoaXMgYXVjdGlvbiBpcyBhbHJlYWR5IGluIHByb2dyZXNzLkRMZWFzZVBlcmlvZEluUGFzdAABBIBUaGUgbGVhc2UgcGVyaW9kIGlzIGluIHRoZSBwYXN0LkRQYXJhTm90UmVnaXN0ZXJlZAACBFhQYXJhIGlzIG5vdCByZWdpc3RlcmVkRE5vdEN1cnJlbnRBdWN0aW9uAAMEWE5vdCBhIGN1cnJlbnQgYXVjdGlvbi4oTm90QXVjdGlvbgAEBDxOb3QgYW4gYXVjdGlvbi4wQXVjdGlvbkVuZGVkAAUEaEF1Y3Rpb24gaGFzIGFscmVhZHkgZW5kZWQuQEFscmVhZHlMZWFzZWRPdXQABgTYVGhlIHBhcmEgaXMgYWxyZWFkeSBsZWFzZWQgb3V0IGZvciBwYXJ0IG9mIHRoaXMgcmFuZ2UuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmkNDFxwb2xrYWRvdF9ydW50aW1lX2NvbW1vbiRjcm93ZGxvYW4gRnVuZEluZm8QJEFjY291bnRJZAEAHEJhbGFuY2UBGCxCbG9ja051bWJlcgEQLExlYXNlUGVyaW9kARAAKAEkZGVwb3NpdG9yAAEkQWNjb3VudElkAAEgdmVyaWZpZXIlBwFMT3B0aW9uPE11bHRpU2lnbmVyPgABHGRlcG9zaXQYARxCYWxhbmNlAAEYcmFpc2VkGAEcQmFsYW5jZQABDGVuZBABLEJsb2NrTnVtYmVyAAEMY2FwGAEcQmFsYW5jZQABRGxhc3RfY29udHJpYnV0aW9ubQ0BdExhc3RDb250cmlidXRpb248QmxvY2tOdW1iZXI+AAEwZmlyc3RfcGVyaW9kEAEsTGVhc2VQZXJpb2QAASxsYXN0X3BlcmlvZBABLExlYXNlUGVyaW9kAAEoZnVuZF9pbmRleBABJEZ1bmRJbmRleAAAbQ0MXHBvbGthZG90X3J1bnRpbWVfY29tbW9uJGNyb3dkbG9hbkBMYXN0Q29udHJpYnV0aW9uBCxCbG9ja051bWJlcgEQAQwUTmV2ZXIAAAAkUHJlRW5kaW5nBAAQAQx1MzIAAQAYRW5kaW5nBAAQASxCbG9ja051bWJlcgACAABxDRBccG9sa2Fkb3RfcnVudGltZV9jb21tb24kY3Jvd2Rsb2FuGHBhbGxldBRFcnJvcgQEVAABXERGaXJzdFBlcmlvZEluUGFzdAAABPRUaGUgY3VycmVudCBsZWFzZSBwZXJpb2QgaXMgbW9yZSB0aGFuIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QuZEZpcnN0UGVyaW9kVG9vRmFySW5GdXR1cmUAAQQRAVRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgbmVlZHMgdG8gYXQgbGVhc3QgYmUgbGVzcyB0aGFuIDMgYG1heF92YWx1ZWAubExhc3RQZXJpb2RCZWZvcmVGaXJzdFBlcmlvZAACBOhMYXN0IGxlYXNlIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBmaXJzdCBsZWFzZSBwZXJpb2QuYExhc3RQZXJpb2RUb29GYXJJbkZ1dHVyZQADBC0BVGhlIGxhc3QgbGVhc2UgcGVyaW9kIGNhbm5vdCBiZSBtb3JlIHRoYW4gMyBwZXJpb2RzIGFmdGVyIHRoZSBmaXJzdCBwZXJpb2QuPENhbm5vdEVuZEluUGFzdAAEBEUBVGhlIGNhbXBhaWduIGVuZHMgYmVmb3JlIHRoZSBjdXJyZW50IGJsb2NrIG51bWJlci4gVGhlIGVuZCBtdXN0IGJlIGluIHRoZSBmdXR1cmUuREVuZFRvb0ZhckluRnV0dXJlAAUEwFRoZSBlbmQgZGF0ZSBmb3IgdGhpcyBjcm93ZGxvYW4gaXMgbm90IHNlbnNpYmxlLiBPdmVyZmxvdwAGBFhUaGVyZSB3YXMgYW4gb3ZlcmZsb3cuUENvbnRyaWJ1dGlvblRvb1NtYWxsAAcE6FRoZSBjb250cmlidXRpb24gd2FzIGJlbG93IHRoZSBtaW5pbXVtLCBgTWluQ29udHJpYnV0aW9uYC40SW52YWxpZFBhcmFJZAAIBExJbnZhbGlkIGZ1bmQgaW5kZXguLENhcEV4Y2VlZGVkAAkEkENvbnRyaWJ1dGlvbnMgZXhjZWVkIG1heGltdW0gYW1vdW50LlhDb250cmlidXRpb25QZXJpb2RPdmVyAAoEqFRoZSBjb250cmlidXRpb24gcGVyaW9kIGhhcyBhbHJlYWR5IGVuZGVkLjRJbnZhbGlkT3JpZ2luAAsEjFRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsIGlzIGludmFsaWQuME5vdFBhcmFjaGFpbgAMBMhUaGlzIGNyb3dkbG9hbiBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgcGFyYWNoYWluLixMZWFzZUFjdGl2ZQANBBUBVGhpcyBwYXJhY2hhaW4gbGVhc2UgaXMgc3RpbGwgYWN0aXZlIGFuZCByZXRpcmVtZW50IGNhbm5vdCB5ZXQgYmVnaW4uQEJpZE9yTGVhc2VBY3RpdmUADgQxAVRoaXMgcGFyYWNoYWluJ3MgYmlkIG9yIGxlYXNlIGlzIHN0aWxsIGFjdGl2ZSBhbmQgd2l0aGRyYXcgY2Fubm90IHlldCBiZWdpbi4wRnVuZE5vdEVuZGVkAA8EgFRoZSBjcm93ZGxvYW4gaGFzIG5vdCB5ZXQgZW5kZWQuPE5vQ29udHJpYnV0aW9ucwAQBNBUaGVyZSBhcmUgbm8gY29udHJpYnV0aW9ucyBzdG9yZWQgaW4gdGhpcyBjcm93ZGxvYW4uSE5vdFJlYWR5VG9EaXNzb2x2ZQARCFUBVGhlIGNyb3dkbG9hbiBpcyBub3QgcmVhZHkgdG8gZGlzc29sdmUuIFBvdGVudGlhbGx5IHN0aWxsIGhhcyBhIHNsb3Qgb3IgaW4gcmV0aXJlbWVudBxwZXJpb2QuQEludmFsaWRTaWduYXR1cmUAEgRISW52YWxpZCBzaWduYXR1cmUuME1lbW9Ub29MYXJnZQATBHxUaGUgcHJvdmlkZWQgbWVtbyBpcyB0b28gbGFyZ2UuREFscmVhZHlJbk5ld1JhaXNlABQEhFRoZSBmdW5kIGlzIGFscmVhZHkgaW4gYE5ld1JhaXNlYEhWcmZEZWxheUluUHJvZ3Jlc3MAFQS0Tm8gY29udHJpYnV0aW9ucyBhbGxvd2VkIGR1cmluZyB0aGUgVlJGIGRlbGF5NE5vTGVhc2VQZXJpb2QAFgQtAUEgbGVhc2UgcGVyaW9kIGhhcyBub3Qgc3RhcnRlZCB5ZXQsIGR1ZSB0byBhbiBvZmZzZXQgaW4gdGhlIHN0YXJ0aW5nIGJsb2NrLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC51DQxccG9sa2Fkb3RfcnVudGltZV9jb21tb244YXNzaWduZWRfc2xvdHNYUGFyYWNoYWluVGVtcG9yYXJ5U2xvdAgkQWNjb3VudElkAQAsTGVhc2VQZXJpb2QBEAAUARxtYW5hZ2VyAAEkQWNjb3VudElkAAEwcGVyaW9kX2JlZ2luEAEsTGVhc2VQZXJpb2QAATBwZXJpb2RfY291bnQQASxMZWFzZVBlcmlvZAABKGxhc3RfbGVhc2WhBAFMT3B0aW9uPExlYXNlUGVyaW9kPgABLGxlYXNlX2NvdW50EAEMdTMyAAB5DRBccG9sa2Fkb3RfcnVudGltZV9jb21tb244YXNzaWduZWRfc2xvdHMYcGFsbGV0FEVycm9yBARUAAEkPFBhcmFEb2VzbnRFeGlzdAAABKhUaGUgc3BlY2lmaWVkIHBhcmFjaGFpbiBpcyBub3QgcmVnaXN0ZXJlZC40Tm90UGFyYXRocmVhZAABBJxOb3QgYSBwYXJhdGhyZWFkIChvbi1kZW1hbmQgcGFyYWNoYWluKS40Q2Fubm90VXBncmFkZQACCMxDYW5ub3QgdXBncmFkZSBvbi1kZW1hbmQgcGFyYWNoYWluIHRvIGxlYXNlIGhvbGRpbmcocGFyYWNoYWluLjxDYW5ub3REb3duZ3JhZGUAAwisQ2Fubm90IGRvd25ncmFkZSBsZWFzZSBob2xkaW5nIHBhcmFjaGFpbiB0byhvbi1kZW1hbmQuTFNsb3RBbHJlYWR5QXNzaWduZWQABAS0UGVybWFuZW50IG9yIFRlbXBvcmFyeSBzbG90IGFscmVhZHkgYXNzaWduZWQuPFNsb3ROb3RBc3NpZ25lZAAFBMhQZXJtYW5lbnQgb3IgVGVtcG9yYXJ5IHNsb3QgaGFzIG5vdCBiZWVuIGFzc2lnbmVkLkhPbmdvaW5nTGVhc2VFeGlzdHMABgSAQW4gb25nb2luZyBsZWFzZSBhbHJlYWR5IGV4aXN0cy5kTWF4UGVybWFuZW50U2xvdHNFeGNlZWRlZAAHAGRNYXhUZW1wb3JhcnlTbG90c0V4Y2VlZGVkAAgABIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ln0NEGxwb2xrYWRvdF9ydW50aW1lX3BhcmFjaGFpbnMgY29yZXRpbWUYcGFsbGV0FEVycm9yBARUAAEMJE5vdEJyb2tlcgAABCkBVGhlIHBhcmFpZCBtYWtpbmcgdGhlIGNhbGwgaXMgbm90IHRoZSBjb3JldGltZSBicm9rZXJhZ2Ugc3lzdGVtIHBhcmFjaGFpbi5YUmVxdWVzdGVkRnV0dXJlUmV2ZW51ZQABCEUBUmVxdWVzdGVkIHJldmVudWUgaW5mb3JtYXRpb24gYHdoZW5gIHBhcmFtZXRlciB3YXMgaW4gdGhlIGZ1dHVyZSBmcm9tIHRoZSBjdXJyZW50NGJsb2NrIGhlaWdodC5MQXNzZXRUcmFuc2ZlckZhaWxlZAACBLxGYWlsZWQgdG8gdHJhbnNmZXIgYXNzZXRzIHRvIHRoZSBjb3JldGltZSBjaGFpbgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6BDQwocGFsbGV0X3hjbRhwYWxsZXQsUXVlcnlTdGF0dXMELEJsb2NrTnVtYmVyARABDBxQZW5kaW5nEAEkcmVzcG9uZGVyCQUBRFZlcnNpb25lZExvY2F0aW9uAAFMbWF5YmVfbWF0Y2hfcXVlcmllcoUNAWRPcHRpb248VmVyc2lvbmVkTG9jYXRpb24+AAEwbWF5YmVfbm90aWZ5iQ0BQE9wdGlvbjwodTgsIHU4KT4AARx0aW1lb3V0EAEsQmxvY2tOdW1iZXIAAAA8VmVyc2lvbk5vdGlmaWVyCAEYb3JpZ2luCQUBRFZlcnNpb25lZExvY2F0aW9uAAEkaXNfYWN0aXZlIAEQYm9vbAABABRSZWFkeQgBIHJlc3BvbnNlkQ0BRFZlcnNpb25lZFJlc3BvbnNlAAEIYXQQASxCbG9ja051bWJlcgACAACFDQQYT3B0aW9uBARUAQkFAQgQTm9uZQAAABBTb21lBAAJBQAAAQAAiQ0EGE9wdGlvbgQEVAGNDQEIEE5vbmUAAAAQU29tZQQAjQ0AAAEAAI0NAAAECAgIAJENCAx4Y21EVmVyc2lvbmVkUmVzcG9uc2UAAQwIVjIEAEUGATB2Mjo6UmVzcG9uc2UAAgAIVjMEAI0GATB2Mzo6UmVzcG9uc2UAAwAIVjQEAPEGATB2NDo6UmVzcG9uc2UABAAAlQ0AAAQIEAkFAJkNAAAEDDAoEACdDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaENBFMAAAQApQ0BGFZlYzxUPgAAoQ0AAAQICQUQAKUNAAACoQ0AqQ0MKHBhbGxldF94Y20YcGFsbGV0VFZlcnNpb25NaWdyYXRpb25TdGFnZQABEFxNaWdyYXRlU3VwcG9ydGVkVmVyc2lvbgAAAFxNaWdyYXRlVmVyc2lvbk5vdGlmaWVycwABAFBOb3RpZnlDdXJyZW50VGFyZ2V0cwQArQ0BPE9wdGlvbjxWZWM8dTg+PgACAGhNaWdyYXRlQW5kTm90aWZ5T2xkVGFyZ2V0cwADAACtDQQYT3B0aW9uBARUATgBCBBOb25lAAAAEFNvbWUEADgAAAEAALENAAAEDBAAgQcAtQ0MKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIB+DBNYXhDb25zdW1lcnMAABABGGFtb3VudBgBEHUxMjgAARRvd25lcgkFAURWZXJzaW9uZWRMb2NhdGlvbgABGGxvY2tlcgkFAURWZXJzaW9uZWRMb2NhdGlvbgABJGNvbnN1bWVyc7kNAdBCb3VuZGVkVmVjPChDb25zdW1lcklkZW50aWZpZXIsIHUxMjgpLCBNYXhDb25zdW1lcnM+AAC5DQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAb0NBFMAAAQAwQ0BGFZlYzxUPgAAvQ0AAAQI+BgAwQ0AAAK9DQDFDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAckNBFMAAAQAzQ0BGFZlYzxUPgAAyQ0AAAQIGAkFAM0NAAACyQ0A0Q0MKHBhbGxldF94Y20YcGFsbGV0FEVycm9yBARUAAFgLFVucmVhY2hhYmxlAAAIXQFUaGUgZGVzaXJlZCBkZXN0aW5hdGlvbiB3YXMgdW5yZWFjaGFibGUsIGdlbmVyYWxseSBiZWNhdXNlIHRoZXJlIGlzIGEgbm8gd2F5IG9mIHJvdXRpbmcYdG8gaXQuLFNlbmRGYWlsdXJlAAEIQQFUaGVyZSB3YXMgc29tZSBvdGhlciBpc3N1ZSAoaS5lLiBub3QgdG8gZG8gd2l0aCByb3V0aW5nKSBpbiBzZW5kaW5nIHRoZSBtZXNzYWdlLshQZXJoYXBzIGEgbGFjayBvZiBzcGFjZSBmb3IgYnVmZmVyaW5nIHRoZSBtZXNzYWdlLiBGaWx0ZXJlZAACBJxUaGUgbWVzc2FnZSBleGVjdXRpb24gZmFpbHMgdGhlIGZpbHRlci5IVW53ZWlnaGFibGVNZXNzYWdlAAMEtFRoZSBtZXNzYWdlJ3Mgd2VpZ2h0IGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLmBEZXN0aW5hdGlvbk5vdEludmVydGlibGUABATcVGhlIGRlc3RpbmF0aW9uIGBMb2NhdGlvbmAgcHJvdmlkZWQgY2Fubm90IGJlIGludmVydGVkLhRFbXB0eQAFBIBUaGUgYXNzZXRzIHRvIGJlIHNlbnQgYXJlIGVtcHR5LjhDYW5ub3RSZWFuY2hvcgAGBDUBQ291bGQgbm90IHJlLWFuY2hvciB0aGUgYXNzZXRzIHRvIGRlY2xhcmUgdGhlIGZlZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi40VG9vTWFueUFzc2V0cwAHBMRUb28gbWFueSBhc3NldHMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuNEludmFsaWRPcmlnaW4ACAR4T3JpZ2luIGlzIGludmFsaWQgZm9yIHNlbmRpbmcuKEJhZFZlcnNpb24ACQQhAVRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlIGludGVycHJldGVkLixCYWRMb2NhdGlvbgAKCEEBVGhlIGdpdmVuIGxvY2F0aW9uIGNvdWxkIG5vdCBiZSB1c2VkIChlLmcuIGJlY2F1c2UgaXQgY2Fubm90IGJlIGV4cHJlc3NlZCBpbiB0aGVgZGVzaXJlZCB2ZXJzaW9uIG9mIFhDTSkuOE5vU3Vic2NyaXB0aW9uAAsEvFRoZSByZWZlcmVuY2VkIHN1YnNjcmlwdGlvbiBjb3VsZCBub3QgYmUgZm91bmQuREFscmVhZHlTdWJzY3JpYmVkAAwEEQFUaGUgbG9jYXRpb24gaXMgaW52YWxpZCBzaW5jZSBpdCBhbHJlYWR5IGhhcyBhIHN1YnNjcmlwdGlvbiBmcm9tIHVzLlhDYW5ub3RDaGVja091dFRlbGVwb3J0AA0EKQFDb3VsZCBub3QgY2hlY2stb3V0IHRoZSBhc3NldHMgZm9yIHRlbGVwb3J0YXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluLihMb3dCYWxhbmNlAA4EQQFUaGUgb3duZXIgZG9lcyBub3Qgb3duIChhbGwpIG9mIHRoZSBhc3NldCB0aGF0IHRoZXkgd2lzaCB0byBkbyB0aGUgb3BlcmF0aW9uIG9uLjBUb29NYW55TG9ja3MADwTAVGhlIGFzc2V0IG93bmVyIGhhcyB0b28gbWFueSBsb2NrcyBvbiB0aGUgYXNzZXQuTEFjY291bnROb3RTb3ZlcmVpZ24AEAQxAVRoZSBnaXZlbiBhY2NvdW50IGlzIG5vdCBhbiBpZGVudGlmaWFibGUgc292ZXJlaWduIGFjY291bnQgZm9yIGFueSBsb2NhdGlvbi4oRmVlc05vdE1ldAARBCkBVGhlIG9wZXJhdGlvbiByZXF1aXJlZCBmZWVzIHRvIGJlIHBhaWQgd2hpY2ggdGhlIGluaXRpYXRvciBjb3VsZCBub3QgbWVldC4wTG9ja05vdEZvdW5kABIE9EEgcmVtb3RlIGxvY2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGNvdWxkIG5vdCBiZSBmb3VuZC4USW5Vc2UAEwRJAVRoZSB1bmxvY2sgb3BlcmF0aW9uIGNhbm5vdCBzdWNjZWVkIGJlY2F1c2UgdGhlcmUgYXJlIHN0aWxsIGNvbnN1bWVycyBvZiB0aGUgbG9jay5oSW52YWxpZEFzc2V0VW5rbm93blJlc2VydmUAFQTwSW52YWxpZCBhc3NldCwgcmVzZXJ2ZSBjaGFpbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCBmb3IgaXQueEludmFsaWRBc3NldFVuc3VwcG9ydGVkUmVzZXJ2ZQAWBEUBSW52YWxpZCBhc3NldCwgZG8gbm90IHN1cHBvcnQgcmVtb3RlIGFzc2V0IHJlc2VydmVzIHdpdGggZGlmZmVyZW50IGZlZXMgcmVzZXJ2ZXMuPFRvb01hbnlSZXNlcnZlcwAXBEkBVG9vIG1hbnkgYXNzZXRzIHdpdGggZGlmZmVyZW50IHJlc2VydmUgbG9jYXRpb25zIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLmBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGUAGAR8TG9jYWwgWENNIGV4ZWN1dGlvbiBpbmNvbXBsZXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7VDQhQcGFsbGV0X21lc3NhZ2VfcXVldWUkQm9va1N0YXRlBDRNZXNzYWdlT3JpZ2luAYkHABgBFGJlZ2luEAEkUGFnZUluZGV4AAEMZW5kEAEkUGFnZUluZGV4AAEUY291bnQQASRQYWdlSW5kZXgAAUByZWFkeV9uZWlnaGJvdXJz2Q0BhE9wdGlvbjxOZWlnaGJvdXJzPE1lc3NhZ2VPcmlnaW4+PgABNG1lc3NhZ2VfY291bnQwAQx1NjQAARBzaXplMAEMdTY0AADZDQQYT3B0aW9uBARUAd0NAQgQTm9uZQAAABBTb21lBADdDQAAAQAA3Q0IUHBhbGxldF9tZXNzYWdlX3F1ZXVlKE5laWdoYm91cnMENE1lc3NhZ2VPcmlnaW4BiQcACAEQcHJldokHATRNZXNzYWdlT3JpZ2luAAEQbmV4dIkHATRNZXNzYWdlT3JpZ2luAADhDQAABAiJBxAA5Q0IUHBhbGxldF9tZXNzYWdlX3F1ZXVlEFBhZ2UIEFNpemUBECBIZWFwU2l6ZQAAGAEkcmVtYWluaW5nEAEQU2l6ZQABOHJlbWFpbmluZ19zaXplEAEQU2l6ZQABLGZpcnN0X2luZGV4EAEQU2l6ZQABFGZpcnN0EAEQU2l6ZQABEGxhc3QQARBTaXplAAEQaGVhcOkNAZxCb3VuZGVkVmVjPHU4LCBJbnRvVTMyPEhlYXBTaXplLCBTaXplPj4AAOkNDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEADgBGFZlYzxUPgAA7Q0MUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABJCxOb3RSZWFwYWJsZQAACEkBUGFnZSBpcyBub3QgcmVhcGFibGUgYmVjYXVzZSBpdCBoYXMgaXRlbXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBhbmQgaXMgbm90IG9sZBxlbm91Z2guGE5vUGFnZQABBIRQYWdlIHRvIGJlIHJlYXBlZCBkb2VzIG5vdCBleGlzdC4kTm9NZXNzYWdlAAIEqFRoZSByZWZlcmVuY2VkIG1lc3NhZ2UgY291bGQgbm90IGJlIGZvdW5kLkBBbHJlYWR5UHJvY2Vzc2VkAAMEAQFUaGUgbWVzc2FnZSB3YXMgYWxyZWFkeSBwcm9jZXNzZWQgYW5kIGNhbm5vdCBiZSBwcm9jZXNzZWQgYWdhaW4uGFF1ZXVlZAAEBKxUaGUgbWVzc2FnZSBpcyBxdWV1ZWQgZm9yIGZ1dHVyZSBleGVjdXRpb24uSEluc3VmZmljaWVudFdlaWdodAAFBBkBVGhlcmUgaXMgdGVtcG9yYXJpbHkgbm90IGVub3VnaCB3ZWlnaHQgdG8gY29udGludWUgc2VydmljaW5nIG1lc3NhZ2VzLmBUZW1wb3JhcmlseVVucHJvY2Vzc2FibGUABhCoVGhpcyBtZXNzYWdlIGlzIHRlbXBvcmFyaWx5IHVucHJvY2Vzc2FibGUuAFkBU3VjaCBlcnJvcnMgYXJlIGV4cGVjdGVkLCBidXQgbm90IGd1YXJhbnRlZWQsIHRvIHJlc29sdmUgdGhlbXNlbHZlcyBldmVudHVhbGx5IHRocm91Z2gkcmV0cnlpbmcuLFF1ZXVlUGF1c2VkAAcM7FRoZSBxdWV1ZSBpcyBwYXVzZWQgYW5kIG5vIG1lc3NhZ2UgY2FuIGJlIGV4ZWN1dGVkIGZyb20gaXQuAB0BVGhpcyBjYW4gY2hhbmdlIGF0IGFueSB0aW1lIGFuZCBtYXkgcmVzb2x2ZSBpbiB0aGUgZnV0dXJlIGJ5IHJlLXRyeWluZy5MUmVjdXJzaXZlRGlzYWxsb3dlZAAIBDEBQW5vdGhlciBjYWxsIGlzIGluIHByb2dyZXNzIGFuZCBuZWVkcyB0byBmaW5pc2ggYmVmb3JlIHRoaXMgY2FsbCBjYW4gaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7xDQxEcGFsbGV0X2Fzc2V0X3JhdGUYcGFsbGV0FEVycm9yBARUAAEMQFVua25vd25Bc3NldEtpbmQAAAR4VGhlIGdpdmVuIGFzc2V0IElEIGlzIHVua25vd24uNEFscmVhZHlFeGlzdHMAAQRRAVRoZSBnaXZlbiBhc3NldCBJRCBhbHJlYWR5IGhhcyBhbiBhc3NpZ25lZCBjb252ZXJzaW9uIHJhdGUgYW5kIGNhbm5vdCBiZSByZS1jcmVhdGVkLiBPdmVyZmxvdwACBMxPdmVyZmxvdyBvY3VycmVkIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGludmVyc2UgcmF0ZS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu9Q0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFFAgRTAAAEAPkNARhWZWM8VD4AAPkNAAACRQIA/Q0MMHBhbGxldF9iZWVmeRhwYWxsZXQURXJyb3IEBFQAARxgSW52YWxpZEtleU93bmVyc2hpcFByb29mAAAEMQFBIGtleSBvd25lcnNoaXAgcHJvb2YgcHJvdmlkZWQgYXMgcGFydCBvZiBhbiBlcXVpdm9jYXRpb24gcmVwb3J0IGlzIGludmFsaWQuYEludmFsaWREb3VibGVWb3RpbmdQcm9vZgABBDEBQSBkb3VibGUgdm90aW5nIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLlhJbnZhbGlkRm9ya1ZvdGluZ1Byb29mAAIEKQFBIGZvcmsgdm90aW5nIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLnRJbnZhbGlkRnV0dXJlQmxvY2tWb3RpbmdQcm9vZgADBEkBQSBmdXR1cmUgYmxvY2sgdm90aW5nIHByb29mIHByb3ZpZGVkIGFzIHBhcnQgb2YgYW4gZXF1aXZvY2F0aW9uIHJlcG9ydCBpcyBpbnZhbGlkLnxJbnZhbGlkRXF1aXZvY2F0aW9uUHJvb2ZTZXNzaW9uAAQEwFRoZSBzZXNzaW9uIG9mIHRoZSBlcXVpdm9jYXRpb24gcHJvb2YgaXMgaW52YWxpZFhEdXBsaWNhdGVPZmZlbmNlUmVwb3J0AAUEFQFBIGdpdmVuIGVxdWl2b2NhdGlvbiByZXBvcnQgaXMgdmFsaWQgYnV0IGFscmVhZHkgcHJldmlvdXNseSByZXBvcnRlZC5QSW52YWxpZENvbmZpZ3VyYXRpb24ABgSMU3VibWl0dGVkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuAQ4MSHNwX2NvbnNlbnN1c19iZWVmeQxtbXJEQmVlZnlBdXRob3JpdHlTZXQEWEF1dGhvcml0eVNldENvbW1pdG1lbnQBNAAMAQhpZDABVGNyYXRlOjpWYWxpZGF0b3JTZXRJZAABDGxlbhABDHUzMgABRGtleXNldF9jb21taXRtZW50NAFYQXV0aG9yaXR5U2V0Q29tbWl0bWVudAAABQ4AAAQkCQ4NDhEOFQ4ZDiEOJQ4pDi0OAAkOEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc1RjaGVja19ub25femVyb19zZW5kZXJIQ2hlY2tOb25aZXJvU2VuZGVyBARUAAAAAA0OEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0hjaGVja19zcGVjX3ZlcnNpb25AQ2hlY2tTcGVjVmVyc2lvbgQEVAAAAAARDhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnNAY2hlY2tfdHhfdmVyc2lvbjhDaGVja1R4VmVyc2lvbgQEVAAAAAAVDhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM0Y2hlY2tfZ2VuZXNpczBDaGVja0dlbmVzaXMEBFQAAAAAGQ4QMGZyYW1lX3N5c3RlbShleHRlbnNpb25zPGNoZWNrX21vcnRhbGl0eThDaGVja01vcnRhbGl0eQQEVAAABAAdDgEMRXJhAAAdDhAoc3BfcnVudGltZRxnZW5lcmljDGVyYQxFcmEAAQEEIEltbW9ydGFsAAAAHE1vcnRhbDEEAAgAAAEAHE1vcnRhbDIEAAgAAAIAHE1vcnRhbDMEAAgAAAMAHE1vcnRhbDQEAAgAAAQAHE1vcnRhbDUEAAgAAAUAHE1vcnRhbDYEAAgAAAYAHE1vcnRhbDcEAAgAAAcAHE1vcnRhbDgEAAgAAAgAHE1vcnRhbDkEAAgAAAkAIE1vcnRhbDEwBAAIAAAKACBNb3J0YWwxMQQACAAACwAgTW9ydGFsMTIEAAgAAAwAIE1vcnRhbDEzBAAIAAANACBNb3J0YWwxNAQACAAADgAgTW9ydGFsMTUEAAgAAA8AIE1vcnRhbDE2BAAIAAAQACBNb3J0YWwxNwQACAAAEQAgTW9ydGFsMTgEAAgAABIAIE1vcnRhbDE5BAAIAAATACBNb3J0YWwyMAQACAAAFAAgTW9ydGFsMjEEAAgAABUAIE1vcnRhbDIyBAAIAAAWACBNb3J0YWwyMwQACAAAFwAgTW9ydGFsMjQEAAgAABgAIE1vcnRhbDI1BAAIAAAZACBNb3J0YWwyNgQACAAAGgAgTW9ydGFsMjcEAAgAABsAIE1vcnRhbDI4BAAIAAAcACBNb3J0YWwyOQQACAAAHQAgTW9ydGFsMzAEAAgAAB4AIE1vcnRhbDMxBAAIAAAfACBNb3J0YWwzMgQACAAAIAAgTW9ydGFsMzMEAAgAACEAIE1vcnRhbDM0BAAIAAAiACBNb3J0YWwzNQQACAAAIwAgTW9ydGFsMzYEAAgAACQAIE1vcnRhbDM3BAAIAAAlACBNb3J0YWwzOAQACAAAJgAgTW9ydGFsMzkEAAgAACcAIE1vcnRhbDQwBAAIAAAoACBNb3J0YWw0MQQACAAAKQAgTW9ydGFsNDIEAAgAACoAIE1vcnRhbDQzBAAIAAArACBNb3J0YWw0NAQACAAALAAgTW9ydGFsNDUEAAgAAC0AIE1vcnRhbDQ2BAAIAAAuACBNb3J0YWw0NwQACAAALwAgTW9ydGFsNDgEAAgAADAAIE1vcnRhbDQ5BAAIAAAxACBNb3J0YWw1MAQACAAAMgAgTW9ydGFsNTEEAAgAADMAIE1vcnRhbDUyBAAIAAA0ACBNb3J0YWw1MwQACAAANQAgTW9ydGFsNTQEAAgAADYAIE1vcnRhbDU1BAAIAAA3ACBNb3J0YWw1NgQACAAAOAAgTW9ydGFsNTcEAAgAADkAIE1vcnRhbDU4BAAIAAA6ACBNb3J0YWw1OQQACAAAOwAgTW9ydGFsNjAEAAgAADwAIE1vcnRhbDYxBAAIAAA9ACBNb3J0YWw2MgQACAAAPgAgTW9ydGFsNjMEAAgAAD8AIE1vcnRhbDY0BAAIAABAACBNb3J0YWw2NQQACAAAQQAgTW9ydGFsNjYEAAgAAEIAIE1vcnRhbDY3BAAIAABDACBNb3J0YWw2OAQACAAARAAgTW9ydGFsNjkEAAgAAEUAIE1vcnRhbDcwBAAIAABGACBNb3J0YWw3MQQACAAARwAgTW9ydGFsNzIEAAgAAEgAIE1vcnRhbDczBAAIAABJACBNb3J0YWw3NAQACAAASgAgTW9ydGFsNzUEAAgAAEsAIE1vcnRhbDc2BAAIAABMACBNb3J0YWw3NwQACAAATQAgTW9ydGFsNzgEAAgAAE4AIE1vcnRhbDc5BAAIAABPACBNb3J0YWw4MAQACAAAUAAgTW9ydGFsODEEAAgAAFEAIE1vcnRhbDgyBAAIAABSACBNb3J0YWw4MwQACAAAUwAgTW9ydGFsODQEAAgAAFQAIE1vcnRhbDg1BAAIAABVACBNb3J0YWw4NgQACAAAVgAgTW9ydGFsODcEAAgAAFcAIE1vcnRhbDg4BAAIAABYACBNb3J0YWw4OQQACAAAWQAgTW9ydGFsOTAEAAgAAFoAIE1vcnRhbDkxBAAIAABbACBNb3J0YWw5MgQACAAAXAAgTW9ydGFsOTMEAAgAAF0AIE1vcnRhbDk0BAAIAABeACBNb3J0YWw5NQQACAAAXwAgTW9ydGFsOTYEAAgAAGAAIE1vcnRhbDk3BAAIAABhACBNb3J0YWw5OAQACAAAYgAgTW9ydGFsOTkEAAgAAGMAJE1vcnRhbDEwMAQACAAAZAAkTW9ydGFsMTAxBAAIAABlACRNb3J0YWwxMDIEAAgAAGYAJE1vcnRhbDEwMwQACAAAZwAkTW9ydGFsMTA0BAAIAABoACRNb3J0YWwxMDUEAAgAAGkAJE1vcnRhbDEwNgQACAAAagAkTW9ydGFsMTA3BAAIAABrACRNb3J0YWwxMDgEAAgAAGwAJE1vcnRhbDEwOQQACAAAbQAkTW9ydGFsMTEwBAAIAABuACRNb3J0YWwxMTEEAAgAAG8AJE1vcnRhbDExMgQACAAAcAAkTW9ydGFsMTEzBAAIAABxACRNb3J0YWwxMTQEAAgAAHIAJE1vcnRhbDExNQQACAAAcwAkTW9ydGFsMTE2BAAIAAB0ACRNb3J0YWwxMTcEAAgAAHUAJE1vcnRhbDExOAQACAAAdgAkTW9ydGFsMTE5BAAIAAB3ACRNb3J0YWwxMjAEAAgAAHgAJE1vcnRhbDEyMQQACAAAeQAkTW9ydGFsMTIyBAAIAAB6ACRNb3J0YWwxMjMEAAgAAHsAJE1vcnRhbDEyNAQACAAAfAAkTW9ydGFsMTI1BAAIAAB9ACRNb3J0YWwxMjYEAAgAAH4AJE1vcnRhbDEyNwQACAAAfwAkTW9ydGFsMTI4BAAIAACAACRNb3J0YWwxMjkEAAgAAIEAJE1vcnRhbDEzMAQACAAAggAkTW9ydGFsMTMxBAAIAACDACRNb3J0YWwxMzIEAAgAAIQAJE1vcnRhbDEzMwQACAAAhQAkTW9ydGFsMTM0BAAIAACGACRNb3J0YWwxMzUEAAgAAIcAJE1vcnRhbDEzNgQACAAAiAAkTW9ydGFsMTM3BAAIAACJACRNb3J0YWwxMzgEAAgAAIoAJE1vcnRhbDEzOQQACAAAiwAkTW9ydGFsMTQwBAAIAACMACRNb3J0YWwxNDEEAAgAAI0AJE1vcnRhbDE0MgQACAAAjgAkTW9ydGFsMTQzBAAIAACPACRNb3J0YWwxNDQEAAgAAJAAJE1vcnRhbDE0NQQACAAAkQAkTW9ydGFsMTQ2BAAIAACSACRNb3J0YWwxNDcEAAgAAJMAJE1vcnRhbDE0OAQACAAAlAAkTW9ydGFsMTQ5BAAIAACVACRNb3J0YWwxNTAEAAgAAJYAJE1vcnRhbDE1MQQACAAAlwAkTW9ydGFsMTUyBAAIAACYACRNb3J0YWwxNTMEAAgAAJkAJE1vcnRhbDE1NAQACAAAmgAkTW9ydGFsMTU1BAAIAACbACRNb3J0YWwxNTYEAAgAAJwAJE1vcnRhbDE1NwQACAAAnQAkTW9ydGFsMTU4BAAIAACeACRNb3J0YWwxNTkEAAgAAJ8AJE1vcnRhbDE2MAQACAAAoAAkTW9ydGFsMTYxBAAIAAChACRNb3J0YWwxNjIEAAgAAKIAJE1vcnRhbDE2MwQACAAAowAkTW9ydGFsMTY0BAAIAACkACRNb3J0YWwxNjUEAAgAAKUAJE1vcnRhbDE2NgQACAAApgAkTW9ydGFsMTY3BAAIAACnACRNb3J0YWwxNjgEAAgAAKgAJE1vcnRhbDE2OQQACAAAqQAkTW9ydGFsMTcwBAAIAACqACRNb3J0YWwxNzEEAAgAAKsAJE1vcnRhbDE3MgQACAAArAAkTW9ydGFsMTczBAAIAACtACRNb3J0YWwxNzQEAAgAAK4AJE1vcnRhbDE3NQQACAAArwAkTW9ydGFsMTc2BAAIAACwACRNb3J0YWwxNzcEAAgAALEAJE1vcnRhbDE3OAQACAAAsgAkTW9ydGFsMTc5BAAIAACzACRNb3J0YWwxODAEAAgAALQAJE1vcnRhbDE4MQQACAAAtQAkTW9ydGFsMTgyBAAIAAC2ACRNb3J0YWwxODMEAAgAALcAJE1vcnRhbDE4NAQACAAAuAAkTW9ydGFsMTg1BAAIAAC5ACRNb3J0YWwxODYEAAgAALoAJE1vcnRhbDE4NwQACAAAuwAkTW9ydGFsMTg4BAAIAAC8ACRNb3J0YWwxODkEAAgAAL0AJE1vcnRhbDE5MAQACAAAvgAkTW9ydGFsMTkxBAAIAAC/ACRNb3J0YWwxOTIEAAgAAMAAJE1vcnRhbDE5MwQACAAAwQAkTW9ydGFsMTk0BAAIAADCACRNb3J0YWwxOTUEAAgAAMMAJE1vcnRhbDE5NgQACAAAxAAkTW9ydGFsMTk3BAAIAADFACRNb3J0YWwxOTgEAAgAAMYAJE1vcnRhbDE5OQQACAAAxwAkTW9ydGFsMjAwBAAIAADIACRNb3J0YWwyMDEEAAgAAMkAJE1vcnRhbDIwMgQACAAAygAkTW9ydGFsMjAzBAAIAADLACRNb3J0YWwyMDQEAAgAAMwAJE1vcnRhbDIwNQQACAAAzQAkTW9ydGFsMjA2BAAIAADOACRNb3J0YWwyMDcEAAgAAM8AJE1vcnRhbDIwOAQACAAA0AAkTW9ydGFsMjA5BAAIAADRACRNb3J0YWwyMTAEAAgAANIAJE1vcnRhbDIxMQQACAAA0wAkTW9ydGFsMjEyBAAIAADUACRNb3J0YWwyMTMEAAgAANUAJE1vcnRhbDIxNAQACAAA1gAkTW9ydGFsMjE1BAAIAADXACRNb3J0YWwyMTYEAAgAANgAJE1vcnRhbDIxNwQACAAA2QAkTW9ydGFsMjE4BAAIAADaACRNb3J0YWwyMTkEAAgAANsAJE1vcnRhbDIyMAQACAAA3AAkTW9ydGFsMjIxBAAIAADdACRNb3J0YWwyMjIEAAgAAN4AJE1vcnRhbDIyMwQACAAA3wAkTW9ydGFsMjI0BAAIAADgACRNb3J0YWwyMjUEAAgAAOEAJE1vcnRhbDIyNgQACAAA4gAkTW9ydGFsMjI3BAAIAADjACRNb3J0YWwyMjgEAAgAAOQAJE1vcnRhbDIyOQQACAAA5QAkTW9ydGFsMjMwBAAIAADmACRNb3J0YWwyMzEEAAgAAOcAJE1vcnRhbDIzMgQACAAA6AAkTW9ydGFsMjMzBAAIAADpACRNb3J0YWwyMzQEAAgAAOoAJE1vcnRhbDIzNQQACAAA6wAkTW9ydGFsMjM2BAAIAADsACRNb3J0YWwyMzcEAAgAAO0AJE1vcnRhbDIzOAQACAAA7gAkTW9ydGFsMjM5BAAIAADvACRNb3J0YWwyNDAEAAgAAPAAJE1vcnRhbDI0MQQACAAA8QAkTW9ydGFsMjQyBAAIAADyACRNb3J0YWwyNDMEAAgAAPMAJE1vcnRhbDI0NAQACAAA9AAkTW9ydGFsMjQ1BAAIAAD1ACRNb3J0YWwyNDYEAAgAAPYAJE1vcnRhbDI0NwQACAAA9wAkTW9ydGFsMjQ4BAAIAAD4ACRNb3J0YWwyNDkEAAgAAPkAJE1vcnRhbDI1MAQACAAA+gAkTW9ydGFsMjUxBAAIAAD7ACRNb3J0YWwyNTIEAAgAAPwAJE1vcnRhbDI1MwQACAAA/QAkTW9ydGFsMjU0BAAIAAD+ACRNb3J0YWwyNTUEAAgAAP8AACEOEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9ucyxjaGVja19ub25jZShDaGVja05vbmNlBARUAAAEAKkBASBUOjpOb25jZQAAJQ4QMGZyYW1lX3N5c3RlbShleHRlbnNpb25zMGNoZWNrX3dlaWdodCxDaGVja1dlaWdodAQEVAAAAAApDghocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnRgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50BARUAAAEAN0BATBCYWxhbmNlT2Y8VD4AAC0OCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbkRDaGVja01ldGFkYXRhSGFzaAQEVAAABAEQbW9kZTEOARBNb2RlAAAxDgh0ZnJhbWVfbWV0YWRhdGFfaGFzaF9leHRlbnNpb24QTW9kZQABCCBEaXNhYmxlZAAAABxFbmFibGVkAAEAADUOCDx3ZXN0ZW5kX3J1bnRpbWUcUnVudGltZQAAAAA5DhAoc3BfcnVudGltZRxnZW5lcmljFGJsb2NrFEJsb2NrCBhIZWFkZXIBpQEkRXh0cmluc2ljAT0OAAgBGGhlYWRlcqUBARhIZWFkZXIAAShleHRyaW5zaWNzQQ4BOFZlYzxFeHRyaW5zaWM+AAA9DhAoc3BfcnVudGltZRxnZW5lcmljTHVuY2hlY2tlZF9leHRyaW5zaWNIVW5jaGVja2VkRXh0cmluc2ljEBxBZGRyZXNzAc0BEENhbGwBiQEkU2lnbmF0dXJlAXkDFEV4dHJhAQUOAAQAOAAAAEEOAAACPQ4ARQ4IKHNwX3J1bnRpbWVYRXh0cmluc2ljSW5jbHVzaW9uTW9kZQABCDRBbGxFeHRyaW5zaWNzAAAANE9ubHlJbmhlcmVudHMAAQAASQ4IHHNwX2NvcmU4T3BhcXVlTWV0YWRhdGEAAAQAOAEcVmVjPHU4PgAATQ4EGE9wdGlvbgQEVAFJDgEIEE5vbmUAAAAQU29tZQQASQ4AAAEAAFEOBBhSZXN1bHQIBFQB9ARFAVUOAQgIT2sEAPQAAAAADEVycgQAVQ4AAAEAAFUODChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBABZDgFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EAF0OAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAWQ4MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAEsEENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAIAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgAAXQ4MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQACAEIdTgAAgAAYQ4IMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGFlDgGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAZQ4EIEJUcmVlTWFwCARLAQkDBFYBOAAEAGkOAAAAaQ4AAAJtDgBtDgAABAgJAzgAcQ4IMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2theSABEGJvb2wAASxmYXRhbF9lcnJvciABEGJvb2wAARhlcnJvcnNhDgEwSW5oZXJlbnREYXRhAAB1Dgwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAAHkOBBhSZXN1bHQIBFQBfQ4ERQFVDgEICE9rBAB9DgAAAAAMRXJyBABVDgAAAQAAfQ4MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkwAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXOZAQFMVmVjPFRyYW5zYWN0aW9uVGFnPgABIHByb3ZpZGVzmQEBTFZlYzxUcmFuc2FjdGlvblRhZz4AASRsb25nZXZpdHkwAVBUcmFuc2FjdGlvbkxvbmdldml0eQABJHByb3BhZ2F0ZSABEGJvb2wAAIEOAAAECCEMhQ4AhQ4MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhER3JvdXBSb3RhdGlvbkluZm8EBE4BEAAMAUxzZXNzaW9uX3N0YXJ0X2Jsb2NrEAEETgABYGdyb3VwX3JvdGF0aW9uX2ZyZXF1ZW5jeRABBE4AAQxub3cQAQROAACJDgAAAo0OAI0ODExwb2xrYWRvdF9wcmltaXRpdmVzCHY4JENvcmVTdGF0ZQgESAE0BE4BEAEMIE9jY3VwaWVkBACRDgFIT2NjdXBpZWRDb3JlPEgsIE4+AAAAJFNjaGVkdWxlZAQAmQ4BNFNjaGVkdWxlZENvcmUAAQAQRnJlZQACAACRDgxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODBPY2N1cGllZENvcmUIBEgBNAROARAAIAFQbmV4dF91cF9vbl9hdmFpbGFibGWVDgFUT3B0aW9uPFNjaGVkdWxlZENvcmU+AAE4b2NjdXBpZWRfc2luY2UQAQROAAEsdGltZV9vdXRfYXQQAQROAAFMbmV4dF91cF9vbl90aW1lX291dJUOAVRPcHRpb248U2NoZWR1bGVkQ29yZT4AATBhdmFpbGFiaWxpdHlpBQF8Qml0VmVjPHU4LCBiaXR2ZWM6Om9yZGVyOjpMc2IwPgABRGdyb3VwX3Jlc3BvbnNpYmxlCQgBKEdyb3VwSW5kZXgAAThjYW5kaWRhdGVfaGFzaMUFATRDYW5kaWRhdGVIYXNoAAFQY2FuZGlkYXRlX2Rlc2NyaXB0b3KFBQFYQ2FuZGlkYXRlRGVzY3JpcHRvcjxIPgAAlQ4EGE9wdGlvbgQEVAGZDgEIEE5vbmUAAAAQU29tZQQAmQ4AAAEAAJkODExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NFNjaGVkdWxlZENvcmUAAAgBHHBhcmFfaWSRAgEISWQAASBjb2xsYXRvcp0OAUhPcHRpb248Q29sbGF0b3JJZD4AAJ0OBBhPcHRpb24EBFQBiQUBCBBOb25lAAAAEFNvbWUEAIkFAAABAAChDgxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OFhPY2N1cGllZENvcmVBc3N1bXB0aW9uAAEMIEluY2x1ZGVkAAAAIFRpbWVkT3V0AAEAEEZyZWUAAgAApQ4EGE9wdGlvbgQEVAGpDgEIEE5vbmUAAAAQU29tZQQAqQ4AAAEAAKkODExwb2xrYWRvdF9wcmltaXRpdmVzCHY4XFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhCARIATQETgEQABABLHBhcmVudF9oZWFksQUBIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlchABBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290NAEESAABMG1heF9wb3Zfc2l6ZRABDHUzMgAArQ4EGE9wdGlvbgQEVAGxDgEIEE5vbmUAAAAQU29tZQQAsQ4AAAEAALEOAAAECKkOkQUAtQ4EGE9wdGlvbgQEVAGBBQEIEE5vbmUAAAAQU29tZQQAgQUAAAEAALkOAAACvQ4AvQ4MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg4Q2FuZGlkYXRlRXZlbnQEBEgBNAEMPENhbmRpZGF0ZUJhY2tlZBAAAQgBTENhbmRpZGF0ZVJlY2VpcHQ8SD4AALEFASBIZWFkRGF0YQAABQgBJENvcmVJbmRleAAACQgBKEdyb3VwSW5kZXgAAABEQ2FuZGlkYXRlSW5jbHVkZWQQAAEIAUxDYW5kaWRhdGVSZWNlaXB0PEg+AACxBQEgSGVhZERhdGEAAAUIASRDb3JlSW5kZXgAAAkIAShHcm91cEluZGV4AAEARENhbmRpZGF0ZVRpbWVkT3V0DAABCAFMQ2FuZGlkYXRlUmVjZWlwdDxIPgAAsQUBIEhlYWREYXRhAAAFCAEkQ29yZUluZGV4AAIAAMEOBCBCVHJlZU1hcAgESwGRAgRWAZ0MAAQAxQ4AAADFDgAAAskOAMkOAAAECJECnQwAzQ4EGE9wdGlvbgQEVAEJDAEIEE5vbmUAAAAQU29tZQQACQwAAAEAANEOBBhPcHRpb24EBFQBtQwBCBBOb25lAAAAEFNvbWUEALUMAAABAADVDgQYT3B0aW9uBARUAZEFAQgQTm9uZQAAABBTb21lBACRBQAAAQAA2Q4AAALdDgDdDgAABAwQxQXFDADhDgQYT3B0aW9uBARUATEFAQgQTm9uZQAAABBTb21lBAAxBQAAAQAA5Q4AAALpDgDpDgAABAwQxQXRDADtDgQYT3B0aW9uBARUAfEOAQgQTm9uZQAAABBTb21lBADxDgAAAQAA8Q4QTHBvbGthZG90X3ByaW1pdGl2ZXMIdjggc2xhc2hpbmdcT3BhcXVlS2V5T3duZXJzaGlwUHJvb2YAAAQAOAEcVmVjPHU4PgAA9Q4EGE9wdGlvbgQEVAH4AQgQTm9uZQAAABBTb21lBAD4AAABAAD5DgQYT3B0aW9uBARUAf0OAQgQTm9uZQAAABBTb21lBAD9DgAAAQAA/Q4QTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0YXN5bmNfYmFja2luZzBCYWNraW5nU3RhdGUIBEgBNAROARAACAEsY29uc3RyYWludHMBDwE4Q29uc3RyYWludHM8Tj4AAVBwZW5kaW5nX2F2YWlsYWJpbGl0eSEPAZxWZWM8Q2FuZGlkYXRlUGVuZGluZ0F2YWlsYWJpbGl0eTxILCBOPj4AAAEPEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmcsQ29uc3RyYWludHMEBE4BEAA4AVxtaW5fcmVsYXlfcGFyZW50X251bWJlchABBE4AATBtYXhfcG92X3NpemUQAQx1MzIAATRtYXhfY29kZV9zaXplEAEMdTMyAAE0dW1wX3JlbWFpbmluZxABDHUzMgABTHVtcF9yZW1haW5pbmdfYnl0ZXMQAQx1MzIAAWRtYXhfdW1wX251bV9wZXJfY2FuZGlkYXRlEAEMdTMyAAFYZG1wX3JlbWFpbmluZ19tZXNzYWdlc3EBARhWZWM8Tj4AATBocm1wX2luYm91bmQFDwFkSW5ib3VuZEhybXBMaW1pdGF0aW9uczxOPgABRGhybXBfY2hhbm5lbHNfb3V0CQ8BpFZlYzwoSWQsIE91dGJvdW5kSHJtcENoYW5uZWxMaW1pdGF0aW9ucyk+AAFobWF4X2hybXBfbnVtX3Blcl9jYW5kaWRhdGUQAQx1MzIAATxyZXF1aXJlZF9wYXJlbnSxBQEgSGVhZERhdGEAAVB2YWxpZGF0aW9uX2NvZGVfaGFzaJEFAUhWYWxpZGF0aW9uQ29kZUhhc2gAAUx1cGdyYWRlX3Jlc3RyaWN0aW9uFQ8BaE9wdGlvbjxVcGdyYWRlUmVzdHJpY3Rpb24+AAFYZnV0dXJlX3ZhbGlkYXRpb25fY29kZRkPAXxPcHRpb248KE4sIFZhbGlkYXRpb25Db2RlSGFzaCk+AAAFDxBMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODRhc3luY19iYWNraW5nWEluYm91bmRIcm1wTGltaXRhdGlvbnMEBE4BEAAEAUB2YWxpZF93YXRlcm1hcmtzcQEBGFZlYzxOPgAACQ8AAAINDwANDwAABAiRAhEPABEPEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmd4T3V0Ym91bmRIcm1wQ2hhbm5lbExpbWl0YXRpb25zAAAIATxieXRlc19yZW1haW5pbmcQAQx1MzIAAUhtZXNzYWdlc19yZW1haW5pbmcQAQx1MzIAABUPBBhPcHRpb24EBFQBeQwBCBBOb25lAAAAEFNvbWUEAHkMAAABAAAZDwQYT3B0aW9uBARUAR0PAQgQTm9uZQAAABBTb21lBAAdDwAAAQAAHQ8AAAQIEJEFACEPAAACJQ8AJQ8QTHBvbGthZG90X3ByaW1pdGl2ZXMIdjg0YXN5bmNfYmFja2luZ3BDYW5kaWRhdGVQZW5kaW5nQXZhaWxhYmlsaXR5CARIATQETgEQABQBOGNhbmRpZGF0ZV9oYXNoxQUBNENhbmRpZGF0ZUhhc2gAAShkZXNjcmlwdG9yhQUBWENhbmRpZGF0ZURlc2NyaXB0b3I8SD4AASxjb21taXRtZW50c5UFAVBDYW5kaWRhdGVDb21taXRtZW50cwABTHJlbGF5X3BhcmVudF9udW1iZXIQAQROAAEwbWF4X3Bvdl9zaXplEAEMdTMyAAApDwQgQlRyZWVNYXAIBEsBBQgEVgFZDAAEAC0PAAAALQ8AAAIxDwAxDwAABAgFCFkMADUPAAACgQUAOQ8EGE9wdGlvbgQEVAE9DwEIEE5vbmUAAAAQU29tZQQAPQ8AAAEAAD0PCEhzcF9jb25zZW5zdXNfYmVlZnkwVmFsaWRhdG9yU2V0BCxBdXRob3JpdHlJZAFFAgAIASh2YWxpZGF0b3Jz+Q0BQFZlYzxBdXRob3JpdHlJZD4AAQhpZDABOFZhbGlkYXRvclNldElkAABBDwgoc3BfcnVudGltZSxPcGFxdWVWYWx1ZQAABAA4ARxWZWM8dTg+AABFDwhIc3BfY29uc2Vuc3VzX2JlZWZ5PEZvcmtWb3RpbmdQcm9vZgwYSGVhZGVyAaUBCElkAUUCNEFuY2VzdHJ5UHJvb2YBQQ8ADAEQdm90ZakHAbhWb3RlTWVzc2FnZTxIZWFkZXI6Ok51bWJlciwgSWQsIElkOjpTaWduYXR1cmU+AAE4YW5jZXN0cnlfcHJvb2ZBDwE0QW5jZXN0cnlQcm9vZgABGGhlYWRlcqUBARhIZWFkZXIAAEkPBBhPcHRpb24EBFQBQQ8BCBBOb25lAAAAEFNvbWUEAEEPAAABAABNDwQYUmVzdWx0CARUATQERQFRDwEICE9rBAA0AAAAAAxFcnIEAFEPAAABAABRDwhEc3BfbW1yX3ByaW1pdGl2ZXMURXJyb3IAAShASW52YWxpZE51bWVyaWNPcAAAABBQdXNoAAEAHEdldFJvb3QAAgAYQ29tbWl0AAMANEdlbmVyYXRlUHJvb2YABAAYVmVyaWZ5AAUAMExlYWZOb3RGb3VuZAAGAERQYWxsZXROb3RJbmNsdWRlZAAHAEBJbnZhbGlkTGVhZkluZGV4AAgAVEludmFsaWRCZXN0S25vd25CbG9jawAJAABVDwQYUmVzdWx0CARUATAERQFRDwEICE9rBAAwAAAAAAxFcnIEAFEPAAABAABZDwQYUmVzdWx0CARUAV0PBEUBUQ8BCAhPawQAXQ8AAAAADEVycgQAUQ8AAAEAAF0PAAAECGEPaQ8AYQ8AAAJlDwBlDwhEc3BfbW1yX3ByaW1pdGl2ZXNMRW5jb2RhYmxlT3BhcXVlTGVhZgAABAA4ARxWZWM8dTg+AABpDwhEc3BfbW1yX3ByaW1pdGl2ZXMkTGVhZlByb29mBBBIYXNoATQADAEwbGVhZl9pbmRpY2VzzQoBOFZlYzxMZWFmSW5kZXg+AAEobGVhZl9jb3VudDABJE5vZGVJbmRleAABFGl0ZW1zmQMBJFZlYzxIYXNoPgAAbQ8EGFJlc3VsdAgEVAH4BEUBUQ8BCAhPawQA+AAAAAAMRXJyBABRDwAAAQAAcQ8IRHNwX2NvbnNlbnN1c19iYWJlREJhYmVDb25maWd1cmF0aW9uAAAYATRzbG90X2R1cmF0aW9uMAEMdTY0AAEwZXBvY2hfbGVuZ3RoMAEMdTY0AAEEY70BASgodTY0LCB1NjQpAAEsYXV0aG9yaXRpZXOhCAGcVmVjPChBdXRob3JpdHlJZCwgQmFiZUF1dGhvcml0eVdlaWdodCk+AAEocmFuZG9tbmVzcwQBKFJhbmRvbW5lc3MAATRhbGxvd2VkX3Nsb3RzwQEBMEFsbG93ZWRTbG90cwAAdQ8IRHNwX2NvbnNlbnN1c19iYWJlFEVwb2NoAAAYASxlcG9jaF9pbmRleDABDHU2NAABKHN0YXJ0X3Nsb3SxAQEQU2xvdAABIGR1cmF0aW9uMAEMdTY0AAEsYXV0aG9yaXRpZXOhCAGcVmVjPChBdXRob3JpdHlJZCwgQmFiZUF1dGhvcml0eVdlaWdodCk+AAEocmFuZG9tbmVzcwQBKFJhbmRvbW5lc3MAARhjb25maWfFCAFYQmFiZUVwb2NoQ29uZmlndXJhdGlvbgAAeQ8EGE9wdGlvbgQEVAF9DwEIEE5vbmUAAAAQU29tZQQAfQ8AAAEAAH0PCERzcF9jb25zZW5zdXNfYmFiZVxPcGFxdWVLZXlPd25lcnNoaXBQcm9vZgAABAA4ARxWZWM8dTg+AACBDwQYT3B0aW9uBARUAYUPAQgQTm9uZQAAABBTb21lBACFDwAAAQAAhQ8AAAKJDwCJDwAABAg4qQkAjQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzTFJ1bnRpbWVEaXNwYXRjaEluZm8IHEJhbGFuY2UBGBhXZWlnaHQBKAAMARh3ZWlnaHQoARhXZWlnaHQAARRjbGFzc2ABNERpc3BhdGNoQ2xhc3MAASxwYXJ0aWFsX2ZlZRgBHEJhbGFuY2UAAJEPDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlcyhGZWVEZXRhaWxzBBxCYWxhbmNlARgACAE0aW5jbHVzaW9uX2ZlZZUPAXRPcHRpb248SW5jbHVzaW9uRmVlPEJhbGFuY2U+PgABDHRpcBgBHEJhbGFuY2UAAJUPBBhPcHRpb24EBFQBmQ8BCBBOb25lAAAAEFNvbWUEAJkPAAABAACZDwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMwSW5jbHVzaW9uRmVlBBxCYWxhbmNlARgADAEgYmFzZV9mZWUYARxCYWxhbmNlAAEcbGVuX2ZlZRgBHEJhbGFuY2UAAUxhZGp1c3RlZF93ZWlnaHRfZmVlGAEcQmFsYW5jZQAAnQ8EGFJlc3VsdAgEVAGhDwRFAaUPAQgIT2sEAKEPAAAAAAxFcnIEAKUPAAABAAChDwAAAoEHAKUPDEB4Y21fcnVudGltZV9hcGlzEGZlZXMURXJyb3IAARg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEATFdlaWdodE5vdENvbXB1dGFibGUAAgBMVW5oYW5kbGVkWGNtVmVyc2lvbgADADRBc3NldE5vdEZvdW5kAAQAKFVucm91dGFibGUABQAAqQ8EGFJlc3VsdAgEVAEoBEUBpQ8BCAhPawQAKAAAAAAMRXJyBAClDwAAAQAArQ8EGFJlc3VsdAgEVAEYBEUBpQ8BCAhPawQAGAAAAAAMRXJyBAClDwAAAQAAsQ8EGFJlc3VsdAgEVAFNBwRFAaUPAQgIT2sEAE0HAAAAAAxFcnIEAKUPAAABAAC1DwQYUmVzdWx0CARUAbkPBEUB0Q8BCAhPawQAuQ8AAAAADEVycgQA0Q8AAAEAALkPDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW5EQ2FsbERyeVJ1bkVmZmVjdHMEFEV2ZW50AVQAEAFAZXhlY3V0aW9uX3Jlc3VsdOUHAWhEaXNwYXRjaFJlc3VsdFdpdGhQb3N0SW5mbwABOGVtaXR0ZWRfZXZlbnRzvQ8BKFZlYzxFdmVudD4AASRsb2NhbF94Y23BDwFgT3B0aW9uPFZlcnNpb25lZFhjbTwoKT4+AAE4Zm9yd2FyZGVkX3hjbXPFDwG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AAL0PAAACVADBDwQYT3B0aW9uBARUAR0GAQgQTm9uZQAAABBTb21lBAAdBgAAAQAAxQ8AAALJDwDJDwAABAgJBc0PAM0PAAACHQYA0Q8MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bhRFcnJvcgABCDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAA1Q8EGFJlc3VsdAgEVAHZDwRFAdEPAQgIT2sEANkPAAAAAAxFcnIEANEPAAABAADZDwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuQFhjbURyeVJ1bkVmZmVjdHMEFEV2ZW50AVQADAFAZXhlY3V0aW9uX3Jlc3VsdEEIARxPdXRjb21lAAE4ZW1pdHRlZF9ldmVudHO9DwEoVmVjPEV2ZW50PgABOGZvcndhcmRlZF94Y21zxQ8BvFZlYzwoVmVyc2lvbmVkTG9jYXRpb24sIFZlYzxWZXJzaW9uZWRYY208KCk+Pik+AADdDwQYUmVzdWx0CARUAQAERQHhDwEICE9rBAAAAAAAAAxFcnIEAOEPAAABAADhDwxAeGNtX3J1bnRpbWVfYXBpcyxjb252ZXJzaW9ucxRFcnJvcgABCCxVbnN1cHBvcnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAOUPBBhSZXN1bHQIBFQB+ARFAWUIAQgIT2sEAPgAAAAADEVycgQAZQgAAAEAAOkPBBhPcHRpb24EBFQBZQgBCBBOb25lAAAAEFNvbWUEAGUIAAABAADtDwAAAmUIAPEPCDx3ZXN0ZW5kX3J1bnRpbWUwUnVudGltZUVycm9yAAG0GFN5c3RlbQQAlQgBcGZyYW1lX3N5c3RlbTo6RXJyb3I8UnVudGltZT4AAAAQQmFiZQQA1QgBbHBhbGxldF9iYWJlOjpFcnJvcjxSdW50aW1lPgABABxJbmRpY2VzBADdCAF4cGFsbGV0X2luZGljZXM6OkVycm9yPFJ1bnRpbWU+AAMAIEJhbGFuY2VzBAApCQF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAEABxTdGFraW5nBACJCQF4cGFsbGV0X3N0YWtpbmc6OkVycm9yPFJ1bnRpbWU+AAYAHFNlc3Npb24EAK0JAXhwYWxsZXRfc2Vzc2lvbjo6RXJyb3I8UnVudGltZT4ACAAcR3JhbmRwYQQAvQkBeHBhbGxldF9ncmFuZHBhOjpFcnJvcjxSdW50aW1lPgAKABxVdGlsaXR5BADJCQF4cGFsbGV0X3V0aWxpdHk6OkVycm9yPFJ1bnRpbWU+ABAAIElkZW50aXR5BAAFCgF8cGFsbGV0X2lkZW50aXR5OjpFcnJvcjxSdW50aW1lPgARACBSZWNvdmVyeQQAGQoBfHBhbGxldF9yZWNvdmVyeTo6RXJyb3I8UnVudGltZT4AEgAcVmVzdGluZwQAKQoBeHBhbGxldF92ZXN0aW5nOjpFcnJvcjxSdW50aW1lPgATACRTY2hlZHVsZXIEAEEKAYBwYWxsZXRfc2NoZWR1bGVyOjpFcnJvcjxSdW50aW1lPgAUACBQcmVpbWFnZQQAYQoBfHBhbGxldF9wcmVpbWFnZTo6RXJyb3I8UnVudGltZT4AHAAQU3VkbwQAZQoBbHBhbGxldF9zdWRvOjpFcnJvcjxSdW50aW1lPgAVABRQcm94eQQAiQoBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AFgAgTXVsdGlzaWcEAJkKAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+ABcAaEVsZWN0aW9uUHJvdmlkZXJNdWx0aVBoYXNlBADBCgHQcGFsbGV0X2VsZWN0aW9uX3Byb3ZpZGVyX211bHRpX3BoYXNlOjpFcnJvcjxSdW50aW1lPgAYACRWb3Rlckxpc3QEANEKAfRwYWxsZXRfYmFnc19saXN0OjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfYmFnc19saXN0OjpJbnN0YW5jZTE+ABkAPE5vbWluYXRpb25Qb29scwQAJQsBnHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjpFcnJvcjxSdW50aW1lPgAdACxGYXN0VW5zdGFrZQQAOQsBjHBhbGxldF9mYXN0X3Vuc3Rha2U6OkVycm9yPFJ1bnRpbWU+AB4AQENvbnZpY3Rpb25Wb3RpbmcEAG0LAaBwYWxsZXRfY29udmljdGlvbl92b3Rpbmc6OkVycm9yPFJ1bnRpbWU+AB8AJFJlZmVyZW5kYQQArQsBgHBhbGxldF9yZWZlcmVuZGE6OkVycm9yPFJ1bnRpbWU+ACAAJFdoaXRlbGlzdAQAsQsBgHBhbGxldF93aGl0ZWxpc3Q6OkVycm9yPFJ1bnRpbWU+ACQAIFRyZWFzdXJ5BADJCwF8cGFsbGV0X3RyZWFzdXJ5OjpFcnJvcjxSdW50aW1lPgAlAEBEZWxlZ2F0ZWRTdGFraW5nBADVCwGgcGFsbGV0X2RlbGVnYXRlZF9zdGFraW5nOjpFcnJvcjxSdW50aW1lPgAmADRDb25maWd1cmF0aW9uBADlCwGgcGFyYWNoYWluc19jb25maWd1cmF0aW9uOjpFcnJvcjxSdW50aW1lPgAqADRQYXJhSW5jbHVzaW9uBAAFDAGQcGFyYWNoYWluc19pbmNsdXNpb246OkVycm9yPFJ1bnRpbWU+ACwAMFBhcmFJbmhlcmVudAQAHQwBpHBhcmFjaGFpbnNfcGFyYXNfaW5oZXJlbnQ6OkVycm9yPFJ1bnRpbWU+AC0AFFBhcmFzBAB9DAGAcGFyYWNoYWluc19wYXJhczo6RXJyb3I8UnVudGltZT4ALwAQSHJtcAQArQwBfHBhcmFjaGFpbnNfaHJtcDo6RXJyb3I8UnVudGltZT4AMwA0UGFyYXNEaXNwdXRlcwQAzQwBjHBhcmFjaGFpbnNfZGlzcHV0ZXM6OkVycm9yPFJ1bnRpbWU+ADUANFBhcmFzU2xhc2hpbmcEAOEMAYxwYXJhY2hhaW5zX3NsYXNoaW5nOjpFcnJvcjxSdW50aW1lPgA2AGhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlcgQAEQ0BkHBhcmFjaGFpbnNfb25fZGVtYW5kOjpFcnJvcjxSdW50aW1lPgA4AGhDb3JldGltZUFzc2lnbm1lbnRQcm92aWRlcgQAPQ0BsHBhcmFjaGFpbnNfYXNzaWduZXJfY29yZXRpbWU6OkVycm9yPFJ1bnRpbWU+ADkAJFJlZ2lzdHJhcgQARQ0BfHBhcmFzX3JlZ2lzdHJhcjo6RXJyb3I8UnVudGltZT4APAAUU2xvdHMEAE0NAVRzbG90czo6RXJyb3I8UnVudGltZT4APQBAUGFyYXNTdWRvV3JhcHBlcgQAUQ0BiHBhcmFzX3N1ZG9fd3JhcHBlcjo6RXJyb3I8UnVudGltZT4APgAgQXVjdGlvbnMEAGUNAWBhdWN0aW9uczo6RXJyb3I8UnVudGltZT4APwAkQ3Jvd2Rsb2FuBABxDQFkY3Jvd2Rsb2FuOjpFcnJvcjxSdW50aW1lPgBAADRBc3NpZ25lZFNsb3RzBAB5DQF4YXNzaWduZWRfc2xvdHM6OkVycm9yPFJ1bnRpbWU+AEEAIENvcmV0aW1lBAB9DQFgY29yZXRpbWU6OkVycm9yPFJ1bnRpbWU+AEIAJFhjbVBhbGxldAQA0Q0BaHBhbGxldF94Y206OkVycm9yPFJ1bnRpbWU+AGMAME1lc3NhZ2VRdWV1ZQQA7Q0BkHBhbGxldF9tZXNzYWdlX3F1ZXVlOjpFcnJvcjxSdW50aW1lPgBkACRBc3NldFJhdGUEAPENAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXJyb3I8UnVudGltZT4AZQAUQmVlZnkEAP0NAXBwYWxsZXRfYmVlZnk6OkVycm9yPFJ1bnRpbWU+AMgAAPwYU3lzdGVtARhTeXN0ZW1IHEFjY291bnQBAQQCAAxBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACABOggVGhlIGZ1bGwgYWNjb3VudCBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQgSUQuOEV4dHJpbnNpY0NvdW50AAAQBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay5ASW5oZXJlbnRzQXBwbGllZAEAIAQABKQgV2hldGhlciBhbGwgaW5oZXJlbnRzIGhhdmUgYmVlbiBhcHBsaWVkLixCbG9ja1dlaWdodAEAJBgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay5AQWxsRXh0cmluc2ljc0xlbgAAEAQABEEBIFRvdGFsIGxlbmd0aCAoaW4gYnl0ZXMpIGZvciBhbGwgZXh0cmluc2ljcyBwdXQgdG9nZXRoZXIsIGZvciB0aGUgY3VycmVudCBibG9jay4kQmxvY2tIYXNoAQEEBRA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJggTWFwIG9mIGJsb2NrIG51bWJlcnMgdG8gYmxvY2sgaGFzaGVzLjRFeHRyaW5zaWNEYXRhAQEEBRA4BAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuGE51bWJlcgEAEBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuKFBhcmVudEhhc2gBADSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEcCBIYXNoIG9mIHRoZSBwcmV2aW91cyBibG9jay4YRGlnZXN0AQA8BAAE8CBEaWdlc3Qgb2YgdGhlIGN1cnJlbnQgYmxvY2ssIGFsc28gcGFydCBvZiB0aGUgYmxvY2sgaGVhZGVyLhhFdmVudHMBAEwEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuKEV2ZW50Q291bnQBABAQAAAAAAS4IFRoZSBudW1iZXIgb2YgZXZlbnRzIGluIHRoZSBgRXZlbnRzPFQ+YCBsaXN0LixFdmVudFRvcGljcwEBBAI0XQgEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LkhMYXN0UnVudGltZVVwZ3JhZGUAAGEIBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuVFVwZ3JhZGVkVG9VMzJSZWZDb3VudAEAIAQABE0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IGB0eXBlIFJlZkNvdW50YCBpcyBgdTMyYC4gRmFsc2UgKGRlZmF1bHQpIGlmIG5vdC5gVXBncmFkZWRUb1RyaXBsZVJlZkNvdW50AQAgBAAIXQEgVHJ1ZSBpZiB3ZSBoYXZlIHVwZ3JhZGVkIHNvIHRoYXQgQWNjb3VudEluZm8gY29udGFpbnMgdGhyZWUgdHlwZXMgb2YgYFJlZkNvdW50YC4gRmFsc2VIIChkZWZhdWx0KSBpZiBub3QuOEV4ZWN1dGlvblBoYXNlAABZCAQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suREF1dGhvcml6ZWRVcGdyYWRlAABpCAQABLggYFNvbWVgIGlmIGEgY29kZSB1cGdyYWRlIGhhcyBiZWVuIGF1dGhvcml6ZWQuAY0BAVgYMEJsb2NrV2VpZ2h0c20I+QGCgiVuAAsAIEqp0QET//////////8CjBcbAAELAO0ZkFgBE6NwPQrXo3C9AQsAmPc+XQET/////////78BAAACjBcbAAELAHVs+swBE6NwPQrXo3D9AQsAIEqp0QET//////////8BBwCIUmp0EwAAAAAAAABAAowXGwAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4sQmxvY2tMZW5ndGh5CDAAADwAAABQAAAAUAAEqCBUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBibG9jayAoaW4gYnl0ZXMpLjhCbG9ja0hhc2hDb3VudBAQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4gRGJXZWlnaHSBCEBAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuHFZlcnNpb26FCMUEHHdlc3RlbmQ4cGFyaXR5LXdlc3RlbmQCAAAAwIAPAAAAAABY32rLaJkHYJsFAAAAN+OX/HyR9eQCAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAArywCl6I+bT0LAAAASeqvG1SKDLAFAAAAkdXfGLDSz1gCAAAAKl6SRlU5nmABAAAA7ZnFrLJe7fUDAAAAy8ol458UI4cCAAAAaHrUStN/A8IBAAAAqzwFcikf64sBAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAA8/8U1atScFkDAAAAb/Uu6Fjmxb0BAAAAkbHIsWMo65IBAAAAn/tQWqc41pwBAAAAF6a8DQBirrMBAAAAGO9Yo7Z7p3ABAAAA+8V3uddH79YBAAAAGgAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLihTUzU4UHJlZml4LQEIKgAUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAZUIAAAQQmFiZQEQQmFiZUQoRXBvY2hJbmRleAEAMCAAAAAAAAAAAARUIEN1cnJlbnQgZXBvY2ggaW5kZXguLEF1dGhvcml0aWVzAQCZCAQABGwgQ3VycmVudCBlcG9jaCBhdXRob3JpdGllcy4sR2VuZXNpc1Nsb3QBALEBIAAAAAAAAAAACPggVGhlIHNsb3QgYXQgd2hpY2ggdGhlIGZpcnN0IGVwb2NoIGFjdHVhbGx5IHN0YXJ0ZWQuIFRoaXMgaXMgMJAgdW50aWwgdGhlIGZpcnN0IGJsb2NrIG9mIHRoZSBjaGFpbi4sQ3VycmVudFNsb3QBALEBIAAAAAAAAAAABFQgQ3VycmVudCBzbG90IG51bWJlci4oUmFuZG9tbmVzcwEABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi4IFRoZSBlcG9jaCByYW5kb21uZXNzIGZvciB0aGUgKmN1cnJlbnQqIGVwb2NoLgAsICMgU2VjdXJpdHkABQEgVGhpcyBNVVNUIE5PVCBiZSB1c2VkIGZvciBnYW1ibGluZywgYXMgaXQgY2FuIGJlIGluZmx1ZW5jZWQgYnkgYfggbWFsaWNpb3VzIHZhbGlkYXRvciBpbiB0aGUgc2hvcnQgdGVybS4gSXQgTUFZIGJlIHVzZWQgaW4gbWFueRUBIGNyeXB0b2dyYXBoaWMgcHJvdG9jb2xzLCBob3dldmVyLCBzbyBsb25nIGFzIG9uZSByZW1lbWJlcnMgdGhhdCB0aGlzFQEgKGxpa2UgZXZlcnl0aGluZyBlbHNlIG9uLWNoYWluKSBpdCBpcyBwdWJsaWMuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUFASB1c2VkIHdoZXJlIGEgbnVtYmVyIGlzIG5lZWRlZCB0aGF0IGNhbm5vdCBoYXZlIGJlZW4gY2hvc2VuIGJ5IGFuDQEgYWR2ZXJzYXJ5LCBmb3IgcHVycG9zZXMgc3VjaCBhcyBwdWJsaWMtY29pbiB6ZXJvLWtub3dsZWRnZSBwcm9vZnMuYFBlbmRpbmdFcG9jaENvbmZpZ0NoYW5nZQAAuQEEAARhASBQZW5kaW5nIGVwb2NoIGNvbmZpZ3VyYXRpb24gY2hhbmdlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHdoZW4gdGhlIG5leHQgZXBvY2ggaXMgZW5hY3RlZC44TmV4dFJhbmRvbW5lc3MBAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEXCBOZXh0IGVwb2NoIHJhbmRvbW5lc3MuPE5leHRBdXRob3JpdGllcwEAmQgEAARgIE5leHQgZXBvY2ggYXV0aG9yaXRpZXMuMFNlZ21lbnRJbmRleAEAEBAAAAAAJHwgUmFuZG9tbmVzcyB1bmRlciBjb25zdHJ1Y3Rpb24uAPggV2UgbWFrZSBhIHRyYWRlLW9mZiBiZXR3ZWVuIHN0b3JhZ2UgYWNjZXNzZXMgYW5kIGxpc3QgbGVuZ3RoLgEBIFdlIHN0b3JlIHRoZSB1bmRlci1jb25zdHJ1Y3Rpb24gcmFuZG9tbmVzcyBpbiBzZWdtZW50cyBvZiB1cCB0b5QgYFVOREVSX0NPTlNUUlVDVElPTl9TRUdNRU5UX0xFTkdUSGAuAOwgT25jZSBhIHNlZ21lbnQgcmVhY2hlcyB0aGlzIGxlbmd0aCwgd2UgYmVnaW4gdGhlIG5leHQgb25lLgkBIFdlIHJlc2V0IGFsbCBzZWdtZW50cyBhbmQgcmV0dXJuIHRvIGAwYCBhdCB0aGUgYmVnaW5uaW5nIG9mIGV2ZXJ5HCBlcG9jaC5EVW5kZXJDb25zdHJ1Y3Rpb24BAQQFEKUIBAAEFQEgVFdPWC1OT1RFOiBgU2VnbWVudEluZGV4YCBpcyBhbiBpbmNyZWFzaW5nIGludGVnZXIsIHNvIHRoaXMgaXMgb2theS4sSW5pdGlhbGl6ZWQAAK0IBAAIAQEgVGVtcG9yYXJ5IHZhbHVlIChjbGVhcmVkIGF0IGJsb2NrIGZpbmFsaXphdGlvbikgd2hpY2ggaXMgYFNvbWVgHQEgaWYgcGVyLWJsb2NrIGluaXRpYWxpemF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkIGZvciBjdXJyZW50IGJsb2NrLkxBdXRob3JWcmZSYW5kb21uZXNzAQAVAQQAEBUBIFRoaXMgZmllbGQgc2hvdWxkIGFsd2F5cyBiZSBwb3B1bGF0ZWQgZHVyaW5nIGJsb2NrIHByb2Nlc3NpbmcgdW5sZXNzGQEgc2Vjb25kYXJ5IHBsYWluIHNsb3RzIGFyZSBlbmFibGVkICh3aGljaCBkb24ndCBjb250YWluIGEgVlJGIG91dHB1dCkuAEkBIEl0IGlzIHNldCBpbiBgb25fZmluYWxpemVgLCBiZWZvcmUgaXQgd2lsbCBjb250YWluIHRoZSB2YWx1ZSBmcm9tIHRoZSBsYXN0IGJsb2NrLihFcG9jaFN0YXJ0AQARASAAAAAAAAAAABRdASBUaGUgYmxvY2sgbnVtYmVycyB3aGVuIHRoZSBsYXN0IGFuZCBjdXJyZW50IGVwb2NoIGhhdmUgc3RhcnRlZCwgcmVzcGVjdGl2ZWx5IGBOLTFgIGFuZBQgYE5gLkkBIE5PVEU6IFdlIHRyYWNrIHRoaXMgaXMgaW4gb3JkZXIgdG8gYW5ub3RhdGUgdGhlIGJsb2NrIG51bWJlciB3aGVuIGEgZ2l2ZW4gcG9vbCBvZlkBIGVudHJvcHkgd2FzIGZpeGVkIChpLmUuIGl0IHdhcyBrbm93biB0byBjaGFpbiBvYnNlcnZlcnMpLiBTaW5jZSBlcG9jaHMgYXJlIGRlZmluZWQgaW5ZASBzbG90cywgd2hpY2ggbWF5IGJlIHNraXBwZWQsIHRoZSBibG9jayBudW1iZXJzIG1heSBub3QgbGluZSB1cCB3aXRoIHRoZSBzbG90IG51bWJlcnMuIExhdGVuZXNzAQAQEAAAAAAU2CBIb3cgbGF0ZSB0aGUgY3VycmVudCBibG9jayBpcyBjb21wYXJlZCB0byBpdHMgcGFyZW50LgAVASBUaGlzIGVudHJ5IGlzIHBvcHVsYXRlZCBhcyBwYXJ0IG9mIGJsb2NrIGV4ZWN1dGlvbiBhbmQgaXMgY2xlYW5lZCB1cBEBIG9uIGJsb2NrIGZpbmFsaXphdGlvbi4gUXVlcnlpbmcgdGhpcyBzdG9yYWdlIGVudHJ5IG91dHNpZGUgb2YgYmxvY2uwIGV4ZWN1dGlvbiBjb250ZXh0IHNob3VsZCBhbHdheXMgeWllbGQgemVyby4sRXBvY2hDb25maWcAAMUIBAAIYQEgVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IGVwb2NoLiBTaG91bGQgbmV2ZXIgYmUgYE5vbmVgIGFzIGl0IGlzIGluaXRpYWxpemVkIGluJCBnZW5lc2lzLjxOZXh0RXBvY2hDb25maWcAAMUIBAAILQEgVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBuZXh0IGVwb2NoLCBgTm9uZWAgaWYgdGhlIGNvbmZpZyB3aWxsIG5vdCBjaGFuZ2XoICh5b3UgY2FuIGZhbGxiYWNrIHRvIGBFcG9jaENvbmZpZ2AgaW5zdGVhZCBpbiB0aGF0IGNhc2UpLjRTa2lwcGVkRXBvY2hzAQDJCAQAICkBIEEgbGlzdCBvZiB0aGUgbGFzdCAxMDAgc2tpcHBlZCBlcG9jaHMgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHNlc3Npb24gaW5kZXhwIHdoZW4gdGhlIGVwb2NoIHdhcyBza2lwcGVkLgAxASBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb24gcHJvb2ZzLiBBbiBlcXVpdm9jYXRpb24gcHJvb2Y1ASBtdXN0IGNvbnRhaW5zIGEga2V5LW93bmVyc2hpcCBwcm9vZiBmb3IgYSBnaXZlbiBzZXNzaW9uLCB0aGVyZWZvcmUgd2UgbmVlZCBhOQEgd2F5IHRvIHRpZSB0b2dldGhlciBzZXNzaW9ucyBhbmQgZXBvY2ggaW5kaWNlcywgaS5lLiB3ZSBuZWVkIHRvIHZhbGlkYXRlIHRoYXQpASBhIHZhbGlkYXRvciB3YXMgdGhlIG93bmVyIG9mIGEgZ2l2ZW4ga2V5IG9uIGEgZ2l2ZW4gc2Vzc2lvbiwgYW5kIHdoYXQgdGhlsCBhY3RpdmUgZXBvY2ggaW5kZXggd2FzIGR1cmluZyB0aGF0IHNlc3Npb24uAZ0BABA0RXBvY2hEdXJhdGlvbjAgWAIAAAAAAAAM7CBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNsb3RzLCB0aGF0IGVhY2ggZXBvY2ggc2hvdWxkIGxhc3QuGQEgTk9URTogQ3VycmVudGx5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGVwb2NoIGR1cmF0aW9uIGFmdGVyIQEgdGhlIGNoYWluIGhhcyBzdGFydGVkLiBBdHRlbXB0aW5nIHRvIGRvIHNvIHdpbGwgYnJpY2sgYmxvY2sgcHJvZHVjdGlvbi5ERXhwZWN0ZWRCbG9ja1RpbWUwIHAXAAAAAAAAFAUBIFRoZSBleHBlY3RlZCBhdmVyYWdlIGJsb2NrIHRpbWUgYXQgd2hpY2ggQkFCRSBzaG91bGQgYmUgY3JlYXRpbmcRASBibG9ja3MuIFNpbmNlIEJBQkUgaXMgcHJvYmFiaWxpc3RpYyBpdCBpcyBub3QgdHJpdmlhbCB0byBmaWd1cmUgb3V0BQEgd2hhdCB0aGUgZXhwZWN0ZWQgYXZlcmFnZSBibG9jayB0aW1lIHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgc2xvdAkBIGR1cmF0aW9uIGFuZCB0aGUgc2VjdXJpdHkgcGFyYW1ldGVyIGBjYCAod2hlcmUgYDEgLSBjYCByZXByZXNlbnRzoCB0aGUgcHJvYmFiaWxpdHkgb2YgYSBzbG90IGJlaW5nIGVtcHR5KS44TWF4QXV0aG9yaXRpZXMQEKCGAQAEiCBNYXggbnVtYmVyIG9mIGF1dGhvcml0aWVzIGFsbG93ZWQ0TWF4Tm9taW5hdG9ycxAQQAAAAATUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBub21pbmF0b3JzIGZvciBlYWNoIHZhbGlkYXRvci4B1QgBACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAwIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suJERpZFVwZGF0ZQEAIAQAENggV2hldGhlciB0aGUgdGltZXN0YW1wIGhhcyBiZWVuIHVwZGF0ZWQgaW4gdGhpcyBibG9jay4AVQEgVGhpcyB2YWx1ZSBpcyB1cGRhdGVkIHRvIGB0cnVlYCB1cG9uIHN1Y2Nlc3NmdWwgc3VibWlzc2lvbiBvZiBhIHRpbWVzdGFtcCBieSBhIG5vZGUuRQEgSXQgaXMgdGhlbiBjaGVja2VkIGF0IHRoZSBlbmQgb2YgZWFjaCBibG9jayBleGVjdXRpb24gaW4gdGhlIGBvbl9maW5hbGl6ZWAgaG9vay4BxQEABDRNaW5pbXVtUGVyaW9kMCC4CwAAAAAAABiMIFRoZSBtaW5pbXVtIHBlcmlvZCBiZXR3ZWVuIGJsb2Nrcy4ATQEgQmUgYXdhcmUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0byB0aGUgKmV4cGVjdGVkKiBwZXJpb2QgdGhhdCB0aGUgYmxvY2sgcHJvZHVjdGlvbkkBIGFwcGFyYXR1cyBwcm92aWRlcy4gWW91ciBjaG9zZW4gY29uc2Vuc3VzIHN5c3RlbSB3aWxsIGdlbmVyYWxseSB3b3JrIHdpdGggdGhpcyB0b2EBIGRldGVybWluZSBhIHNlbnNpYmxlIGJsb2NrIHRpbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgQXVyYSBwYWxsZXQgaXQgd2lsbCBiZSBkb3VibGUgdGhpc3AgcGVyaW9kIG9uIGRlZmF1bHQgc2V0dGluZ3MuAAIAHEluZGljZXMBHEluZGljZXMEIEFjY291bnRzAAEEAhDZCAQABIggVGhlIGxvb2t1cCBmcm9tIGluZGV4IHRvIGFjY291bnQuAckBAXwEHERlcG9zaXQYQAAQpdToAAAAAAAAAAAAAAAErCBUaGUgZGVwb3NpdCBuZWVkZWQgZm9yIHJlc2VydmluZyBhbiBpbmRleC4B3QgDACBCYWxhbmNlcwEgQmFsYW5jZXMcNFRvdGFsSXNzdWFuY2UBABhAAAAAAAAAAAAAAAAAAAAAAASYIFRoZSB0b3RhbCB1bml0cyBpc3N1ZWQgaW4gdGhlIHN5c3RlbS5ASW5hY3RpdmVJc3N1YW5jZQEAGEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uHEFjY291bnQBAQQCABQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBgCQEgVGhlIEJhbGFuY2VzIHBhbGxldCBleGFtcGxlIG9mIHN0b3JpbmcgdGhlIGJhbGFuY2Ugb2YgYW4gYWNjb3VudC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHsZAiAgICB0eXBlIEFjY291bnRTdG9yZSA9IFN0b3JhZ2VNYXBTaGltPFNlbGY6OkFjY291bnQ8UnVudGltZT4sIGZyYW1lX3N5c3RlbTo6UHJvdmlkZXI8UnVudGltZT4sIEFjY291bnRJZCwgU2VsZjo6QWNjb3VudERhdGE8QmFsYW5jZT4+DCAgfRAgYGBgABUBIFlvdSBjYW4gYWxzbyBzdG9yZSB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50IGluIHRoZSBgU3lzdGVtYCBwYWxsZXQuACggIyBFeGFtcGxlADQgYGBgbm9jb21waWxlsCAgaW1wbCBwYWxsZXRfYmFsYW5jZXM6OkNvbmZpZyBmb3IgUnVudGltZSB7dCAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3lzdGVtDCAgfRAgYGBgAFEBIEJ1dCB0aGlzIGNvbWVzIHdpdGggdHJhZGVvZmZzLCBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlIHN5c3RlbSBwYWxsZXQgc3RvcmVzbQEgYGZyYW1lX3N5c3RlbWAgZGF0YSBhbG9uZ3NpZGUgdGhlIGFjY291bnQgZGF0YSBjb250cmFyeSB0byBzdG9yaW5nIGFjY291bnQgYmFsYW5jZXMgaW4gdGhlKQEgYEJhbGFuY2VzYCBwYWxsZXQsIHdoaWNoIHVzZXMgYSBgU3RvcmFnZU1hcGAgdG8gc3RvcmUgYmFsYW5jZXMgZGF0YSBvbmx5LkEBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwYWxsZXQgaXMgdXNlZCB0byBzdG9yZSBiYWxhbmNlcy4UTG9ja3MBAQQCAOEIBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYCBSZXNlcnZlcwEBBAIA8QgEAAykIE5hbWVkIHJlc2VydmVzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4AsQEgVXNlIG9mIHJlc2VydmVzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGhvbGRzLiBTZWUgYGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3N1YnN0cmF0ZS9wdWxsLzEyOTUxL2AUSG9sZHMBAQQCAP0IBAAEbCBIb2xkcyBvbiBhY2NvdW50IGJhbGFuY2VzLhxGcmVlemVzAQEEAgAVCQQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAdkBAYAQSEV4aXN0ZW50aWFsRGVwb3NpdBhAAOQLVAIAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEgTWF4TG9ja3MQEDIAAAAQ9CBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9ja3MgdGhhdCBzaG91bGQgZXhpc3Qgb24gYW4gYWNjb3VudC7cIE5vdCBzdHJpY3RseSBlbmZvcmNlZCwgYnV0IHVzZWQgZm9yIHdlaWdodCBlc3RpbWF0aW9uLgCtASBVc2Ugb2YgbG9ja3MgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgZnJlZXplcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gLE1heFJlc2VydmVzEBAyAAAADA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBuYW1lZCByZXNlcnZlcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50LgCxASBVc2Ugb2YgcmVzZXJ2ZXMgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaG9sZHMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYChNYXhGcmVlemVzEBABAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgEpCQQASFRyYW5zYWN0aW9uUGF5bWVudAFIVHJhbnNhY3Rpb25QYXltZW50CEROZXh0RmVlTXVsdGlwbGllcgEAlQdAAABkp7O24A0AAAAAAAAAAAA4U3RvcmFnZVZlcnNpb24BAC0JBAAAAAGIBGBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXIIBAVUWQEgQSBmZWUgbXVsdGlwbGllciBmb3IgYE9wZXJhdGlvbmFsYCBleHRyaW5zaWNzIHRvIGNvbXB1dGUgInZpcnR1YWwgdGlwIiB0byBib29zdCB0aGVpciwgYHByaW9yaXR5YABRASBUaGlzIHZhbHVlIGlzIG11bHRpcGxpZWQgYnkgdGhlIGBmaW5hbF9mZWVgIHRvIG9idGFpbiBhICJ2aXJ0dWFsIHRpcCIgdGhhdCBpcyBsYXRlcvQgYWRkZWQgdG8gYSB0aXAgY29tcG9uZW50IGluIHJlZ3VsYXIgYHByaW9yaXR5YCBjYWxjdWxhdGlvbnMuTQEgSXQgbWVhbnMgdGhhdCBhIGBOb3JtYWxgIHRyYW5zYWN0aW9uIGNhbiBmcm9udC1ydW4gYSBzaW1pbGFybHktc2l6ZWQgYE9wZXJhdGlvbmFsYEEBIGV4dHJpbnNpYyAod2l0aCBubyB0aXApLCBieSBpbmNsdWRpbmcgYSB0aXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSB2aXJ0dWFsIHRpcC4APCBgYGBydXN0LGlnbm9yZUAgLy8gRm9yIGBOb3JtYWxgjCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCk7AFQgLy8gRm9yIGBPcGVyYXRpb25hbGARASBsZXQgdmlydHVhbF90aXAgPSAoaW5jbHVzaW9uX2ZlZSArIHRpcCkgKiBPcGVyYXRpb25hbEZlZU11bHRpcGxpZXI7xCBsZXQgcHJpb3JpdHkgPSBwcmlvcml0eV9jYWxjKHRpcCArIHZpcnR1YWxfdGlwKTsQIGBgYABRASBOb3RlIHRoYXQgc2luY2Ugd2UgdXNlIGBmaW5hbF9mZWVgIHRoZSBtdWx0aXBsaWVyIGFwcGxpZXMgYWxzbyB0byB0aGUgcmVndWxhciBgdGlwYF0BIHNlbnQgd2l0aCB0aGUgdHJhbnNhY3Rpb24uIFNvLCBub3Qgb25seSBkb2VzIHRoZSB0cmFuc2FjdGlvbiBnZXQgYSBwcmlvcml0eSBidW1wIGJhc2VkYQEgb24gdGhlIGBpbmNsdXNpb25fZmVlYCwgYnV0IHdlIGFsc28gYW1wbGlmeSB0aGUgaW1wYWN0IG9mIHRpcHMgYXBwbGllZCB0byBgT3BlcmF0aW9uYWxgOCB0cmFuc2FjdGlvbnMuABoAKEF1dGhvcnNoaXABKEF1dGhvcnNoaXAEGEF1dGhvcgAAAAQABGQgQXV0aG9yIG9mIGN1cnJlbnQgYmxvY2suAAAAAAUAHFN0YWtpbmcBHFN0YWtpbmesOFZhbGlkYXRvckNvdW50AQAQEAAAAAAEnCBUaGUgaWRlYWwgbnVtYmVyIG9mIGFjdGl2ZSB2YWxpZGF0b3JzLlRNaW5pbXVtVmFsaWRhdG9yQ291bnQBABAQAAAAAARBASBNaW5pbXVtIG51bWJlciBvZiBzdGFraW5nIHBhcnRpY2lwYW50cyBiZWZvcmUgZW1lcmdlbmN5IGNvbmRpdGlvbnMgYXJlIGltcG9zZWQuNEludnVsbmVyYWJsZXMBAOEBBAAMWQEgQW55IHZhbGlkYXRvcnMgdGhhdCBtYXkgbmV2ZXIgYmUgc2xhc2hlZCBvciBmb3JjaWJseSBraWNrZWQuIEl0J3MgYSBWZWMgc2luY2UgdGhleSdyZU0BIGVhc3kgdG8gaW5pdGlhbGl6ZSBhbmQgdGhlIHBlcmZvcm1hbmNlIGhpdCBpcyBtaW5pbWFsICh3ZSBleHBlY3Qgbm8gbW9yZSB0aGFuIGZvdXKsIGludnVsbmVyYWJsZXMpIGFuZCByZXN0cmljdGVkIHRvIHRlc3RuZXRzLhhCb25kZWQAAQQFAAAEAAwBASBNYXAgZnJvbSBhbGwgbG9ja2VkICJzdGFzaCIgYWNjb3VudHMgdG8gdGhlIGNvbnRyb2xsZXIgYWNjb3VudC4A0CBUV09YLU5PVEU6IFNBRkUgc2luY2UgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC5ATWluTm9taW5hdG9yQm9uZAEAGEAAAAAAAAAAAAAAAAAAAAAABCEBIFRoZSBtaW5pbXVtIGFjdGl2ZSBib25kIHRvIGJlY29tZSBhbmQgbWFpbnRhaW4gdGhlIHJvbGUgb2YgYSBub21pbmF0b3IuQE1pblZhbGlkYXRvckJvbmQBABhAAAAAAAAAAAAAAAAAAAAAAAQhASBUaGUgbWluaW11bSBhY3RpdmUgYm9uZCB0byBiZWNvbWUgYW5kIG1haW50YWluIHRoZSByb2xlIG9mIGEgdmFsaWRhdG9yLkhNaW5pbXVtQWN0aXZlU3Rha2UBABhAAAAAAAAAAAAAAAAAAAAAAAQRASBUaGUgbWluaW11bSBhY3RpdmUgbm9taW5hdG9yIHN0YWtlIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgZWxlY3Rpb24uNE1pbkNvbW1pc3Npb24BAJQQAAAAAAzoIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBjb21taXNzaW9uIHRoYXQgdmFsaWRhdG9ycyBjYW4gc2V0LgCAIElmIHNldCB0byBgMGAsIG5vIGxpbWl0IGV4aXN0cy4YTGVkZ2VyAAEEAgAxCQQAEEUBIE1hcCBmcm9tIGFsbCAodW5sb2NrZWQpICJjb250cm9sbGVyIiBhY2NvdW50cyB0byB0aGUgaW5mbyByZWdhcmRpbmcgdGhlIHN0YWtpbmcuAHUBIE5vdGU6IEFsbCB0aGUgcmVhZHMgYW5kIG11dGF0aW9ucyB0byB0aGlzIHN0b3JhZ2UgKk1VU1QqIGJlIGRvbmUgdGhyb3VnaCB0aGUgbWV0aG9kcyBleHBvc2Vk6CBieSBbYFN0YWtpbmdMZWRnZXJgXSB0byBlbnN1cmUgZGF0YSBhbmQgbG9jayBjb25zaXN0ZW5jeS4UUGF5ZWUAAQQFAJAEAAzkIFdoZXJlIHRoZSByZXdhcmQgcGF5bWVudCBzaG91bGQgYmUgbWFkZS4gS2V5ZWQgYnkgc3Rhc2guANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guKFZhbGlkYXRvcnMBAQQFAJgIAAAMRQEgVGhlIG1hcCBmcm9tICh3YW5uYWJlKSB2YWxpZGF0b3Igc3Rhc2gga2V5IHRvIHRoZSBwcmVmZXJlbmNlcyBvZiB0aGF0IHZhbGlkYXRvci4A0CBUV09YLU5PVEU6IFNBRkUgc2luY2UgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC5QQ291bnRlckZvclZhbGlkYXRvcnMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcEhNYXhWYWxpZGF0b3JzQ291bnQAABAEAAwxASBUaGUgbWF4aW11bSB2YWxpZGF0b3IgY291bnQgYmVmb3JlIHdlIHN0b3AgYWxsb3dpbmcgbmV3IHZhbGlkYXRvcnMgdG8gam9pbi4A0CBXaGVuIHRoaXMgdmFsdWUgaXMgbm90IHNldCwgbm8gbGltaXRzIGFyZSBlbmZvcmNlZC4oTm9taW5hdG9ycwABBAUAOQkEAEx1ASBUaGUgbWFwIGZyb20gbm9taW5hdG9yIHN0YXNoIGtleSB0byB0aGVpciBub21pbmF0aW9uIHByZWZlcmVuY2VzLCBuYW1lbHkgdGhlIHZhbGlkYXRvcnMgdGhhdFggdGhleSB3aXNoIHRvIHN1cHBvcnQuADkBIE5vdGUgdGhhdCB0aGUga2V5cyBvZiB0aGlzIHN0b3JhZ2UgbWFwIG1pZ2h0IGJlY29tZSBub24tZGVjb2RhYmxlIGluIGNhc2UgdGhlLQEgYWNjb3VudCdzIFtgTm9taW5hdGlvbnNRdW90YTo6TWF4Tm9taW5hdGlvbnNgXSBjb25maWd1cmF0aW9uIGlzIGRlY3JlYXNlZC6QIEluIHRoaXMgcmFyZSBjYXNlLCB0aGVzZSBub21pbmF0b3JzZQEgYXJlIHN0aWxsIGV4aXN0ZW50IGluIHN0b3JhZ2UsIHRoZWlyIGtleSBpcyBjb3JyZWN0IGFuZCByZXRyaWV2YWJsZSAoaS5lLiBgY29udGFpbnNfa2V5YHEBIGluZGljYXRlcyB0aGF0IHRoZXkgZXhpc3QpLCBidXQgdGhlaXIgdmFsdWUgY2Fubm90IGJlIGRlY29kZWQuIFRoZXJlZm9yZSwgdGhlIG5vbi1kZWNvZGFibGVtASBub21pbmF0b3JzIHdpbGwgZWZmZWN0aXZlbHkgbm90LWV4aXN0LCB1bnRpbCB0aGV5IHJlLXN1Ym1pdCB0aGVpciBwcmVmZXJlbmNlcyBzdWNoIHRoYXQgaXQBASBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgbmV3bHkgc2V0IGBDb25maWc6Ok1heE5vbWluYXRpb25zYC4AYQEgVGhpcyBpbXBsaWVzIHRoYXQgYDo6aXRlcl9rZXlzKCkuY291bnQoKWAgYW5kIGA6Oml0ZXIoKS5jb3VudCgpYCBtaWdodCByZXR1cm4gZGlmZmVyZW50bQEgdmFsdWVzIGZvciB0aGlzIG1hcC4gTW9yZW92ZXIsIHRoZSBtYWluIGA6OmNvdW50KClgIGlzIGFsaWduZWQgd2l0aCB0aGUgZm9ybWVyLCBuYW1lbHkgdGhlbCBudW1iZXIgb2Yga2V5cyB0aGF0IGV4aXN0LgBtASBMYXN0bHksIGlmIGFueSBvZiB0aGUgbm9taW5hdG9ycyBiZWNvbWUgbm9uLWRlY29kYWJsZSwgdGhleSBjYW4gYmUgY2hpbGxlZCBpbW1lZGlhdGVseSB2aWG4IFtgQ2FsbDo6Y2hpbGxfb3RoZXJgXSBkaXNwYXRjaGFibGUgYnkgYW55b25lLgDQIFRXT1gtTk9URTogU0FGRSBzaW5jZSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLlBDb3VudGVyRm9yTm9taW5hdG9ycwEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwOFZpcnR1YWxTdGFrZXJzAAEEBQD4BAAYyCBTdGFrZXJzIHdob3NlIGZ1bmRzIGFyZSBtYW5hZ2VkIGJ5IG90aGVyIHBhbGxldHMuAHUBIFRoaXMgcGFsbGV0IGRvZXMgbm90IGFwcGx5IGFueSBsb2NrcyBvbiB0aGVtLCB0aGVyZWZvcmUgdGhleSBhcmUgb25seSB2aXJ0dWFsbHkgYm9uZGVkLiBUaGV5bQEgYXJlIGV4cGVjdGVkIHRvIGJlIGtleWxlc3MgYWNjb3VudHMgYW5kIGhlbmNlIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBtdXRhdGUgdGhlaXIgbGVkZ2VycQEgZGlyZWN0bHkgdmlhIHRoaXMgcGFsbGV0LiBJbnN0ZWFkLCB0aGVzZSBhY2NvdW50cyBhcmUgbWFuYWdlZCBieSBvdGhlciBwYWxsZXRzIGFuZCBhY2Nlc3NlZCkBIHZpYSBsb3cgbGV2ZWwgYXBpcy4gV2Uga2VlcCB0cmFjayBvZiB0aGVtIHRvIGRvIG1pbmltYWwgaW50ZWdyaXR5IGNoZWNrcy5gQ291bnRlckZvclZpcnR1YWxTdGFrZXJzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXBITWF4Tm9taW5hdG9yc0NvdW50AAAQBAAMMQEgVGhlIG1heGltdW0gbm9taW5hdG9yIGNvdW50IGJlZm9yZSB3ZSBzdG9wIGFsbG93aW5nIG5ldyB2YWxpZGF0b3JzIHRvIGpvaW4uANAgV2hlbiB0aGlzIHZhbHVlIGlzIG5vdCBzZXQsIG5vIGxpbWl0cyBhcmUgZW5mb3JjZWQuKEN1cnJlbnRFcmEAABAEABBcIFRoZSBjdXJyZW50IGVyYSBpbmRleC4AZQEgVGhpcyBpcyB0aGUgbGF0ZXN0IHBsYW5uZWQgZXJhLCBkZXBlbmRpbmcgb24gaG93IHRoZSBTZXNzaW9uIHBhbGxldCBxdWV1ZXMgdGhlIHZhbGlkYXRvcoAgc2V0LCBpdCBtaWdodCBiZSBhY3RpdmUgb3Igbm90LiRBY3RpdmVFcmEAAEEJBAAQ2CBUaGUgYWN0aXZlIGVyYSBpbmZvcm1hdGlvbiwgaXQgaG9sZHMgaW5kZXggYW5kIHN0YXJ0LgBZASBUaGUgYWN0aXZlIGVyYSBpcyB0aGUgZXJhIGJlaW5nIGN1cnJlbnRseSByZXdhcmRlZC4gVmFsaWRhdG9yIHNldCBvZiB0aGlzIGVyYSBtdXN0IGJlrCBlcXVhbCB0byBbYFNlc3Npb25JbnRlcmZhY2U6OnZhbGlkYXRvcnNgXS5URXJhc1N0YXJ0U2Vzc2lvbkluZGV4AAEEBRAQBAAQVQEgVGhlIHNlc3Npb24gaW5kZXggYXQgd2hpY2ggdGhlIGVyYSBzdGFydCBmb3IgdGhlIGxhc3QgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuAGEBIE5vdGU6IFRoaXMgdHJhY2tzIHRoZSBzdGFydGluZyBzZXNzaW9uIChpLmUuIHNlc3Npb24gaW5kZXggd2hlbiBlcmEgc3RhcnQgYmVpbmcgYWN0aXZlKfAgZm9yIHRoZSBlcmFzIGluIGBbQ3VycmVudEVyYSAtIEhJU1RPUllfREVQVEgsIEN1cnJlbnRFcmFdYC4sRXJhc1N0YWtlcnMBAQgFBUkJTQkMAAAAIHggRXhwb3N1cmUgb2YgdmFsaWRhdG9yIGF0IGVyYS4AYQEgVGhpcyBpcyBrZXllZCBmaXJzdCBieSB0aGUgZXJhIGluZGV4IHRvIGFsbG93IGJ1bGsgZGVsZXRpb24gYW5kIHRoZW4gdGhlIHN0YXNoIGFjY291bnQuAMwgSXMgaXQgcmVtb3ZlZCBhZnRlciBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy5BASBJZiBzdGFrZXJzIGhhc24ndCBiZWVuIHNldCBvciBoYXMgYmVlbiByZW1vdmVkIHRoZW4gZW1wdHkgZXhwb3N1cmUgaXMgcmV0dXJuZWQuACkBIE5vdGU6IERlcHJlY2F0ZWQgc2luY2UgdjE0LiBVc2UgYEVyYUluZm9gIGluc3RlYWQgdG8gd29yayB3aXRoIGV4cG9zdXJlcy5MRXJhc1N0YWtlcnNPdmVydmlldwABCAUFSQlZCQQAMLggU3VtbWFyeSBvZiB2YWxpZGF0b3IgZXhwb3N1cmUgYXQgYSBnaXZlbiBlcmEuAHEBIFRoaXMgY29udGFpbnMgdGhlIHRvdGFsIHN0YWtlIGluIHN1cHBvcnQgb2YgdGhlIHZhbGlkYXRvciBhbmQgdGhlaXIgb3duIHN0YWtlLiBJbiBhZGRpdGlvbix1ASBpdCBjYW4gYWxzbyBiZSB1c2VkIHRvIGdldCB0aGUgbnVtYmVyIG9mIG5vbWluYXRvcnMgYmFja2luZyB0aGlzIHZhbGlkYXRvciBhbmQgdGhlIG51bWJlciBvZmkBIGV4cG9zdXJlIHBhZ2VzIHRoZXkgYXJlIGRpdmlkZWQgaW50by4gVGhlIHBhZ2UgY291bnQgaXMgdXNlZnVsIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mrCBwYWdlcyBvZiByZXdhcmRzIHRoYXQgbmVlZHMgdG8gYmUgY2xhaW1lZC4AYQEgVGhpcyBpcyBrZXllZCBmaXJzdCBieSB0aGUgZXJhIGluZGV4IHRvIGFsbG93IGJ1bGsgZGVsZXRpb24gYW5kIHRoZW4gdGhlIHN0YXNoIGFjY291bnQurCBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB0aHJvdWdoIGBFcmFJbmZvYC4AzCBJcyBpdCByZW1vdmVkIGFmdGVyIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLkEBIElmIHN0YWtlcnMgaGFzbid0IGJlZW4gc2V0IG9yIGhhcyBiZWVuIHJlbW92ZWQgdGhlbiBlbXB0eSBvdmVydmlldyBpcyByZXR1cm5lZC5IRXJhc1N0YWtlcnNDbGlwcGVkAQEIBQVJCU0JDAAAAECYIENsaXBwZWQgRXhwb3N1cmUgb2YgdmFsaWRhdG9yIGF0IGVyYS4AZQEgTm90ZTogVGhpcyBpcyBkZXByZWNhdGVkLCBzaG91bGQgYmUgdXNlZCBhcyByZWFkLW9ubHkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLjEBIE5ldyBgRXhwb3N1cmVgcyBhcmUgc3RvcmVkIGluIGEgcGFnZWQgbWFubmVyIGluIGBFcmFzU3Rha2Vyc1BhZ2VkYCBpbnN0ZWFkLgBZASBUaGlzIGlzIHNpbWlsYXIgdG8gW2BFcmFzU3Rha2Vyc2BdIGJ1dCBudW1iZXIgb2Ygbm9taW5hdG9ycyBleHBvc2VkIGlzIHJlZHVjZWQgdG8gdGhlqCBgVDo6TWF4RXhwb3N1cmVQYWdlU2l6ZWAgYmlnZ2VzdCBzdGFrZXJzLh0BIChOb3RlOiB0aGUgZmllbGQgYHRvdGFsYCBhbmQgYG93bmAgb2YgdGhlIGV4cG9zdXJlIHJlbWFpbnMgdW5jaGFuZ2VkKS70IFRoaXMgaXMgdXNlZCB0byBsaW1pdCB0aGUgaS9vIGNvc3QgZm9yIHRoZSBub21pbmF0b3IgcGF5b3V0LgBdASBUaGlzIGlzIGtleWVkIGZpc3QgYnkgdGhlIGVyYSBpbmRleCB0byBhbGxvdyBidWxrIGRlbGV0aW9uIGFuZCB0aGVuIHRoZSBzdGFzaCBhY2NvdW50LgDMIEl0IGlzIHJlbW92ZWQgYWZ0ZXIgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuQQEgSWYgc3Rha2VycyBoYXNuJ3QgYmVlbiBzZXQgb3IgaGFzIGJlZW4gcmVtb3ZlZCB0aGVuIGVtcHR5IGV4cG9zdXJlIGlzIHJldHVybmVkLgApASBOb3RlOiBEZXByZWNhdGVkIHNpbmNlIHYxNC4gVXNlIGBFcmFJbmZvYCBpbnN0ZWFkIHRvIHdvcmsgd2l0aCBleHBvc3VyZXMuQEVyYXNTdGFrZXJzUGFnZWQAAQwFBQVdCWEJBAAYwCBQYWdpbmF0ZWQgZXhwb3N1cmUgb2YgYSB2YWxpZGF0b3IgYXQgZ2l2ZW4gZXJhLgBxASBUaGlzIGlzIGtleWVkIGZpcnN0IGJ5IHRoZSBlcmEgaW5kZXggdG8gYWxsb3cgYnVsayBkZWxldGlvbiwgdGhlbiBzdGFzaCBhY2NvdW50IGFuZCBmaW5hbGx51CB0aGUgcGFnZS4gU2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgdGhyb3VnaCBgRXJhSW5mb2AuANQgVGhpcyBpcyBjbGVhcmVkIGFmdGVyIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLjhDbGFpbWVkUmV3YXJkcwEBCAUFSQlxAQQAGNwgSGlzdG9yeSBvZiBjbGFpbWVkIHBhZ2VkIHJld2FyZHMgYnkgZXJhIGFuZCB2YWxpZGF0b3IuAGkBIFRoaXMgaXMga2V5ZWQgYnkgZXJhIGFuZCB2YWxpZGF0b3Igc3Rhc2ggd2hpY2ggbWFwcyB0byB0aGUgc2V0IG9mIHBhZ2UgaW5kZXhlcyB3aGljaCBoYXZlOCBiZWVuIGNsYWltZWQuAMwgSXQgaXMgcmVtb3ZlZCBhZnRlciBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy5IRXJhc1ZhbGlkYXRvclByZWZzAQEIBQVJCZgIAAAUEQEgU2ltaWxhciB0byBgRXJhc1N0YWtlcnNgLCB0aGlzIGhvbGRzIHRoZSBwcmVmZXJlbmNlcyBvZiB2YWxpZGF0b3JzLgBhASBUaGlzIGlzIGtleWVkIGZpcnN0IGJ5IHRoZSBlcmEgaW5kZXggdG8gYWxsb3cgYnVsayBkZWxldGlvbiBhbmQgdGhlbiB0aGUgc3Rhc2ggYWNjb3VudC4AzCBJcyBpdCByZW1vdmVkIGFmdGVyIFtgQ29uZmlnOjpIaXN0b3J5RGVwdGhgXSBlcmFzLkxFcmFzVmFsaWRhdG9yUmV3YXJkAAEEBRAYBAAMLQEgVGhlIHRvdGFsIHZhbGlkYXRvciBlcmEgcGF5b3V0IGZvciB0aGUgbGFzdCBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy4AIQEgRXJhcyB0aGF0IGhhdmVuJ3QgZmluaXNoZWQgeWV0IG9yIGhhcyBiZWVuIHJlbW92ZWQgZG9lc24ndCBoYXZlIHJld2FyZC5ARXJhc1Jld2FyZFBvaW50cwEBBAUQZQkUAAAAAAAI0CBSZXdhcmRzIGZvciB0aGUgbGFzdCBbYENvbmZpZzo6SGlzdG9yeURlcHRoYF0gZXJhcy4lASBJZiByZXdhcmQgaGFzbid0IGJlZW4gc2V0IG9yIGhhcyBiZWVuIHJlbW92ZWQgdGhlbiAwIHJld2FyZCBpcyByZXR1cm5lZC44RXJhc1RvdGFsU3Rha2UBAQQFEBhAAAAAAAAAAAAAAAAAAAAAAAgRASBUaGUgdG90YWwgYW1vdW50IHN0YWtlZCBmb3IgdGhlIGxhc3QgW2BDb25maWc6Okhpc3RvcnlEZXB0aGBdIGVyYXMuHQEgSWYgdG90YWwgaGFzbid0IGJlZW4gc2V0IG9yIGhhcyBiZWVuIHJlbW92ZWQgdGhlbiAwIHN0YWtlIGlzIHJldHVybmVkLiBGb3JjZUVyYQEAoAQABFQgTW9kZSBvZiBlcmEgZm9yY2luZy5ATWF4U3Rha2VkUmV3YXJkcwAA8QEEAAwZASBNYXhpbXVtIHN0YWtlZCByZXdhcmRzLCBpLmUuIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBlcmEgaW5mbGF0aW9uIHRoYXRsIGlzIHVzZWQgZm9yIHN0YWtlIHJld2FyZHMurCBTZWUgW0VyYSBwYXlvdXRdKC4vaW5kZXguaHRtbCNlcmEtcGF5b3V0KS5MU2xhc2hSZXdhcmRGcmFjdGlvbgEAlBAAAAAADPggVGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIHNsYXNoIHRoYXQgaXMgZGlzdHJpYnV0ZWQgdG8gcmVwb3J0ZXJzLgDkIFRoZSByZXN0IG9mIHRoZSBzbGFzaGVkIHZhbHVlIGlzIGhhbmRsZWQgYnkgdGhlIGBTbGFzaGAuTENhbmNlbGVkU2xhc2hQYXlvdXQBABhAAAAAAAAAAAAAAAAAAAAAAAgVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IGdpdmVuIHRvIHJlcG9ydGVycyBvZiBhIHNsYXNoIGV2ZW50IHdoaWNoIHdhc+wgY2FuY2VsZWQgYnkgZXh0cmFvcmRpbmFyeSBjaXJjdW1zdGFuY2VzIChlLmcuIGdvdmVybmFuY2UpLkBVbmFwcGxpZWRTbGFzaGVzAQEEBRB1CQQABMQgQWxsIHVuYXBwbGllZCBzbGFzaGVzIHRoYXQgYXJlIHF1ZXVlZCBmb3IgbGF0ZXIuKEJvbmRlZEVyYXMBAF0IBAAQJQEgQSBtYXBwaW5nIGZyb20gc3RpbGwtYm9uZGVkIGVyYXMgdG8gdGhlIGZpcnN0IHNlc3Npb24gaW5kZXggb2YgdGhhdCBlcmEuAMggTXVzdCBjb250YWlucyBpbmZvcm1hdGlvbiBmb3IgZXJhcyBmb3IgdGhlIHJhbmdlOrwgYFthY3RpdmVfZXJhIC0gYm91bmRpbmdfZHVyYXRpb247IGFjdGl2ZV9lcmFdYExWYWxpZGF0b3JTbGFzaEluRXJhAAEIBQVJCX0JBAAIRQEgQWxsIHNsYXNoaW5nIGV2ZW50cyBvbiB2YWxpZGF0b3JzLCBtYXBwZWQgYnkgZXJhIHRvIHRoZSBoaWdoZXN0IHNsYXNoIHByb3BvcnRpb25wIGFuZCBzbGFzaCB2YWx1ZSBvZiB0aGUgZXJhLkxOb21pbmF0b3JTbGFzaEluRXJhAAEIBQVJCRgEAARhASBBbGwgc2xhc2hpbmcgZXZlbnRzIG9uIG5vbWluYXRvcnMsIG1hcHBlZCBieSBlcmEgdG8gdGhlIGhpZ2hlc3Qgc2xhc2ggdmFsdWUgb2YgdGhlIGVyYS40U2xhc2hpbmdTcGFucwABBAUAgQkEAASMIFNsYXNoaW5nIHNwYW5zIGZvciBzdGFzaCBhY2NvdW50cy4kU3BhblNsYXNoAQEEBXEJhQmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIPQEgUmVjb3JkcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWF4aW11bSBzbGFzaCBvZiBhIHN0YXNoIHdpdGhpbiBhIHNsYXNoaW5nIHNwYW4suCBhcyB3ZWxsIGFzIGhvdyBtdWNoIHJld2FyZCBoYXMgYmVlbiBwYWlkIG91dC5UQ3VycmVudFBsYW5uZWRTZXNzaW9uAQAQEAAAAAAM6CBUaGUgbGFzdCBwbGFubmVkIHNlc3Npb24gc2NoZWR1bGVkIGJ5IHRoZSBzZXNzaW9uIHBhbGxldC4AcQEgVGhpcyBpcyBiYXNpY2FsbHkgaW4gc3luYyB3aXRoIHRoZSBjYWxsIHRvIFtgcGFsbGV0X3Nlc3Npb246OlNlc3Npb25NYW5hZ2VyOjpuZXdfc2Vzc2lvbmBdLkhEaXNhYmxlZFZhbGlkYXRvcnMBAHEBBAAcdQEgSW5kaWNlcyBvZiB2YWxpZGF0b3JzIHRoYXQgaGF2ZSBvZmZlbmRlZCBpbiB0aGUgYWN0aXZlIGVyYS4gVGhlIG9mZmVuZGVycyBhcmUgZGlzYWJsZWQgZm9yIGFpASB3aG9sZSBlcmEuIEZvciB0aGlzIHJlYXNvbiB0aGV5IGFyZSBrZXB0IGhlcmUgLSBvbmx5IHN0YWtpbmcgcGFsbGV0IGtub3dzIGFib3V0IGVyYXMuIFRoZVUBIGltcGxlbWVudG9yIG9mIFtgRGlzYWJsaW5nU3RyYXRlZ3lgXSBkZWZpbmVzIGlmIGEgdmFsaWRhdG9yIHNob3VsZCBiZSBkaXNhYmxlZCB3aGljaG0BIGltcGxpY2l0bHkgbWVhbnMgdGhhdCB0aGUgaW1wbGVtZW50b3IgYWxzbyBjb250cm9scyB0aGUgbWF4IG51bWJlciBvZiBkaXNhYmxlZCB2YWxpZGF0b3JzLgBtASBUaGUgdmVjIGlzIGFsd2F5cyBrZXB0IHNvcnRlZCBzbyB0aGF0IHdlIGNhbiBmaW5kIHdoZXRoZXIgYSBnaXZlbiB2YWxpZGF0b3IgaGFzIHByZXZpb3VzbHl4IG9mZmVuZGVkIHVzaW5nIGJpbmFyeSBzZWFyY2guOENoaWxsVGhyZXNob2xkAADxAQQADFEBIFRoZSB0aHJlc2hvbGQgZm9yIHdoZW4gdXNlcnMgY2FuIHN0YXJ0IGNhbGxpbmcgYGNoaWxsX290aGVyYCBmb3Igb3RoZXIgdmFsaWRhdG9ycyAvWQEgbm9taW5hdG9ycy4gVGhlIHRocmVzaG9sZCBpcyBjb21wYXJlZCB0byB0aGUgYWN0dWFsIG51bWJlciBvZiB2YWxpZGF0b3JzIC8gbm9taW5hdG9ycykBIChgQ291bnRGb3IqYCkgaW4gdGhlIHN5c3RlbSBjb21wYXJlZCB0byB0aGUgY29uZmlndXJlZCBtYXggKGBNYXgqQ291bnRgKS4B6QEBjBgwSGlzdG9yeURlcHRoEBBUAAAAUIwgTnVtYmVyIG9mIGVyYXMgdG8ga2VlcCBpbiBoaXN0b3J5LgDoIEZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBrZXB0IGZvciBlcmFzIGluIGBbY3VycmVudF9lcmEgLQkBIEhpc3RvcnlEZXB0aCwgY3VycmVudF9lcmFdYDogYEVyYXNTdGFrZXJzYCwgYEVyYXNTdGFrZXJzQ2xpcHBlZGAsBQEgYEVyYXNWYWxpZGF0b3JQcmVmc2AsIGBFcmFzVmFsaWRhdG9yUmV3YXJkYCwgYEVyYXNSZXdhcmRQb2ludHNgLEUBIGBFcmFzVG90YWxTdGFrZWAsIGBFcmFzU3RhcnRTZXNzaW9uSW5kZXhgLCBgQ2xhaW1lZFJld2FyZHNgLCBgRXJhc1N0YWtlcnNQYWdlZGAsXCBgRXJhc1N0YWtlcnNPdmVydmlld2AuAOQgTXVzdCBiZSBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBlcmFzIGRlbGF5ZWQgYnkgc2Vzc2lvbi74IEkuZS4gYWN0aXZlIGVyYSBtdXN0IGFsd2F5cyBiZSBpbiBoaXN0b3J5LiBJLmUuIGBhY3RpdmVfZXJhID7EIGN1cnJlbnRfZXJhIC0gaGlzdG9yeV9kZXB0aGAgbXVzdCBiZSBndWFyYW50ZWVkLgARASBJZiBtaWdyYXRpbmcgYW4gZXhpc3RpbmcgcGFsbGV0IGZyb20gc3RvcmFnZSB2YWx1ZSB0byBjb25maWcgdmFsdWUs7CB0aGlzIHNob3VsZCBiZSBzZXQgdG8gc2FtZSB2YWx1ZSBvciBncmVhdGVyIGFzIGluIHN0b3JhZ2UuABUBIE5vdGU6IGBIaXN0b3J5RGVwdGhgIGlzIHVzZWQgYXMgdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgYEJvdW5kZWRWZWNgLQEgaXRlbSBgU3Rha2luZ0xlZGdlci5sZWdhY3lfY2xhaW1lZF9yZXdhcmRzYC4gU2V0dGluZyB0aGlzIHZhbHVlIGxvd2VyIHRoYW7YIHRoZSBleGlzdGluZyB2YWx1ZSBjYW4gbGVhZCB0byBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlFQEgYFN0YWtpbmdMZWRnZXJgIGFuZCB3aWxsIG5lZWQgdG8gYmUgaGFuZGxlZCBwcm9wZXJseSBpbiBhIG1pZ3JhdGlvbi7wIFRoZSB0ZXN0IGByZWR1Y2luZ19oaXN0b3J5X2RlcHRoX2FicnVwdGAgc2hvd3MgdGhpcyBlZmZlY3QuOFNlc3Npb25zUGVyRXJhEBAGAAAABHAgTnVtYmVyIG9mIHNlc3Npb25zIHBlciBlcmEuPEJvbmRpbmdEdXJhdGlvbhAQAgAAAATkIE51bWJlciBvZiBlcmFzIHRoYXQgc3Rha2VkIGZ1bmRzIG11c3QgcmVtYWluIGJvbmRlZCBmb3IuSFNsYXNoRGVmZXJEdXJhdGlvbhAQAQAAABABASBOdW1iZXIgb2YgZXJhcyB0aGF0IHNsYXNoZXMgYXJlIGRlZmVycmVkIGJ5LCBhZnRlciBjb21wdXRhdGlvbi4ADQEgVGhpcyBzaG91bGQgYmUgbGVzcyB0aGFuIHRoZSBib25kaW5nIGR1cmF0aW9uLiBTZXQgdG8gMCBpZiBzbGFzaGVzFQEgc2hvdWxkIGJlIGFwcGxpZWQgaW1tZWRpYXRlbHksIHdpdGhvdXQgb3Bwb3J0dW5pdHkgZm9yIGludGVydmVudGlvbi5MTWF4RXhwb3N1cmVQYWdlU2l6ZRAQQAAAACywIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBgVDo6RXhwb3N1cmVQYWdlYC4AKQEgQW4gYEV4cG9zdXJlUGFnZWAgaXMgd2Vha2x5IGJvdW5kZWQgdG8gYSBtYXhpbXVtIG9mIGBNYXhFeHBvc3VyZVBhZ2VTaXplYDAgbm9taW5hdG9ycy4AIQEgRm9yIG9sZGVyIG5vbi1wYWdlZCBleHBvc3VyZSwgYSByZXdhcmQgcGF5b3V0IHdhcyByZXN0cmljdGVkIHRvIHRoZSB0b3AhASBgTWF4RXhwb3N1cmVQYWdlU2l6ZWAgbm9taW5hdG9ycy4gVGhpcyBpcyB0byBsaW1pdCB0aGUgaS9vIGNvc3QgZm9yIHRoZUggbm9taW5hdG9yIHBheW91dC4AWQEgTm90ZTogYE1heEV4cG9zdXJlUGFnZVNpemVgIGlzIHVzZWQgdG8gYm91bmQgYENsYWltZWRSZXdhcmRzYCBhbmQgaXMgdW5zYWZlIHRvIHJlZHVjZZAgd2l0aG91dCBoYW5kbGluZyBpdCBpbiBhIG1pZ3JhdGlvbi5ITWF4VW5sb2NraW5nQ2h1bmtzEBAgAAAAKAUBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBgdW5sb2NraW5nYCBjaHVua3MgYSBbYFN0YWtpbmdMZWRnZXJgXSBjYW4JASBoYXZlLiBFZmZlY3RpdmVseSBkZXRlcm1pbmVzIGhvdyBtYW55IHVuaXF1ZSBlcmFzIGEgc3Rha2VyIG1heSBiZTggdW5ib25kaW5nIGluLgD4IE5vdGU6IGBNYXhVbmxvY2tpbmdDaHVua3NgIGlzIHVzZWQgYXMgdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUBASBgQm91bmRlZFZlY2AgaXRlbSBgU3Rha2luZ0xlZGdlci51bmxvY2tpbmdgLiBTZXR0aW5nIHRoaXMgdmFsdWUFASBsb3dlciB0aGFuIHRoZSBleGlzdGluZyB2YWx1ZSBjYW4gbGVhZCB0byBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlCQEgYFN0YWtpbmdMZWRnZXJgIGFuZCB3aWxsIG5lZWQgdG8gYmUgaGFuZGxlZCBwcm9wZXJseSBpbiBhIHJ1bnRpbWUFASBtaWdyYXRpb24uIFRoZSB0ZXN0IGByZWR1Y2luZ19tYXhfdW5sb2NraW5nX2NodW5rc19hYnJ1cHRgIHNob3dzNCB0aGlzIGVmZmVjdC4BiQkGACBPZmZlbmNlcwEgT2ZmZW5jZXMIHFJlcG9ydHMAAQQFNI0JBAAESQEgVGhlIHByaW1hcnkgc3RydWN0dXJlIHRoYXQgaG9sZHMgYWxsIG9mZmVuY2UgcmVjb3JkcyBrZXllZCBieSByZXBvcnQgaWRlbnRpZmllcnMuWENvbmN1cnJlbnRSZXBvcnRzSW5kZXgBAQgFBZUJmQMEAAQpASBBIHZlY3RvciBvZiByZXBvcnRzIG9mIHRoZSBzYW1lIGtpbmQgdGhhdCBoYXBwZW5lZCBhdCB0aGUgc2FtZSB0aW1lIHNsb3QuAAGkAAAHAChIaXN0b3JpY2FsAShIaXN0b3JpY2FsCEhIaXN0b3JpY2FsU2Vzc2lvbnMAAQQFEJkJBAAEXQEgTWFwcGluZyBmcm9tIGhpc3RvcmljYWwgc2Vzc2lvbiBpbmRpY2VzIHRvIHNlc3Npb24tZGF0YSByb290IGhhc2ggYW5kIHZhbGlkYXRvciBjb3VudC4sU3RvcmVkUmFuZ2UAABEBBAAE5CBUaGUgcmFuZ2Ugb2YgaGlzdG9yaWNhbCBzZXNzaW9ucyB3ZSBzdG9yZS4gW2ZpcnN0LCBsYXN0KQAAAAAbAChQYXJhbWV0ZXJzAShQYXJhbWV0ZXJzBChQYXJhbWV0ZXJzAAEEArDQBAAETCBTdG9yZWQgcGFyYW1ldGVycy4BHQIBrAAARgAcU2Vzc2lvbgEcU2Vzc2lvbhwoVmFsaWRhdG9ycwEA4QEEAAR8IFRoZSBjdXJyZW50IHNldCBvZiB2YWxpZGF0b3JzLjBDdXJyZW50SW5kZXgBABAQAAAAAAR4IEN1cnJlbnQgaW5kZXggb2YgdGhlIHNlc3Npb24uNFF1ZXVlZENoYW5nZWQBACAEAAg5ASBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIGlkZW50aXRpZXMgb3Igd2VpZ2h0aW5nIGJlaGluZCB0aGUgdmFsaWRhdG9yc6QgaGFzIGNoYW5nZWQgaW4gdGhlIHF1ZXVlZCB2YWxpZGF0b3Igc2V0LihRdWV1ZWRLZXlzAQCdCQQACD0BIFRoZSBxdWV1ZWQga2V5cyBmb3IgdGhlIG5leHQgc2Vzc2lvbi4gV2hlbiB0aGUgbmV4dCBzZXNzaW9uIGJlZ2lucywgdGhlc2Uga2V5c+Agd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdmFsaWRhdG9yJ3Mgc2Vzc2lvbiBrZXlzLkhEaXNhYmxlZFZhbGlkYXRvcnMBAHEBBAAUgCBJbmRpY2VzIG9mIGRpc2FibGVkIHZhbGlkYXRvcnMuAD0BIFRoZSB2ZWMgaXMgYWx3YXlzIGtlcHQgc29ydGVkIHNvIHRoYXQgd2UgY2FuIGZpbmQgd2hldGhlciBhIGdpdmVuIHZhbGlkYXRvciBpcz0BIGRpc2FibGVkIHVzaW5nIGJpbmFyeSBzZWFyY2guIEl0IGdldHMgY2xlYXJlZCB3aGVuIGBvbl9zZXNzaW9uX2VuZGluZ2AgcmV0dXJuc2QgYSBuZXcgc2V0IG9mIGlkZW50aXRpZXMuIE5leHRLZXlzAAEEBQA1AgQABJwgVGhlIG5leHQgc2Vzc2lvbiBrZXlzIGZvciBhIHZhbGlkYXRvci4gS2V5T3duZXIAAQQFpQkABAAECQEgVGhlIG93bmVyIG9mIGEga2V5LiBUaGUga2V5IGlzIHRoZSBgS2V5VHlwZUlkYCArIHRoZSBlbmNvZGVkIGtleS4BMQIB3AABrQkIABxHcmFuZHBhARxHcmFuZHBhHBRTdGF0ZQEAsQkEAASQIFN0YXRlIG9mIHRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQuNFBlbmRpbmdDaGFuZ2UAALUJBAAExCBQZW5kaW5nIGNoYW5nZTogKHNpZ25hbGVkIGF0LCBzY2hlZHVsZWQgY2hhbmdlKS4oTmV4dEZvcmNlZAAAEAQABLwgbmV4dCBibG9jayBudW1iZXIgd2hlcmUgd2UgY2FuIGZvcmNlIGEgY2hhbmdlLhxTdGFsbGVkAAARAQQABJAgYHRydWVgIGlmIHdlIGFyZSBjdXJyZW50bHkgc3RhbGxlZC4wQ3VycmVudFNldElkAQAwIAAAAAAAAAAACF0BIFRoZSBudW1iZXIgb2YgY2hhbmdlcyAoYm90aCBpbiB0ZXJtcyBvZiBrZXlzIGFuZCB1bmRlcmx5aW5nIGVjb25vbWljIHJlc3BvbnNpYmlsaXRpZXMpxCBpbiB0aGUgInNldCIgb2YgR3JhbmRwYSB2YWxpZGF0b3JzIGZyb20gZ2VuZXNpcy4wU2V0SWRTZXNzaW9uAAEEBTAQBAAoWQEgQSBtYXBwaW5nIGZyb20gZ3JhbmRwYSBzZXQgSUQgdG8gdGhlIGluZGV4IG9mIHRoZSAqbW9zdCByZWNlbnQqIHNlc3Npb24gZm9yIHdoaWNoIGl0c2ggbWVtYmVycyB3ZXJlIHJlc3BvbnNpYmxlLgBFASBUaGlzIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb24gcHJvb2ZzLiBBbiBlcXVpdm9jYXRpb24gcHJvb2YgbXVzdE0BIGNvbnRhaW5zIGEga2V5LW93bmVyc2hpcCBwcm9vZiBmb3IgYSBnaXZlbiBzZXNzaW9uLCB0aGVyZWZvcmUgd2UgbmVlZCBhIHdheSB0byB0aWVFASB0b2dldGhlciBzZXNzaW9ucyBhbmQgR1JBTkRQQSBzZXQgaWRzLCBpLmUuIHdlIG5lZWQgdG8gdmFsaWRhdGUgdGhhdCBhIHZhbGlkYXRvckEBIHdhcyB0aGUgb3duZXIgb2YgYSBnaXZlbiBrZXkgb24gYSBnaXZlbiBzZXNzaW9uLCBhbmQgd2hhdCB0aGUgYWN0aXZlIHNldCBJRCB3YXNUIGR1cmluZyB0aGF0IHNlc3Npb24uALggVFdPWC1OT1RFOiBgU2V0SWRgIGlzIG5vdCB1bmRlciB1c2VyIGNvbnRyb2wuLEF1dGhvcml0aWVzAQC5CQQABIQgVGhlIGN1cnJlbnQgbGlzdCBvZiBhdXRob3JpdGllcy4BTQIB4Aw4TWF4QXV0aG9yaXRpZXMQEKCGAQAEXCBNYXggQXV0aG9yaXRpZXMgaW4gdXNlNE1heE5vbWluYXRvcnMQEEAAAAAE1CBUaGUgbWF4aW11bSBudW1iZXIgb2Ygbm9taW5hdG9ycyBmb3IgZWFjaCB2YWxpZGF0b3IuWE1heFNldElkU2Vzc2lvbkVudHJpZXMwIAwAAAAAAAAAGDkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIHRvIGtlZXAgaW4gdGhlIHNldCBpZCB0byBzZXNzaW9uIGluZGV4IG1hcHBpbmcuADEBIFNpbmNlIHRoZSBgU2V0SWRTZXNzaW9uYCBtYXAgaXMgb25seSB1c2VkIGZvciB2YWxpZGF0aW5nIGVxdWl2b2NhdGlvbnMgdGhpcykBIHZhbHVlIHNob3VsZCByZWxhdGUgdG8gdGhlIGJvbmRpbmcgZHVyYXRpb24gb2Ygd2hhdGV2ZXIgc3Rha2luZyBzeXN0ZW0gaXM1ASBiZWluZyB1c2VkIChpZiBhbnkpLiBJZiBlcXVpdm9jYXRpb24gaGFuZGxpbmcgaXMgbm90IGVuYWJsZWQgdGhlbiB0aGlzIHZhbHVlNCBjYW4gYmUgemVyby4BvQkKAEhBdXRob3JpdHlEaXNjb3ZlcnkBSEF1dGhvcml0eURpc2NvdmVyeQgQS2V5cwEAwQkEAASMIEtleXMgb2YgdGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4gTmV4dEtleXMBAMEJBAAEgCBLZXlzIG9mIHRoZSBuZXh0IGF1dGhvcml0eSBzZXQuAAAAAAwAHFV0aWxpdHkAAXkCAfAETGJhdGNoZWRfY2FsbHNfbGltaXQQEKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgHJCRAAIElkZW50aXR5ASBJZGVudGl0eRwoSWRlbnRpdHlPZgABBAUAzQkEABBpASBJbmZvcm1hdGlvbiB0aGF0IGlzIHBlcnRpbmVudCB0byBpZGVudGlmeSB0aGUgZW50aXR5IGJlaGluZCBhbiBhY2NvdW50LiBGaXJzdCBpdGVtIGlzIHRoZeAgcmVnaXN0cmF0aW9uLCBzZWNvbmQgaXMgdGhlIGFjY291bnQncyBwcmltYXJ5IHVzZXJuYW1lLgDAIFRXT1gtTk9URTogT0sg4oCVIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guHFN1cGVyT2YAAQQCAG0DBAAIYQEgVGhlIHN1cGVyLWlkZW50aXR5IG9mIGFuIGFsdGVybmF0aXZlICJzdWIiIGlkZW50aXR5IHRvZ2V0aGVyIHdpdGggaXRzIG5hbWUsIHdpdGhpbiB0aGF0UQEgY29udGV4dC4gSWYgdGhlIGFjY291bnQgaXMgbm90IHNvbWUgb3RoZXIgYWNjb3VudCdzIHN1Yi1pZGVudGl0eSwgdGhlbiBqdXN0IGBOb25lYC4YU3Vic09mAQEEBQDlCUQAAAAAAAAAAAAAAAAAAAAAABS4IEFsdGVybmF0aXZlICJzdWIiIGlkZW50aXRpZXMgb2YgdGhpcyBhY2NvdW50LgAdASBUaGUgZmlyc3QgaXRlbSBpcyB0aGUgZGVwb3NpdCwgdGhlIHNlY29uZCBpcyBhIHZlY3RvciBvZiB0aGUgYWNjb3VudHMuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4oUmVnaXN0cmFycwEA7QkEABBNASBUaGUgc2V0IG9mIHJlZ2lzdHJhcnMuIE5vdCBleHBlY3RlZCB0byBnZXQgdmVyeSBiaWcgYXMgY2FuIG9ubHkgYmUgYWRkZWQgdGhyb3VnaCBhqCBzcGVjaWFsIG9yaWdpbiAobGlrZWx5IGEgY291bmNpbCBtb3Rpb24pLgApASBUaGUgaW5kZXggaW50byB0aGlzIGNhbiBiZSBjYXN0IHRvIGBSZWdpc3RyYXJJbmRleGAgdG8gZ2V0IGEgdmFsaWQgdmFsdWUuTFVzZXJuYW1lQXV0aG9yaXRpZXMAAQQFAP0JBAAE9CBBIG1hcCBvZiB0aGUgYWNjb3VudHMgd2hvIGFyZSBhdXRob3JpemVkIHRvIGdyYW50IHVzZXJuYW1lcy5EQWNjb3VudE9mVXNlcm5hbWUAAQQCAQEABAAUbQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0LiBUaGUgdmFsdWUgc2hvdWxkZQEgYmUgYSBrZXkgaW4gdGhlIGBJZGVudGl0eU9mYCBtYXAsIGJ1dCBpdCBtYXkgbm90IGlmIHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZWlyIGlkZW50aXR5LgBpASBNdWx0aXBsZSB1c2VybmFtZXMgbWF5IG1hcCB0byB0aGUgc2FtZSBgQWNjb3VudElkYCwgYnV0IGBJZGVudGl0eU9mYCB3aWxsIG9ubHkgbWFwIHRvIG9uZUggcHJpbWFyeSB1c2VybmFtZS5AUGVuZGluZ1VzZXJuYW1lcwABBAIBAXEJBAAYbQEgVXNlcm5hbWVzIHRoYXQgYW4gYXV0aG9yaXR5IGhhcyBncmFudGVkLCBidXQgdGhhdCB0aGUgYWNjb3VudCBjb250cm9sbGVyIGhhcyBub3QgY29uZmlybWVkcQEgdGhhdCB0aGV5IHdhbnQgaXQuIFVzZWQgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBgQWNjb3VudElkYCBjYW5ub3QgcHJvdmlkZSBhIHNpZ25hdHVyZV0BIGJlY2F1c2UgdGhleSBhcmUgYSBwdXJlIHByb3h5LCBtdWx0aXNpZywgZXRjLiBJbiBvcmRlciB0byBjb25maXJtIGl0LCB0aGV5IHNob3VsZCBjYWxsbCBbYENhbGw6OmFjY2VwdF91c2VybmFtZWBdLgAdASBGaXJzdCB0dXBsZSBpdGVtIGlzIHRoZSBhY2NvdW50IGFuZCBzZWNvbmQgaXMgdGhlIGFjY2VwdGFuY2UgZGVhZGxpbmUuAdkCAfwgMEJhc2ljRGVwb3NpdBhAAKByThgJAAAAAAAAAAAAAATYIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IGZvciBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuLEJ5dGVEZXBvc2l0GECA8PoCAAAAAAAAAAAAAAAABB0BIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciBlbmNvZGVkIGJ5dGUgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS5EU3ViQWNjb3VudERlcG9zaXQYQAAgSqnRAQAAAAAAAAAAAAAMZQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBzdWJhY2NvdW50LiBUaGlzIHNob3VsZCBhY2NvdW50IGZvciB0aGUgZmFjdGUBIHRoYXQgb25lIHN0b3JhZ2UgaXRlbSdzIHZhbHVlIHdpbGwgaW5jcmVhc2UgYnkgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCwgYW5kIHRoZXJlIHdpbGw1ASBiZSBhbm90aGVyIHRyaWUgaXRlbSB3aG9zZSB2YWx1ZSBpcyB0aGUgc2l6ZSBvZiBhbiBhY2NvdW50IElEIHBsdXMgMzIgYnl0ZXMuOE1heFN1YkFjY291bnRzEBBkAAAABA0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdWItYWNjb3VudHMgYWxsb3dlZCBwZXIgaWRlbnRpZmllZCBhY2NvdW50LjRNYXhSZWdpc3RyYXJzEBAUAAAACE0BIE1heGltdW0gbnVtYmVyIG9mIHJlZ2lzdHJhcnMgYWxsb3dlZCBpbiB0aGUgc3lzdGVtLiBOZWVkZWQgdG8gYm91bmQgdGhlIGNvbXBsZXhpdHl8IG9mLCBlLmcuLCB1cGRhdGluZyBqdWRnZW1lbnRzLmRQZW5kaW5nVXNlcm5hbWVFeHBpcmF0aW9uEBDAiQEABBUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHdpdGhpbiB3aGljaCBhIHVzZXJuYW1lIGdyYW50IG11c3QgYmUgYWNjZXB0ZWQuPE1heFN1ZmZpeExlbmd0aBAQBwAAAASAIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHN1ZmZpeC5ETWF4VXNlcm5hbWVMZW5ndGgQECAAAAAEYQEgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgdXNlcm5hbWUsIGluY2x1ZGluZyBpdHMgc3VmZml4IGFuZCBhbnkgc3lzdGVtLWFkZGVkIGRlbGltaXRlcnMuAQUKEQAgUmVjb3ZlcnkBIFJlY292ZXJ5DCxSZWNvdmVyYWJsZQABBAUACQoEAAQJASBUaGUgc2V0IG9mIHJlY292ZXJhYmxlIGFjY291bnRzIGFuZCB0aGVpciByZWNvdmVyeSBjb25maWd1cmF0aW9uLkBBY3RpdmVSZWNvdmVyaWVzAAEIBQURChUKBAAQaCBBY3RpdmUgcmVjb3ZlcnkgYXR0ZW1wdHMuABUBIEZpcnN0IGFjY291bnQgaXMgdGhlIGFjY291bnQgdG8gYmUgcmVjb3ZlcmVkLCBhbmQgdGhlIHNlY29uZCBhY2NvdW50rCBpcyB0aGUgdXNlciB0cnlpbmcgdG8gcmVjb3ZlciB0aGUgYWNjb3VudC4UUHJveHkAAQQCAAAEAAyQIFRoZSBsaXN0IG9mIGFsbG93ZWQgcHJveHkgYWNjb3VudHMuAPggTWFwIGZyb20gdGhlIHVzZXIgd2hvIGNhbiBhY2Nlc3MgaXQgdG8gdGhlIHJlY292ZXJlZCBhY2NvdW50LgGBAwEFARBEQ29uZmlnRGVwb3NpdEJhc2UYQABQOSeMBAAAAAAAAAAAAAAQVQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpc6ggYDIgKyBzaXplb2YoQmxvY2tOdW1iZXIsIEJhbGFuY2UpYCBieXRlcy5MRnJpZW5kRGVwb3NpdEZhY3RvchhAAIhSanQAAAAAAAAAAAAAABQtASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgYWRkaXRpb25hbCB1c2VyIHdoZW4gY3JlYXRpbmcgYSByZWNvdmVyeTwgY29uZmlndXJhdGlvbi4ATQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgYHNpemVvZihBY2NvdW50SWQpYCBieXRlcyBtb3JlIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZRwgdmFsdWUuKE1heEZyaWVuZHMQEAkAAAAYDQEgVGhlIG1heGltdW0gYW1vdW50IG9mIGZyaWVuZHMgYWxsb3dlZCBpbiBhIHJlY292ZXJ5IGNvbmZpZ3VyYXRpb24uAA0BIE5PVEU6IFRoZSB0aHJlc2hvbGQgcHJvZ3JhbW1lZCBpbiB0aGlzIFBhbGxldCB1c2VzIHUxNiwgc28gaXQgZG9lcwkBIG5vdCByZWFsbHkgbWFrZSBzZW5zZSB0byBoYXZlIGEgbGltaXQgaGVyZSBncmVhdGVyIHRoYW4gdTE2OjpNQVguFQEgQnV0IGFsc28sIHRoYXQgaXMgYSBsb3QgbW9yZSB0aGFuIHlvdSBzaG91bGQgcHJvYmFibHkgc2V0IHRoaXMgdmFsdWU0IHRvIGFueXdheS4uLjxSZWNvdmVyeURlcG9zaXQYQABQOSeMBAAAAAAAAAAAAAAcHQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBzdGFydGluZyBhIHJlY292ZXJ5LgA1ASBUaGlzIGlzIHByaW1hcmlseSBoZWxkIGZvciBkZXRlcnJpbmcgbWFsaWNpb3VzIHJlY292ZXJ5IGF0dGVtcHRzLCBhbmQgc2hvdWxkKQEgaGF2ZSBhIHZhbHVlIGxhcmdlIGVub3VnaCB0aGF0IGEgYmFkIGFjdG9yIHdvdWxkIGNob29zZSBub3QgdG8gcGxhY2UgdGhpcykBIGRlcG9zaXQuIEl0IGFsc28gYWN0cyB0byBmdW5kIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXNBASBgc2l6ZW9mKEJsb2NrTnVtYmVyLCBCYWxhbmNlICsgVCAqIEFjY291bnRJZClgIGJ5dGVzLiBXaGVyZSBUIGlzIGEgY29uZmlndXJhYmxlLCB0aHJlc2hvbGQuARkKEgAcVmVzdGluZwEcVmVzdGluZwgcVmVzdGluZwABBAIAHQoEAATYIEluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgdmVzdGluZyBvZiBhIGdpdmVuIGFjY291bnQuOFN0b3JhZ2VWZXJzaW9uAQAlCgQADHwgU3RvcmFnZSB2ZXJzaW9uIG9mIHRoZSBwYWxsZXQuADEBIE5ldyBuZXR3b3JrcyBzdGFydCB3aXRoIGxhdGVzdCB2ZXJzaW9uLCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5lc2lzIGJ1aWxkLgGFAwEJAQhETWluVmVzdGVkVHJhbnNmZXIYQAAQpdToAAAAAAAAAAAAAAAE6CBUaGUgbWluaW11bSBhbW91bnQgdHJhbnNmZXJyZWQgdG8gY2FsbCBgdmVzdGVkX3RyYW5zZmVyYC5MTWF4VmVzdGluZ1NjaGVkdWxlcxAQHAAAAAABKQoTACRTY2hlZHVsZXIBJFNjaGVkdWxlchA8SW5jb21wbGV0ZVNpbmNlAAAQBAAAGEFnZW5kYQEBBAUQLQoEAARNASBJdGVtcyB0byBiZSBleGVjdXRlZCwgaW5kZXhlZCBieSB0aGUgYmxvY2sgbnVtYmVyIHRoYXQgdGhleSBzaG91bGQgYmUgZXhlY3V0ZWQgb24uHFJldHJpZXMAAQQCEQE9CgQABCEBIFJldHJ5IGNvbmZpZ3VyYXRpb25zIGZvciBpdGVtcyB0byBiZSBleGVjdXRlZCwgaW5kZXhlZCBieSB0YXNrIGFkZHJlc3MuGExvb2t1cAABBAUEEQEEABD4IExvb2t1cCBmcm9tIGEgbmFtZSB0byB0aGUgYmxvY2sgbnVtYmVyIGFuZCBpbmRleCBvZiB0aGUgdGFzay4AWQEgRm9yIHYzIC0+IHY0IHRoZSBwcmV2aW91c2x5IHVuYm91bmRlZCBpZGVudGl0aWVzIGFyZSBCbGFrZTItMjU2IGhhc2hlZCB0byBmb3JtIHRoZSB2NDAgaWRlbnRpdGllcy4BjQMBDQEINE1heGltdW1XZWlnaHQoQAsAgG6HdAETzMzMzMzMzMwEKQEgVGhlIG1heGltdW0gd2VpZ2h0IHRoYXQgbWF5IGJlIHNjaGVkdWxlZCBwZXIgYmxvY2sgZm9yIGFueSBkaXNwYXRjaGFibGVzLlBNYXhTY2hlZHVsZWRQZXJCbG9jaxAQMgAAABQdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2NoZWR1bGVkIGNhbGxzIGluIHRoZSBxdWV1ZSBmb3IgYSBzaW5nbGUgYmxvY2suABggTk9URTpRASArIERlcGVuZGVudCBwYWxsZXRzJyBiZW5jaG1hcmtzIG1pZ2h0IHJlcXVpcmUgYSBoaWdoZXIgbGltaXQgZm9yIHRoZSBzZXR0aW5nLiBTZXQgYcQgaGlnaGVyIGxpbWl0IHVuZGVyIGBydW50aW1lLWJlbmNobWFya3NgIGZlYXR1cmUuAUEKFAAgUHJlaW1hZ2UBIFByZWltYWdlDCRTdGF0dXNGb3IAAQQGNEUKBAAEkCBUaGUgcmVxdWVzdCBzdGF0dXMgb2YgYSBnaXZlbiBoYXNoLkBSZXF1ZXN0U3RhdHVzRm9yAAEEBjRNCgQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC4sUHJlaW1hZ2VGb3IAAQQGmQldCgQAAAGVAwEZAQABYQocABBTdWRvARBTdWRvBAxLZXkAAAAEAASEIFRoZSBgQWNjb3VudElkYCBvZiB0aGUgc3VkbyBrZXkuAZ0DAR0BAAFlChUAFFByb3h5ARRQcm94eQgcUHJveGllcwEBBAUAaQpEAAAAAAAAAAAAAAAAAAAAAAAIRQEgVGhlIHNldCBvZiBhY2NvdW50IHByb3hpZXMuIE1hcHMgdGhlIGFjY291bnQgd2hpY2ggaGFzIGRlbGVnYXRlZCB0byB0aGUgYWNjb3VudHMhASB3aGljaCBhcmUgYmVpbmcgZGVsZWdhdGVkIHRvLCB0b2dldGhlciB3aXRoIHRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0LjRBbm5vdW5jZW1lbnRzAQEEBQB5CkQAAAAAAAAAAAAAAAAAAAAAAASsIFRoZSBhbm5vdW5jZW1lbnRzIG1hZGUgYnkgdGhlIHByb3h5IChrZXkpLgGhAwElARhAUHJveHlEZXBvc2l0QmFzZRhAAJR87OgAAAAAAAAAAAAAABARASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgcHJveHkuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpcyUBIGBzaXplb2YoQmFsYW5jZSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpcyBgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLkhQcm94eURlcG9zaXRGYWN0b3IYQIAAWWIAAAAAAAAAAAAAAAAUvCBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgcHJveHkgYWRkZWQuADUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIHBsdXMgYW4gaW5zdGFuY2Ugb2YgYFByb3h5VHlwZWAgbW9yZSBpbnRvIGFhASBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4gVGh1cywgd2hlbiBjb25maWd1cmluZyBgUHJveHlEZXBvc2l0RmFjdG9yYCBvbmUgc2hvdWxkIHRha2X0IGludG8gYWNjb3VudCBgMzIgKyBwcm94eV90eXBlLmVuY29kZSgpLmxlbigpYCBieXRlcyBvZiBkYXRhLihNYXhQcm94aWVzEBAgAAAABPAgVGhlIG1heGltdW0gYW1vdW50IG9mIHByb3hpZXMgYWxsb3dlZCBmb3IgYSBzaW5nbGUgYWNjb3VudC4oTWF4UGVuZGluZxAQIAAAAARFASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZS1kZWxheWVkIGFubm91bmNlbWVudHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwZW5kaW5nLlxBbm5vdW5jZW1lbnREZXBvc2l0QmFzZRhAAJR87OgAAAAAAAAAAAAAABAxASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGFuIGFubm91bmNlbWVudC4ASQEgVGhpcyBpcyBoZWxkIHdoZW4gYSBuZXcgc3RvcmFnZSBpdGVtIGhvbGRpbmcgYSBgQmFsYW5jZWAgaXMgY3JlYXRlZCAodHlwaWNhbGx5IDE2ICBieXRlcykuZEFubm91bmNlbWVudERlcG9zaXRGYWN0b3IYQAABssQAAAAAAAAAAAAAAAAQ1CBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgYW5ub3VuY2VtZW50IG1hZGUuAFkBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIGFuIGBBY2NvdW50SWRgLCBgSGFzaGAgYW5kIGBCbG9ja051bWJlcmAgKHR5cGljYWxseSA2OCBieXRlcymMIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4BiQoWACBNdWx0aXNpZwEgTXVsdGlzaWcEJE11bHRpc2lncwABCAUCjQqRCgQABJQgVGhlIHNldCBvZiBvcGVuIG11bHRpc2lnIG9wZXJhdGlvbnMuAakDATEBDCxEZXBvc2l0QmFzZRhAALzn2ukAAAAAAAAAAAAAABhZASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uIG9yIHRvhCBzdG9yZSBhIGRpc3BhdGNoIGNhbGwgZm9yIGxhdGVyLgABASBUaGlzIGlzIGhlbGQgZm9yIGFuIGFkZGl0aW9uYWwgc3RvcmFnZSBpdGVtIHdob3NlIHZhbHVlIHNpemUgaXMxASBgNCArIHNpemVvZigoQmxvY2tOdW1iZXIsIEJhbGFuY2UsIEFjY291bnRJZCkpYCBieXRlcyBhbmQgd2hvc2Uga2V5IHNpemUgaXOAIGAzMiArIHNpemVvZihBY2NvdW50SWQpYCBieXRlcy40RGVwb3NpdEZhY3RvchhAABBeXwAAAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuOE1heFNpZ25hdG9yaWVzEBBkAAAABOwgVGhlIG1heGltdW0gYW1vdW50IG9mIHNpZ25hdG9yaWVzIGFsbG93ZWQgaW4gdGhlIG11bHRpc2lnLgGZChcAaEVsZWN0aW9uUHJvdmlkZXJNdWx0aVBoYXNlAWhFbGVjdGlvblByb3ZpZGVyTXVsdGlQaGFzZSgUUm91bmQBABAQAQAAABisIEludGVybmFsIGNvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2Ygcm91bmRzLgBVASBUaGlzIGlzIHVzZWZ1bCBmb3IgZGUtZHVwbGljYXRpb24gb2YgdHJhbnNhY3Rpb25zIHN1Ym1pdHRlZCB0byB0aGUgcG9vbCwgYW5kIGdlbmVyYWxsIGRpYWdub3N0aWNzIG9mIHRoZSBwYWxsZXQuAE0BIFRoaXMgaXMgbWVyZWx5IGluY3JlbWVudGVkIG9uY2UgcGVyIGV2ZXJ5IHRpbWUgdGhhdCBhbiB1cHN0cmVhbSBgZWxlY3RgIGlzIGNhbGxlZC4wQ3VycmVudFBoYXNlAQBFAQQABDwgQ3VycmVudCBwaGFzZS44UXVldWVkU29sdXRpb24AAJ0KBAAMPQEgQ3VycmVudCBiZXN0IHNvbHV0aW9uLCBzaWduZWQgb3IgdW5zaWduZWQsIHF1ZXVlZCB0byBiZSByZXR1cm5lZCB1cG9uIGBlbGVjdGAuAGAgQWx3YXlzIHNvcnRlZCBieSBzY29yZS4gU25hcHNob3QAAKUKBAAQcCBTbmFwc2hvdCBkYXRhIG9mIHRoZSByb3VuZC4AXQEgVGhpcyBpcyBjcmVhdGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNpZ25lZCBwaGFzZSBhbmQgY2xlYXJlZCB1cG9uIGNhbGxpbmcgYGVsZWN0YC4pASBOb3RlOiBUaGlzIHN0b3JhZ2UgdHlwZSBtdXN0IG9ubHkgYmUgbXV0YXRlZCB0aHJvdWdoIFtgU25hcHNob3RXcmFwcGVyYF0uOERlc2lyZWRUYXJnZXRzAAAQBAAQzCBEZXNpcmVkIG51bWJlciBvZiB0YXJnZXRzIHRvIGVsZWN0IGZvciB0aGlzIHJvdW5kLgCoIE9ubHkgZXhpc3RzIHdoZW4gW2BTbmFwc2hvdGBdIGlzIHByZXNlbnQuKQEgTm90ZTogVGhpcyBzdG9yYWdlIHR5cGUgbXVzdCBvbmx5IGJlIG11dGF0ZWQgdGhyb3VnaCBbYFNuYXBzaG90V3JhcHBlcmBdLkBTbmFwc2hvdE1ldGFkYXRhAACFBAQAEJggVGhlIG1ldGFkYXRhIG9mIHRoZSBbYFJvdW5kU25hcHNob3RgXQCoIE9ubHkgZXhpc3RzIHdoZW4gW2BTbmFwc2hvdGBdIGlzIHByZXNlbnQuKQEgTm90ZTogVGhpcyBzdG9yYWdlIHR5cGUgbXVzdCBvbmx5IGJlIG11dGF0ZWQgdGhyb3VnaCBbYFNuYXBzaG90V3JhcHBlcmBdLmRTaWduZWRTdWJtaXNzaW9uTmV4dEluZGV4AQAQEAAAAAAkAQEgVGhlIG5leHQgaW5kZXggdG8gYmUgYXNzaWduZWQgdG8gYW4gaW5jb21pbmcgc2lnbmVkIHN1Ym1pc3Npb24uAHUBIEV2ZXJ5IGFjY2VwdGVkIHN1Ym1pc3Npb24gaXMgYXNzaWduZWQgYSB1bmlxdWUgaW5kZXg7IHRoYXQgaW5kZXggaXMgYm91bmQgdG8gdGhhdCBwYXJ0aWN1bGFyZQEgc3VibWlzc2lvbiBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlbGVjdGlvbi4gT24gZWxlY3Rpb24gZmluYWxpemF0aW9uLCB0aGUgbmV4dCBpbmRleCBpczAgcmVzZXQgdG8gMC4AaQEgV2UgY2FuJ3QganVzdCB1c2UgYFNpZ25lZFN1Ym1pc3Npb25JbmRpY2VzLmxlbigpYCwgYmVjYXVzZSB0aGF0J3MgYSBib3VuZGVkIHNldDsgcGFzdCBpdHNZASBjYXBhY2l0eSwgaXQgd2lsbCBzaW1wbHkgc2F0dXJhdGUuIFdlIGNhbid0IGp1c3QgaXRlcmF0ZSBvdmVyIGBTaWduZWRTdWJtaXNzaW9uc01hcGAs9CBiZWNhdXNlIGl0ZXJhdGlvbiBpcyBzbG93LiBJbnN0ZWFkLCB3ZSBzdG9yZSB0aGUgdmFsdWUgaGVyZS5cU2lnbmVkU3VibWlzc2lvbkluZGljZXMBALEKBAAYbQEgQSBzb3J0ZWQsIGJvdW5kZWQgdmVjdG9yIG9mIGAoc2NvcmUsIGJsb2NrX251bWJlciwgaW5kZXgpYCwgd2hlcmUgZWFjaCBgaW5kZXhgIHBvaW50cyB0byBheCB2YWx1ZSBpbiBgU2lnbmVkU3VibWlzc2lvbnNgLgBxASBXZSBuZXZlciBuZWVkIHRvIHByb2Nlc3MgbW9yZSB0aGFuIGEgc2luZ2xlIHNpZ25lZCBzdWJtaXNzaW9uIGF0IGEgdGltZS4gU2lnbmVkIHN1Ym1pc3Npb25zdQEgY2FuIGJlIHF1aXRlIGxhcmdlLCBzbyB3ZSdyZSB3aWxsaW5nIHRvIHBheSB0aGUgY29zdCBvZiBtdWx0aXBsZSBkYXRhYmFzZSBhY2Nlc3NlcyB0byBhY2Nlc3MhASB0aGVtIG9uZSBhdCBhIHRpbWUgaW5zdGVhZCBvZiByZWFkaW5nIGFuZCBkZWNvZGluZyBhbGwgb2YgdGhlbSBhdCBvbmNlLlBTaWduZWRTdWJtaXNzaW9uc01hcAABBAUQvQoEABx0IFVuY2hlY2tlZCwgc2lnbmVkIHNvbHV0aW9ucy4AaQEgVG9nZXRoZXIgd2l0aCBgU3VibWlzc2lvbkluZGljZXNgLCB0aGlzIHN0b3JlcyBhIGJvdW5kZWQgc2V0IG9mIGBTaWduZWRTdWJtaXNzaW9uc2Agd2hpbGXsIGFsbG93aW5nIHVzIHRvIGtlZXAgb25seSBhIHNpbmdsZSBvbmUgaW4gbWVtb3J5IGF0IGEgdGltZS4AaQEgVHdveCBub3RlOiB0aGUga2V5IG9mIHRoZSBtYXAgaXMgYW4gYXV0by1pbmNyZW1lbnRpbmcgaW5kZXggd2hpY2ggdXNlcnMgY2Fubm90IGluc3BlY3Qgb3L0IGFmZmVjdDsgd2Ugc2hvdWxkbid0IG5lZWQgYSBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgaGFzaGVyLlRNaW5pbXVtVW50cnVzdGVkU2NvcmUAAEEBBAAQXQEgVGhlIG1pbmltdW0gc2NvcmUgdGhhdCBlYWNoICd1bnRydXN0ZWQnIHNvbHV0aW9uIG11c3QgYXR0YWluIGluIG9yZGVyIHRvIGJlIGNvbnNpZGVyZWQoIGZlYXNpYmxlLgC4IENhbiBiZSBzZXQgdmlhIGBzZXRfbWluaW11bV91bnRydXN0ZWRfc2NvcmVgLgGxAwE5AThUQmV0dGVyU2lnbmVkVGhyZXNob2xklBAAAAAACE0BIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBpbXByb3ZlbWVudCB0byB0aGUgc29sdXRpb24gc2NvcmUgdGhhdCBkZWZpbmVzIGEgc29sdXRpb24gYXN4ICJiZXR0ZXIiIGluIHRoZSBTaWduZWQgcGhhc2UuOE9mZmNoYWluUmVwZWF0EBAlAAAAELQgVGhlIHJlcGVhdCB0aHJlc2hvbGQgb2YgdGhlIG9mZmNoYWluIHdvcmtlci4AYQEgRm9yIGV4YW1wbGUsIGlmIGl0IGlzIDUsIHRoYXQgbWVhbnMgdGhhdCBhdCBsZWFzdCA1IGJsb2NrcyB3aWxsIGVsYXBzZSBiZXR3ZWVuIGF0dGVtcHRzhCB0byBzdWJtaXQgdGhlIHdvcmtlcidzIHNvbHV0aW9uLjxNaW5lclR4UHJpb3JpdHkwIP////////9/BCUBIFRoZSBwcmlvcml0eSBvZiB0aGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gc3VibWl0dGVkIGluIHRoZSB1bnNpZ25lZC1waGFzZVBTaWduZWRNYXhTdWJtaXNzaW9ucxAQgAAAABzkIE1heGltdW0gbnVtYmVyIG9mIHNpZ25lZCBzdWJtaXNzaW9ucyB0aGF0IGNhbiBiZSBxdWV1ZWQuAFUBIEl0IGlzIGJlc3QgdG8gYXZvaWQgYWRqdXN0aW5nIHRoaXMgZHVyaW5nIGFuIGVsZWN0aW9uLCBhcyBpdCBpbXBhY3RzIGRvd25zdHJlYW0gZGF0YWUBIHN0cnVjdHVyZXMuIEluIHBhcnRpY3VsYXIsIGBTaWduZWRTdWJtaXNzaW9uSW5kaWNlczxUPmAgaXMgYm91bmRlZCBvbiB0aGlzIHZhbHVlLiBJZiB5b3X0IHVwZGF0ZSB0aGlzIHZhbHVlIGR1cmluZyBhbiBlbGVjdGlvbiwgeW91IF9tdXN0XyBlbnN1cmUgdGhhdE0BIGBTaWduZWRTdWJtaXNzaW9uSW5kaWNlcy5sZW4oKWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBuZXcgdmFsdWUuIE90aGVyd2lzZSzwIGF0dGVtcHRzIHRvIHN1Ym1pdCBuZXcgc29sdXRpb25zIG1heSBjYXVzZSBhIHJ1bnRpbWUgcGFuaWMuPFNpZ25lZE1heFdlaWdodChAC2CMkHRYAROjcD0K16NwvRSUIE1heGltdW0gd2VpZ2h0IG9mIGEgc2lnbmVkIHNvbHV0aW9uLgBdASBJZiBbYENvbmZpZzo6TWluZXJDb25maWdgXSBpcyBiZWluZyBpbXBsZW1lbnRlZCB0byBzdWJtaXQgc2lnbmVkIHNvbHV0aW9ucyAob3V0c2lkZSBvZj0BIHRoaXMgcGFsbGV0KSwgdGhlbiBbYE1pbmVyQ29uZmlnOjpzb2x1dGlvbl93ZWlnaHRgXSBpcyB1c2VkIHRvIGNvbXBhcmUgYWdhaW5zdDAgdGhpcyB2YWx1ZS5AU2lnbmVkTWF4UmVmdW5kcxAQIAAAAAQZASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdW5jaGVja2VkIHNvbHV0aW9ucyB0byByZWZ1bmQgdGhlIGNhbGwgZmVlIGZvci5AU2lnbmVkUmV3YXJkQmFzZRhAABCl1OgAAAAAAAAAAAAAAASIIEJhc2UgcmV3YXJkIGZvciBhIHNpZ25lZCBzb2x1dGlvbkRTaWduZWREZXBvc2l0Qnl0ZRhAWXMHAAAAAAAAAAAAAAAAAASgIFBlci1ieXRlIGRlcG9zaXQgZm9yIGEgc2lnbmVkIHNvbHV0aW9uLkxTaWduZWREZXBvc2l0V2VpZ2h0GEAAAAAAAAAAAAAAAAAAAAAABKggUGVyLXdlaWdodCBkZXBvc2l0IGZvciBhIHNpZ25lZCBzb2x1dGlvbi4oTWF4V2lubmVycxAQ6AMAABA1ASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygd2lubmVycyB0aGF0IGNhbiBiZSBlbGVjdGVkIGJ5IHRoaXMgYEVsZWN0aW9uUHJvdmlkZXJgQCBpbXBsZW1lbnRhdGlvbi4AUQEgTm90ZTogVGhpcyBtdXN0IGFsd2F5cyBiZSBncmVhdGVyIG9yIGVxdWFsIHRvIGBUOjpEYXRhUHJvdmlkZXI6OmRlc2lyZWRfdGFyZ2V0cygpYC44TWluZXJNYXhMZW5ndGgQEAAANgAAOE1pbmVyTWF4V2VpZ2h0KEALYIyQdFgBE6NwPQrXo3C9AFRNaW5lck1heFZvdGVzUGVyVm90ZXIQEBAAAAAAPE1pbmVyTWF4V2lubmVycxAQ6AMAAAABwQoYACRWb3Rlckxpc3QBJFZvdGVyTGlzdAwkTGlzdE5vZGVzAAEEBQDFCgQADIAgQSBzaW5nbGUgbm9kZSwgd2l0aGluIHNvbWUgYmFnLgAFASBOb2RlcyBzdG9yZSBsaW5rcyBmb3J3YXJkIGFuZCBiYWNrIHdpdGhpbiB0aGVpciByZXNwZWN0aXZlIGJhZ3MuTENvdW50ZXJGb3JMaXN0Tm9kZXMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcCBMaXN0QmFncwABBAUwyQoEAAxkIEEgYmFnIHN0b3JlZCBpbiBzdG9yYWdlLgAZASBTdG9yZXMgYSBgQmFnYCBzdHJ1Y3QsIHdoaWNoIHN0b3JlcyBoZWFkIGFuZCB0YWlsIHBvaW50ZXJzIHRvIGl0c2VsZi4BpQQBTQEENEJhZ1RocmVzaG9sZHPNCgkZIQMA5AtUAgAAAPOegJcCAAAAqLGX4gIAAACUSS42AwAAACecOpMDAAAAA7zO+gMAAABCwBtuBAAAABtHde4EAAAAOF5VfQUAAABG3GAcBgAAAIk4bM0GAAAAtu6AkgcAAAD+fuNtCAAAAOgbGmIJAAAAsBn0cQoAAAAQNZKgCwAAAM/Jb/EMAAAAQRRtaA4AAADnm9oJEAAAAM7ohdoRAAAAKKnH3xMAAAC7cJMfFgAAAI5AiaAYAAAAgQoJahsAAAA2akiEHgAAAFvTavghAAAAgHyc0CUAAADJVTAYKgAAAL1jwdsuAAAAceBXKTQAAABokJIQOgAAAO3E1KJAAAAAaZN580cAAACP2AwYUAAAAEuviihZAAAAahamP2MAAAAJlRd7bgAAAHjF9Pt6AAAAYsgR54gAAABRv21lmAAAAASOq6SpAAAAVEaY17wAAACRysA20gAAABdfGAHqAAAAvRWyfAQBAABDNY/3IQEAALj8hMhCAQAAmWc8UGcBAAAH5E76jwEAALNBgz69AQAAAn8uou8BAACYg7y5JwIAABZNZSpmAgAAtJUTrKsCAAAtjoIL+QIAAKHmmCxPAwAAphYIDa8DAADMnTfHGQQAAKDVhJWQBAAAQufg1RQFAAACjNcNqAUAAA91Cu9LBgAA6o0uXAIHAADDy5luzQcAALHlcXyvCAAAqiuOH6sJAAC1wSA9wwoAACbQPQ77CwAAcMdZKVYNAADrrdqM2A4AAPeX26qGEAAAz/BEdmUSAAAfJmBxehQAAAmmEb7LFgAAHfvoL2AZAACUOjxgPxwAAIr+icRxHwAAztljxwAjAAADqSrk9iYAAP5y7sVfKwAANsnMaUgwAADa4zJFvzUAAAYqdHDUOwAAfJcy1plCAACEoyRoI0oAAFca1FmHUgAA5/ECYt5bAAANuHYDRGYAAK4EAd7WcQAAfZ6zCLl+AAAeBEp2EI0AADod8GQHnQAA4E+v2syuAABWefAvlcIAAJXDqqma2AAAlnwFJR7xAAAXembWZwwBACjLHx7IKgEA+igvdZhMAQDVfch0PHIBAH3Es/sinAEANlzedMfKAQCeuOFCs/4BAAwxrlR/OAIAX+EB6NV4AgBjc9p+dMACAFHRpg0uEAMAx+mkaO1oAwBhwJH3t8sDAL8nobewOQQAexSZlBu0BACFI+0iYTwFAGml1MUS1AUA7IyTTe98BgD1qpAb6DgHAIy+XdsmCggAApeM4RPzCAD64xRDXfYJAN3xLbr+FgsALrrcb0pYDAAMVRjE8r0NAPC7VDEVTA8ASY6Ga0YHEQCywVPen/QSACeKL7LOGRUAsjmfhCR9FwDhmecEqiUaALoT9aszGx0AJkeFzHhmIACIv4A/LREkAByYI/gdJigAzMQi1FCxLADwiIIFKMAxADZ8bX6JYTcAbpMp0wqmPQCMvGwTIqBEAABw8ypcZEwAtDuEaZkJVQCAtKvkUKleAKDNqXnbX2kATMJ/TMdMdQDQrA66NJOCAEg+DM89WpEAaMaOdGnNoQAoHm+lKx20AJipIyZ0f8gA8Jp0Y00w3wCAzfxLjXL4AJAUYC2akBQB8LQT2UXdMwEglzWWwbRWAVDc+66tfX0B4BGYuUeqqAEwx+4Wu7nYASBuSIaXOQ4CoPpLHXLHSQLAEXFwtRKMAoCKFkOm3tUCwPgjsaIEKAOAr1lwonaDA8BvLYf/QekDQJN/rI+SWgQAkQlxF7bYBEAP31shIGUFAEnBSURuAQYAjrym5WyvBgBZVoaFHHEHgGiqNKS3SAiAoeKeUrk4CQC9q+iA5EMKACpytCBMbQuA8cATM1y4DACgPMvc4ygOgLhimp4gww8A3laT0sqLEQBdf0yTI4gTABqH3zUEvhUAp85LhO8zGAABEPvqJPEaAIAq5dG1/R0AIqE0YJ1iIQBEIWvw2iklAAJh8YKPXikAZiDPhR4NLgCEEBlSUkMzAKDBj8qEEDkAJq0Uk8yFPwDQzSRmL7ZGAJzhmhzatk4AWMzCDF+fVwAgCnV4+4lhADC7u9bkk2wAYMun3J7deAC4O8BCW4uGALiGI2FkxZUA+PFf3JO4pgAgapHA1pa5ANjv4o/Al84AaCmb9S755f//////////rNAgVGhlIGxpc3Qgb2YgdGhyZXNob2xkcyBzZXBhcmF0aW5nIHRoZSB2YXJpb3VzIGJhZ3MuAEkBIElkcyBhcmUgc2VwYXJhdGVkIGludG8gdW5zb3J0ZWQgYmFncyBhY2NvcmRpbmcgdG8gdGhlaXIgc2NvcmUuIFRoaXMgc3BlY2lmaWVzIHRoZWEBIHRocmVzaG9sZHMgc2VwYXJhdGluZyB0aGUgYmFncy4gQW4gaWQncyBiYWcgaXMgdGhlIGxhcmdlc3QgYmFnIGZvciB3aGljaCB0aGUgaWQncyBzY29yZbggaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGl0cyB1cHBlciB0aHJlc2hvbGQuAGUBIFdoZW4gaWRzIGFyZSBpdGVyYXRlZCwgaGlnaGVyIGJhZ3MgYXJlIGl0ZXJhdGVkIGNvbXBsZXRlbHkgYmVmb3JlIGxvd2VyIGJhZ3MuIFRoaXMgbWVhbnNZASB0aGF0IGl0ZXJhdGlvbiBpcyBfc2VtaS1zb3J0ZWRfOiBpZHMgb2YgaGlnaGVyIHNjb3JlIHRlbmQgdG8gY29tZSBiZWZvcmUgaWRzIG9mIGxvd2VyLQEgc2NvcmUsIGJ1dCBwZWVyIGlkcyB3aXRoaW4gYSBwYXJ0aWN1bGFyIGJhZyBhcmUgc29ydGVkIGluIGluc2VydGlvbiBvcmRlci4AaCAjIEV4cHJlc3NpbmcgdGhlIGNvbnN0YW50AE0BIFRoaXMgY29uc3RhbnQgbXVzdCBiZSBzb3J0ZWQgaW4gc3RyaWN0bHkgaW5jcmVhc2luZyBvcmRlci4gRHVwbGljYXRlIGl0ZW1zIGFyZSBub3QsIHBlcm1pdHRlZC4AQQEgVGhlcmUgaXMgYW4gaW1wbGllZCB1cHBlciBsaW1pdCBvZiBgU2NvcmU6Ok1BWGA7IHRoYXQgdmFsdWUgZG9lcyBub3QgbmVlZCB0byBiZSEBIHNwZWNpZmllZCB3aXRoaW4gdGhlIGJhZy4gRm9yIGFueSB0d28gdGhyZXNob2xkIGxpc3RzLCBpZiBvbmUgZW5kcyB3aXRoMQEgYFNjb3JlOjpNQVhgLCB0aGUgb3RoZXIgb25lIGRvZXMgbm90LCBhbmQgdGhleSBhcmUgb3RoZXJ3aXNlIGVxdWFsLCB0aGUgdHdvfCBsaXN0cyB3aWxsIGJlaGF2ZSBpZGVudGljYWxseS4AOCAjIENhbGN1bGF0aW9uAFUBIEl0IGlzIHJlY29tbWVuZGVkIHRvIGdlbmVyYXRlIHRoZSBzZXQgb2YgdGhyZXNob2xkcyBpbiBhIGdlb21ldHJpYyBzZXJpZXMsIHN1Y2ggdGhhdEEBIHRoZXJlIGV4aXN0cyBzb21lIGNvbnN0YW50IHJhdGlvIHN1Y2ggdGhhdCBgdGhyZXNob2xkW2sgKyAxXSA9PSAodGhyZXNob2xkW2tdICrQIGNvbnN0YW50X3JhdGlvKS5tYXgodGhyZXNob2xkW2tdICsgMSlgIGZvciBhbGwgYGtgLgBZASBUaGUgaGVscGVycyBpbiB0aGUgYC91dGlscy9mcmFtZS9nZW5lcmF0ZS1iYWdzYCBtb2R1bGUgY2FuIHNpbXBsaWZ5IHRoaXMgY2FsY3VsYXRpb24uACwgIyBFeGFtcGxlcwBRASAtIElmIGBCYWdUaHJlc2hvbGRzOjpnZXQoKS5pc19lbXB0eSgpYCwgdGhlbiBhbGwgaWRzIGFyZSBwdXQgaW50byB0aGUgc2FtZSBiYWcsIGFuZLAgICBpdGVyYXRpb24gaXMgc3RyaWN0bHkgaW4gaW5zZXJ0aW9uIG9yZGVyLmEBIC0gSWYgYEJhZ1RocmVzaG9sZHM6OmdldCgpLmxlbigpID09IDY0YCwgYW5kIHRoZSB0aHJlc2hvbGRzIGFyZSBkZXRlcm1pbmVkIGFjY29yZGluZyB0bxEBICAgdGhlIHByb2NlZHVyZSBnaXZlbiBhYm92ZSwgdGhlbiB0aGUgY29uc3RhbnQgcmF0aW8gaXMgZXF1YWwgdG8gMi5lASAtIElmIGBCYWdUaHJlc2hvbGRzOjpnZXQoKS5sZW4oKSA9PSAyMDBgLCBhbmQgdGhlIHRocmVzaG9sZHMgYXJlIGRldGVybWluZWQgYWNjb3JkaW5nIHRvWQEgICB0aGUgcHJvY2VkdXJlIGdpdmVuIGFib3ZlLCB0aGVuIHRoZSBjb25zdGFudCByYXRpbyBpcyBhcHByb3hpbWF0ZWx5IGVxdWFsIHRvIDEuMjQ4LmEBIC0gSWYgdGhlIHRocmVzaG9sZCBsaXN0IGJlZ2lucyBgWzEsIDIsIDMsIC4uLl1gLCB0aGVuIGFuIGlkIHdpdGggc2NvcmUgMCBvciAxIHdpbGwgZmFsbPAgICBpbnRvIGJhZyAwLCBhbiBpZCB3aXRoIHNjb3JlIDIgd2lsbCBmYWxsIGludG8gYmFnIDEsIGV0Yy4AMCAjIE1pZ3JhdGlvbgBhASBJbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGxpc3QgZXZlciBjaGFuZ2VzLCBhIGNvcHkgb2YgdGhlIG9sZCBiYWdzIGxpc3QgbXVzdCBiZSByZXRhaW5lZC5dASBXaXRoIHRoYXQgYExpc3Q6Om1pZ3JhdGVgIGNhbiBiZSBjYWxsZWQsIHdoaWNoIHdpbGwgcGVyZm9ybSB0aGUgYXBwcm9wcmlhdGUgbWlncmF0aW9uLgHRChkAPE5vbWluYXRpb25Qb29scwE8Tm9taW5hdGlvblBvb2xzVEBUb3RhbFZhbHVlTG9ja2VkAQAYQAAAAAAAAAAAAAAAAAAAAAAUjCBUaGUgc3VtIG9mIGZ1bmRzIGFjcm9zcyBhbGwgcG9vbHMuAHEBIFRoaXMgbWlnaHQgYmUgbG93ZXIgYnV0IG5ldmVyIGhpZ2hlciB0aGFuIHRoZSBzdW0gb2YgYHRvdGFsX2JhbGFuY2VgIG9mIGFsbCBbYFBvb2xNZW1iZXJzYF1ZASBiZWNhdXNlIGNhbGxpbmcgYHBvb2xfd2l0aGRyYXdfdW5ib25kZWRgIG1pZ2h0IGRlY3JlYXNlIHRoZSB0b3RhbCBzdGFrZSBvZiB0aGUgcG9vbCdzKQEgYGJvbmRlZF9hY2NvdW50YCB3aXRob3V0IGFkanVzdGluZyB0aGUgcGFsbGV0LWludGVybmFsIGBVbmJvbmRpbmdQb29sYCdzLixNaW5Kb2luQm9uZAEAGEAAAAAAAAAAAAAAAAAAAAAABJwgTWluaW11bSBhbW91bnQgdG8gYm9uZCB0byBqb2luIGEgcG9vbC40TWluQ3JlYXRlQm9uZAEAGEAAAAAAAAAAAAAAAAAAAAAAHKAgTWluaW11bSBib25kIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIHBvb2wuAGUBIFRoaXMgaXMgdGhlIGFtb3VudCB0aGF0IHRoZSBkZXBvc2l0b3IgbXVzdCBwdXQgYXMgdGhlaXIgaW5pdGlhbCBzdGFrZSBpbiB0aGUgcG9vbCwgYXMgYW6IIGluZGljYXRpb24gb2YgInNraW4gaW4gdGhlIGdhbWUiLgBpASBUaGlzIGlzIHRoZSB2YWx1ZSB0aGF0IHdpbGwgYWx3YXlzIGV4aXN0IGluIHRoZSBzdGFraW5nIGxlZGdlciBvZiB0aGUgcG9vbCBib25kZWQgYWNjb3VudIAgd2hpbGUgYWxsIG90aGVyIGFjY291bnRzIGxlYXZlLiBNYXhQb29scwAAEAQACGkBIE1heGltdW0gbnVtYmVyIG9mIG5vbWluYXRpb24gcG9vbHMgdGhhdCBjYW4gZXhpc3QuIElmIGBOb25lYCwgdGhlbiBhbiB1bmJvdW5kZWQgbnVtYmVyIG9mRCBwb29scyBjYW4gZXhpc3QuOE1heFBvb2xNZW1iZXJzAAAQBAAISQEgTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyB0aGF0IGNhbiBleGlzdCBpbiB0aGUgc3lzdGVtLiBJZiBgTm9uZWAsIHRoZW4gdGhlIGNvdW50uCBtZW1iZXJzIGFyZSBub3QgYm91bmQgb24gYSBzeXN0ZW0gd2lkZSBiYXNpcy5UTWF4UG9vbE1lbWJlcnNQZXJQb29sAAAQBAAIQQEgTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyB0aGF0IG1heSBiZWxvbmcgdG8gcG9vbC4gSWYgYE5vbmVgLCB0aGVuIHRoZSBjb3VudCBvZqggbWVtYmVycyBpcyBub3QgYm91bmQgb24gYSBwZXIgcG9vbCBiYXNpcy5MR2xvYmFsTWF4Q29tbWlzc2lvbgAAlAQADGkBIFRoZSBtYXhpbXVtIGNvbW1pc3Npb24gdGhhdCBjYW4gYmUgY2hhcmdlZCBieSBhIHBvb2wuIFVzZWQgb24gY29tbWlzc2lvbiBwYXlvdXRzIHRvIGJvdW5kJQEgcG9vbCBjb21taXNzaW9ucyB0aGF0IGFyZSA+IGBHbG9iYWxNYXhDb21taXNzaW9uYCwgbmVjZXNzYXJ5IGlmIGEgZnV0dXJlDQEgYEdsb2JhbE1heENvbW1pc3Npb25gIGlzIGxvd2VyIHRoYW4gc29tZSBjdXJyZW50IHBvb2wgY29tbWlzc2lvbnMuLFBvb2xNZW1iZXJzAAEEBQDZCgQADEAgQWN0aXZlIG1lbWJlcnMuANAgVFdPWC1OT1RFOiBTQUZFIHNpbmNlIGBBY2NvdW50SWRgIGlzIGEgc2VjdXJlIGhhc2guVENvdW50ZXJGb3JQb29sTWVtYmVycwEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwLEJvbmRlZFBvb2xzAAEEBRDtCgQABGggU3RvcmFnZSBmb3IgYm9uZGVkIHBvb2xzLlRDb3VudGVyRm9yQm9uZGVkUG9vbHMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcCxSZXdhcmRQb29scwABBAUQAQsEAAh1ASBSZXdhcmQgcG9vbHMuIFRoaXMgaXMgd2hlcmUgdGhlcmUgcmV3YXJkcyBmb3IgZWFjaCBwb29sIGFjY3VtdWxhdGUuIFdoZW4gYSBtZW1iZXJzIHBheW91dCBpc1kBIGNsYWltZWQsIHRoZSBiYWxhbmNlIGNvbWVzIG91dCBvZiB0aGUgcmV3YXJkIHBvb2wuIEtleWVkIGJ5IHRoZSBib25kZWQgcG9vbHMgYWNjb3VudC5UQ291bnRlckZvclJld2FyZFBvb2xzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXA8U3ViUG9vbHNTdG9yYWdlAAEEBRAFCwQACBkBIEdyb3VwcyBvZiB1bmJvbmRpbmcgcG9vbHMuIEVhY2ggZ3JvdXAgb2YgdW5ib25kaW5nIHBvb2xzIGJlbG9uZ3MgdG8gYSkBIGJvbmRlZCBwb29sLCBoZW5jZSB0aGUgbmFtZSBzdWItcG9vbHMuIEtleWVkIGJ5IHRoZSBib25kZWQgcG9vbHMgYWNjb3VudC5kQ291bnRlckZvclN1YlBvb2xzU3RvcmFnZQEAEBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwIE1ldGFkYXRhAQEEBRAdCwQABFwgTWV0YWRhdGEgZm9yIHRoZSBwb29sLkhDb3VudGVyRm9yTWV0YWRhdGEBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcChMYXN0UG9vbElkAQAQEAAAAAAE0CBFdmVyIGluY3JlYXNpbmcgbnVtYmVyIG9mIGFsbCBwb29scyBjcmVhdGVkIHNvIGZhci5MUmV2ZXJzZVBvb2xJZExvb2t1cAABBAUAEAQAENwgQSByZXZlcnNlIGxvb2t1cCBmcm9tIHRoZSBwb29sJ3MgYWNjb3VudCBpZCB0byBpdHMgaWQuAHUBIFRoaXMgaXMgb25seSB1c2VkIGZvciBzbGFzaGluZyBhbmQgb24gYXV0b21hdGljIHdpdGhkcmF3IHVwZGF0ZS4gSW4gYWxsIG90aGVyIGluc3RhbmNlcywgdGhlJQEgcG9vbCBpZCBpcyB1c2VkLCBhbmQgdGhlIGFjY291bnRzIGFyZSBkZXRlcm1pbmlzdGljYWxseSBkZXJpdmVkIGZyb20gaXQudENvdW50ZXJGb3JSZXZlcnNlUG9vbElkTG9va3VwAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXBAQ2xhaW1QZXJtaXNzaW9ucwEBBAUAwQQEAgQBASBNYXAgZnJvbSBhIHBvb2wgbWVtYmVyIGFjY291bnQgdG8gdGhlaXIgb3B0ZWQgY2xhaW0gcGVybWlzc2lvbi4BqQQBUQEMIFBhbGxldElkIQsgcHkvbm9wbHMEhCBUaGUgbm9taW5hdGlvbiBwb29sJ3MgcGFsbGV0IGlkLkhNYXhQb2ludHNUb0JhbGFuY2UIBAowHQEgVGhlIG1heGltdW0gcG9vbCBwb2ludHMtdG8tYmFsYW5jZSByYXRpbyB0aGF0IGFuIGBvcGVuYCBwb29sIGNhbiBoYXZlLgBVASBUaGlzIGlzIGltcG9ydGFudCBpbiB0aGUgZXZlbnQgc2xhc2hpbmcgdGFrZXMgcGxhY2UgYW5kIHRoZSBwb29sJ3MgcG9pbnRzLXRvLWJhbGFuY2V8IHJhdGlvIGJlY29tZXMgZGlzcHJvcG9ydGlvbmFsLgBlASBNb3Jlb3ZlciwgdGhpcyByZWxhdGVzIHRvIHRoZSBgUmV3YXJkQ291bnRlcmAgdHlwZSBhcyB3ZWxsLCBhcyB0aGUgYXJpdGhtZXRpYyBvcGVyYXRpb25zVQEgYXJlIGEgZnVuY3Rpb24gb2YgbnVtYmVyIG9mIHBvaW50cywgYW5kIGJ5IHNldHRpbmcgdGhpcyB2YWx1ZSB0byBlLmcuIDEwLCB5b3UgZW5zdXJlZQEgdGhhdCB0aGUgdG90YWwgbnVtYmVyIG9mIHBvaW50cyBpbiB0aGUgc3lzdGVtIGFyZSBhdCBtb3N0IDEwIHRpbWVzIHRoZSB0b3RhbF9pc3N1YW5jZSBvZpwgdGhlIGNoYWluLCBpbiB0aGUgYWJzb2x1dGUgd29yc2UgY2FzZS4ASQEgRm9yIGEgdmFsdWUgb2YgMTAsIHRoZSB0aHJlc2hvbGQgd291bGQgYmUgYSBwb29sIHBvaW50cy10by1iYWxhbmNlIHJhdGlvIG9mIDEwOjEuMQEgU3VjaCBhIHNjZW5hcmlvIHdvdWxkIGFsc28gYmUgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIHBvb2wgYmVpbmcgOTAlIHNsYXNoZWQuME1heFVuYm9uZGluZxAQIAAAAAQ9ASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHVuYm9uZGluZyBjaHVua3MgdGhhdCBjYW4gZXhpc3QgcGVyIG1lbWJlci4BJQsdACxGYXN0VW5zdGFrZQEsRmFzdFVuc3Rha2UQEEhlYWQAAC0LBAAMwCBUaGUgY3VycmVudCAiaGVhZCBvZiB0aGUgcXVldWUiIGJlaW5nIHVuc3Rha2VkLgApASBUaGUgaGVhZCBpbiBpdHNlbGYgY2FuIGJlIGEgYmF0Y2ggb2YgdXAgdG8gW2BDb25maWc6OkJhdGNoU2l6ZWBdIHN0YWtlcnMuFFF1ZXVlAAEEBQAYBAAMwCBUaGUgbWFwIG9mIGFsbCBhY2NvdW50cyB3aXNoaW5nIHRvIGJlIHVuc3Rha2VkLgA5ASBLZWVwcyB0cmFjayBvZiBgQWNjb3VudElkYCB3aXNoaW5nIHRvIHVuc3Rha2UgYW5kIGl0J3MgY29ycmVzcG9uZGluZyBkZXBvc2l0LjxDb3VudGVyRm9yUXVldWUBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcExFcmFzVG9DaGVja1BlckJsb2NrAQAQEAAAAAAgjCBOdW1iZXIgb2YgZXJhcyB0byBjaGVjayBwZXIgYmxvY2suADUBIElmIHNldCB0byAwLCB0aGlzIHBhbGxldCBkb2VzIGFic29sdXRlbHkgbm90aGluZy4gQ2Fubm90IGJlIHNldCB0byBtb3JlIHRoYW6QIFtgQ29uZmlnOjpNYXhFcmFzVG9DaGVja1BlckJsb2NrYF0uAGUBIEJhc2VkIG9uIHRoZSBhbW91bnQgb2Ygd2VpZ2h0IGF2YWlsYWJsZSBhdCBbYFBhbGxldDo6b25faWRsZWBdLCB1cCB0byB0aGlzIG1hbnkgZXJhcyBhcmVdASBjaGVja2VkLiBUaGUgY2hlY2tpbmcgaXMgcmVwcmVzZW50ZWQgYnkgdXBkYXRpbmcgW2BVbnN0YWtlUmVxdWVzdDo6Y2hlY2tlZGBdLCB3aGljaCBpc1Agc3RvcmVkIGluIFtgSGVhZGBdLgHFBAFtAQQcRGVwb3NpdBhAABCl1OgAAAAAAAAAAAAAAAhlASBEZXBvc2l0IHRvIHRha2UgZm9yIHVuc3Rha2luZywgdG8gbWFrZSBzdXJlIHdlJ3JlIGFibGUgdG8gc2xhc2ggdGhlIGl0IGluIG9yZGVyIHRvIGNvdmVywCB0aGUgY29zdHMgb2YgcmVzb3VyY2VzIG9uIHVuc3VjY2Vzc2Z1bCB1bnN0YWtlLgE5Cx4AQENvbnZpY3Rpb25Wb3RpbmcBQENvbnZpY3Rpb25Wb3RpbmcIJFZvdGluZ0ZvcgEBCAUFPQtBC9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIdQEgQWxsIHZvdGluZyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyIGluIGEgcGFydGljdWxhciB2b3RpbmcgY2xhc3MuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGWcIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlIGhhdmUgcmVjb3JkZWQuNENsYXNzTG9ja3NGb3IBAQQFAGELBAAMaQEgVGhlIHZvdGluZyBjbGFzc2VzIHdoaWNoIGhhdmUgYSBub24temVybyBsb2NrIHJlcXVpcmVtZW50IGFuZCB0aGUgbG9jayBhbW91bnRzIHdoaWNoIHRoZXltASByZXF1aXJlLiBUaGUgYWN0dWFsIGFtb3VudCBsb2NrZWQgb24gYmVoYWxmIG9mIHRoaXMgcGFsbGV0IHNob3VsZCBhbHdheXMgYmUgdGhlIG1heGltdW0gb2YsIHRoaXMgbGlzdC4ByQQBdQEIIE1heFZvdGVzEBAAAgAAEPAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdm90ZXMgYW4gYWNjb3VudCBtYXkgaGF2ZS4AVQEgQWxzbyB1c2VkIHRvIGNvbXB1dGUgd2VpZ2h0LCBhbiBvdmVybHkgbGFyZ2UgdmFsdWUgY2FuIGxlYWQgdG8gZXh0cmluc2ljcyB3aXRoIGxhcmdlwCB3ZWlnaHQgZXN0aW1hdGlvbjogc2VlIGBkZWxlZ2F0ZWAgZm9yIGluc3RhbmNlLkRWb3RlTG9ja2luZ1BlcmlvZBAQwIkBABCQIFRoZSBtaW5pbXVtIHBlcmlvZCBvZiB2b3RlIGxvY2tpbmcuAGUBIEl0IHNob3VsZCBiZSBubyBzaG9ydGVyIHRoYW4gZW5hY3RtZW50IHBlcmlvZCB0byBlbnN1cmUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhbiBhcHByb3ZhbCxJASB0aG9zZSBzdWNjZXNzZnVsIHZvdGVycyBhcmUgbG9ja2VkIGludG8gdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHRoZWlyIHZvdGVzIGVudGFpbC4BbQsfACRSZWZlcmVuZGEBJFJlZmVyZW5kYRQ8UmVmZXJlbmR1bUNvdW50AQAQEAAAAAAEMQEgVGhlIG5leHQgZnJlZSByZWZlcmVuZHVtIGluZGV4LCBha2EgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgc3RhcnRlZCBzbyBmYXIuRFJlZmVyZW5kdW1JbmZvRm9yAAEEAhBxCwQABLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4oVHJhY2tRdWV1ZQEBBAUtAZELBAAQXQEgVGhlIHNvcnRlZCBsaXN0IG9mIHJlZmVyZW5kYSByZWFkeSB0byBiZSBkZWNpZGVkIGJ1dCBub3QgeWV0IGJlaW5nIGRlY2lkZWQsIG9yZGVyZWQgYnl8IGNvbnZpY3Rpb24td2VpZ2h0ZWQgYXBwcm92YWxzLgBBASBUaGlzIHNob3VsZCBiZSBlbXB0eSBpZiBgRGVjaWRpbmdDb3VudGAgaXMgbGVzcyB0aGFuIGBUcmFja0luZm86Om1heF9kZWNpZGluZ2AuNERlY2lkaW5nQ291bnQBAQQFLQEQEAAAAAAExCBUaGUgbnVtYmVyIG9mIHJlZmVyZW5kYSBiZWluZyBkZWNpZGVkIGN1cnJlbnRseS4oTWV0YWRhdGFPZgABBAIQNAQAGAUBIFRoZSBtZXRhZGF0YSBpcyBhIGdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgHVBAGBARREU3VibWlzc2lvbkRlcG9zaXQYQACsI/wGAAAAAAAAAAAAAAAENQEgVGhlIG1pbmltdW0gYW1vdW50IHRvIGJlIHVzZWQgYXMgYSBkZXBvc2l0IGZvciBhIHB1YmxpYyByZWZlcmVuZHVtIHByb3Bvc2FsLiRNYXhRdWV1ZWQQEGQAAAAE5CBNYXhpbXVtIHNpemUgb2YgdGhlIHJlZmVyZW5kdW0gcXVldWUgZm9yIGEgc2luZ2xlIHRyYWNrLkRVbmRlY2lkaW5nVGltZW91dBAQgBMDAAhVASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBhZnRlciBzdWJtaXNzaW9uIHRoYXQgYSByZWZlcmVuZHVtIG11c3QgYmVnaW4gYmVpbmcgZGVjaWRlZCBieS7kIE9uY2UgdGhpcyBwYXNzZXMsIHRoZW4gYW55b25lIG1heSBjYW5jZWwgdGhlIHJlZmVyZW5kdW0uNEFsYXJtSW50ZXJ2YWwQEAEAAAAMXQEgUXVhbnRpemF0aW9uIGxldmVsIGZvciB0aGUgcmVmZXJlbmR1bSB3YWtldXAgc2NoZWR1bGVyLiBBIGhpZ2hlciBudW1iZXIgd2lsbCByZXN1bHQgaW5dASBmZXdlciBzdG9yYWdlIHJlYWRzL3dyaXRlcyBuZWVkZWQgZm9yIHNtYWxsZXIgdm90ZXJzLCBidXQgYWxzbyByZXN1bHQgaW4gZGVsYXlzIHRvIHRoZVUBIGF1dG9tYXRpYyByZWZlcmVuZHVtIHN0YXR1cyBjaGFuZ2VzLiBFeHBsaWNpdCBzZXJ2aWNpbmcgaW5zdHJ1Y3Rpb25zIGFyZSB1bmFmZmVjdGVkLhhUcmFja3OVC6kVPAAAEHJvb3QBAAAAAACKXXhFYwEAAAAAAAAAAFAAAADIAAAAeAAAADIAAAACkNc+DQAAAABXQ94TAAAAAFRD3hMAAAAAAADKmjsAAAAAAGXNHQEASHdoaXRlbGlzdGVkX2NhbGxlcmQAAAAAAMFv8oYjAAAAAAAAAAAAPAAAAMgAAAAoAAAAHgAAAALslyUQAAAAAHtXPBcAAAAAQjkvEgAAAAACDgCEAAAAAADW5h8BAAAAADlieQIAAAAACgA0c3Rha2luZ19hZG1pbgoAAAAAgOA3ecMRAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////CwAkdHJlYXN1cmVyCgAAAACAxqR+jQMAAAAAAAAAAABQAAAAyAAAAFAAAAAyAAAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAABlzR0MACxsZWFzZV9hZG1pbgoAAAAAgOA3ecMRAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////DQBAZmVsbG93c2hpcF9hZG1pbgoAAAAAgOA3ecMRAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAADJQzAkAGXNHQDKmjsCXW94AAAAAADoLu0AAAAAAIxoif//////DgA0Z2VuZXJhbF9hZG1pbgoAAAAAgOA3ecMRAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACWaL0AgAAAACjKWsFAAAAAC5rSv3/////DwA0YXVjdGlvbl9hZG1pbgoAAAAAgOA3ecMRAAAAAAAAAAAAUAAAAMgAAABQAAAAHgAAAAKQ1z4NAAAAAFdD3hMAAAAAVEPeEwAAAAACWaL0AgAAAACjKWsFAAAAAC5rSv3/////FABQcmVmZXJlbmR1bV9jYW5jZWxsZXLoAwAAAADBb/KGIwAAAAAAAAAAAFAAAACMAAAAUAAAAB4AAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////xUARHJlZmVyZW5kdW1fa2lsbGVy6AMAAAAAxS68orEAAAAAAAAAAABQAAAAyAAAAFAAAAAeAAAAAMlDMCQAZc0dAMqaOwJdb3gAAAAAAOgu7QAAAAAAjGiJ//////8eADBzbWFsbF90aXBwZXLIAAAAAKwj/AYAAAAAAAAAAAAAAAoAAACMAAAAKAAAAAoAAAAASZFJFQBlzR0Aypo7Avm6GAAAAAAAKk0xAAAAAABrWef//////x8AKGJpZ190aXBwZXJkAAAAALhk2UUAAAAAAAAAAAAAACgAAACMAAAAeAAAAB4AAAAASZFJFQBlzR0Aypo7AmlPPwAAAAAANZZ9AAAAAADlNMH//////yAANHNtYWxsX3NwZW5kZXIyAAAAADDvfboCAAAAAAAAAAAAAGQAAADIAAAAZAAAADIAAAAAyUMwJABlzR0Aypo7Al1veAAAAAAA6C7tAAAAAACMaIn//////yEAOG1lZGl1bV9zcGVuZGVyMgAAAABg3vt0BQAAAAAAAAAAAABkAAAAyAAAAHgAAAAyAAAAAFsB9jAAZc0dAMqaOwIRYdsAAAAAAL/RqgEAAAAAIJcq//////8iACxiaWdfc3BlbmRlcjIAAAAAwLz36QoAAAAAAAAAAAAAZAAAAMgAAACMAAAAMgAAAAAAypo7AGXNHQDKmjsCQTywAQAAAAB1XTQDAAAAAEXRZf7/////BOAgSW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgZGlmZmVyZW50IHJlZmVyZW5kdW0gdHJhY2tzLgGtCyAAHE9yaWdpbnMAAAAAACMAJFdoaXRlbGlzdAEkV2hpdGVsaXN0BDxXaGl0ZWxpc3RlZENhbGwAAQQFNPgEAAAB4QQB4QcAAbELJAAgVHJlYXN1cnkBIFRyZWFzdXJ5GDRQcm9wb3NhbENvdW50AQAQEAAAAAAEpCBOdW1iZXIgb2YgcHJvcG9zYWxzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuJFByb3Bvc2FscwABBAUQtQsEAAR8IFByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlLixEZWFjdGl2YXRlZAEAGEAAAAAAAAAAAAAAAAAAAAAABPAgVGhlIGFtb3VudCB3aGljaCBoYXMgYmVlbiByZXBvcnRlZCBhcyBpbmFjdGl2ZSB0byBDdXJyZW5jeS4kQXBwcm92YWxzAQC5CwQABPggUHJvcG9zYWwgaW5kaWNlcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBidXQgbm90IHlldCBhd2FyZGVkLihTcGVuZENvdW50AQAQEAAAAAAEpCBUaGUgY291bnQgb2Ygc3BlbmRzIHRoYXQgaGF2ZSBiZWVuIG1hZGUuGFNwZW5kcwABBAUQvQsEAATQIFNwZW5kcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBhbmQgYmVpbmcgcHJvY2Vzc2VkLgHlBAH1BxQsU3BlbmRQZXJpb2QQEIBRAQAEiCBQZXJpb2QgYmV0d2VlbiBzdWNjZXNzaXZlIHNwZW5kcy4QQnVybsULENAHAAAEEQEgUGVyY2VudGFnZSBvZiBzcGFyZSBmdW5kcyAoaWYgYW55KSB0aGF0IGFyZSBidXJudCBwZXIgc3BlbmQgcGVyaW9kLiBQYWxsZXRJZCELIHB5L3Ryc3J5BBkBIFRoZSB0cmVhc3VyeSdzIHBhbGxldCBpZCwgdXNlZCBmb3IgZGVyaXZpbmcgaXRzIHNvdmVyZWlnbiBhY2NvdW50IElELjBNYXhBcHByb3ZhbHMQEGQAAAAMFQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFwcHJvdmFscyB0aGF0IGNhbiB3YWl0IGluIHRoZSBzcGVuZGluZyBxdWV1ZS4ATQEgTk9URTogVGhpcyBwYXJhbWV0ZXIgaXMgYWxzbyB1c2VkIHdpdGhpbiB0aGUgQm91bnRpZXMgUGFsbGV0IGV4dGVuc2lvbiBpZiBlbmFibGVkLjBQYXlvdXRQZXJpb2QQEICXBgAEGQEgVGhlIHBlcmlvZCBkdXJpbmcgd2hpY2ggYW4gYXBwcm92ZWQgdHJlYXN1cnkgc3BlbmQgaGFzIHRvIGJlIGNsYWltZWQuAckLJQBARGVsZWdhdGVkU3Rha2luZwFARGVsZWdhdGVkU3Rha2luZxAoRGVsZWdhdG9ycwABBAUAzQsEABCkIE1hcCBvZiBEZWxlZ2F0b3JzIHRvIHRoZWlyIGBEZWxlZ2F0aW9uYC4AYQEgSW1wbGVtZW50YXRpb24gbm90ZTogV2UgYXJlIG5vdCB1c2luZyBhIGRvdWJsZSBtYXAgd2l0aCBgZGVsZWdhdG9yYCBhbmQgYGFnZW50YCBhY2NvdW50YQEgYXMga2V5cyBzaW5jZSB3ZSB3YW50IHRvIHJlc3RyaWN0IGRlbGVnYXRvcnMgdG8gZGVsZWdhdGUgb25seSB0byBvbmUgYWNjb3VudCBhdCBhIHRpbWUuUENvdW50ZXJGb3JEZWxlZ2F0b3JzAQAQEAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAYQWdlbnRzAAEEBQDRCwQABIggTWFwIG9mIGBBZ2VudGAgdG8gdGhlaXIgYExlZGdlcmAuQENvdW50ZXJGb3JBZ2VudHMBABAQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAAB+QcIIFBhbGxldElkIQsgcHkvZGxzdGsEkCBJbmplY3RlZCBpZGVudGlmaWVyIGZvciB0aGUgcGFsbGV0LkxTbGFzaFJld2FyZEZyYWN0aW9ulBCAlpgABFEBIEZyYWN0aW9uIG9mIHRoZSBzbGFzaCB0aGF0IGlzIHJld2FyZGVkIHRvIHRoZSBjYWxsZXIgb2YgcGVuZGluZyBzbGFzaCB0byB0aGUgYWdlbnQuAdULJgBAUGFyYWNoYWluc09yaWdpbgAAAAAAKRB5ASBUaGVyZSBpcyBubyB3YXkgdG8gcmVnaXN0ZXIgYW4gb3JpZ2luIHR5cGUgaW4gYGNvbnN0cnVjdF9ydW50aW1lYCB3aXRob3V0IGEgcGFsbGV0IHRoZSBvcmlnaW4wIGJlbG9uZ3MgdG8uAHUBIFRoaXMgbW9kdWxlIGZ1bGZpbGxzIG9ubHkgdGhlIHNpbmdsZSBwdXJwb3NlIG9mIGhvdXNpbmcgdGhlIGBPcmlnaW5gIGluIGBjb25zdHJ1Y3RfcnVudGltZWAuNENvbmZpZ3VyYXRpb24BNENvbmZpZ3VyYXRpb24MMEFjdGl2ZUNvbmZpZwEA2QtBAwAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAGQAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAABAAAAAQAAAAEAAAAAAQAAAAAAAAAAAAAAECcAAICy5g6Aw8kBgJaYAAAAAAAAAAAAAAAAAAUAAAAEyCBUaGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uOFBlbmRpbmdDb25maWdzAQDdCwQAHHwgUGVuZGluZyBjb25maWd1cmF0aW9uIGNoYW5nZXMuAFkBIFRoaXMgaXMgYSBsaXN0IG9mIGNvbmZpZ3VyYXRpb24gY2hhbmdlcywgZWFjaCB3aXRoIGEgc2Vzc2lvbiBpbmRleCBhdCB3aGljaCBpdCBzaG91bGQwIGJlIGFwcGxpZWQuAGEBIFRoZSBsaXN0IGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgc2Vzc2lvbiBpbmRleC4gQWxzbywgdGhpcyBsaXN0IGNhbiBvbmx5IGNvbnRhaW4gYXQgbW9zdPwgMiBpdGVtczogZm9yIHRoZSBuZXh0IHNlc3Npb24gYW5kIGZvciB0aGUgYHNjaGVkdWxlZF9zZXNzaW9uYC5YQnlwYXNzQ29uc2lzdGVuY3lDaGVjawEAIAQACGEBIElmIHRoaXMgaXMgc2V0LCB0aGVuIHRoZSBjb25maWd1cmF0aW9uIHNldHRlcnMgd2lsbCBieXBhc3MgdGhlIGNvbnNpc3RlbmN5IGNoZWNrcy4gVGhpc7QgaXMgbWVhbnQgdG8gYmUgdXNlZCBvbmx5IGFzIHRoZSBsYXN0IHJlc29ydC4BKQUAAAHlCyoALFBhcmFzU2hhcmVkASxQYXJhc1NoYXJlZBBMQ3VycmVudFNlc3Npb25JbmRleAEAEBAAAAAABGwgVGhlIGN1cnJlbnQgc2Vzc2lvbiBpbmRleC5YQWN0aXZlVmFsaWRhdG9ySW5kaWNlcwEA6QsEAAgJASBBbGwgdGhlIHZhbGlkYXRvcnMgYWN0aXZlbHkgcGFydGljaXBhdGluZyBpbiBwYXJhY2hhaW4gY29uc2Vuc3VzLrAgSW5kaWNlcyBhcmUgaW50byB0aGUgYnJvYWRlciB2YWxpZGF0b3Igc2V0LkxBY3RpdmVWYWxpZGF0b3JLZXlzAQDtCwQACFUBIFRoZSBwYXJhY2hhaW4gYXR0ZXN0YXRpb24ga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbh0BIGNvbnNlbnN1cy4gVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgbGVuZ3RoIGFzIGBBY3RpdmVWYWxpZGF0b3JJbmRpY2VzYC5MQWxsb3dlZFJlbGF5UGFyZW50cwEA8QsUAAAAAAAEbCBBbGwgYWxsb3dlZCByZWxheS1wYXJlbnRzLgFNBQAAACsANFBhcmFJbmNsdXNpb24BNFBhcmFJbmNsdXNpb24ECFYxAAEEBZEC/QsEABRhASBDYW5kaWRhdGVzIHBlbmRpbmcgYXZhaWxhYmlsaXR5IGJ5IGBQYXJhSWRgLiBUaGV5IGZvcm0gYSBjaGFpbiBzdGFydGluZyBmcm9tIHRoZSBsYXRlc3RsIGluY2x1ZGVkIGhlYWQgb2YgdGhlIHBhcmEuYQEgVXNlIGEgZGlmZmVyZW50IHByZWZpeCBwb3N0LW1pZ3JhdGlvbiB0byB2MSwgc2luY2UgdGhlIHYwIGBQZW5kaW5nQXZhaWxhYmlsaXR5YCBzdG9yYWdlcQEgd291bGQgb3RoZXJ3aXNlIGhhdmUgdGhlIGV4YWN0IHNhbWUgcHJlZml4IHdoaWNoIGNvdWxkIGNhdXNlIHVuZGVmaW5lZCBiZWhhdmlvdXIgd2hlbiBkb2luZzwgdGhlIG1pZ3JhdGlvbi4BUQUB/QcAAQUMLAAwUGFyYUluaGVyZW50ATBQYXJhSW5oZXJlbnQIIEluY2x1ZGVkAAD4BAAY7CBXaGV0aGVyIHRoZSBwYXJhcyBpbmhlcmVudCB3YXMgaW5jbHVkZWQgd2l0aGluIHRoaXMgYmxvY2suAGkBIFRoZSBgT3B0aW9uPCgpPmAgaXMgZWZmZWN0aXZlbHkgYSBgYm9vbGAsIGJ1dCBpdCBuZXZlciBoaXRzIHN0b3JhZ2UgaW4gdGhlIGBOb25lYCB2YXJpYW50vCBkdWUgdG8gdGhlIGd1YXJhbnRlZXMgb2YgRlJBTUUncyBzdG9yYWdlIEFQSXMuAEkBIElmIHRoaXMgaXMgYE5vbmVgIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrLCB3ZSBwYW5pYyBhbmQgcmVuZGVyIHRoZSBibG9jayBpbnZhbGlkLjBPbkNoYWluVm90ZXMAAAkMBAAERQEgU2NyYXBlZCBvbiBjaGFpbiBkYXRhIGZvciBleHRyYWN0aW5nIHJlc29sdmVkIGRpc3B1dGVzIGFzIHdlbGwgYXMgYmFja2luZyB2b3Rlcy4BVQUAAAEdDC0ANFBhcmFTY2hlZHVsZXIBNFBhcmFTY2hlZHVsZXIQPFZhbGlkYXRvckdyb3VwcwEAIQwEABxtASBBbGwgdGhlIHZhbGlkYXRvciBncm91cHMuIE9uZSBmb3IgZWFjaCBjb3JlLiBJbmRpY2VzIGFyZSBpbnRvIGBBY3RpdmVWYWxpZGF0b3JzYCAtIG5vdCB0aGVtASBicm9hZGVyIHNldCBvZiBQb2xrYWRvdCB2YWxpZGF0b3JzLCBidXQgaW5zdGVhZCBqdXN0IHRoZSBzdWJzZXQgdXNlZCBmb3IgcGFyYWNoYWlucyBkdXJpbmc4IHRoaXMgc2Vzc2lvbi4ASQEgQm91bmQ6IFRoZSBudW1iZXIgb2YgY29yZXMgaXMgdGhlIHN1bSBvZiB0aGUgbnVtYmVycyBvZiBwYXJhY2hhaW5zIGFuZCBwYXJhdGhyZWFkaQEgbXVsdGlwbGV4ZXJzLiBSZWFzb25hYmx5LCAxMDAtMTAwMC4gVGhlIGRvbWluYW50IGZhY3RvciBpcyB0aGUgbnVtYmVyIG9mIHZhbGlkYXRvcnM6IHNhZmVQIHVwcGVyIGJvdW5kIGF0IDEway5EQXZhaWxhYmlsaXR5Q29yZXMBACUMBAAYcQEgT25lIGVudHJ5IGZvciBlYWNoIGF2YWlsYWJpbGl0eSBjb3JlLiBUaGUgaSd0aCBwYXJhY2hhaW4gYmVsb25ncyB0byB0aGUgaSd0aCBjb3JlLCB3aXRoIHRoZfAgcmVtYWluaW5nIGNvcmVzIGFsbCBiZWluZyBvbiBkZW1hbmQgcGFyYWNoYWluIG11bHRpcGxleGVycy4A2CBCb3VuZGVkIGJ5IHRoZSBtYXhpbXVtIG9mIGVpdGhlciBvZiB0aGVzZSB0d28gdmFsdWVzOuQgICAqIFRoZSBudW1iZXIgb2YgcGFyYWNoYWlucyBhbmQgcGFyYXRocmVhZCBtdWx0aXBsZXhlcnNFASAgICogVGhlIG51bWJlciBvZiB2YWxpZGF0b3JzIGRpdmlkZWQgYnkgYGNvbmZpZ3VyYXRpb24ubWF4X3ZhbGlkYXRvcnNfcGVyX2NvcmVgLkRTZXNzaW9uU3RhcnRCbG9jawEAEBAAAAAAHGkBIFRoZSBibG9jayBudW1iZXIgd2hlcmUgdGhlIHNlc3Npb24gc3RhcnQgb2NjdXJyZWQuIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgZ3JvdXAgcm90YXRpb25zPCBoYXZlIG9jY3VycmVkLgBVASBOb3RlIHRoYXQgaW4gdGhlIGNvbnRleHQgb2YgcGFyYWNoYWlucyBtb2R1bGVzIHRoZSBzZXNzaW9uIGNoYW5nZSBpcyBzaWduYWxlZCBkdXJpbmdhASB0aGUgYmxvY2sgYW5kIGVuYWN0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgYmxvY2sgKGF0IHRoZSBmaW5hbGl6YXRpb24gc3RhZ2UsIHRvIGJlIGV4YWN0KS5ZASBUaHVzIGZvciBhbGwgaW50ZW50cyBhbmQgcHVycG9zZXMgdGhlIGVmZmVjdCBvZiB0aGUgc2Vzc2lvbiBjaGFuZ2UgaXMgb2JzZXJ2ZWQgYXQgdGhlZQEgYmxvY2sgZm9sbG93aW5nIHRoZSBzZXNzaW9uIGNoYW5nZSwgYmxvY2sgbnVtYmVyIG9mIHdoaWNoIHdlIHNhdmUgaW4gdGhpcyBzdG9yYWdlIHZhbHVlLihDbGFpbVF1ZXVlAQA1DAQADFkBIE9uZSBlbnRyeSBmb3IgZWFjaCBhdmFpbGFiaWxpdHkgY29yZS4gVGhlIGBWZWNEZXF1ZWAgcmVwcmVzZW50cyB0aGUgYXNzaWdubWVudHMgdG8gYmVRASBzY2hlZHVsZWQgb24gdGhhdCBjb3JlLiBUaGUgdmFsdWUgY29udGFpbmVkIGhlcmUgd2lsbCBub3QgYmUgdmFsaWQgYWZ0ZXIgdGhlIGVuZCBvZmkBIGEgYmxvY2suIFJ1bnRpbWUgQVBJcyBzaG91bGQgYmUgdXNlZCB0byBkZXRlcm1pbmUgc2NoZWR1bGVkIGNvcmVzIGZvciB0aGUgdXBjb21pbmcgYmxvY2suAAAAAC4AFFBhcmFzARRQYXJhc1RAUHZmQWN0aXZlVm90ZU1hcAABBAWRBUUMBAAQtCBBbGwgY3VycmVudGx5IGFjdGl2ZSBQVkYgcHJlLWNoZWNraW5nIHZvdGVzLgAsIEludmFyaWFudDp1ASAtIFRoZXJlIGFyZSBubyBQVkYgcHJlLWNoZWNraW5nIHZvdGVzIHRoYXQgZXhpc3RzIGluIGxpc3QgYnV0IG5vdCBpbiB0aGUgc2V0IGFuZCB2aWNlIHZlcnNhLkRQdmZBY3RpdmVWb3RlTGlzdAEAVQwEAAQ1ASBUaGUgbGlzdCBvZiBhbGwgY3VycmVudGx5IGFjdGl2ZSBQVkYgdm90ZXMuIEF1eGlsaWFyeSB0byBgUHZmQWN0aXZlVm90ZU1hcGAuKFBhcmFjaGFpbnMBAFkMBAAQaQEgQWxsIGxlYXNlIGhvbGRpbmcgcGFyYWNoYWlucy4gT3JkZXJlZCBhc2NlbmRpbmcgYnkgYFBhcmFJZGAuIE9uIGRlbWFuZCBwYXJhY2hhaW5zIGFyZSBub3QoIGluY2x1ZGVkLgDoIENvbnNpZGVyIHVzaW5nIHRoZSBbYFBhcmFjaGFpbnNDYWNoZWBdIHR5cGUgb2YgbW9kaWZ5aW5nLjhQYXJhTGlmZWN5Y2xlcwABBAWRAl0MBAAEvCBUaGUgY3VycmVudCBsaWZlY3ljbGUgb2YgYSBhbGwga25vd24gUGFyYSBJRHMuFEhlYWRzAAEEBZECsQUEAASgIFRoZSBoZWFkLWRhdGEgb2YgZXZlcnkgcmVnaXN0ZXJlZCBwYXJhLkRNb3N0UmVjZW50Q29udGV4dAABBAWRAhAEAAQpASBUaGUgY29udGV4dCAocmVsYXktY2hhaW4gYmxvY2sgbnVtYmVyKSBvZiB0aGUgbW9zdCByZWNlbnQgcGFyYWNoYWluIGhlYWQuPEN1cnJlbnRDb2RlSGFzaAABBAWRApEFBAAMtCBUaGUgdmFsaWRhdGlvbiBjb2RlIGhhc2ggb2YgZXZlcnkgbGl2ZSBwYXJhLgDkIENvcnJlc3BvbmRpbmcgY29kZSBjYW4gYmUgcmV0cmlldmVkIHdpdGggW2BDb2RlQnlIYXNoYF0uMFBhc3RDb2RlSGFzaAABBAVhDJEFBAAQYQEgQWN0dWFsIHBhc3QgY29kZSBoYXNoLCBpbmRpY2F0ZWQgYnkgdGhlIHBhcmEgaWQgYXMgd2VsbCBhcyB0aGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIGl0RCBiZWNhbWUgb3V0ZGF0ZWQuAOQgQ29ycmVzcG9uZGluZyBjb2RlIGNhbiBiZSByZXRyaWV2ZWQgd2l0aCBbYENvZGVCeUhhc2hgXS4wUGFzdENvZGVNZXRhAQEEBZECZQwIAAAMSQEgUGFzdCBjb2RlIG9mIHBhcmFjaGFpbnMuIFRoZSBwYXJhY2hhaW5zIHRoZW1zZWx2ZXMgbWF5IG5vdCBiZSByZWdpc3RlcmVkIGFueW1vcmUsSQEgYnV0IHdlIGFsc28ga2VlcCB0aGVpciBjb2RlIG9uLWNoYWluIGZvciB0aGUgc2FtZSBhbW91bnQgb2YgdGltZSBhcyBvdXRkYXRlZCBjb2RlsCB0byBrZWVwIGl0IGF2YWlsYWJsZSBmb3IgYXBwcm92YWwgY2hlY2tlcnMuPFBhc3RDb2RlUHJ1bmluZwEAcQwEABhpASBXaGljaCBwYXJhcyBoYXZlIHBhc3QgY29kZSB0aGF0IG5lZWRzIHBydW5pbmcgYW5kIHRoZSByZWxheS1jaGFpbiBibG9jayBhdCB3aGljaCB0aGUgY29kZWkBIHdhcyByZXBsYWNlZC4gTm90ZSB0aGF0IHRoaXMgaXMgdGhlIGFjdHVhbCBoZWlnaHQgb2YgdGhlIGluY2x1ZGVkIGJsb2NrLCBub3QgdGhlIGV4cGVjdGVkPQEgaGVpZ2h0IGF0IHdoaWNoIHRoZSBjb2RlIHVwZ3JhZGUgd291bGQgYmUgYXBwbGllZCwgYWx0aG91Z2ggdGhleSBtYXkgYmUgZXF1YWwubQEgVGhpcyBpcyB0byBlbnN1cmUgdGhlIGVudGlyZSBhY2NlcHRhbmNlIHBlcmlvZCBpcyBjb3ZlcmVkLCBub3QgYW4gb2Zmc2V0IGFjY2VwdGFuY2UgcGVyaW9kbQEgc3RhcnRpbmcgZnJvbSB0aGUgdGltZSBhdCB3aGljaCB0aGUgcGFyYWNoYWluIHBlcmNlaXZlcyBhIGNvZGUgdXBncmFkZSBhcyBoYXZpbmcgb2NjdXJyZWQuVQEgTXVsdGlwbGUgZW50cmllcyBmb3IgYSBzaW5nbGUgcGFyYSBhcmUgcGVybWl0dGVkLiBPcmRlcmVkIGFzY2VuZGluZyBieSBibG9jayBudW1iZXIuSEZ1dHVyZUNvZGVVcGdyYWRlcwABBAWRAhAEABA9ASBUaGUgYmxvY2sgbnVtYmVyIGF0IHdoaWNoIHRoZSBwbGFubmVkIGNvZGUgY2hhbmdlIGlzIGV4cGVjdGVkIGZvciBhIHBhcmFjaGFpbi4AZQEgVGhlIGNoYW5nZSB3aWxsIGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZpcnN0IHBhcmFibG9jayBmb3IgdGhpcyBJRCBpbmNsdWRlZCB3aGljaCBleGVjdXRlcxkBIGluIHRoZSBjb250ZXh0IG9mIGEgcmVsYXkgY2hhaW4gYmxvY2sgd2l0aCBhIG51bWJlciA+PSBgZXhwZWN0ZWRfYXRgLlBGdXR1cmVDb2RlVXBncmFkZXNBdAEAcQwEACCsIFRoZSBsaXN0IG9mIHVwY29taW5nIGZ1dHVyZSBjb2RlIHVwZ3JhZGVzLgBtASBFYWNoIGl0ZW0gaXMgYSBwYWlyIG9mIHRoZSBwYXJhY2hhaW4gYW5kIHRoZSBleHBlY3RlZCBibG9jayBhdCB3aGljaCB0aGUgdXBncmFkZSBzaG91bGQgYmVRASBhcHBsaWVkLiBUaGUgdXBncmFkZSB3aWxsIGJlIGFwcGxpZWQgYXQgdGhlIGdpdmVuIHJlbGF5IGNoYWluIGJsb2NrLiBJbiBjb250cmFzdCB0b3UBIFtgRnV0dXJlQ29kZVVwZ3JhZGVzYF0gdGhpcyBjb2RlIHVwZ3JhZGUgd2lsbCBiZSBhcHBsaWVkIHJlZ2FyZGxlc3MgdGhlIHBhcmFjaGFpbiBtYWtpbmcgYW55RCBwcm9ncmVzcyBvciBub3QuAIwgT3JkZXJlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyLjhGdXR1cmVDb2RlSGFzaAABBAWRApEFBAAMnCBUaGUgYWN0dWFsIGZ1dHVyZSBjb2RlIGhhc2ggb2YgYSBwYXJhLgDkIENvcnJlc3BvbmRpbmcgY29kZSBjYW4gYmUgcmV0cmlldmVkIHdpdGggW2BDb2RlQnlIYXNoYF0uUFVwZ3JhZGVHb0FoZWFkU2lnbmFsAAEEBZECdQwEACh1ASBUaGlzIGlzIHVzZWQgYnkgdGhlIHJlbGF5LWNoYWluIHRvIGNvbW11bmljYXRlIHRvIGEgcGFyYWNoYWluIGEgZ28tYWhlYWQgd2l0aCBpbiB0aGUgdXBncmFkZSwgcHJvY2VkdXJlLgB1ASBUaGlzIHZhbHVlIGlzIGFic2VudCB3aGVuIHRoZXJlIGFyZSBubyB1cGdyYWRlcyBzY2hlZHVsZWQgb3IgZHVyaW5nIHRoZSB0aW1lIHRoZSByZWxheSBjaGFpblUBIHBlcmZvcm1zIHRoZSBjaGVja3MuIEl0IGlzIHNldCBhdCB0aGUgZmlyc3QgcmVsYXktY2hhaW4gYmxvY2sgd2hlbiB0aGUgY29ycmVzcG9uZGluZ3UBIHBhcmFjaGFpbiBjYW4gc3dpdGNoIGl0cyB1cGdyYWRlIGZ1bmN0aW9uLiBBcyBzb29uIGFzIHRoZSBwYXJhY2hhaW4ncyBibG9jayBpcyBpbmNsdWRlZCwgdGhlcCB2YWx1ZSBnZXRzIHJlc2V0IHRvIGBOb25lYC4AZQEgTk9URSB0aGF0IHRoaXMgZmllbGQgaXMgdXNlZCBieSBwYXJhY2hhaW5zIHZpYSBtZXJrbGUgc3RvcmFnZSBwcm9vZnMsIHRoZXJlZm9yZSBjaGFuZ2luZ8QgdGhlIGZvcm1hdCB3aWxsIHJlcXVpcmUgbWlncmF0aW9uIG9mIHBhcmFjaGFpbnMuYFVwZ3JhZGVSZXN0cmljdGlvblNpZ25hbAABBAWRAnkMBAAkaQEgVGhpcyBpcyB1c2VkIGJ5IHRoZSByZWxheS1jaGFpbiB0byBjb21tdW5pY2F0ZSB0aGF0IHRoZXJlIGFyZSByZXN0cmljdGlvbnMgZm9yIHBlcmZvcm1pbmd8IGFuIHVwZ3JhZGUgZm9yIHRoaXMgcGFyYWNoYWluLgBZASBUaGlzIG1heSBiZSBhIGJlY2F1c2UgdGhlIHBhcmFjaGFpbiB3YWl0cyBmb3IgdGhlIHVwZ3JhZGUgY29vbGRvd24gdG8gZXhwaXJlLiBBbm90aGVybQEgcG90ZW50aWFsIHVzZSBjYXNlIGlzIHdoZW4gd2Ugd2FudCB0byBwZXJmb3JtIHNvbWUgbWFpbnRlbmFuY2UgKHN1Y2ggYXMgc3RvcmFnZSBtaWdyYXRpb24p4CB3ZSBjb3VsZCByZXN0cmljdCB1cGdyYWRlcyB0byBtYWtlIHRoZSBwcm9jZXNzIHNpbXBsZXIuAGUBIE5PVEUgdGhhdCB0aGlzIGZpZWxkIGlzIHVzZWQgYnkgcGFyYWNoYWlucyB2aWEgbWVya2xlIHN0b3JhZ2UgcHJvb2ZzLCB0aGVyZWZvcmUgY2hhbmdpbmfEIHRoZSBmb3JtYXQgd2lsbCByZXF1aXJlIG1pZ3JhdGlvbiBvZiBwYXJhY2hhaW5zLkBVcGdyYWRlQ29vbGRvd25zAQBxDAQADFEBIFRoZSBsaXN0IG9mIHBhcmFjaGFpbnMgdGhhdCBhcmUgYXdhaXRpbmcgZm9yIHRoZWlyIHVwZ3JhZGUgcmVzdHJpY3Rpb24gdG8gY29vbGRvd24uAIwgT3JkZXJlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyLkBVcGNvbWluZ1VwZ3JhZGVzAQBxDAQAGJAgVGhlIGxpc3Qgb2YgdXBjb21pbmcgY29kZSB1cGdyYWRlcy4AcQEgRWFjaCBpdGVtIGlzIGEgcGFpciBvZiB3aGljaCBwYXJhIHBlcmZvcm1zIGEgY29kZSB1cGdyYWRlIGFuZCBhdCB3aGljaCByZWxheS1jaGFpbiBibG9jayBpdEAgaXMgZXhwZWN0ZWQgYXQuAIwgT3JkZXJlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyLjBBY3Rpb25zUXVldWUBAQQFEFkMBAAEFQEgVGhlIGFjdGlvbnMgdG8gcGVyZm9ybSBkdXJpbmcgdGhlIHN0YXJ0IG9mIGEgc3BlY2lmaWMgc2Vzc2lvbiBpbmRleC5QVXBjb21pbmdQYXJhc0dlbmVzaXMAAQQFkQIZBgQAEKAgVXBjb21pbmcgcGFyYXMgaW5zdGFudGlhdGlvbiBhcmd1bWVudHMuAGUBIE5PVEUgdGhhdCBhZnRlciBQVkYgcHJlLWNoZWNraW5nIGlzIGVuYWJsZWQgdGhlIHBhcmEgZ2VuZXNpcyBhcmcgd2lsbCBoYXZlIGl0J3MgY29kZSBzZXRhASB0byBlbXB0eS4gSW5zdGVhZCwgdGhlIGNvZGUgd2lsbCBiZSBzYXZlZCBpbnRvIHRoZSBzdG9yYWdlIHJpZ2h0IGF3YXkgdmlhIGBDb2RlQnlIYXNoYC44Q29kZUJ5SGFzaFJlZnMBAQQGkQUQEAAAAAAEKQEgVGhlIG51bWJlciBvZiByZWZlcmVuY2Ugb24gdGhlIHZhbGlkYXRpb24gY29kZSBpbiBbYENvZGVCeUhhc2hgXSBzdG9yYWdlLihDb2RlQnlIYXNoAAEEBpEFrQUEABCQIFZhbGlkYXRpb24gY29kZSBzdG9yZWQgYnkgaXRzIGhhc2guADEBIFRoaXMgc3RvcmFnZSBpcyBjb25zaXN0ZW50IHdpdGggW2BGdXR1cmVDb2RlSGFzaGBdLCBbYEN1cnJlbnRDb2RlSGFzaGBdIGFuZEggW2BQYXN0Q29kZUhhc2hgXS4B4QUBDQgEQFVuc2lnbmVkUHJpb3JpdHkwIP//////////AAF9DC8ALEluaXRpYWxpemVyASxJbml0aWFsaXplcgg4SGFzSW5pdGlhbGl6ZWQAAPgEACAhASBXaGV0aGVyIHRoZSBwYXJhY2hhaW5zIG1vZHVsZXMgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGhpbiB0aGlzIGJsb2NrLgAlASBTZW1hbnRpY2FsbHkgYSBgYm9vbGAsIGJ1dCB0aGlzIGd1YXJhbnRlZXMgaXQgc2hvdWxkIG5ldmVyIGhpdCB0aGUgdHJpZSxpASBhcyB0aGlzIGlzIGNsZWFyZWQgaW4gYG9uX2ZpbmFsaXplYCBhbmQgRnJhbWUgb3B0aW1pemVzIGBOb25lYCB2YWx1ZXMgdG8gYmUgZW1wdHkgdmFsdWVzLgBxASBBcyBhIGBib29sYCwgYHNldChmYWxzZSlgIGFuZCBgcmVtb3ZlKClgIGJvdGggbGVhZCB0byB0aGUgbmV4dCBgZ2V0KClgIGJlaW5nIGZhbHNlLCBidXQgb25ldQEgb2YgdGhlbSB3cml0ZXMgdG8gdGhlIHRyaWUgYW5kIG9uZSBkb2VzIG5vdC4gVGhpcyBjb25mdXNpb24gbWFrZXMgYE9wdGlvbjwoKT5gIG1vcmUgc3VpdGFibGWQIGZvciB0aGUgc2VtYW50aWNzIG9mIHRoaXMgdmFyaWFibGUuWEJ1ZmZlcmVkU2Vzc2lvbkNoYW5nZXMBAIEMBAAcWQEgQnVmZmVyZWQgc2Vzc2lvbiBjaGFuZ2VzIGFsb25nIHdpdGggdGhlIGJsb2NrIG51bWJlciBhdCB3aGljaCB0aGV5IHNob3VsZCBiZSBhcHBsaWVkLgBdASBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIGVtcHR5IG9yIG9uZSBlbGVtZW50IGxvbmcuIEFwYXJ0IGZyb20gdGhhdCB0aGlzIGl0ZW0gbmV2ZXIgaGl0czQgdGhlIHN0b3JhZ2UuAGkBIEhvd2V2ZXIgdGhpcyBpcyBhIGBWZWNgIHJlZ2FyZGxlc3MgdG8gaGFuZGxlIHZhcmlvdXMgZWRnZSBjYXNlcyB0aGF0IG1heSBvY2N1ciBhdCBydW50aW1lwCB1cGdyYWRlIGJvdW5kYXJpZXMgb3IgaWYgZ292ZXJuYW5jZSBpbnRlcnZlbmVzLgHpBQAAADAADERtcAEMRG1wDFREb3dud2FyZE1lc3NhZ2VRdWV1ZXMBAQQFkQKJDAQABNAgVGhlIGRvd253YXJkIG1lc3NhZ2VzIGFkZHJlc3NlZCBmb3IgYSBjZXJ0YWluIHBhcmEuZERvd253YXJkTWVzc2FnZVF1ZXVlSGVhZHMBAQQFkQI0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCUBIEEgbWFwcGluZyB0aGF0IHN0b3JlcyB0aGUgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBNUUMgaGVhZCBmb3IgZWFjaCBwYXJhLgCQIEVhY2ggbGluayBpbiB0aGlzIGNoYWluIGhhcyBhIGZvcm06eCBgKHByZXZfaGVhZCwgQiwgSChNKSlgLCB3aGVyZeggLSBgcHJldl9oZWFkYDogaXMgdGhlIHByZXZpb3VzIGhlYWQgaGFzaCBvciB6ZXJvIGlmIG5vbmUuIQEgLSBgQmA6IGlzIHRoZSByZWxheS1jaGFpbiBibG9jayBudW1iZXIgaW4gd2hpY2ggYSBtZXNzYWdlIHdhcyBhcHBlbmRlZC7UIC0gYEgoTSlgOiBpcyB0aGUgaGFzaCBvZiB0aGUgbWVzc2FnZSBiZWluZyBhcHBlbmRlZC5ERGVsaXZlcnlGZWVGYWN0b3IBAQQFkQKVB0AAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAAAADEAEEhybXABEEhybXAwXEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RzAAEEBfEFkQwEABi8IFRoZSBzZXQgb2YgcGVuZGluZyBIUk1QIG9wZW4gY2hhbm5lbCByZXF1ZXN0cy4AwCBUaGUgc2V0IGlzIGFjY29tcGFuaWVkIGJ5IGEgbGlzdCBmb3IgaXRlcmF0aW9uLgAsIEludmFyaWFudDo9ASAtIFRoZXJlIGFyZSBubyBjaGFubmVscyB0aGF0IGV4aXN0cyBpbiBsaXN0IGJ1dCBub3QgaW4gdGhlIHNldCBhbmQgdmljZSB2ZXJzYS5sSHJtcE9wZW5DaGFubmVsUmVxdWVzdHNMaXN0AQCVDAQAAGxIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0Q291bnQBAQQFkQIQEAAAAAAMZQEgVGhpcyBtYXBwaW5nIHRyYWNrcyBob3cgbWFueSBvcGVuIGNoYW5uZWwgcmVxdWVzdHMgYXJlIGluaXRpYXRlZCBieSBhIGdpdmVuIHNlbmRlciBwYXJhLlkBIEludmFyaWFudDogYEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RzYCBzaG91bGQgY29udGFpbiB0aGUgc2FtZSBudW1iZXIgb2YgaXRlbXMgdGhhdCBoYXMFASBgKFgsIF8pYCBhcyB0aGUgbnVtYmVyIG9mIGBIcm1wT3BlbkNoYW5uZWxSZXF1ZXN0Q291bnRgIGZvciBgWGAufEhybXBBY2NlcHRlZENoYW5uZWxSZXF1ZXN0Q291bnQBAQQFkQIQEAAAAAAMcQEgVGhpcyBtYXBwaW5nIHRyYWNrcyBob3cgbWFueSBvcGVuIGNoYW5uZWwgcmVxdWVzdHMgd2VyZSBhY2NlcHRlZCBieSBhIGdpdmVuIHJlY2lwaWVudCBwYXJhLm0BIEludmFyaWFudDogYEhybXBPcGVuQ2hhbm5lbFJlcXVlc3RzYCBzaG91bGQgY29udGFpbiB0aGUgc2FtZSBudW1iZXIgb2YgaXRlbXMgYChfLCBYKWAgd2l0aFUBIGBjb25maXJtZWRgIHNldCB0byB0cnVlLCBhcyB0aGUgbnVtYmVyIG9mIGBIcm1wQWNjZXB0ZWRDaGFubmVsUmVxdWVzdENvdW50YCBmb3IgYFhgLmBIcm1wQ2xvc2VDaGFubmVsUmVxdWVzdHMAAQQF8QX4BAAccQEgQSBzZXQgb2YgcGVuZGluZyBIUk1QIGNsb3NlIGNoYW5uZWwgcmVxdWVzdHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgY2xvc2VkIGR1cmluZyB0aGUgc2Vzc2lvbiEBIGNoYW5nZS4gVXNlZCBmb3IgY2hlY2tpbmcgaWYgYSBnaXZlbiBjaGFubmVsIGlzIHJlZ2lzdGVyZWQgZm9yIGNsb3N1cmUuAMAgVGhlIHNldCBpcyBhY2NvbXBhbmllZCBieSBhIGxpc3QgZm9yIGl0ZXJhdGlvbi4ALCBJbnZhcmlhbnQ6PQEgLSBUaGVyZSBhcmUgbm8gY2hhbm5lbHMgdGhhdCBleGlzdHMgaW4gbGlzdCBidXQgbm90IGluIHRoZSBzZXQgYW5kIHZpY2UgdmVyc2EucEhybXBDbG9zZUNoYW5uZWxSZXF1ZXN0c0xpc3QBAJUMBAAAOEhybXBXYXRlcm1hcmtzAAEEBZECEAQAELggVGhlIEhSTVAgd2F0ZXJtYXJrIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHBhcmEuLCBJbnZhcmlhbnQ6VQEgLSBlYWNoIHBhcmEgYFBgIHVzZWQgaGVyZSBhcyBhIGtleSBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhLCAgIHNlc3Npb24uMEhybXBDaGFubmVscwABBAXxBZkMBAAMtCBIUk1QIGNoYW5uZWwgZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaCBwYXJhLiwgSW52YXJpYW50OnUBIC0gZWFjaCBwYXJ0aWNpcGFudCBpbiB0aGUgY2hhbm5lbCBzaG91bGQgc2F0aXNmeSBgUGFyYXM6OmlzX3ZhbGlkX3BhcmEoUClgIHdpdGhpbiBhIHNlc3Npb24uYEhybXBJbmdyZXNzQ2hhbm5lbHNJbmRleAEBBAWRAlkMBAA0cQEgSW5ncmVzcy9lZ3Jlc3MgaW5kZXhlcyBhbGxvdyB0byBmaW5kIGFsbCB0aGUgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIGdpdmVuIHRoZSBvcHBvc2l0ZSBzaWRlLhQgSS5lLgAhASAoYSkgaW5ncmVzcyBpbmRleCBhbGxvd3MgdG8gZmluZCBhbGwgdGhlIHNlbmRlcnMgZm9yIGEgZ2l2ZW4gcmVjaXBpZW50Lh0BIChiKSBlZ3Jlc3MgaW5kZXggYWxsb3dzIHRvIGZpbmQgYWxsIHRoZSByZWNpcGllbnRzIGZvciBhIGdpdmVuIHNlbmRlci4AMCBJbnZhcmlhbnRzOlEBIC0gZm9yIGVhY2ggaW5ncmVzcyBpbmRleCBlbnRyeSBmb3IgYFBgIGVhY2ggaXRlbSBgSWAgaW4gdGhlIGluZGV4IHNob3VsZCBwcmVzZW50IGlueCAgIGBIcm1wQ2hhbm5lbHNgIGFzIGAoSSwgUClgLk0BIC0gZm9yIGVhY2ggZWdyZXNzIGluZGV4IGVudHJ5IGZvciBgUGAgZWFjaCBpdGVtIGBFYCBpbiB0aGUgaW5kZXggc2hvdWxkIHByZXNlbnQgaW54ICAgYEhybXBDaGFubmVsc2AgYXMgYChQLCBFKWAuAQEgLSB0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgZGFuZ2xpbmcgY2hhbm5lbHMgaW4gYEhybXBDaGFubmVsc2AuaCAtIHRoZSB2ZWN0b3JzIGFyZSBzb3J0ZWQuXEhybXBFZ3Jlc3NDaGFubmVsc0luZGV4AQEEBZECWQwEAABMSHJtcENoYW5uZWxDb250ZW50cwEBBAXxBZ0MBAAIrCBTdG9yYWdlIGZvciB0aGUgbWVzc2FnZXMgZm9yIGVhY2ggY2hhbm5lbC5lASBJbnZhcmlhbnQ6IGNhbm5vdCBiZSBub24tZW1wdHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgY2hhbm5lbCBpbiBgSHJtcENoYW5uZWxzYCBpcyBgTm9uZWAuSEhybXBDaGFubmVsRGlnZXN0cwEBBAWRAqUMBAAYaQEgTWFpbnRhaW5zIGEgbWFwcGluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFuc3dlciB0aGUgcXVlc3Rpb246IFdoYXQgcGFyYXMgc2VudCBhIG1lc3NhZ2UgYXTkIHRoZSBnaXZlbiBibG9jayBudW1iZXIgZm9yIGEgZ2l2ZW4gcmVjZWl2ZXIuIEludmFyaWFudHM6qCAtIFRoZSBpbm5lciBgVmVjPFBhcmFJZD5gIGlzIG5ldmVyIGVtcHR5LuggLSBUaGUgaW5uZXIgYFZlYzxQYXJhSWQ+YCBjYW5ub3Qgc3RvcmUgdHdvIHNhbWUgYFBhcmFJZGAubQEgLSBUaGUgb3V0ZXIgdmVjdG9yIGlzIHNvcnRlZCBhc2NlbmRpbmcgYnkgYmxvY2sgbnVtYmVyIGFuZCBjYW5ub3Qgc3RvcmUgdHdvIGl0ZW1zIHdpdGggdGhlVCAgIHNhbWUgYmxvY2sgbnVtYmVyLgHtBQERCAABrQwzADxQYXJhU2Vzc2lvbkluZm8BPFBhcmFTZXNzaW9uSW5mbxRQQXNzaWdubWVudEtleXNVbnNhZmUBALEMBAAMpCBBc3NpZ25tZW50IGtleXMgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24ubQEgTm90ZSB0aGF0IHRoaXMgQVBJIGlzIHByaXZhdGUgZHVlIHRvIGl0IGJlaW5nIHByb25lIHRvICdvZmYtYnktb25lJyBhdCBzZXNzaW9uIGJvdW5kYXJpZXMurCBXaGVuIGluIGRvdWJ0LCB1c2UgYFNlc3Npb25zYCBBUEkgaW5zdGVhZC5URWFybGllc3RTdG9yZWRTZXNzaW9uAQAQEAAAAAAEAQEgVGhlIGVhcmxpZXN0IHNlc3Npb24gZm9yIHdoaWNoIHByZXZpb3VzIHNlc3Npb24gaW5mbyBpcyBzdG9yZWQuIFNlc3Npb25zAAEEBhC1DAQADKQgU2Vzc2lvbiBpbmZvcm1hdGlvbiBpbiBhIHJvbGxpbmcgd2luZG93LjUBIFNob3VsZCBoYXZlIGFuIGVudHJ5IGluIHJhbmdlIGBFYXJsaWVzdFN0b3JlZFNlc3Npb24uLj1DdXJyZW50U2Vzc2lvbkluZGV4YC51ASBEb2VzIG5vdCBoYXZlIGFueSBlbnRyaWVzIGJlZm9yZSB0aGUgc2Vzc2lvbiBpbmRleCBpbiB0aGUgZmlyc3Qgc2Vzc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uLixBY2NvdW50S2V5cwABBAYQ4QEEAARxASBUaGUgdmFsaWRhdG9yIGFjY291bnQga2V5cyBvZiB0aGUgdmFsaWRhdG9ycyBhY3RpdmVseSBwYXJ0aWNpcGF0aW5nIGluIHBhcmFjaGFpbiBjb25zZW5zdXMuVFNlc3Npb25FeGVjdXRvclBhcmFtcwABBAYQMQUEAATEIEV4ZWN1dG9yIHBhcmFtZXRlciBzZXQgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiBpbmRleAAAAAA0ADRQYXJhc0Rpc3B1dGVzATRQYXJhc0Rpc3B1dGVzFERMYXN0UHJ1bmVkU2Vzc2lvbgAAEAQACAEBIFRoZSBsYXN0IHBydW5lZCBzZXNzaW9uLCBpZiBhbnkuIEFsbCBkYXRhIHN0b3JlZCBieSB0aGlzIG1vZHVsZVQgcmVmZXJlbmNlcyBzZXNzaW9ucy4gRGlzcHV0ZXMAAQgFAsEMxQwEAAQFASBBbGwgb25nb2luZyBvciBjb25jbHVkZWQgZGlzcHV0ZXMgZm9yIHRoZSBsYXN0IHNldmVyYWwgc2Vzc2lvbnMuREJhY2tlcnNPbkRpc3B1dGVzAAEIBQLBDMkMBAAInCBCYWNraW5nIHZvdGVzIHN0b3JlZCBmb3IgZWFjaCBkaXNwdXRlLowgVGhpcyBzdG9yYWdlIGlzIHVzZWQgZm9yIHNsYXNoaW5nLiBJbmNsdWRlZAABCAUCwQwQBAAIRQEgQWxsIGluY2x1ZGVkIGJsb2NrcyBvbiB0aGUgY2hhaW4sIGFzIHdlbGwgYXMgdGhlIGJsb2NrIG51bWJlciBpbiB0aGlzIGNoYWluIHRoYXRZASBzaG91bGQgYmUgcmV2ZXJ0ZWQgYmFjayB0byBpZiB0aGUgY2FuZGlkYXRlIGlzIGRpc3B1dGVkIGFuZCBkZXRlcm1pbmVkIHRvIGJlIGludmFsaWQuGEZyb3plbgEAoQQEABARASBXaGV0aGVyIHRoZSBjaGFpbiBpcyBmcm96ZW4uIFN0YXJ0cyBhcyBgTm9uZWAuIFdoZW4gdGhpcyBpcyBgU29tZWAsNQEgdGhlIGNoYWluIHdpbGwgbm90IGFjY2VwdCBhbnkgbmV3IHBhcmFjaGFpbiBibG9ja3MgZm9yIGJhY2tpbmcgb3IgaW5jbHVzaW9uLAkBIGFuZCBpdHMgdmFsdWUgaW5kaWNhdGVzIHRoZSBsYXN0IHZhbGlkIGJsb2NrIG51bWJlciBpbiB0aGUgY2hhaW4u+CBJdCBjYW4gb25seSBiZSBzZXQgYmFjayB0byBgTm9uZWAgYnkgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24uAfUFARUIAAHNDDUANFBhcmFzU2xhc2hpbmcBNFBhcmFzU2xhc2hpbmcIQFVuYXBwbGllZFNsYXNoZXMAAQgFAsEM0QwEAASQIFZhbGlkYXRvcnMgcGVuZGluZyBkaXNwdXRlIHNsYXNoZXMuSFZhbGlkYXRvclNldENvdW50cwABBAUQEAQABIQgYFZhbGlkYXRvclNldENvdW50YCBwZXIgc2Vzc2lvbi4B+QUAAAHhDDYAaE9uRGVtYW5kQXNzaWdubWVudFByb3ZpZGVyAWhPbkRlbWFuZEFzc2lnbm1lbnRQcm92aWRlchQ4UGFyYUlkQWZmaW5pdHkAAQQFkQLlDAQADHEBIE1hcHMgYSBgUGFyYUlkYCB0byBgQ29yZUluZGV4YCBhbmQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgYXNzaWdubWVudHMgdGhlIHNjaGVkdWxlciBoYXMgaW5dASBpdCdzIGxvb2thaGVhZC4gS2VlcGluZyB0cmFjayBvZiB0aGlzIGFmZmluaXR5IHByZXZlbnRzIHBhcmFsbGVsIGV4ZWN1dGlvbiBvZiB0aGUgc2FtZZwgYFBhcmFJZGAgb24gdHdvIG9yIG1vcmUgYENvcmVJbmRleGBlcy4sUXVldWVTdGF0dXMBAOkMZAAAZKeztuANAAAAAAAAAAAAAAAAAAAAAAAE3CBPdmVyYWxsIHN0YXR1cyBvZiBxdWV1ZSAoYm90aCBmcmVlICsgYWZmaW5pdHkgZW50cmllcyksRnJlZUVudHJpZXMBAP0MBAAEYQEgUHJpb3JpdHkgcXVldWUgZm9yIGFsbCBvcmRlcnMgd2hpY2ggZG9uJ3QgeWV0IChvciBub3QgYW55IG1vcmUpIGhhdmUgYW55IGNvcmUgYWZmaW5pdHkuPEFmZmluaXR5RW50cmllcwEBBAUFCP0MBAAESQEgUXVldWUgZW50cmllcyB0aGF0IGFyZSBjdXJyZW50bHkgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIGNvcmUgZHVlIHRvIGNvcmUgYWZmaW5pdHkuHFJldmVudWUBAAkNBAAE/CBLZWVwcyB0cmFjayBvZiBhY2N1bXVsYXRlZCByZXZlbnVlIGZyb20gb24gZGVtYW5kIG9yZGVyIHNhbGVzLgEJBgEhCAxMVHJhZmZpY0RlZmF1bHRWYWx1ZZUHQAAAZKeztuANAAAAAAAAAAAEzCBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHNwb3QgdHJhZmZpYyBtdWx0aXBsaWVyLlBNYXhIaXN0b3JpY2FsUmV2ZW51ZRAQoAAAAAjUIFRoZSBtYXhpbXVtIG51bWJlciBvZiBibG9ja3Mgc29tZSBoaXN0b3JpY2FsIHJldmVudWVgIGluZm9ybWF0aW9uIHN0b3JlZCBmb3IuIFBhbGxldElkIQsgcHkvb25kbWQEtCBJZGVudGlmaWVyIGZvciB0aGUgaW50ZXJuYWwgcmV2ZW51ZSBiYWxhbmNlLgERDTgAaENvcmV0aW1lQXNzaWdubWVudFByb3ZpZGVyAWhDb3JldGltZUFzc2lnbm1lbnRQcm92aWRlcgg0Q29yZVNjaGVkdWxlcwABBAQVDRkNBAAQbCBTY2hlZHVsZWQgYXNzaWdubWVudCBzZXRzLgBtASBBc3NpZ25tZW50cyBhcyBvZiB0aGUgZ2l2ZW4gYmxvY2sgbnVtYmVyLiBUaGV5IHdpbGwgZ28gaW50byBzdGF0ZSBvbmNlIHRoZSBibG9jayBudW1iZXIgaXPQIHJlYWNoZWQgKGFuZCByZXBsYWNlIHdoYXRldmVyIHdhcyBpbiB0aGVyZSBiZWZvcmUpLjxDb3JlRGVzY3JpcHRvcnMBAQQEBQgdDQgAABCgIEFzc2lnbm1lbnRzIHdoaWNoIGFyZSBjdXJyZW50bHkgYWN0aXZlLgBpASBUaGV5IHdpbGwgYmUgcGlja2VkIGZyb20gYFBlbmRpbmdBc3NpZ25tZW50c2Agb25jZSB3ZSByZWFjaCB0aGUgc2NoZWR1bGVkIGJsb2NrIG51bWJlciBpblggYFBlbmRpbmdBc3NpZ25tZW50c2AuAAAAAT0NOQAkUmVnaXN0cmFyASRSZWdpc3RyYXIMLFBlbmRpbmdTd2FwAAEEBZECkQIEAARkIFBlbmRpbmcgc3dhcCBvcGVyYXRpb25zLhRQYXJhcwABBAWRAkENBAAQBQEgQW1vdW50IGhlbGQgb24gZGVwb3NpdCBmb3IgZWFjaCBwYXJhIGFuZCB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yLgBxASBUaGUgZ2l2ZW4gYWNjb3VudCBJRCBpcyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGNvZGUgYW5kIGluaXRpYWwgaGVhZCBkYXRhLCBidXQgbWF5VQEgb25seSBkbyBzbyBpZiBpdCBpc24ndCB5ZXQgcmVnaXN0ZXJlZC4gKEFmdGVyIHRoYXQsIGl0J3MgdXAgdG8gZ292ZXJuYW5jZSB0byBkbyBzby4pOE5leHRGcmVlUGFyYUlkAQCRAhAAAAAABGAgVGhlIG5leHQgZnJlZSBgUGFyYUlkYC4BDQYBJQgILFBhcmFEZXBvc2l0GEAAQOWcMBIAAAAAAAAAAAAACNQgVGhlIGRlcG9zaXQgdG8gYmUgcGFpZCB0byBydW4gYSBvbi1kZW1hbmQgcGFyYWNoYWluLj0BIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGNvc3QgZm9yIHN0b3JpbmcgdGhlIGdlbmVzaXMgaGVhZCBhbmQgdmFsaWRhdGlvbiBjb2RlLkhEYXRhRGVwb3NpdFBlckJ5dGUYQIDw+gIAAAAAAAAAAAAAAAAExCBUaGUgZGVwb3NpdCB0byBiZSBwYWlkIHBlciBieXRlIHN0b3JlZCBvbiBjaGFpbi4BRQ08ABRTbG90cwEUU2xvdHMEGExlYXNlcwEBBAWRAkkNBABAFQEgQW1vdW50cyBoZWxkIG9uIGRlcG9zaXQgZm9yIGVhY2ggKHBvc3NpYmx5IGZ1dHVyZSkgbGVhc2VkIHBhcmFjaGFpbi4AYQEgVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGl0cyBiZWhhbGYgYnkgYW55IGFjY291bnQgYXQgYW55IHRpbWUgaXMgdGhlIG1heGltdW0gb2YgdGhlKQEgc2Vjb25kIHZhbHVlcyBvZiB0aGUgaXRlbXMgaW4gdGhpcyBsaXN0IHdob3NlIGZpcnN0IHZhbHVlIGlzIHRoZSBhY2NvdW50LgBhASBUaGUgZmlyc3QgaXRlbSBpbiB0aGUgbGlzdCBpcyB0aGUgYW1vdW50IGxvY2tlZCBmb3IgdGhlIGN1cnJlbnQgTGVhc2UgUGVyaW9kLiBGb2xsb3dpbmewIGl0ZW1zIGFyZSBmb3IgdGhlIHN1YnNlcXVlbnQgbGVhc2UgcGVyaW9kcy4AYQEgVGhlIGRlZmF1bHQgdmFsdWUgKGFuIGVtcHR5IGxpc3QpIGltcGxpZXMgdGhhdCB0aGUgcGFyYWNoYWluIG5vIGxvbmdlciBleGlzdHMgKG9yIG5ldmVytCBleGlzdGVkKSBhcyBmYXIgYXMgdGhpcyBwYWxsZXQgaXMgY29uY2VybmVkLgBRASBJZiBhIHBhcmFjaGFpbiBkb2Vzbid0IGV4aXN0ICp5ZXQqIGJ1dCBpcyBzY2hlZHVsZWQgdG8gZXhpc3QgaW4gdGhlIGZ1dHVyZSwgdGhlbiBpdGEBIHdpbGwgYmUgbGVmdC1wYWRkZWQgd2l0aCBvbmUgb3IgbW9yZSBgTm9uZWBzIHRvIGRlbm90ZSB0aGUgZmFjdCB0aGF0IG5vdGhpbmcgaXMgaGVsZCBvbl0BIGRlcG9zaXQgZm9yIHRoZSBub24tZXhpc3RlbnQgY2hhaW4gY3VycmVudGx5LCBidXQgaXMgaGVsZCBhdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUuANwgSXQgaXMgaWxsZWdhbCBmb3IgYSBgTm9uZWAgdmFsdWUgdG8gdHJhaWwgaW4gdGhlIGxpc3QuAREGASkICCxMZWFzZVBlcmlvZBAQACcGAATcIFRoZSBudW1iZXIgb2YgYmxvY2tzIG92ZXIgd2hpY2ggYSBzaW5nbGUgcGVyaW9kIGxhc3RzLixMZWFzZU9mZnNldBAQAAAAAATUIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRvIG9mZnNldCBlYWNoIGxlYXNlIHBlcmlvZCBieS4BTQ09AEBQYXJhc1N1ZG9XcmFwcGVyAAEVBgAAAVENPgAgQXVjdGlvbnMBIEF1Y3Rpb25zEDhBdWN0aW9uQ291bnRlcgEAEBAAAAAABIwgTnVtYmVyIG9mIGF1Y3Rpb25zIHN0YXJ0ZWQgc28gZmFyLixBdWN0aW9uSW5mbwAAEQEEABT4IEluZm9ybWF0aW9uIHJlbGF0aW5nIHRvIHRoZSBjdXJyZW50IGF1Y3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4ARQEgVGhlIGZpcnN0IGl0ZW0gaW4gdGhlIHR1cGxlIGlzIHRoZSBsZWFzZSBwZXJpb2QgaW5kZXggdGhhdCB0aGUgZmlyc3Qgb2YgdGhlIGZvdXJRASBjb250aWd1b3VzIGxlYXNlIHBlcmlvZHMgb24gYXVjdGlvbiBpcyBmb3IuIFRoZSBzZWNvbmQgaXMgdGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZV0BIGF1Y3Rpb24gd2lsbCAiYmVnaW4gdG8gZW5kIiwgaS5lLiB0aGUgZmlyc3QgYmxvY2sgb2YgdGhlIEVuZGluZyBQZXJpb2Qgb2YgdGhlIGF1Y3Rpb24uPFJlc2VydmVkQW1vdW50cwABBAVVDRgEAAgxASBBbW91bnRzIGN1cnJlbnRseSByZXNlcnZlZCBpbiB0aGUgYWNjb3VudHMgb2YgdGhlIGJpZGRlcnMgY3VycmVudGx5IHdpbm5pbmc4IChzdWItKXJhbmdlcy4cV2lubmluZwABBAUQWQ0EAAxhASBUaGUgd2lubmluZyBiaWRzIGZvciBlYWNoIG9mIHRoZSAxMCByYW5nZXMgYXQgZWFjaCBzYW1wbGUgaW4gdGhlIGZpbmFsIEVuZGluZyBQZXJpb2Qgb2ZJASB0aGUgY3VycmVudCBhdWN0aW9uLiBUaGUgbWFwJ3Mga2V5IGlzIHRoZSAwLWJhc2VkIGluZGV4IGludG8gdGhlIFNhbXBsZSBTaXplLiBUaGUdASBmaXJzdCBzYW1wbGUgb2YgdGhlIGVuZGluZyBwZXJpb2QgaXMgMDsgdGhlIGxhc3QgaXMgYFNhbXBsZSBTaXplIC0gMWAuARkHAS0IEDBFbmRpbmdQZXJpb2QQEEAZAQAEHQEgVGhlIG51bWJlciBvZiBibG9ja3Mgb3ZlciB3aGljaCBhbiBhdWN0aW9uIG1heSBiZSByZXRyb2FjdGl2ZWx5IGVuZGVkLjBTYW1wbGVMZW5ndGgQEBQAAAAM8CBUaGUgbGVuZ3RoIG9mIGVhY2ggc2FtcGxlIHRvIHRha2UgZHVyaW5nIHRoZSBlbmRpbmcgcGVyaW9kLgDUIGBFbmRpbmdQZXJpb2RgIC8gYFNhbXBsZUxlbmd0aGAgPSBUb3RhbCAjIG9mIFNhbXBsZXM4U2xvdFJhbmdlQ291bnQQECQAAAAATExlYXNlUGVyaW9kc1BlclNsb3QQEAgAAAAAAWUNPwAkQ3Jvd2Rsb2FuASRDcm93ZGxvYW4QFEZ1bmRzAAEEBZECaQ0EAARoIEluZm8gb24gYWxsIG9mIHRoZSBmdW5kcy4gTmV3UmFpc2UBAFkMBAAIVQEgVGhlIGZ1bmRzIHRoYXQgaGF2ZSBoYWQgYWRkaXRpb25hbCBjb250cmlidXRpb25zIGR1cmluZyB0aGUgbGFzdCBibG9jay4gVGhpcyBpcyB1c2VkFQEgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHdoaWNoIGZ1bmRzIHNob3VsZCBzdWJtaXQgbmV3IG9yIHVwZGF0ZWQgYmlkcy4wRW5kaW5nc0NvdW50AQAQEAAAAAAEKQEgVGhlIG51bWJlciBvZiBhdWN0aW9ucyB0aGF0IGhhdmUgZW50ZXJlZCBpbnRvIHRoZWlyIGVuZGluZyBwZXJpb2Qgc28gZmFyLjROZXh0RnVuZEluZGV4AQAQEAAAAAAEqCBUcmFja2VyIGZvciB0aGUgbmV4dCBhdmFpbGFibGUgZnVuZCBpbmRleAEhBwExCAwgUGFsbGV0SWQhCyBweS9jZnVuZAgNASBgUGFsbGV0SWRgIGZvciB0aGUgY3Jvd2Rsb2FuIHBhbGxldC4gQW4gYXBwcm9wcmlhdGUgdmFsdWUgY291bGQgYmVkIGBQYWxsZXRJZCgqYiJweS9jZnVuZCIpYDxNaW5Db250cmlidXRpb24YQAAQpdToAAAAAAAAAAAAAAAIYQEgVGhlIG1pbmltdW0gYW1vdW50IHRoYXQgbWF5IGJlIGNvbnRyaWJ1dGVkIGludG8gYSBjcm93ZGxvYW4uIFNob3VsZCBhbG1vc3QgY2VydGFpbmx5IGJlfCBhdCBsZWFzdCBgRXhpc3RlbnRpYWxEZXBvc2l0YC48UmVtb3ZlS2V5c0xpbWl0EBD0AQAABOQgTWF4IG51bWJlciBvZiBzdG9yYWdlIGtleXMgdG8gcmVtb3ZlIHBlciBleHRyaW5zaWMgY2FsbC4BcQ1AADRBc3NpZ25lZFNsb3RzATRBc3NpZ25lZFNsb3RzHDhQZXJtYW5lbnRTbG90cwABBAWRAhEBBAAEHQEgQXNzaWduZWQgcGVybWFuZW50IHNsb3RzLCB3aXRoIHRoZWlyIHN0YXJ0IGxlYXNlIHBlcmlvZCwgYW5kIGR1cmF0aW9uLkhQZXJtYW5lbnRTbG90Q291bnQBABAQAAAAAATEIE51bWJlciBvZiBhc3NpZ25lZCAoYW5kIGFjdGl2ZSkgcGVybWFuZW50IHNsb3RzLjhUZW1wb3JhcnlTbG90cwABBAWRAnUNBAAEaCBBc3NpZ25lZCB0ZW1wb3Jhcnkgc2xvdHMuSFRlbXBvcmFyeVNsb3RDb3VudAEAEBAAAAAABJAgTnVtYmVyIG9mIGFzc2lnbmVkIHRlbXBvcmFyeSBzbG90cy5gQWN0aXZlVGVtcG9yYXJ5U2xvdENvdW50AQAQEAAAAAAE/CBOdW1iZXIgb2YgYWN0aXZlIHRlbXBvcmFyeSBzbG90cyBpbiBjdXJyZW50IHNsb3QgbGVhc2UgcGVyaW9kLkRNYXhUZW1wb3JhcnlTbG90cwEAEBAAAAAABOQgIFRoZSBtYXggbnVtYmVyIG9mIHRlbXBvcmFyeSBzbG90cyB0aGF0IGNhbiBiZSBhc3NpZ25lZC5ETWF4UGVybWFuZW50U2xvdHMBABAQAAAAAATgIFRoZSBtYXggbnVtYmVyIG9mIHBlcm1hbmVudCBzbG90cyB0aGF0IGNhbiBiZSBhc3NpZ25lZC4BLQcBNQgMeFBlcm1hbmVudFNsb3RMZWFzZVBlcmlvZExlbmd0aBAQGgAAAAT4IFRoZSBudW1iZXIgb2YgbGVhc2UgcGVyaW9kcyBhIHBlcm1hbmVudCBwYXJhY2hhaW4gc2xvdCBsYXN0cy54VGVtcG9yYXJ5U2xvdExlYXNlUGVyaW9kTGVuZ3RoEBABAAAABPggVGhlIG51bWJlciBvZiBsZWFzZSBwZXJpb2RzIGEgdGVtcG9yYXJ5IHBhcmFjaGFpbiBzbG90IGxhc3RzLnhNYXhUZW1wb3JhcnlTbG90UGVyTGVhc2VQZXJpb2QQEAUAAAAEFQEgVGhlIG1heCBudW1iZXIgb2YgdGVtcG9yYXJ5IHNsb3RzIHRvIGJlIHNjaGVkdWxlZCBwZXIgbGVhc2UgcGVyaW9kcy4BeQ1BACBDb3JldGltZQABNQcBOQgIIEJyb2tlcklkEBDtAwAABIggVGhlIFBhcmFJZCBvZiB0aGUgY29yZXRpbWUgY2hhaW4uREJyb2tlclBvdExvY2F0aW9unQKMAQEAbW9kbHB5L2Jyb2tlAAAAAAAAAAAAAAAAAAAAAAAAAAAEhCBUaGUgY29yZXRpbWUgY2hhaW4gcG90IGxvY2F0aW9uLgF9DUIAJFhjbVBhbGxldAEkWGNtUGFsbGV0ODBRdWVyeUNvdW50ZXIBADAgAAAAAAAAAAAEiCBUaGUgbGF0ZXN0IGF2YWlsYWJsZSBxdWVyeSBpbmRleC4cUXVlcmllcwABBAIwgQ0EAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuKEFzc2V0VHJhcHMBAQQGNBAQAAAAABBoIFRoZSBleGlzdGluZyBhc3NldCB0cmFwcy4AYQEgS2V5IGlzIHRoZSBibGFrZTIgMjU2IGhhc2ggb2YgKG9yaWdpbiwgdmVyc2lvbmVkIGBBc3NldHNgKSBwYWlyLiBWYWx1ZSBpcyB0aGUgbnVtYmVyIG9mHQEgdGltZXMgdGhpcyBwYWlyIGhhcyBiZWVuIHRyYXBwZWQgKHVzdWFsbHkganVzdCAxIGlmIGl0IGV4aXN0cyBhdCBhbGwpLjhTYWZlWGNtVmVyc2lvbgAAEAQACGEBIERlZmF1bHQgdmVyc2lvbiB0byBlbmNvZGUgWENNIHdoZW4gbGF0ZXN0IHZlcnNpb24gb2YgZGVzdGluYXRpb24gaXMgdW5rbm93bi4gSWYgYE5vbmVgLD0BIHRoZW4gdGhlIGRlc3RpbmF0aW9ucyB3aG9zZSBYQ00gdmVyc2lvbiBpcyB1bmtub3duIGFyZSBjb25zaWRlcmVkIHVucmVhY2hhYmxlLkBTdXBwb3J0ZWRWZXJzaW9uAAEIBQKVDRAEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuQFZlcnNpb25Ob3RpZmllcnMAAQgFApUNMAQABAUBIEFsbCBsb2NhdGlvbnMgdGhhdCB3ZSBoYXZlIHJlcXVlc3RlZCB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMgZnJvbS5QVmVyc2lvbk5vdGlmeVRhcmdldHMAAQgFApUNmQ0EAAhxASBUaGUgdGFyZ2V0IGxvY2F0aW9ucyB0aGF0IGFyZSBzdWJzY3JpYmVkIHRvIG91ciB2ZXJzaW9uIGNoYW5nZXMsIGFzIHdlbGwgYXMgdGhlIG1vc3QgcmVjZW50lCBvZiBvdXIgdmVyc2lvbnMgd2UgaW5mb3JtZWQgdGhlbSBvZi5UVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQCdDQQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uQEN1cnJlbnRNaWdyYXRpb24AAKkNBAAEnCBUaGUgY3VycmVudCBtaWdyYXRpb24ncyBzdGFnZSwgaWYgYW55LlRSZW1vdGVMb2NrZWRGdW5naWJsZXMAAQwFAgKxDbUNBAAE8CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIGEgcmVtb3RlIGNoYWluLjxMb2NrZWRGdW5naWJsZXMAAQQCAMUNBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uVFhjbUV4ZWN1dGlvblN1c3BlbmRlZAEAIAQABLQgR2xvYmFsIHN1c3BlbnNpb24gc3RhdGUgb2YgdGhlIFhDTSBleGVjdXRvci48U2hvdWxkUmVjb3JkWGNtAQAgBAAcWQEgV2hldGhlciBvciBub3QgaW5jb21pbmcgWENNcyAoYm90aCBleGVjdXRlZCBsb2NhbGx5IGFuZCByZWNlaXZlZCkgc2hvdWxkIGJlIHJlY29yZGVkLsQgT25seSBvbmUgWENNIHByb2dyYW0gd2lsbCBiZSByZWNvcmRlZCBhdCBhIHRpbWUuKQEgVGhpcyBpcyBtZWFudCB0byBiZSB1c2VkIGluIHJ1bnRpbWUgQVBJcywgYW5kIGl0J3MgYWR2aXNlZCBpdCBzdGF5cyBmYWxzZQ0BIGZvciBhbGwgb3RoZXIgdXNlIGNhc2VzLCBzbyBhcyB0byBub3QgZGVncmFkZSByZWd1bGFyIHBlcmZvcm1hbmNlLgBZASBPbmx5IHJlbGV2YW50IGlmIHRoaXMgcGFsbGV0IGlzIGJlaW5nIHVzZWQgYXMgdGhlIFtgeGNtX2V4ZWN1dG9yOjp0cmFpdHM6OlJlY29yZFhjbWBdyCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgWENNIGV4ZWN1dG9yIGNvbmZpZ3VyYXRpb24uLFJlY29yZGVkWGNtAADRBgQAGEkBIElmIFtgU2hvdWxkUmVjb3JkWGNtYF0gaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGxhc3QgWENNIHByb2dyYW0gZXhlY3V0ZWQgbG9jYWxseVQgd2lsbCBiZSBzdG9yZWQgaGVyZS4pASBSdW50aW1lIEFQSXMgY2FuIGZldGNoIHRoZSBYQ00gdGhhdCB3YXMgZXhlY3V0ZWQgYnkgYWNjZXNzaW5nIHRoaXMgdmFsdWUuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4BSQcBPQgAAdENYwAwTWVzc2FnZVF1ZXVlATBNZXNzYWdlUXVldWUMMEJvb2tTdGF0ZUZvcgEBBAWJB9UNdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMwgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBhbmQgbGFzdCAobm9uLWVtcHR5KSBwYWdlcy4sU2VydmljZUhlYWQAAIkHBAAEvCBUaGUgb3JpZ2luIGF0IHdoaWNoIHdlIHNob3VsZCBiZWdpbiBzZXJ2aWNpbmcuFFBhZ2VzAAEIBQXhDeUNBAAEiCBUaGUgbWFwIG9mIHBhZ2UgaW5kaWNlcyB0byBwYWdlcy4BhQcBRQgQIEhlYXBTaXplEBAAAAIAFD0BIFRoZSBzaXplIG9mIHRoZSBwYWdlOyB0aGlzIGltcGxpZXMgdGhlIG1heGltdW0gbWVzc2FnZSBzaXplIHdoaWNoIGNhbiBiZSBzZW50LgBZASBBIGdvb2QgdmFsdWUgZGVwZW5kcyBvbiB0aGUgZXhwZWN0ZWQgbWVzc2FnZSBzaXplcywgdGhlaXIgd2VpZ2h0cywgdGhlIHdlaWdodCB0aGF0IGlzXQEgYXZhaWxhYmxlIGZvciBwcm9jZXNzaW5nIHRoZW0gYW5kIHRoZSBtYXhpbWFsIG5lZWRlZCBtZXNzYWdlIHNpemUuIFRoZSBtYXhpbWFsIG1lc3NhZ2URASBzaXplIGlzIHNsaWdodGx5IGxvd2VyIHRoYW4gdGhpcyBhcyBkZWZpbmVkIGJ5IFtgTWF4TWVzc2FnZUxlbk9mYF0uIE1heFN0YWxlEBAwAAAADF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzdGFsZSBwYWdlcyAoaS5lLiBvZiBvdmVyd2VpZ2h0IG1lc3NhZ2VzKSBhbGxvd2VkIGJlZm9yZSBjdWxsaW5nUQEgY2FuIGhhcHBlbi4gT25jZSB0aGVyZSBhcmUgbW9yZSBzdGFsZSBwYWdlcyB0aGFuIHRoaXMsIHRoZW4gaGlzdG9yaWNhbCBwYWdlcyBtYXkgYmX8IGRyb3BwZWQsIGV2ZW4gaWYgdGhleSBjb250YWluIHVucHJvY2Vzc2VkIG92ZXJ3ZWlnaHQgbWVzc2FnZXMuNFNlcnZpY2VXZWlnaHTtB0ABBwCg2yFdEzMzMzMzMzMzGEEBIFRoZSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3KoIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faW5pdGlhbGl6ZWAuAPwgVGhpcyBtYXkgYmUgbGVnaXRpbWF0ZWx5IGBOb25lYCBpbiB0aGUgY2FzZSB0aGF0IHlvdSB3aWxsIGNhbGxdASBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIG1hbnVhbGx5IG9yIHNldCBbYFNlbGY6OklkbGVNYXhTZXJ2aWNlV2VpZ2h0YF0gdG8gaGF2ZVQgaXQgcnVuIGluIGBvbl9pZGxlYC5QSWRsZU1heFNlcnZpY2VXZWlnaHTtB0ABBwCg2yFdEzMzMzMzMzMzFF0BIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgdG8gYmUgdXNlZCBmcm9tIHJlbWFpbmluZyB3ZWlnaHQgYG9uX2lkbGVgIHdoaWNoQQEgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvciBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2lkbGVgLj0BIFVzZWZ1bCBmb3IgcGFyYWNoYWlucyB0byBwcm9jZXNzIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIGJsb2NrIHRoZXkgYXJlIHJlY2VpdmVkLgApASBJZiBgTm9uZWAsIGl0IHdpbGwgbm90IGNhbGwgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBpbiBgb25faWRsZWAuAe0NZAAkQXNzZXRSYXRlASRBc3NldFJhdGUEWENvbnZlcnNpb25SYXRlVG9OYXRpdmUAAQQC6QSVBwQADB0BIE1hcHMgYW4gYXNzZXQgdG8gaXRzIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uIGluIHRoZSBuYXRpdmUgYmFsYW5jZS4ATQEgRS5nLiBgbmF0aXZlX2Ftb3VudCA9IGFzc2V0X2Ftb3VudCAqIENvbnZlcnNpb25SYXRlVG9OYXRpdmU6OjxUPjo6Z2V0KGFzc2V0X2tpbmQpYAGRBwFNCAAB8Q1lACxSb290VGVzdGluZwABmQcBUQgAAGYAFEJlZWZ5ARRCZWVmeRQsQXV0aG9yaXRpZXMBAPUNBAAEcCBUaGUgY3VycmVudCBhdXRob3JpdGllcyBzZXQ4VmFsaWRhdG9yU2V0SWQBADAgAAAAAAAAAAAEdCBUaGUgY3VycmVudCB2YWxpZGF0b3Igc2V0IGlkPE5leHRBdXRob3JpdGllcwEA9Q0EAATsIEF1dGhvcml0aWVzIHNldCBzY2hlZHVsZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBuZXh0IHNlc3Npb24wU2V0SWRTZXNzaW9uAAEEBTAQBAAoUQEgQSBtYXBwaW5nIGZyb20gQkVFRlkgc2V0IElEIHRvIHRoZSBpbmRleCBvZiB0aGUgKm1vc3QgcmVjZW50KiBzZXNzaW9uIGZvciB3aGljaCBpdHNoIG1lbWJlcnMgd2VyZSByZXNwb25zaWJsZS4ARQEgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIHZhbGlkYXRpbmcgZXF1aXZvY2F0aW9uIHByb29mcy4gQW4gZXF1aXZvY2F0aW9uIHByb29mIG11c3RNASBjb250YWlucyBhIGtleS1vd25lcnNoaXAgcHJvb2YgZm9yIGEgZ2l2ZW4gc2Vzc2lvbiwgdGhlcmVmb3JlIHdlIG5lZWQgYSB3YXkgdG8gdGllPQEgdG9nZXRoZXIgc2Vzc2lvbnMgYW5kIEJFRUZZIHNldCBpZHMsIGkuZS4gd2UgbmVlZCB0byB2YWxpZGF0ZSB0aGF0IGEgdmFsaWRhdG9yQQEgd2FzIHRoZSBvd25lciBvZiBhIGdpdmVuIGtleSBvbiBhIGdpdmVuIHNlc3Npb24sIGFuZCB3aGF0IHRoZSBhY3RpdmUgc2V0IElEIHdhc1QgZHVyaW5nIHRoYXQgc2Vzc2lvbi4A3CBUV09YLU5PVEU6IGBWYWxpZGF0b3JTZXRJZGAgaXMgbm90IHVuZGVyIHVzZXIgY29udHJvbC4wR2VuZXNpc0Jsb2NrAQChBAQADNwgQmxvY2sgbnVtYmVyIHdoZXJlIEJFRUZZIGNvbnNlbnN1cyBpcyBlbmFibGVkL3N0YXJ0ZWQuaQEgQnkgY2hhbmdpbmcgdGhpcyAodGhyb3VnaCBwcml2aWxlZ2VkIGBzZXRfbmV3X2dlbmVzaXMoKWApLCBCRUVGWSBjb25zZW5zdXMgaXMgZWZmZWN0aXZlbHmsIHJlc3RhcnRlZCBmcm9tIHRoZSBuZXdseSBzZXQgYmxvY2sgbnVtYmVyLgGdBwAMOE1heEF1dGhvcml0aWVzEBCghgEABNQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGF1dGhvcml0aWVzIHRoYXQgY2FuIGJlIGFkZGVkLjRNYXhOb21pbmF0b3JzEBBAAAAABNQgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5vbWluYXRvcnMgZm9yIGVhY2ggdmFsaWRhdG9yLlhNYXhTZXRJZFNlc3Npb25FbnRyaWVzMCAMAAAAAAAAABg5ASBUaGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyB0byBrZWVwIGluIHRoZSBzZXQgaWQgdG8gc2Vzc2lvbiBpbmRleCBtYXBwaW5nLgAxASBTaW5jZSB0aGUgYFNldElkU2Vzc2lvbmAgbWFwIGlzIG9ubHkgdXNlZCBmb3IgdmFsaWRhdGluZyBlcXVpdm9jYXRpb25zIHRoaXMpASB2YWx1ZSBzaG91bGQgcmVsYXRlIHRvIHRoZSBib25kaW5nIGR1cmF0aW9uIG9mIHdoYXRldmVyIHN0YWtpbmcgc3lzdGVtIGlzNQEgYmVpbmcgdXNlZCAoaWYgYW55KS4gSWYgZXF1aXZvY2F0aW9uIGhhbmRsaW5nIGlzIG5vdCBlbmFibGVkIHRoZW4gdGhpcyB2YWx1ZTQgY2FuIGJlIHplcm8uAf0NyAAMTW1yAQxNbXIMIFJvb3RIYXNoAQA0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFggTGF0ZXN0IE1NUiBSb290IGhhc2guOE51bWJlck9mTGVhdmVzAQAwIAAAAAAAAAAABLAgQ3VycmVudCBzaXplIG9mIHRoZSBNTVIgKG51bWJlciBvZiBsZWF2ZXMpLhROb2RlcwABBAYwNAQAEIAgSGFzaGVzIG9mIHRoZSBub2RlcyBpbiB0aGUgTU1SLgAtASBOb3RlIHRoaXMgY29sbGVjdGlvbiBvbmx5IGNvbnRhaW5zIE1NUiBwZWFrcywgdGhlIGlubmVyIG5vZGVzIChhbmQgbGVhdmVzKbwgYXJlIHBydW5lZCBhbmQgb25seSBzdG9yZWQgaW4gdGhlIE9mZmNoYWluIERCLgAAAADJADBCZWVmeU1tckxlYWYBMEJlZWZ5TW1yTGVhZghAQmVlZnlBdXRob3JpdGllcwEAAQ6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoCBEZXRhaWxzIG9mIGN1cnJlbnQgQkVFRlkgYXV0aG9yaXR5IHNldC5QQmVlZnlOZXh0QXV0aG9yaXRpZXMBAAEOsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJQgRGV0YWlscyBvZiBuZXh0IEJFRUZZIGF1dGhvcml0eSBzZXQuAFEBIFRoaXMgc3RvcmFnZSBlbnRyeSBpcyB1c2VkIGFzIGNhY2hlIGZvciBjYWxscyB0byBgdXBkYXRlX2JlZWZ5X25leHRfYXV0aG9yaXR5X3NldGAuAAAAAMoAQElkZW50aXR5TWlncmF0b3IAAdEHAVUIAAD4AATNAYkBeQMFDiRIQ2hlY2tOb25aZXJvU2VuZGVyCQ74QENoZWNrU3BlY1ZlcnNpb24NDhA4Q2hlY2tUeFZlcnNpb24RDhAwQ2hlY2tHZW5lc2lzFQ40OENoZWNrTW9ydGFsaXR5GQ40KENoZWNrTm9uY2UhDvgsQ2hlY2tXZWlnaHQlDvhgQ2hhcmdlVHJhbnNhY3Rpb25QYXltZW50KQ74RENoZWNrTWV0YWRhdGFIYXNoLQ4VATUOWBBDb3JlDBx2ZXJzaW9uAIUIBJAgUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVudGltZS40ZXhlY3V0ZV9ibG9jawQUYmxvY2s5DvgEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay5AaW5pdGlhbGl6ZV9ibG9jawQYaGVhZGVypQFFDgRBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuBCEBIFRoZSBgQ29yZWAgcnVudGltZSBhcGkgdGhhdCBldmVyeSBTdWJzdHJhdGUgcnVudGltZSBuZWVkcyB0byBpbXBsZW1lbnQuIE1ldGFkYXRhDCBtZXRhZGF0YQBJDgSMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS5MbWV0YWRhdGFfYXRfdmVyc2lvbgQcdmVyc2lvbhBNDhCkIFJldHVybnMgdGhlIG1ldGFkYXRhIGF0IGEgZ2l2ZW4gdmVyc2lvbi4ABQEgSWYgdGhlIGdpdmVuIGB2ZXJzaW9uYCBpc24ndCBzdXBwb3J0ZWQsIHRoaXMgd2lsbCByZXR1cm4gYE5vbmVgLnUBIFVzZSBbYFNlbGY6Om1ldGFkYXRhX3ZlcnNpb25zYF0gdG8gZmluZCBvdXQgYWJvdXQgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuRG1ldGFkYXRhX3ZlcnNpb25zAHEBDKQgUmV0dXJucyB0aGUgc3VwcG9ydGVkIG1ldGFkYXRhIHZlcnNpb25zLgDAIFRoaXMgY2FuIGJlIHVzZWQgdG8gY2FsbCBgbWV0YWRhdGFfYXRfdmVyc2lvbmAuBAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLjBCbG9ja0J1aWxkZXIQPGFwcGx5X2V4dHJpbnNpYwQkZXh0cmluc2ljPQ5RDhBsIEFwcGx5IHRoZSBnaXZlbiBleHRyaW5zaWMuADkBIFJldHVybnMgYW4gaW5jbHVzaW9uIG91dGNvbWUgd2hpY2ggc3BlY2lmaWVzIGlmIHRoaXMgZXh0cmluc2ljIGlzIGluY2x1ZGVkIGluTCB0aGlzIGJsb2NrIG9yIG5vdC44ZmluYWxpemVfYmxvY2sApQEEaCBGaW5pc2ggdGhlIGN1cnJlbnQgYmxvY2suTGluaGVyZW50X2V4dHJpbnNpY3MEIGluaGVyZW50YQ5BDgQ9ASBHZW5lcmF0ZSBpbmhlcmVudCBleHRyaW5zaWNzLiBUaGUgaW5oZXJlbnQgZGF0YSB3aWxsIHZhcnkgZnJvbSBjaGFpbiB0byBjaGFpbi48Y2hlY2tfaW5oZXJlbnRzCBRibG9jazkOEGRhdGFhDnEOBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgRxASBUaGUgYEJsb2NrQnVpbGRlcmAgYXBpIHRyYWl0IHRoYXQgcHJvdmlkZXMgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkgZm9yIGJ1aWxkaW5nIGEgYmxvY2suWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2V1Dgh0eD0OKGJsb2NrX2hhc2g0eQ4kaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgRNASBUaGUgYFRhZ2dlZFRyYW5zYWN0aW9uUXVldWVgIGFwaSB0cmFpdCBmb3IgaW50ZXJmZXJpbmcgd2l0aCB0aGUgdHJhbnNhY3Rpb24gcXVldWUuRE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlcqUB+ATIIFN0YXJ0cyB0aGUgb2ZmLWNoYWluIHRhc2sgZm9yIGdpdmVuIGJsb2NrIGhlYWRlci4EZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS40UGFyYWNoYWluSG9zdHwodmFsaWRhdG9ycwDtCwRwIEdldCB0aGUgY3VycmVudCB2YWxpZGF0b3JzLkB2YWxpZGF0b3JfZ3JvdXBzAIEODGUBIFJldHVybnMgdGhlIHZhbGlkYXRvciBncm91cHMgYW5kIHJvdGF0aW9uIGluZm8gbG9jYWxpemVkIGJhc2VkIG9uIHRoZSBoeXBvdGhldGljYWwgY2hpbGRhASAgb2YgYSBibG9jayB3aG9zZSBzdGF0ZSAgdGhpcyBpcyBpbnZva2VkIG9uLiBOb3RlIHRoYXQgYG5vd2AgaW4gdGhlIGBHcm91cFJvdGF0aW9uSW5mb2DQIHNob3VsZCBiZSB0aGUgc3VjY2Vzc29yIG9mIHRoZSBudW1iZXIgb2YgdGhlIGJsb2NrLkhhdmFpbGFiaWxpdHlfY29yZXMAiQ4INQEgWWllbGRzIGluZm9ybWF0aW9uIG9uIGFsbCBhdmFpbGFiaWxpdHkgY29yZXMgYXMgcmVsZXZhbnQgdG8gdGhlIGNoaWxkIGJsb2NrLj0BIENvcmVzIGFyZSBlaXRoZXIgZnJlZSBvciBvY2N1cGllZC4gRnJlZSBjb3JlcyBjYW4gaGF2ZSBwYXJhcyBhc3NpZ25lZCB0byB0aGVtLmRwZXJzaXN0ZWRfdmFsaWRhdGlvbl9kYXRhCBxwYXJhX2lkkQIoYXNzdW1wdGlvbqEOpQ4UaQEgWWllbGRzIHRoZSBwZXJzaXN0ZWQgdmFsaWRhdGlvbiBkYXRhIGZvciB0aGUgZ2l2ZW4gYFBhcmFJZGAgYWxvbmcgd2l0aCBhbiBhc3N1bXB0aW9uIHRoYXTYIHNob3VsZCBiZSB1c2VkIGlmIHRoZSBwYXJhIGN1cnJlbnRseSBvY2N1cGllcyBhIGNvcmUuAEUBIFJldHVybnMgYE5vbmVgIGlmIGVpdGhlciB0aGUgcGFyYSBpcyBub3QgcmVnaXN0ZXJlZCBvciB0aGUgYXNzdW1wdGlvbiBpcyBgRnJlZWRgmCBhbmQgdGhlIHBhcmEgYWxyZWFkeSBvY2N1cGllcyBhIGNvcmUuXGFzc3VtZWRfdmFsaWRhdGlvbl9kYXRhCBxwYXJhX2lkkQKcZXhwZWN0ZWRfcGVyc2lzdGVkX3ZhbGlkYXRpb25fZGF0YV9oYXNoNK0ODGkBIFJldHVybnMgdGhlIHBlcnNpc3RlZCB2YWxpZGF0aW9uIGRhdGEgZm9yIHRoZSBnaXZlbiBgUGFyYUlkYCBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5ndQEgdmFsaWRhdGlvbiBjb2RlIGhhc2guIEluc3RlYWQgb2YgYWNjZXB0aW5nIGFzc3VtcHRpb24gYWJvdXQgdGhlIHBhcmEsIG1hdGNoZXMgdGhlIHZhbGlkYXRpb24pASBkYXRhIGhhc2ggYWdhaW5zdCBhbiBleHBlY3RlZCBvbmUgYW5kIHlpZWxkcyBgTm9uZWAgaWYgdGhleSdyZSBub3QgZXF1YWwuYGNoZWNrX3ZhbGlkYXRpb25fb3V0cHV0cwgccGFyYV9pZJECHG91dHB1dHOVBSAEFQEgQ2hlY2tzIGlmIHRoZSBnaXZlbiB2YWxpZGF0aW9uIG91dHB1dHMgcGFzcyB0aGUgYWNjZXB0YW5jZSBjcml0ZXJpYS5cc2Vzc2lvbl9pbmRleF9mb3JfY2hpbGQAEAzwIFJldHVybnMgdGhlIHNlc3Npb24gaW5kZXggZXhwZWN0ZWQgYXQgYSBjaGlsZCBvZiB0aGUgYmxvY2suANAgVGhpcyBjYW4gYmUgdXNlZCB0byBpbnN0YW50aWF0ZSBhIGBTaWduaW5nQ29udGV4dGAuPHZhbGlkYXRpb25fY29kZQgccGFyYV9pZJECKGFzc3VtcHRpb26hDqkFEFUBIEZldGNoIHRoZSB2YWxpZGF0aW9uIGNvZGUgdXNlZCBieSBhIHBhcmEsIG1ha2luZyB0aGUgZ2l2ZW4gYE9jY3VwaWVkQ29yZUFzc3VtcHRpb25gLgBFASBSZXR1cm5zIGBOb25lYCBpZiBlaXRoZXIgdGhlIHBhcmEgaXMgbm90IHJlZ2lzdGVyZWQgb3IgdGhlIGFzc3VtcHRpb24gaXMgYEZyZWVkYJggYW5kIHRoZSBwYXJhIGFscmVhZHkgb2NjdXBpZXMgYSBjb3JlLnhjYW5kaWRhdGVfcGVuZGluZ19hdmFpbGFiaWxpdHkEHHBhcmFfaWSRArUOCF0BIEdldCB0aGUgcmVjZWlwdCBvZiBhIGNhbmRpZGF0ZSBwZW5kaW5nIGF2YWlsYWJpbGl0eS4gVGhpcyByZXR1cm5zIGBTb21lYCBmb3IgYW55IHBhcmFzJQEgYXNzaWduZWQgdG8gb2NjdXBpZWQgY29yZXMgaW4gYGF2YWlsYWJpbGl0eV9jb3Jlc2AgYW5kIGBOb25lYCBvdGhlcndpc2UuQGNhbmRpZGF0ZV9ldmVudHMAuQ4ELQEgR2V0IGEgdmVjdG9yIG9mIGV2ZW50cyBjb25jZXJuaW5nIGNhbmRpZGF0ZXMgdGhhdCBvY2N1cnJlZCB3aXRoaW4gYSBibG9jay4wZG1xX2NvbnRlbnRzBCRyZWNpcGllbnSRAokMBD0BIEdldCBhbGwgdGhlIHBlbmRpbmcgaW5ib3VuZCBtZXNzYWdlcyBpbiB0aGUgZG93bndhcmQgbWVzc2FnZSBxdWV1ZSBmb3IgYSBwYXJhLnhpbmJvdW5kX2hybXBfY2hhbm5lbHNfY29udGVudHMEJHJlY2lwaWVudJECwQ4IZQEgR2V0IHRoZSBjb250ZW50cyBvZiBhbGwgY2hhbm5lbHMgYWRkcmVzc2VkIHRvIHRoZSBnaXZlbiByZWNpcGllbnQuIENoYW5uZWxzIHRoYXQgaGF2ZSBub5AgbWVzc2FnZXMgaW4gdGhlbSBhcmUgYWxzbyBpbmNsdWRlZC5cdmFsaWRhdGlvbl9jb2RlX2J5X2hhc2gEEGhhc2iRBakFBJwgR2V0IHRoZSB2YWxpZGF0aW9uIGNvZGUgZnJvbSBpdHMgaGFzaC44b25fY2hhaW5fdm90ZXMAzQ4EMQEgU2NyYXBlIGRpc3B1dGUgcmVsZXZhbnQgZnJvbSBvbi1jaGFpbiwgYmFja2luZyB2b3RlcyBhbmQgcmVzb2x2ZWQgZGlzcHV0ZXMuMHNlc3Npb25faW5mbwQUaW5kZXgQ0Q4M3CBHZXQgdGhlIHNlc3Npb24gaW5mbyBmb3IgdGhlIGdpdmVuIHNlc3Npb24sIGlmIHN0b3JlZC4AGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDIuaHN1Ym1pdF9wdmZfY2hlY2tfc3RhdGVtZW50CBBzdG105QUkc2lnbmF0dXJldQX4DAEBIFN1Ym1pdHMgYSBQVkYgcHJlLWNoZWNraW5nIHN0YXRlbWVudCBpbnRvIHRoZSB0cmFuc2FjdGlvbiBwb29sLgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi5UcHZmc19yZXF1aXJlX3ByZWNoZWNrAFUMDF0BIFJldHVybnMgY29kZSBoYXNoZXMgb2YgUFZGcyB0aGF0IHJlcXVpcmUgcHJlLWNoZWNraW5nIGJ5IHZhbGlkYXRvcnMgaW4gdGhlIGFjdGl2ZSBzZXQuABkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiAyLlB2YWxpZGF0aW9uX2NvZGVfaGFzaAgccGFyYV9pZJECKGFzc3VtcHRpb26hDtUODIUBIEZldGNoIHRoZSBoYXNoIG9mIHRoZSB2YWxpZGF0aW9uIGNvZGUgdXNlZCBieSBhIHBhcmEsIG1ha2luZyB0aGUgZ2l2ZW4gYE9jY3VwaWVkQ29yZUFzc3VtcHRpb25gLgAZASBOT1RFOiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIHBhcmFjaGFpbiBob3N0IHZlcnNpb24gMi4gZGlzcHV0ZXMA2Q4EeCBSZXR1cm5zIGFsbCBvbmNoYWluIGRpc3B1dGVzLlxzZXNzaW9uX2V4ZWN1dG9yX3BhcmFtcwQ0c2Vzc2lvbl9pbmRleBDhDgS4IFJldHVybnMgZXhlY3V0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBzZXNzaW9uLkR1bmFwcGxpZWRfc2xhc2hlcwDlDghZASBSZXR1cm5zIGEgbGlzdCBvZiB2YWxpZGF0b3JzIHRoYXQgbG9zdCBhIHBhc3Qgc2Vzc2lvbiBkaXNwdXRlIGFuZCBuZWVkIHRvIGJlIHNsYXNoZWQuGQEgTk9URTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBzaW5jZSBwYXJhY2hhaW4gaG9zdCB2ZXJzaW9uIDUuTGtleV9vd25lcnNoaXBfcHJvb2YEMHZhbGlkYXRvcl9pZDkC7Q4IzCBSZXR1cm5zIGEgbWVya2xlIHByb29mIG9mIGEgdmFsaWRhdG9yIHNlc3Npb24ga2V5LhkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiA1LmhzdWJtaXRfcmVwb3J0X2Rpc3B1dGVfbG9zdAg0ZGlzcHV0ZV9wcm9vZv0FTGtleV9vd25lcnNoaXBfcHJvb2bxDvUODCkBIFN1Ym1pdCBhbiB1bnNpZ25lZCBleHRyaW5zaWMgdG8gc2xhc2ggdmFsaWRhdG9ycyB3aG8gbG9zdCBhIGRpc3B1dGUgYWJvdXR8IGEgY2FuZGlkYXRlIG9mIGEgcGFzdCBzZXNzaW9uLhkBIE5PVEU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhdmFpbGFibGUgc2luY2UgcGFyYWNoYWluIGhvc3QgdmVyc2lvbiA1LlRtaW5pbXVtX2JhY2tpbmdfdm90ZXMAEAgNASBHZXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJhY2tpbmcgdm90ZXMgZm9yIGEgcGFyYWNoYWluIGNhbmRpZGF0ZS70IFRoaXMgaXMgYSBzdGFnaW5nIG1ldGhvZCEgRG8gbm90IHVzZSBvbiBwcm9kdWN0aW9uIHJ1bnRpbWVzIUhwYXJhX2JhY2tpbmdfc3RhdGUEBF+RAvkOBOQgUmV0dXJucyB0aGUgc3RhdGUgb2YgcGFyYWNoYWluIGJhY2tpbmcgZm9yIGEgZ2l2ZW4gcGFyYS5QYXN5bmNfYmFja2luZ19wYXJhbXMALQUEYQEgUmV0dXJucyBjYW5kaWRhdGUncyBhY2NlcHRhbmNlIGxpbWl0YXRpb25zIGZvciBhc3luY2hyb25vdXMgYmFja2luZyBmb3IgYSByZWxheSBwYXJlbnQuTGRpc2FibGVkX3ZhbGlkYXRvcnMA6QsE+CBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZGlzYWJsZWQgdmFsaWRhdG9ycyBhdCB0aGUgZ2l2ZW4gYmxvY2suNG5vZGVfZmVhdHVyZXMAaQUITCBHZXQgbm9kZSBmZWF0dXJlcy70IFRoaXMgaXMgYSBzdGFnaW5nIG1ldGhvZCEgRG8gbm90IHVzZSBvbiBwcm9kdWN0aW9uIHJ1bnRpbWVzIVhhcHByb3ZhbF92b3RpbmdfcGFyYW1zAEUFBKQgQXBwcm92YWwgdm90aW5nIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyxjbGFpbV9xdWV1ZQApDwQwIENsYWltIHF1ZXVlfGNhbmRpZGF0ZXNfcGVuZGluZ19hdmFpbGFiaWxpdHkEHHBhcmFfaWSRAjUPBGAgRWxhc3RpYyBzY2FsaW5nIHN1cHBvcnQE3CBUaGUgQVBJIGZvciBxdWVyeWluZyB0aGUgc3RhdGUgb2YgcGFyYWNoYWlucyBvbi1jaGFpbi4gQmVlZnlBcGkcNGJlZWZ5X2dlbmVzaXMAoQQEBQEgUmV0dXJuIHRoZSBibG9jayBudW1iZXIgd2hlcmUgQkVFRlkgY29uc2Vuc3VzIGlzIGVuYWJsZWQvc3RhcnRlZDR2YWxpZGF0b3Jfc2V0ADkPBLggUmV0dXJuIHRoZSBjdXJyZW50IGFjdGl2ZSBCRUVGWSB2YWxpZGF0b3Igc2V0uHN1Ym1pdF9yZXBvcnRfZG91YmxlX3ZvdGluZ191bnNpZ25lZF9leHRyaW5zaWMISGVxdWl2b2NhdGlvbl9wcm9vZqEHPGtleV9vd25lcl9wcm9vZkEP9Q4gRQEgU3VibWl0cyBhbiB1bnNpZ25lZCBleHRyaW5zaWMgdG8gcmVwb3J0IGEgZG91YmxlIHZvdGluZyBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXL8IG11c3QgcHJvdmlkZSB0aGUgZG91YmxlIHZvdGluZyBwcm9vZiBhbmQgYSBrZXkgb3duZXJzaGlwIHByb29m/CAoc2hvdWxkIGJlIG9idGFpbmVkIHVzaW5nIGBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mYCkuIFRoZQUBIGV4dHJpbnNpYyB3aWxsIGJlIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBhY2NlcHRlZCBmb3IgbG9jYWwVASBhdXRob3JzaGlwIChub3QgdG8gYmUgYnJvYWRjYXN0IHRvIHRoZSBuZXR3b3JrKS4gVGhpcyBtZXRob2QgcmV0dXJucwkBIGBOb25lYCB3aGVuIGNyZWF0aW9uIG9mIHRoZSBleHRyaW5zaWMgZmFpbHMsIGUuZy4gaWYgZXF1aXZvY2F0aW9uBQEgcmVwb3J0aW5nIGlzIGRpc2FibGVkIGZvciB0aGUgZ2l2ZW4gcnVudGltZSAoaS5lLiB0aGlzIG1ldGhvZCBpcwUBIGhhcmRjb2RlZCB0byByZXR1cm4gYE5vbmVgKS4gT25seSB1c2VmdWwgaW4gYW4gb2ZmY2hhaW4gY29udGV4dC6wc3VibWl0X3JlcG9ydF9mb3JrX3ZvdGluZ191bnNpZ25lZF9leHRyaW5zaWMISGVxdWl2b2NhdGlvbl9wcm9vZkUPPGtleV9vd25lcl9wcm9vZkEP9Q4gPQEgU3VibWl0cyBhbiB1bnNpZ25lZCBleHRyaW5zaWMgdG8gcmVwb3J0IGEgZm9yayB2b3RpbmcgZXF1aXZvY2F0aW9uLiBUaGUgY2FsbGVyQQEgbXVzdCBwcm92aWRlIHRoZSBmb3JrIHZvdGluZyBwcm9vZiAodGhlIGFuY2VzdHJ5IHByb29mIHNob3VsZCBiZSBvYnRhaW5lZCB1c2luZz0BIGBnZW5lcmF0ZV9hbmNlc3RyeV9wcm9vZmApIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2YgKHNob3VsZCBiZSBvYnRhaW5lZCB1c2luZ0EBIGBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mYCkuIFRoZSBleHRyaW5zaWMgd2lsbCBiZSB1bnNpZ25lZCBhbmQgc2hvdWxkIG9ubHlNASBiZSBhY2NlcHRlZCBmb3IgbG9jYWwgYXV0aG9yc2hpcCAobm90IHRvIGJlIGJyb2FkY2FzdCB0byB0aGUgbmV0d29yaykuIFRoaXMgbWV0aG9kKQEgcmV0dXJucyBgTm9uZWAgd2hlbiBjcmVhdGlvbiBvZiB0aGUgZXh0cmluc2ljIGZhaWxzLCBlLmcuIGlmIGVxdWl2b2NhdGlvbgUBIHJlcG9ydGluZyBpcyBkaXNhYmxlZCBmb3IgdGhlIGdpdmVuIHJ1bnRpbWUgKGkuZS4gdGhpcyBtZXRob2QgaXMFASBoYXJkY29kZWQgdG8gcmV0dXJuIGBOb25lYCkuIE9ubHkgdXNlZnVsIGluIGFuIG9mZmNoYWluIGNvbnRleHQu0HN1Ym1pdF9yZXBvcnRfZnV0dXJlX2Jsb2NrX3ZvdGluZ191bnNpZ25lZF9leHRyaW5zaWMISGVxdWl2b2NhdGlvbl9wcm9vZs0HPGtleV9vd25lcl9wcm9vZkEP9Q4gXQEgU3VibWl0cyBhbiB1bnNpZ25lZCBleHRyaW5zaWMgdG8gcmVwb3J0IGEgZnV0dXJlIGJsb2NrIHZvdGluZyBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXIVASBtdXN0IHByb3ZpZGUgdGhlIGZ1dHVyZSBibG9jayB2b3RpbmcgcHJvb2YgYW5kIGEga2V5IG93bmVyc2hpcCBwcm9vZuwgKHNob3VsZCBiZSBvYnRhaW5lZCB1c2luZyBgZ2VuZXJhdGVfa2V5X293bmVyc2hpcF9wcm9vZmApLhUBIFRoZSBleHRyaW5zaWMgd2lsbCBiZSB1bnNpZ25lZCBhbmQgc2hvdWxkIG9ubHkgYmUgYWNjZXB0ZWQgZm9yIGxvY2FsFQEgYXV0aG9yc2hpcCAobm90IHRvIGJlIGJyb2FkY2FzdCB0byB0aGUgbmV0d29yaykuIFRoaXMgbWV0aG9kIHJldHVybnMJASBgTm9uZWAgd2hlbiBjcmVhdGlvbiBvZiB0aGUgZXh0cmluc2ljIGZhaWxzLCBlLmcuIGlmIGVxdWl2b2NhdGlvbgUBIHJlcG9ydGluZyBpcyBkaXNhYmxlZCBmb3IgdGhlIGdpdmVuIHJ1bnRpbWUgKGkuZS4gdGhpcyBtZXRob2QgaXMFASBoYXJkY29kZWQgdG8gcmV0dXJuIGBOb25lYCkuIE9ubHkgdXNlZnVsIGluIGFuIG9mZmNoYWluIGNvbnRleHQucGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2YIGHNldF9pZDAwYXV0aG9yaXR5X2lkRQJJDywJASBHZW5lcmF0ZXMgYSBwcm9vZiBvZiBrZXkgb3duZXJzaGlwIGZvciB0aGUgZ2l2ZW4gYXV0aG9yaXR5IGluIHRoZfwgZ2l2ZW4gc2V0LiBBbiBleGFtcGxlIHVzYWdlIG9mIHRoaXMgbW9kdWxlIGlzIGNvdXBsZWQgd2l0aCB0aGUFASBzZXNzaW9uIGhpc3RvcmljYWwgbW9kdWxlIHRvIHByb3ZlIHRoYXQgYSBnaXZlbiBhdXRob3JpdHkga2V5IGlzDQEgdGllZCB0byBhIGdpdmVuIHN0YWtpbmcgaWRlbnRpdHkgZHVyaW5nIGEgc3BlY2lmaWMgc2Vzc2lvbi4gUHJvb2ZzEQEgb2Yga2V5IG93bmVyc2hpcCBhcmUgbmVjZXNzYXJ5IGZvciBzdWJtaXR0aW5nIGVxdWl2b2NhdGlvbiByZXBvcnRzLhEBIE5PVEU6IGV2ZW4gdGhvdWdoIHRoZSBBUEkgdGFrZXMgYSBgc2V0X2lkYCBhcyBwYXJhbWV0ZXIgdGhlIGN1cnJlbnQJASBpbXBsZW1lbnRhdGlvbnMgaWdub3JlcyB0aGlzIHBhcmFtZXRlciBhbmQgaW5zdGVhZCByZWxpZXMgb24gdGhpcw0BIG1ldGhvZCBiZWluZyBjYWxsZWQgYXQgdGhlIGNvcnJlY3QgYmxvY2sgaGVpZ2h0LCBpLmUuIGFueSBwb2ludCBhdBUBIHdoaWNoIHRoZSBnaXZlbiBzZXQgaWQgaXMgbGl2ZSBvbi1jaGFpbi4gRnV0dXJlIGltcGxlbWVudGF0aW9ucyB3aWxsDQEgaW5zdGVhZCB1c2UgaW5kZXhlZCBkYXRhIHRocm91Z2ggYW4gb2ZmY2hhaW4gd29ya2VyLCBub3QgcmVxdWlyaW5neCBvbGRlciBzdGF0ZXMgdG8gYmUgYXZhaWxhYmxlLlxnZW5lcmF0ZV9hbmNlc3RyeV9wcm9vZghEcHJldl9ibG9ja19udW1iZXIQXGJlc3Rfa25vd25fYmxvY2tfbnVtYmVyoQRJDwhFASBHZW5lcmF0ZXMgYSBwcm9vZiB0aGF0IHRoZSBgcHJldl9ibG9ja19udW1iZXJgIGlzIHBhcnQgb2YgdGhlIGNhbm9uaWNhbCBjaGFpbiBhdGwgYGJlc3Rfa25vd25fYmxvY2tfbnVtYmVyYC4EgCBBUEkgbmVjZXNzYXJ5IGZvciBCRUVGWSB2b3RlcnMuGE1tckFwaRQgbW1yX3Jvb3QATQ8EjCBSZXR1cm4gdGhlIG9uLWNoYWluIE1NUiByb290IGhhc2guOG1tcl9sZWFmX2NvdW50AFUPBLggUmV0dXJuIHRoZSBudW1iZXIgb2YgTU1SIGJsb2NrcyBpbiB0aGUgY2hhaW4uOGdlbmVyYXRlX3Byb29mCDRibG9ja19udW1iZXJzcQFcYmVzdF9rbm93bl9ibG9ja19udW1iZXKhBFkPCGkBIEdlbmVyYXRlIE1NUiBwcm9vZiBmb3IgYSBzZXJpZXMgb2YgYmxvY2sgbnVtYmVycy4gSWYgYGJlc3Rfa25vd25fYmxvY2tfbnVtYmVyID0gU29tZShuKWAsRQEgdXNlIGhpc3RvcmljYWwgTU1SIHN0YXRlIGF0IGdpdmVuIGJsb2NrIGhlaWdodCBgbmAuIEVsc2UsIHVzZSBjdXJyZW50IE1NUiBzdGF0ZS4wdmVyaWZ5X3Byb29mCBhsZWF2ZXNhDxRwcm9vZmkPbQ8U9CBWZXJpZnkgTU1SIHByb29mIGFnYWluc3Qgb24tY2hhaW4gTU1SIGZvciBhIGJhdGNoIG9mIGxlYXZlcy4AcQEgTm90ZSB0aGlzIGZ1bmN0aW9uIHdpbGwgdXNlIG9uLWNoYWluIE1NUiByb290IGhhc2ggYW5kIGNoZWNrIGlmIHRoZSBwcm9vZiBtYXRjaGVzIHRoZSBoYXNoLm0BIE5vdGUsIHRoZSBsZWF2ZXMgc2hvdWxkIGJlIHNvcnRlZCBzdWNoIHRoYXQgY29ycmVzcG9uZGluZyBsZWF2ZXMgYW5kIGxlYWYgaW5kaWNlcyBoYXZlIHRoZZUBIHNhbWUgcG9zaXRpb24gaW4gYm90aCB0aGUgYGxlYXZlc2AgdmVjdG9yIGFuZCB0aGUgYGxlYWZfaW5kaWNlc2AgdmVjdG9yIGNvbnRhaW5lZCBpbiB0aGUgW0xlYWZQcm9vZl1YdmVyaWZ5X3Byb29mX3N0YXRlbGVzcwwQcm9vdDQYbGVhdmVzYQ8UcHJvb2ZpD20PHAEBIFZlcmlmeSBNTVIgcHJvb2YgYWdhaW5zdCBnaXZlbiByb290IGhhc2ggZm9yIGEgYmF0Y2ggb2YgbGVhdmVzLgD8IE5vdGUgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXF1aXJlIGFueSBvbi1jaGFpbiBzdG9yYWdlIC0gdGhlvCBwcm9vZiBpcyB2ZXJpZmllZCBhZ2FpbnN0IGdpdmVuIE1NUiByb290IGhhc2guAG0BIE5vdGUsIHRoZSBsZWF2ZXMgc2hvdWxkIGJlIHNvcnRlZCBzdWNoIHRoYXQgY29ycmVzcG9uZGluZyBsZWF2ZXMgYW5kIGxlYWYgaW5kaWNlcyBoYXZlIHRoZZUBIHNhbWUgcG9zaXRpb24gaW4gYm90aCB0aGUgYGxlYXZlc2AgdmVjdG9yIGFuZCB0aGUgYGxlYWZfaW5kaWNlc2AgdmVjdG9yIGNvbnRhaW5lZCBpbiB0aGUgW0xlYWZQcm9vZl0EhCBBUEkgdG8gaW50ZXJhY3Qgd2l0aCBNTVIgcGFsbGV0LixCZWVmeU1tckFwaQhMYXV0aG9yaXR5X3NldF9wcm9vZgABDgTcIFJldHVybiB0aGUgY3VycmVudGx5IGFjdGl2ZSBCRUVGWSBhdXRob3JpdHkgc2V0IHByb29mLmBuZXh0X2F1dGhvcml0eV9zZXRfcHJvb2YAAQ4EyCBSZXR1cm4gdGhlIG5leHQvcXVldWVkIEJFRUZZIGF1dGhvcml0eSBzZXQgcHJvb2YuBJAgQVBJIHVzZWZ1bCBmb3IgQkVFRlkgbGlnaHQgY2xpZW50cy4oR3JhbmRwYUFwaRBMZ3JhbmRwYV9hdXRob3JpdGllcwDkGD0BIEdldCB0aGUgY3VycmVudCBHUkFORFBBIGF1dGhvcml0aWVzIGFuZCB3ZWlnaHRzLiBUaGlzIHNob3VsZCBub3QgY2hhbmdlIGV4Y2VwdB0BIGZvciB3aGVuIGNoYW5nZXMgYXJlIHNjaGVkdWxlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZGVsYXkgaGFzIHBhc3NlZC4ANQEgV2hlbiBjYWxsZWQgYXQgYmxvY2sgQiwgaXQgd2lsbCByZXR1cm4gdGhlIHNldCBvZiBhdXRob3JpdGllcyB0aGF0IHNob3VsZCBiZT0BIHVzZWQgdG8gZmluYWxpemUgZGVzY2VuZGFudHMgb2YgdGhpcyBibG9jayAoQisxLCBCKzIsIC4uLikuIFRoZSBibG9jayBCIGl0c2VsZsAgaXMgZmluYWxpemVkIGJ5IHRoZSBhdXRob3JpdGllcyBmcm9tIGJsb2NrIEItMS60c3VibWl0X3JlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2ZRAjxrZXlfb3duZXJfcHJvb2ZBD/UOIBEBIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhbiBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXL4IG11c3QgcHJvdmlkZSB0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2b8IChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmcgYGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2ZgKS4gVGhlBQEgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5IGJlIGFjY2VwdGVkIGZvciBsb2NhbBUBIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCByZXR1cm5zCQEgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LnBnZW5lcmF0ZV9rZXlfb3duZXJzaGlwX3Byb29mCBhzZXRfaWQwMGF1dGhvcml0eV9pZOxJDywJASBHZW5lcmF0ZXMgYSBwcm9vZiBvZiBrZXkgb3duZXJzaGlwIGZvciB0aGUgZ2l2ZW4gYXV0aG9yaXR5IGluIHRoZfwgZ2l2ZW4gc2V0LiBBbiBleGFtcGxlIHVzYWdlIG9mIHRoaXMgbW9kdWxlIGlzIGNvdXBsZWQgd2l0aCB0aGUFASBzZXNzaW9uIGhpc3RvcmljYWwgbW9kdWxlIHRvIHByb3ZlIHRoYXQgYSBnaXZlbiBhdXRob3JpdHkga2V5IGlzDQEgdGllZCB0byBhIGdpdmVuIHN0YWtpbmcgaWRlbnRpdHkgZHVyaW5nIGEgc3BlY2lmaWMgc2Vzc2lvbi4gUHJvb2ZzEQEgb2Yga2V5IG93bmVyc2hpcCBhcmUgbmVjZXNzYXJ5IGZvciBzdWJtaXR0aW5nIGVxdWl2b2NhdGlvbiByZXBvcnRzLhEBIE5PVEU6IGV2ZW4gdGhvdWdoIHRoZSBBUEkgdGFrZXMgYSBgc2V0X2lkYCBhcyBwYXJhbWV0ZXIgdGhlIGN1cnJlbnT8IGltcGxlbWVudGF0aW9ucyBpZ25vcmUgdGhpcyBwYXJhbWV0ZXIgYW5kIGluc3RlYWQgcmVseSBvbiB0aGlzDQEgbWV0aG9kIGJlaW5nIGNhbGxlZCBhdCB0aGUgY29ycmVjdCBibG9jayBoZWlnaHQsIGkuZS4gYW55IHBvaW50IGF0FQEgd2hpY2ggdGhlIGdpdmVuIHNldCBpZCBpcyBsaXZlIG9uLWNoYWluLiBGdXR1cmUgaW1wbGVtZW50YXRpb25zIHdpbGwNASBpbnN0ZWFkIHVzZSBpbmRleGVkIGRhdGEgdGhyb3VnaCBhbiBvZmZjaGFpbiB3b3JrZXIsIG5vdCByZXF1aXJpbmd4IG9sZGVyIHN0YXRlcyB0byBiZSBhdmFpbGFibGUuOGN1cnJlbnRfc2V0X2lkADAEmCBHZXQgY3VycmVudCBHUkFORFBBIGF1dGhvcml0eSBzZXQgaWQuJAEBIEFQSXMgZm9yIGludGVncmF0aW5nIHRoZSBHUkFORFBBIGZpbmFsaXR5IGdhZGdldCBpbnRvIHJ1bnRpbWVzLsAgVGhpcyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgb24gdGhlIHJ1bnRpbWUgc2lkZS4AFQEgVGhpcyBpcyBwcmltYXJpbHkgdXNlZCBmb3IgbmVnb3RpYXRpbmcgYXV0aG9yaXR5LXNldCBjaGFuZ2VzIGZvciB0aGUNASBnYWRnZXQuIEdSQU5EUEEgdXNlcyBhIHNpZ25hbGluZyBtb2RlbCBvZiBjaGFuZ2luZyBhdXRob3JpdHkgc2V0czoxASBjaGFuZ2VzIHNob3VsZCBiZSBzaWduYWxlZCB3aXRoIGEgZGVsYXkgb2YgTiBibG9ja3MsIGFuZCB0aGVuIGF1dG9tYXRpY2FsbHnkIGFwcGxpZWQgaW4gdGhlIHJ1bnRpbWUgYWZ0ZXIgdGhvc2UgTiBibG9ja3MgaGF2ZSBwYXNzZWQuAPwgVGhlIGNvbnNlbnN1cyBwcm90b2NvbCB3aWxsIGNvb3JkaW5hdGUgdGhlIGhhbmRvZmYgZXh0ZXJuYWxseS4cQmFiZUFwaRg0Y29uZmlndXJhdGlvbgBxDwSMIFJldHVybiB0aGUgY29uZmlndXJhdGlvbiBmb3IgQkFCRS5MY3VycmVudF9lcG9jaF9zdGFydACxAQTEIFJldHVybnMgdGhlIHNsb3QgdGhhdCBzdGFydGVkIHRoZSBjdXJyZW50IGVwb2NoLjRjdXJyZW50X2Vwb2NoAHUPBMQgUmV0dXJucyBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIGN1cnJlbnQgZXBvY2guKG5leHRfZXBvY2gAdQ8IAQEgUmV0dXJucyBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIG5leHQgZXBvY2ggKHdoaWNoIHdhcyBhbHJlYWR5XCBwcmV2aW91c2x5IGFubm91bmNlZCkucGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2YIEHNsb3SxATBhdXRob3JpdHlfaWStAXkPLAkBIEdlbmVyYXRlcyBhIHByb29mIG9mIGtleSBvd25lcnNoaXAgZm9yIHRoZSBnaXZlbiBhdXRob3JpdHkgaW4gdGhlDQEgY3VycmVudCBlcG9jaC4gQW4gZXhhbXBsZSB1c2FnZSBvZiB0aGlzIG1vZHVsZSBpcyBjb3VwbGVkIHdpdGggdGhlBQEgc2Vzc2lvbiBoaXN0b3JpY2FsIG1vZHVsZSB0byBwcm92ZSB0aGF0IGEgZ2l2ZW4gYXV0aG9yaXR5IGtleSBpcw0BIHRpZWQgdG8gYSBnaXZlbiBzdGFraW5nIGlkZW50aXR5IGR1cmluZyBhIHNwZWNpZmljIHNlc3Npb24uIFByb29mcxEBIG9mIGtleSBvd25lcnNoaXAgYXJlIG5lY2Vzc2FyeSBmb3Igc3VibWl0dGluZyBlcXVpdm9jYXRpb24gcmVwb3J0cy4JASBOT1RFOiBldmVuIHRob3VnaCB0aGUgQVBJIHRha2VzIGEgYHNsb3RgIGFzIHBhcmFtZXRlciB0aGUgY3VycmVudAkBIGltcGxlbWVudGF0aW9ucyBpZ25vcmVzIHRoaXMgcGFyYW1ldGVyIGFuZCBpbnN0ZWFkIHJlbGllcyBvbiB0aGlzDQEgbWV0aG9kIGJlaW5nIGNhbGxlZCBhdCB0aGUgY29ycmVjdCBibG9jayBoZWlnaHQsIGkuZS4gYW55IHBvaW50IGF08CB3aGljaCB0aGUgZXBvY2ggZm9yIHRoZSBnaXZlbiBzbG90IGlzIGxpdmUgb24tY2hhaW4uIEZ1dHVyZQkBIGltcGxlbWVudGF0aW9ucyB3aWxsIGluc3RlYWQgdXNlIGluZGV4ZWQgZGF0YSB0aHJvdWdoIGFuIG9mZmNoYWlu0CB3b3JrZXIsIG5vdCByZXF1aXJpbmcgb2xkZXIgc3RhdGVzIHRvIGJlIGF2YWlsYWJsZS60c3VibWl0X3JlcG9ydF9lcXVpdm9jYXRpb25fdW5zaWduZWRfZXh0cmluc2ljCEhlcXVpdm9jYXRpb25fcHJvb2ahATxrZXlfb3duZXJfcHJvb2Z9D/UOIBEBIFN1Ym1pdHMgYW4gdW5zaWduZWQgZXh0cmluc2ljIHRvIHJlcG9ydCBhbiBlcXVpdm9jYXRpb24uIFRoZSBjYWxsZXL4IG11c3QgcHJvdmlkZSB0aGUgZXF1aXZvY2F0aW9uIHByb29mIGFuZCBhIGtleSBvd25lcnNoaXAgcHJvb2b8IChzaG91bGQgYmUgb2J0YWluZWQgdXNpbmcgYGdlbmVyYXRlX2tleV9vd25lcnNoaXBfcHJvb2ZgKS4gVGhlBQEgZXh0cmluc2ljIHdpbGwgYmUgdW5zaWduZWQgYW5kIHNob3VsZCBvbmx5IGJlIGFjY2VwdGVkIGZvciBsb2NhbBUBIGF1dGhvcnNoaXAgKG5vdCB0byBiZSBicm9hZGNhc3QgdG8gdGhlIG5ldHdvcmspLiBUaGlzIG1ldGhvZCByZXR1cm5zCQEgYE5vbmVgIHdoZW4gY3JlYXRpb24gb2YgdGhlIGV4dHJpbnNpYyBmYWlscywgZS5nLiBpZiBlcXVpdm9jYXRpb24FASByZXBvcnRpbmcgaXMgZGlzYWJsZWQgZm9yIHRoZSBnaXZlbiBydW50aW1lIChpLmUuIHRoaXMgbWV0aG9kIGlzBQEgaGFyZGNvZGVkIHRvIHJldHVybiBgTm9uZWApLiBPbmx5IHVzZWZ1bCBpbiBhbiBvZmZjaGFpbiBjb250ZXh0LgS4IEFQSSBuZWNlc3NhcnkgZm9yIGJsb2NrIGF1dGhvcnNoaXAgd2l0aCBCQUJFLlRBdXRob3JpdHlEaXNjb3ZlcnlBcGkELGF1dGhvcml0aWVzAMUJBBkBIFJldHJpZXZlIGF1dGhvcml0eSBpZGVudGlmaWVycyBvZiB0aGUgY3VycmVudCBhbmQgbmV4dCBhdXRob3JpdHkgc2V0LhB0IFRoZSBhdXRob3JpdHkgZGlzY292ZXJ5IGFwaS4AUQEgVGhpcyBhcGkgaXMgdXNlZCBieSB0aGUgYGNsaWVudC9hdXRob3JpdHktZGlzY292ZXJ5YCBtb2R1bGUgdG8gcmV0cmlldmUgaWRlbnRpZmllcnOcIG9mIHRoZSBjdXJyZW50IGFuZCBuZXh0IGF1dGhvcml0eSBzZXQuLFNlc3Npb25LZXlzCFRnZW5lcmF0ZV9zZXNzaW9uX2tleXMEEHNlZWStDTgcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuTGRlY29kZV9zZXNzaW9uX2tleXMEHGVuY29kZWQ4gQ8MmCBEZWNvZGUgdGhlIGdpdmVuIHB1YmxpYyBzZXNzaW9uIGtleXMuANwgUmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWMgcmF3IHB1YmxpYyBrZXlzICsga2V5IHR5cGUuBGggU2Vzc2lvbiBrZXlzIHJ1bnRpbWUgYXBpLjxBY2NvdW50Tm9uY2VBcGkENGFjY291bnRfbm9uY2UEHGFjY291bnQAEATAIEdldCBjdXJyZW50IGFjY291bnQgbm9uY2Ugb2YgZ2l2ZW4gYEFjY291bnRJZGAuBIAgVGhlIEFQSSB0byBxdWVyeSBhY2NvdW50IG5vbmNlLlRUcmFuc2FjdGlvblBheW1lbnRBcGkQKHF1ZXJ5X2luZm8IDHV4dD0ODGxlbhCNDwBEcXVlcnlfZmVlX2RldGFpbHMIDHV4dD0ODGxlbhCRDwBMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h0KBgATHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aBAYAABkVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaRA8cXVlcnlfY2FsbF9pbmZvCBBjYWxsiQEMbGVuEI0PBEkBIFF1ZXJ5IGluZm9ybWF0aW9uIG9mIGEgZGlzcGF0Y2ggY2xhc3MsIHdlaWdodCwgYW5kIGZlZSBvZiBhIGdpdmVuIGVuY29kZWQgYENhbGxgLlhxdWVyeV9jYWxsX2ZlZV9kZXRhaWxzCBBjYWxsiQEMbGVuEJEPBLQgUXVlcnkgZmVlIGRldGFpbHMgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC5McXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h0KBgEAQEgUXVlcnkgdGhlIG91dHB1dCBvZiB0aGUgY3VycmVudCBgV2VpZ2h0VG9GZWVgIGdpdmVuIHNvbWUgaW5wdXQuTHF1ZXJ5X2xlbmd0aF90b19mZWUEGGxlbmd0aBAYBAEBIFF1ZXJ5IHRoZSBvdXRwdXQgb2YgdGhlIGN1cnJlbnQgYExlbmd0aFRvRmVlYCBnaXZlbiBzb21lIGlucHV0LgA0WGNtUGF5bWVudEFwaRB8cXVlcnlfYWNjZXB0YWJsZV9wYXltZW50X2Fzc2V0cwQseGNtX3ZlcnNpb24QnQ8UtCBSZXR1cm5zIGEgbGlzdCBvZiBhY2NlcHRhYmxlIHBheW1lbnQgYXNzZXRzLgAwICMgQXJndW1lbnRzAGggKiBgeGNtX3ZlcnNpb25gOiBWZXJzaW9uLkBxdWVyeV94Y21fd2VpZ2h0BBxtZXNzYWdlHQapDxSoIFJldHVybnMgYSB3ZWlnaHQgbmVlZGVkIHRvIGV4ZWN1dGUgYSBYQ00uADAgIyBBcmd1bWVudHMAdCAqIGBtZXNzYWdlYDogYFZlcnNpb25lZFhjbWAuZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodCgUYXNzZXSBB60PGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLkxxdWVyeV9kZWxpdmVyeV9mZWVzCCxkZXN0aW5hdGlvbgkFHG1lc3NhZ2UdBrEPIB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuLHAgQSB0cmFpdCBvZiBYQ00gcGF5bWVudCBBUEkuAKggQVBJIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIG9idGFpbmluZzoAxCAqIHRoZSB3ZWlnaHQgcmVxdWlyZWQgdG8gZXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSwFASAqIGEgbGlzdCBvZiBhY2NlcHRhYmxlIGBBc3NldElkYHMgZm9yIG1lc3NhZ2UgZXhlY3V0aW9uIHBheW1lbnQsAQEgKiB0aGUgY29zdCBvZiB0aGUgd2VpZ2h0IGluIHRoZSBzcGVjaWZpZWQgYWNjZXB0YWJsZSBgQXNzZXRJZGAuoCAqIHRoZSBmZWVzIGZvciBhbiBYQ00gbWVzc2FnZSBkZWxpdmVyeS4A8CBUbyBkZXRlcm1pbmUgdGhlIGV4ZWN1dGlvbiB3ZWlnaHQgb2YgdGhlIGNhbGxzIHJlcXVpcmVkIGZvcnUBIFtgeGNtOjpsYXRlc3Q6Okluc3RydWN0aW9uOjpUcmFuc2FjdGBdIGluc3RydWN0aW9uLCBgVHJhbnNhY3Rpb25QYXltZW50Q2FsbEFwaWAgY2FuIGJlIHVzZWQuJERyeVJ1bkFwaQgwZHJ5X3J1bl9jYWxsCBhvcmlnaW6BAhBjYWxsiQG1DwQ4IERyeSBydW4gY2FsbC4sZHJ5X3J1bl94Y20IPG9yaWdpbl9sb2NhdGlvbgkFDHhjbVEH1Q8EUCBEcnkgcnVuIFhDTSBwcm9ncmFtJLEBIEFQSSBmb3IgZHJ5LXJ1bm5pbmcgZXh0cmluc2ljcyBhbmQgWENNIHByb2dyYW1zIHRvIGdldCB0aGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgZmVlcyBBUEkuAIEBIEFsbCBjYWxscyByZXR1cm4gYSB2ZWN0b3Igb2YgdHVwbGVzIChsb2NhdGlvbiwgeGNtKSB3aGVyZSBlYWNoICJ4Y20iIGlzIGV4ZWN1dGVkIGluICJsb2NhdGlvbiIu5CBJZiB0aGVyZSdzIGxvY2FsIGV4ZWN1dGlvbiwgdGhlIGxvY2F0aW9uIHdpbGwgYmUgIkhlcmUiLh0BIFRoaXMgdmVjdG9yIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBib3RoIGV4ZWN1dGlvbiBhbmQgZGVsaXZlcnkgZmVlcy4AmQEgQ2FsbHMgb3IgWENNcyBtaWdodCBmYWlsIHdoZW4gZXhlY3V0ZWQsIHRoaXMgZG9lc24ndCBtZWFuIHRoZSByZXN1bHQgb2YgdGhlc2UgY2FsbHMgd2lsbCBiZSBhbiBgRXJyYC5lASBJbiB0aG9zZSBjYXNlcywgdGhlcmUgbWlnaHQgc3RpbGwgYmUgYSB2YWxpZCByZXN1bHQsIHdpdGggdGhlIGV4ZWN1dGlvbiBlcnJvciBpbnNpZGUgaXQuZQEgVGhlIG9ubHkgcmVhc29ucyB3aHkgdGhlc2UgY2FsbHMgbWlnaHQgcmV0dXJuIGFuIGVycm9yIGFyZSBsaXN0ZWQgaW4gdGhlIFtgRXJyb3JgXSBlbnVtLlBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb24JBd0PBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4EDQEgQVBJIGZvciB1c2VmdWwgY29udmVyc2lvbnMgYmV0d2VlbiBYQ00gYExvY2F0aW9uYCBhbmQgYEFjY291bnRJZGAuSE5vbWluYXRpb25Qb29sc0FwaSQ8cGVuZGluZ19yZXdhcmRzBAx3aG8AGAQ1ASBSZXR1cm5zIHRoZSBwZW5kaW5nIHJld2FyZHMgZm9yIHRoZSBtZW1iZXIgdGhhdCB0aGUgQWNjb3VudElkIHdhcyBnaXZlbiBmb3IuRHBvaW50c190b19iYWxhbmNlCBxwb29sX2lkEBhwb2ludHMYGAT0IFJldHVybnMgdGhlIGVxdWl2YWxlbnQgYmFsYW5jZSBvZiBgcG9pbnRzYCBmb3IgYSBnaXZlbiBwb29sLkRiYWxhbmNlX3RvX3BvaW50cwgccG9vbF9pZBAkbmV3X2Z1bmRzGBgE/CBSZXR1cm5zIHRoZSBlcXVpdmFsZW50IHBvaW50cyBvZiBgbmV3X2Z1bmRzYCBmb3IgYSBnaXZlbiBwb29sLkhwb29sX3BlbmRpbmdfc2xhc2gEHHBvb2xfaWQQGASwIFJldHVybnMgdGhlIHBlbmRpbmcgc2xhc2ggZm9yIGEgZ2l2ZW4gcG9vbC5QbWVtYmVyX3BlbmRpbmdfc2xhc2gEGG1lbWJlcgAYBMwgUmV0dXJucyB0aGUgcGVuZGluZyBzbGFzaCBmb3IgYSBnaXZlbiBwb29sIG1lbWJlci50cG9vbF9uZWVkc19kZWxlZ2F0ZV9taWdyYXRpb24EHHBvb2xfaWQQICDkIFJldHVybnMgdHJ1ZSBpZiB0aGUgcG9vbCB3aXRoIGBwb29sX2lkYCBuZWVkcyBtaWdyYXRpb24uAEkBIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHRoZSBgcGFsbGV0LW5vbWluYXRpb24tcG9vbHNgIGhhcyBzd2l0Y2hlZCB0byB1c2luZyBzdHJhdGVneUEBIFtgRGVsZWdhdGVTdGFrZWBdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjphZGFwdGVyOjpEZWxlZ2F0ZVN0YWtlKSBidXQgdGhlIHBvb2zoIHN0aWxsIGhhcyBmdW5kcyB0aGF0IHdlcmUgc3Rha2VkIHVzaW5nIHRoZSBvbGRlciBzdHJhdGVneRkBIFtUcmFuc2ZlclN0YWtlXShwYWxsZXRfbm9taW5hdGlvbl9wb29sczo6YWRhcHRlcjo6VHJhbnNmZXJTdGFrZSkuIFVzZYkBIFtgbWlncmF0ZV9wb29sX3RvX2RlbGVnYXRlX3N0YWtlYF0ocGFsbGV0X25vbWluYXRpb25fcG9vbHM6OkNhbGw6Om1pZ3JhdGVfcG9vbF90b19kZWxlZ2F0ZV9zdGFrZSlUIHRvIG1pZ3JhdGUgdGhlIHBvb2wufG1lbWJlcl9uZWVkc19kZWxlZ2F0ZV9taWdyYXRpb24EGG1lbWJlcgAgHCkBIFJldHVybnMgdHJ1ZSBpZiB0aGUgZGVsZWdhdGVkIGZ1bmRzIG9mIHRoZSBwb29sIGBtZW1iZXJgIG5lZWRzIG1pZ3JhdGlvbi4A2CBPbmNlIGEgcG9vbCBoYXMgc3VjY2Vzc2Z1bGx5IG1pZ3JhdGVkIHRvIHRoZSBzdHJhdGVneVUBIFtgRGVsZWdhdGVTdGFrZWBdKHBhbGxldF9ub21pbmF0aW9uX3Bvb2xzOjphZGFwdGVyOjpEZWxlZ2F0ZVN0YWtlKSwgdGhlIGZ1bmRzIG9mIHRoZRkBIG1lbWJlciBjYW4gYmUgbWlncmF0ZWQgZnJvbSBwb29sIGFjY291bnQgdG8gdGhlIG1lbWJlcidzIGFjY291bnQuIFVzZSkBIFtgbWlncmF0ZV9kZWxlZ2F0aW9uYF0ocGFsbGV0X25vbWluYXRpb25fcG9vbHM6OkNhbGw6Om1pZ3JhdGVfZGVsZWdhdGlvbimkIHRvIG1pZ3JhdGUgdGhlIGZ1bmRzIG9mIHRoZSBwb29sIG1lbWJlci5QbWVtYmVyX3RvdGFsX2JhbGFuY2UEDHdobwAYBGUBIFJldHVybnMgdGhlIHRvdGFsIGNvbnRyaWJ1dGlvbiBvZiBhIHBvb2wgbWVtYmVyIGluY2x1ZGluZyBhbnkgYmFsYW5jZSB0aGF0IGlzIHVuYm9uZGluZy4wcG9vbF9iYWxhbmNlBBxwb29sX2lkEBgEnCBUb3RhbCBiYWxhbmNlIGNvbnRyaWJ1dGVkIHRvIHRoZSBwb29sLgT4IFJ1bnRpbWUgYXBpIGZvciBhY2Nlc3NpbmcgaW5mb3JtYXRpb24gYWJvdXQgbm9taW5hdGlvbiBwb29scy4oU3Rha2luZ0FwaQxEbm9taW5hdGlvbnNfcXVvdGEEHGJhbGFuY2UYEAQRASBSZXR1cm5zIHRoZSBub21pbmF0aW9ucyBxdW90YSBmb3IgYSBub21pbmF0b3Igd2l0aCBhIGdpdmVuIGJhbGFuY2UuXGVyYXNfc3Rha2Vyc19wYWdlX2NvdW50CAxlcmEQHGFjY291bnQAEAQ5ASBSZXR1cm5zIHRoZSBwYWdlIGNvdW50IG9mIGV4cG9zdXJlcyBmb3IgYSB2YWxpZGF0b3IgYGFjY291bnRgIGluIGEgZ2l2ZW4gZXJhLjxwZW5kaW5nX3Jld2FyZHMIDGVyYRAcYWNjb3VudAAgBD0BIFJldHVybnMgdHJ1ZSBpZiB2YWxpZGF0b3IgYGFjY291bnRgIGhhcyBwYWdlcyB0byBiZSBjbGFpbWVkIGZvciB0aGUgZ2l2ZW4gZXJhLgA4R2VuZXNpc0J1aWxkZXIMLGJ1aWxkX3N0YXRlBBBqc29uOOUPJGUBIEJ1aWxkIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSBhIEpTT04gYmxvYiBub3QgdXNpbmcgYW55IGRlZmF1bHRzIGFuZCBzdG9yZSBpdCBpbiB0aGUkIHN0b3JhZ2UuAPkBIEluIHRoZSBjYXNlIG9mIGEgRlJBTUUtYmFzZWQgcnVudGltZSwgdGhpcyBmdW5jdGlvbiBkZXNlcmlhbGl6ZXMgdGhlIGZ1bGwgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBmcm9tIHRoZSBnaXZlbiBKU09OIGJsb2IgYW5kWQEgcHV0cyBpdCBpbnRvIHRoZSBzdG9yYWdlLiBJZiB0aGUgcHJvdmlkZWQgSlNPTiBibG9iIGlzIGluY29ycmVjdCBvciBpbmNvbXBsZXRlIG9yIHRoZbQgZGVzZXJpYWxpemF0aW9uIGZhaWxzLCBhbiBlcnJvciBpcyByZXR1cm5lZC4AXQEgUGxlYXNlIG5vdGUgdGhhdCBwcm92aWRlZCBKU09OIGJsb2IgbXVzdCBjb250YWluIGFsbCBgUnVudGltZUdlbmVzaXNDb25maWdgIGZpZWxkcywgbm9cIGRlZmF1bHRzIHdpbGwgYmUgdXNlZC4oZ2V0X3ByZXNldAQIaWTpD60NOGEBIFJldHVybnMgYSBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgaWRlbnRpZmllZCBieRggYGlkYC4APQEgSWYgYGlkYCBpcyBgTm9uZWAgdGhlIGZ1bmN0aW9uIHJldHVybnMgSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZWZhdWx0SQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBzdHJ1Y3Qgb2YgdGhlIHJ1bnRpbWUuIEltcGxlbWVudGF0aW9uIG11c3QgcHJvdmlkZSBkZWZhdWx0YCBgUnVudGltZUdlbmVzaXNDb25maWdgLgAhASBPdGhlcndpc2UgZnVuY3Rpb24gcmV0dXJucyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluLCBuYW1lZFEBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0IGlkZW50aWZpZWQgYnkgYGlkYCwgb3IgYE5vbmVgIGlmIHN1Y2ggcHJlc2V0IGRvZXMgbm90ZQEgZXhpc3RzLiBSZXR1cm5lZCBgVmVjPHU4PmAgY29udGFpbnMgYnl0ZXMgb2YgSlNPTiBibG9iIChwYXRjaCkgd2hpY2ggY29tcHJpc2VzIGEgbGlzdCBvZk0BIChwb3RlbnRpYWxseSBuZXN0ZWQpIGtleS12YWx1ZSBwYWlycyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgY3VzdG9taXppbmcgdGhlIGRlZmF1bHRlASBydW50aW1lIGdlbmVzaXMgY29uZmlnLiBUaGUgcGF0Y2ggc2hhbGwgYmUgbWVyZ2VkIChyZmM3Mzg2KSB3aXRoIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uYQEgb2YgdGhlIGRlZmF1bHQgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIGdlbmVzaXMgY29uZmlnIHRoYXQgY2FuhCBiZSB1c2VkIGluIGBidWlsZF9zdGF0ZWAgbWV0aG9kLjBwcmVzZXRfbmFtZXMA7Q8QUQEgUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgZm9yIGF2YWlsYWJsZSBidWlsdGluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0cy4AYQEgVGhlIHByZXNldHMgZnJvbSB0aGUgbGlzdCBjYW4gYmUgcXVlcmllZCB3aXRoIFtgR2VuZXNpc0J1aWxkZXI6OmdldF9wcmVzZXRgXSBtZXRob2QuIElmAQEgbm8gbmFtZWQgcHJlc2V0cyBhcmUgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWUgdGhlIGxpc3QgaXMgZW1wdHkuBOggQVBJIHRvIGludGVyYWN0IHdpdGggUnVudGltZUdlbmVzaXNDb25maWcgZm9yIHRoZSBydW50aW1liQFU8Q8A",G=A;export{G as default};
|