@parity/product-sdk-descriptors 0.8.0 → 0.10.0
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/chains/paseo-asset-hub/.papi/polkadot-api.json +2 -2
- package/chains/paseo-asset-hub/generated/dist/common-types.d.ts +778 -205
- package/chains/paseo-asset-hub/generated/dist/descriptors-D_6q-TZg.js +25 -0
- package/chains/paseo-asset-hub/generated/dist/index.js +5 -5
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-uABbUf26.js +3 -0
- package/chains/paseo-asset-hub/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub.d.ts +636 -95
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-BDERNxN0.js +3 -0
- package/chains/paseo-bulletin/.papi/polkadot-api.json +1 -1
- package/chains/paseo-bulletin/generated/dist/common-types.d.ts +200 -220
- package/chains/paseo-bulletin/generated/dist/descriptors-YjGUL06H.js +25 -0
- package/chains/paseo-bulletin/generated/dist/index.js +4 -4
- package/chains/paseo-bulletin/generated/dist/metadataTypes-BYRh30V_.js +3 -0
- package/chains/paseo-bulletin/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin.d.ts +179 -179
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin_metadata-CWv0bj9A.js +3 -0
- package/chains/paseo-individuality/.papi/polkadot-api.json +2 -2
- package/chains/paseo-individuality/generated/dist/common-types.d.ts +907 -346
- package/chains/paseo-individuality/generated/dist/descriptors-BV8FuMxu.js +25 -0
- package/chains/paseo-individuality/generated/dist/index.js +5 -5
- package/chains/paseo-individuality/generated/dist/metadataTypes-4OzMJJMF.js +3 -0
- package/chains/paseo-individuality/generated/dist/metadataTypes.d.ts +1 -1
- package/chains/paseo-individuality/generated/dist/paseo_individuality.d.ts +957 -327
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-Be34mrmF.js +3 -0
- package/package.json +1 -1
- package/chains/paseo-asset-hub/generated/dist/descriptors-CimFu30S.js +0 -25
- package/chains/paseo-asset-hub/generated/dist/metadataTypes-Bo4aVwWD.js +0 -3
- package/chains/paseo-asset-hub/generated/dist/paseo_asset_hub_metadata-CWOk3DU-.js +0 -3
- package/chains/paseo-bulletin/generated/dist/descriptors-C-v9L1q4.js +0 -25
- package/chains/paseo-bulletin/generated/dist/metadataTypes-GA7L2eXx.js +0 -3
- package/chains/paseo-bulletin/generated/dist/paseo_bulletin_metadata-B5YIN1Ow.js +0 -3
- package/chains/paseo-individuality/generated/dist/descriptors-SCgI2-0R.js +0 -25
- package/chains/paseo-individuality/generated/dist/metadataTypes-B1qG4QkU.js +0 -3
- package/chains/paseo-individuality/generated/dist/paseo_individuality_metadata-DRo0inTN.js +0 -3
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const binMeta = "bWV0YRBtDQAMKHNwX3J1bnRpbWUwbXVsdGlhZGRyZXNzME11bHRpQWRkcmVzcwgkQWNjb3VudElkAQQwQWNjb3VudEluZGV4ARABFAhJZAQABAEkQWNjb3VudElkAAAAFEluZGV4BAAUATBBY2NvdW50SW5kZXgAAQAMUmF3BAAYARxWZWM8dTg+AAIAJEFkZHJlc3MzMgQACAEgW3U4OyAzMl0AAwAkQWRkcmVzczIwBAAcASBbdTg7IDIwXQAEAAAEDBxzcF9jb3JlGGNyeXB0byxBY2NvdW50SWQzMgAABAAIASBbdTg7IDMyXQAACAAAAyAAAAAMAAwAAAUDABAAAAQAABQAAAYQABgAAAIMABwAAAMUAAAADAAgCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lLFJ1bnRpbWVDYWxsAAGIGFN5c3RlbQQAJAGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTeXN0ZW0sIFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAQAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AAEAJFRpbWVzdGFtcAQAsAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUaW1lc3RhbXAsIFJ1bnRpbWU+AAIANFBhcmFjaGFpbkluZm8EALgByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AAwAgQmFsYW5jZXMEALwBtQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QmFsYW5jZXMsIFJ1bnRpbWU+AAoARE9yaWdpblJlc3RyaWN0aW9uBADUAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9yaWdpblJlc3RyaWN0aW9uLCBSdW50aW1lPgANABhBc3NldHMEANwBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRzLCBSdW50aW1lPgAOACRBc3NldFJhdGUEACkBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEFzc2V0UmF0ZSwgUnVudGltZT4AEABEQ29sbGF0b3JTZWxlY3Rpb24EADEBAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbGxhdG9yU2VsZWN0aW9uLCBSdW50aW1lPgAVABxTZXNzaW9uBAA1AQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgAWACRYY21wUXVldWUEAEEBAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhjbXBRdWV1ZSwgUnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAEUBAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgAfAChDdW11bHVzWGNtBAAZAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgAgADBNZXNzYWdlUXVldWUEAB0DAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AIgAcVXRpbGl0eQQAJQMBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VXRpbGl0eSwgUnVudGltZT4AKAAgTXVsdGlzaWcEAJEDAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpc2lnLCBSdW50aW1lPgApABBTdWRvBACdAwGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdWRvLCBSdW50aW1lPgAqABRQcm94eQQAoQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+ACwAGFBlb3BsZQQArQMBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGVvcGxlLCBSdW50aW1lPgAzABxNb2JSdWxlBAC9AwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNb2JSdWxlLCBSdW50aW1lPgA0AChQcm9vZk9mSW5rBADNAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQcm9vZk9mSW5rLCBSdW50aW1lPgA1ABBHYW1lBAD1AwGlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHYW1lLCBSdW50aW1lPgA3ABRTY29yZQQARQQBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NvcmUsIFJ1bnRpbWU+ADgAKE5mdENyZWRpdHMEAGkEAb0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE5mdENyZWRpdHMsIFJ1bnRpbWU+ADkAIER1bW15RGltBAB1BAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEdW1teURpbSwgUnVudGltZT4AOwAoUGVvcGxlTGl0ZQQAjQQBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGVvcGxlTGl0ZSwgUnVudGltZT4APgAkUmVzb3VyY2VzBAChBAG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZXNvdXJjZXMsIFJ1bnRpbWU+AD8ANENodW5rc01hbmFnZXIEAK0EAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENodW5rc01hbmFnZXIsIFJ1bnRpbWU+AEAAHE1lbWJlcnMEAL0EAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lbWJlcnMsIFJ1bnRpbWU+AEMAHENvaW5hZ2UEAMUEAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvaW5hZ2UsIFJ1bnRpbWU+AEQAPE1lbWJlcnNOb3RpZmllcgQAFQUB0QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TWVtYmVyc05vdGlmaWVyLCBSdW50aW1lPgBFABxBaXJkcm9wBAAtBQGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxBaXJkcm9wLCBSdW50aW1lPgBGABhIb25vdXIEADUFAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhvbm91ciwgUnVudGltZT4ARwBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAEEFAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tNaWdyYXRpb25zLCBSdW50aW1lPgBiAAAkDDBmcmFtZV9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAASwYcmVtYXJrBAEYcmVtYXJrGAEcVmVjPHU4PgAADGhNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLgCIQ2FuIGJlIGV4ZWN1dGVkIGJ5IGV2ZXJ5IGBvcmlnaW5gLjhzZXRfaGVhcF9wYWdlcwQBFHBhZ2VzKAEMdTY0AAEE+FNldCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBXZWJBc3NlbWJseSBlbnZpcm9ubWVudCdzIGhlYXAuIHNldF9jb2RlBAEQY29kZRgBHFZlYzx1OD4AAgRkU2V0IHRoZSBuZXcgcnVudGltZSBjb2RlLlxzZXRfY29kZV93aXRob3V0X2NoZWNrcwQBEGNvZGUYARxWZWM8dTg+AAMQGQFTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUgd2l0aG91dCBkb2luZyBhbnkgY2hlY2tzIG9mIHRoZSBnaXZlbiBgY29kZWAuAFEBTm90ZSB0aGF0IHJ1bnRpbWUgdXBncmFkZXMgd2lsbCBub3QgcnVuIGlmIHRoaXMgaXMgY2FsbGVkIHdpdGggYSBub3QtaW5jcmVhc2luZyBzcGVjIHZlcnNpb24hLHNldF9zdG9yYWdlBAEUaXRlbXMsATRWZWM8S2V5VmFsdWU+AAQEaFNldCBzb21lIGl0ZW1zIG9mIHN0b3JhZ2UuMGtpbGxfc3RvcmFnZQQBEGtleXM0ASBWZWM8S2V5PgAFBHRLaWxsIHNvbWUgaXRlbXMgZnJvbSBzdG9yYWdlLixraWxsX3ByZWZpeAgBGHByZWZpeBgBDEtleQABHHN1YmtleXM4AQx1MzIABhARAUtpbGwgYWxsIHN0b3JhZ2UgaXRlbXMgd2l0aCBhIGtleSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBnaXZlbiBwcmVmaXguADkBKipOT1RFOioqIFdlIHJlbHkgb24gdGhlIFJvb3Qgb3JpZ2luIHRvIHByb3ZpZGUgdXMgdGhlIG51bWJlciBvZiBzdWJrZXlzIHVuZGVyPQF0aGUgcHJlZml4IHdlIGFyZSByZW1vdmluZyB0byBhY2N1cmF0ZWx5IGNhbGN1bGF0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZnVuY3Rpb24uRHJlbWFya193aXRoX2V2ZW50BAEYcmVtYXJrGAEcVmVjPHU4PgAHBKRNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrIGFuZCBlbWl0IGV2ZW50LkRhdXRob3JpemVfdXBncmFkZQQBJGNvZGVfaGFzaDwBHFQ6Okhhc2gACRBhAUF1dGhvcml6ZSBhbiB1cGdyYWRlIHRvIGEgZ2l2ZW4gYGNvZGVfaGFzaGAgZm9yIHRoZSBydW50aW1lLiBUaGUgcnVudGltZSBjYW4gYmUgc3VwcGxpZWQYbGF0ZXIuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4ugGF1dGhvcml6ZV91cGdyYWRlX3dpdGhvdXRfY2hlY2tzBAEkY29kZV9oYXNoPAEcVDo6SGFzaAAKIGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AXQFXQVJOSU5HOiBUaGlzIGF1dGhvcml6ZXMgYW4gdXBncmFkZSB0aGF0IHdpbGwgdGFrZSBwbGFjZSB3aXRob3V0IGFueSBzYWZldHkgY2hlY2tzLCBmb3JZAWV4YW1wbGUgdGhhdCB0aGUgc3BlYyBuYW1lIHJlbWFpbnMgdGhlIHNhbWUgYW5kIHRoYXQgdGhlIHZlcnNpb24gbnVtYmVyIGluY3JlYXNlcy4gTm908HJlY29tbWVuZGVkIGZvciBub3JtYWwgdXNlLiBVc2UgYGF1dGhvcml6ZV91cGdyYWRlYCBpbnN0ZWFkLgB8VGhpcyBjYWxsIHJlcXVpcmVzIFJvb3Qgb3JpZ2luLmBhcHBseV9hdXRob3JpemVkX3VwZ3JhZGUEARBjb2RlGAEcVmVjPHU4PgALJFUBUHJvdmlkZSB0aGUgcHJlaW1hZ2UgKHJ1bnRpbWUgYmluYXJ5KSBgY29kZWAgZm9yIGFuIHVwZ3JhZGUgdGhhdCBoYXMgYmVlbiBhdXRob3JpemVkLgBJAUlmIHRoZSBhdXRob3JpemF0aW9uIHJlcXVpcmVkIGEgdmVyc2lvbiBjaGVjaywgdGhpcyBjYWxsIHdpbGwgZW5zdXJlIHRoZSBzcGVjIG5hbWXocmVtYWlucyB1bmNoYW5nZWQgYW5kIHRoYXQgdGhlIHNwZWMgdmVyc2lvbiBoYXMgaW5jcmVhc2VkLgBZAURlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGBPblNldENvZGVgIGNvbmZpZ3VyYXRpb24sIHRoaXMgZnVuY3Rpb24gbWF5IGRpcmVjdGx5IGFwcGx5EQF0aGUgbmV3IGBjb2RlYCBpbiB0aGUgc2FtZSBibG9jayBvciBhdHRlbXB0IHRvIHNjaGVkdWxlIHRoZSB1cGdyYWRlLgBgQWxsIG9yaWdpbnMgYXJlIGFsbG93ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLigAAAUGACwAAAIwADAAAAQIGBgANAAAAhgAOAAABQUAPAg8cHJpbWl0aXZlX3R5cGVzEEgyNTYAAAQACAEgW3U4OyAzMl0AAEAMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0EENhbGwEBFQAAQhMc2V0X3ZhbGlkYXRpb25fZGF0YQgBEGRhdGFEAWhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQABVGluYm91bmRfbWVzc2FnZXNfZGF0YXwBTEluYm91bmRNZXNzYWdlc0RhdGEAACSAU2V0IHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZGF0YS4AQQFUaGlzIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbohwaGFzZSBpZiB0aGUgY2FsbCB3YXMgbm90IGludm9rZWQuANBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgSW5oZXJlbnRgACEBQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiB1cGdyYWRlcyB0aGUgY3VycmVudCB2YWxpZGF0aW9uIGZ1bmN0aW9uhGlmIHRoZSBhcHByb3ByaWF0ZSB0aW1lIGhhcyBjb21lLmBzdWRvX3NlbmRfdXB3YXJkX21lc3NhZ2UEARxtZXNzYWdlGAE0VXB3YXJkTWVzc2FnZQABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5EDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudGhCYXNpY1BhcmFjaGFpbkluaGVyZW50RGF0YQAAEAE8dmFsaWRhdGlvbl9kYXRhSAFcUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGEAAURyZWxheV9jaGFpbl9zdGF0ZVABVHNwX3RyaWU6OlN0b3JhZ2VQcm9vZgABYHJlbGF5X3BhcmVudF9kZXNjZW5kYW50c1gBQFZlYzxSZWxheUhlYWRlcj4AAUBjb2xsYXRvcl9wZWVyX2lkdAFYT3B0aW9uPEFwcHJvdmVkUGVlcklkPgAASAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OVxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAE8BE4BOAAQASxwYXJlbnRfaGVhZEwBIEhlYWREYXRhAAFMcmVsYXlfcGFyZW50X251bWJlcjgBBE4AAWRyZWxheV9wYXJlbnRfc3RvcmFnZV9yb290PAEESAABMG1heF9wb3Zfc2l6ZTgBDHUzMgAATAx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlcyBIZWFkRGF0YQAABAAYARxWZWM8dTg+AABQDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzVAFEQlRyZWVTZXQ8VmVjPHU4Pj4AAFQEIEJUcmVlU2V0BARUARgABAA0AAAAWAAAAlwAXBAoc3BfcnVudGltZRxnZW5lcmljGGhlYWRlchhIZWFkZXIIGE51bWJlcgE4EEhhc2gAABQBLHBhcmVudF9oYXNoPAEwSGFzaDo6T3V0cHV0AAEYbnVtYmVyYAEYTnVtYmVyAAEoc3RhdGVfcm9vdDwBMEhhc2g6Ok91dHB1dAABPGV4dHJpbnNpY3Nfcm9vdDwBMEhhc2g6Ok91dHB1dAABGGRpZ2VzdGQBGERpZ2VzdAAAYAAABjgAZBAoc3BfcnVudGltZRxnZW5lcmljGGRpZ2VzdBhEaWdlc3QAAAQBEGxvZ3NoATxWZWM8RGlnZXN0SXRlbT4AAGgAAAJsAGwQKHNwX3J1bnRpbWUcZ2VuZXJpYxhkaWdlc3QoRGlnZXN0SXRlbQABFChQcmVSdW50aW1lCABwAURDb25zZW5zdXNFbmdpbmVJZAAAGAEcVmVjPHU4PgAGACRDb25zZW5zdXMIAHABRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAQAEFNlYWwIAHABRENvbnNlbnN1c0VuZ2luZUlkAAAYARxWZWM8dTg+AAUAFE90aGVyBAAYARxWZWM8dTg+AAAAZFJ1bnRpbWVFbnZpcm9ubWVudFVwZGF0ZWQACAAAcAAAAwQAAAAMAHQEGE9wdGlvbgQEVAF4AQgQTm9uZQAAABBTb21lBAB4AAABAAB4DExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAfAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnRMSW5ib3VuZE1lc3NhZ2VzRGF0YQAACAFEZG93bndhcmRfbWVzc2FnZXOAAXxBYnJpZGdlZEluYm91bmREb3dud2FyZE1lc3NhZ2VzAAFMaG9yaXpvbnRhbF9tZXNzYWdlc5QBbEFicmlkZ2VkSW5ib3VuZEhybXBNZXNzYWdlcwAAgAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnSEQWJyaWRnZWRJbmJvdW5kTWVzc2FnZXNDb2xsZWN0aW9uBBxNZXNzYWdlAYQACAE0ZnVsbF9tZXNzYWdlc4gBMFZlYzxNZXNzYWdlPgABPGhhc2hlZF9tZXNzYWdlc4wBfFZlYzxNZXNzYWdlOjpDb21wcmVzc2VkTWVzc2FnZT4AAIQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc1hJbmJvdW5kRG93bndhcmRNZXNzYWdlBCxCbG9ja051bWJlcgE4AAgBHHNlbnRfYXQ4ASxCbG9ja051bWJlcgABDG1zZxgBPERvd253YXJkTWVzc2FnZQAAiAAAAoQAjAAAApAAkAiUY3VtdWx1c19wcmltaXRpdmVzX3BhcmFjaGFpbl9pbmhlcmVudDRIYXNoZWRNZXNzYWdlAAAIARxzZW50X2F0OAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEgbXNnX2hhc2g8ATRzcF9jb3JlOjpIMjU2AACUDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHBhcmFjaGFpbl9pbmhlcmVudIRBYnJpZGdlZEluYm91bmRNZXNzYWdlc0NvbGxlY3Rpb24EHE1lc3NhZ2UBmAAIATRmdWxsX21lc3NhZ2VzpAEwVmVjPE1lc3NhZ2U+AAE8aGFzaGVkX21lc3NhZ2VzqAF8VmVjPE1lc3NhZ2U6OkNvbXByZXNzZWRNZXNzYWdlPgAAmAAABAicoACcDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEADgBDHUzMgAAoAhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzSEluYm91bmRIcm1wTWVzc2FnZQQsQmxvY2tOdW1iZXIBOAAIARxzZW50X2F0OAEsQmxvY2tOdW1iZXIAARBkYXRhGAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAApAAAApgAqAAAAqwArAAABAickACwDEBwYWxsZXRfdGltZXN0YW1wGHBhbGxldBBDYWxsBARUAAEEDHNldAQBDG5vd7QBJFQ6Ok1vbWVudAAATFRTZXQgdGhlIGN1cnJlbnQgdGltZS4AVQFUaGlzIGNhbGwgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9u1HBoYXNlLCBpZiB0aGlzIGNhbGwgaGFzbid0IGJlZW4gaW52b2tlZCBieSB0aGF0IHRpbWUuAEEBVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnloW2BDb25maWc6Ok1pbmltdW1QZXJpb2RgXS4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Ob25lXy4AUQFUaGlzIGRpc3BhdGNoIGNsYXNzIGlzIF9NYW5kYXRvcnlfIHRvIGVuc3VyZSBpdCBnZXRzIGV4ZWN1dGVkIGluIHRoZSBibG9jay4gQmUgYXdhcmVRAXRoYXQgY2hhbmdpbmcgdGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBjYWxsIGNvdWxkIHJlc3VsdCBleGhhdXN0aW5nIHRoZSByZXNvdXJjZXMgaW4gYYRibG9jayB0byBleGVjdXRlIGFueSBvdGhlciBjYWxscy4ANCMjIENvbXBsZXhpdHkxAS0gYE8oMSlgIChOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG9mIGBPblRpbWVzdGFtcFNldGAgbXVzdCBhbHNvIGJlIGBPKDEpYClVAS0gMSBzdG9yYWdlIHJlYWQgYW5kIDEgc3RvcmFnZSBtdXRhdGlvbiAoY29kZWMgYE8oMSlgIGJlY2F1c2Ugb2YgYERpZFVwZGF0ZTo6dGFrZWAgaW5AICBgb25fZmluYWxpemVgKdQtIDEgZXZlbnQgaGFuZGxlciBgb25fdGltZXN0YW1wX3NldGAuIE11c3QgYmUgYE8oMSlgLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy60AAAGKAC4DFhzdGFnaW5nX3BhcmFjaGFpbl9pbmZvGHBhbGxldBBDYWxsBARUAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLrwMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQQQ2FsbAgEVAAESQABJFB0cmFuc2Zlcl9hbGxvd19kZWF0aAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlwAEoVDo6QmFsYW5jZQAAHNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgA1AWB0cmFuc2Zlcl9hbGxvd19kZWF0aGAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIuEQFJZiB0aGUgc2VuZGVyJ3MgYWNjb3VudCBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdLBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLjhmb3JjZV90cmFuc2ZlcgwBGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWXAAShUOjpCYWxhbmNlAAIIYQFFeGFjdGx5IGFzIGB0cmFuc2Zlcl9hbGxvd19kZWF0aGAsIGV4Y2VwdCB0aGUgb3JpZ2luIG11c3QgYmUgcm9vdCBhbmQgdGhlIHNvdXJjZSBhY2NvdW50RG1heSBiZSBzcGVjaWZpZWQuTHRyYW5zZmVyX2tlZXBfYWxpdmUIARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZcABKFQ6OkJhbGFuY2UAAxhZAVNhbWUgYXMgdGhlIFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBjYWxsLCBidXQgd2l0aCBhIGNoZWNrIHRoYXQgdGhlIHRyYW5zZmVyIHdpbGwgbm90YGtpbGwgdGhlIG9yaWdpbiBhY2NvdW50LgDoOTklIG9mIHRoZSB0aW1lIHlvdSB3YW50IFtgdHJhbnNmZXJfYWxsb3dfZGVhdGhgXSBpbnN0ZWFkLgDwW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdOiBzdHJ1Y3QuUGFsbGV0Lmh0bWwjbWV0aG9kLnRyYW5zZmVyMHRyYW5zZmVyX2FsbAgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGtlZXBfYWxpdmXIARBib29sAAQ8BQFUcmFuc2ZlciB0aGUgZW50aXJlIHRyYW5zZmVyYWJsZSBiYWxhbmNlIGZyb20gdGhlIGNhbGxlciBhY2NvdW50LgBZAU5PVEU6IFRoaXMgZnVuY3Rpb24gb25seSBhdHRlbXB0cyB0byB0cmFuc2ZlciBfdHJhbnNmZXJhYmxlXyBiYWxhbmNlcy4gVGhpcyBtZWFucyB0aGF0YQFhbnkgbG9ja2VkLCByZXNlcnZlZCwgb3IgZXhpc3RlbnRpYWwgZGVwb3NpdHMgKHdoZW4gYGtlZXBfYWxpdmVgIGlzIGB0cnVlYCksIHdpbGwgbm90IGJlXQF0cmFuc2ZlcnJlZCBieSB0aGlzIGZ1bmN0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGlzIGZ1bmN0aW9uIHJlc3VsdHMgaW4gYSBraWxsZWQgYWNjb3VudCxFAXlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55IHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZUBkZXBvc2l0cywgZXRjLi4uAMBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFNpZ25lZC4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci5ZAS0gYGtlZXBfYWxpdmVgOiBBIGJvb2xlYW4gdG8gZGV0ZXJtaW5lIGlmIHRoZSBgdHJhbnNmZXJfYWxsYCBvcGVyYXRpb24gc2hvdWxkIHNlbmQgYWxsTQEgIG9mIHRoZSBmdW5kcyB0aGUgYWNjb3VudCBoYXMsIGNhdXNpbmcgdGhlIHNlbmRlciBhY2NvdW50IHRvIGJlIGtpbGxlZCAoZmFsc2UpLCBvclkBICB0cmFuc2ZlciBldmVyeXRoaW5nIGV4Y2VwdCBhdCBsZWFzdCB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCwgd2hpY2ggd2lsbCBndWFyYW50ZWUgdG+cICBrZWVwIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZSAodHJ1ZSkuPGZvcmNlX3VucmVzZXJ2ZQgBDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50xAEoVDo6QmFsYW5jZQAFDLBVbnJlc2VydmUgc29tZSBiYWxhbmNlIGZyb20gYSB1c2VyIGJ5IGZvcmNlLgBsQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IFJPT1QuQHVwZ3JhZGVfYWNjb3VudHMEAQx3aG/MAURWZWM8VDo6QWNjb3VudElkPgAGIHBVcGdyYWRlIGEgc3BlY2lmaWVkIGFjY291bnQuAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLpAtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSB1cGdyYWRlZC4AVQFUaGlzIHdpbGwgd2FpdmUgdGhlIHRyYW5zYWN0aW9uIGZlZSBpZiBhdCBsZWFzdCBhbGwgYnV0IDEwJSBvZiB0aGUgYWNjb3VudHMgbmVlZGVkIHRvQQFiZSB1cGdyYWRlZC4gKFdlIGxldCBzb21lIG5vdCBoYXZlIHRvIGJlIHVwZ3JhZGVkIGp1c3QgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHRoZVhwb3NzaWJpbGl0eSBvZiBjaHVybikuRGZvcmNlX3NldF9iYWxhbmNlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASBuZXdfZnJlZcABKFQ6OkJhbGFuY2UACAysU2V0IHRoZSByZWd1bGFyIGJhbGFuY2Ugb2YgYSBnaXZlbiBhY2NvdW50LgCwVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIGlzIGByb290YC5sZm9yY2VfYWRqdXN0X3RvdGFsX2lzc3VhbmNlCAEkZGlyZWN0aW9u0AFMQWRqdXN0bWVudERpcmVjdGlvbgABFGRlbHRhwAEoVDo6QmFsYW5jZQAJFLhBZGp1c3QgdGhlIHRvdGFsIGlzc3VhbmNlIGluIGEgc2F0dXJhdGluZyB3YXkuAPxDYW4gb25seSBiZSBjYWxsZWQgYnkgcm9vdCBhbmQgYWx3YXlzIG5lZWRzIGEgcG9zaXRpdmUgYGRlbHRhYC4AJCMgRXhhbXBsZRBidXJuCAEUdmFsdWXAAShUOjpCYWxhbmNlAAEoa2VlcF9hbGl2ZcgBEGJvb2wAChz8QnVybiB0aGUgc3BlY2lmaWVkIGxpcXVpZCBmcmVlIGJhbGFuY2UgZnJvbSB0aGUgb3JpZ2luIGFjY291bnQuACUBSWYgdGhlIG9yaWdpbidzIGFjY291bnQgZW5kcyB1cCBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCBhcyBhIHJlc3VsdAkBb2YgdGhlIGJ1cm4gYW5kIGBrZWVwX2FsaXZlYCBpcyBmYWxzZSwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuAFEBVW5saWtlIHNlbmRpbmcgZnVuZHMgdG8gYSBfYnVybl8gYWRkcmVzcywgd2hpY2ggbWVyZWx5IG1ha2VzIHRoZSBmdW5kcyBpbmFjY2Vzc2libGUsIQF0aGlzIGBidXJuYCBvcGVyYXRpb24gd2lsbCByZWR1Y2UgdG90YWwgaXNzdWFuY2UgYnkgdGhlIGFtb3VudCBfYnVybmVkXy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuwAAABsQAxAAABQcAyAAABQAAzAAAAgQA0Aw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzTEFkanVzdG1lbnREaXJlY3Rpb24AAQggSW5jcmVhc2UAAAAgRGVjcmVhc2UAAQAA1Ax8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbhhwYWxsZXQQQ2FsbAQEVAABBCxjbGVhbl91c2FnZQQBGGVudGl0edgBTFQ6OlJlc3RyaWN0ZWRFbnRpdHkAAQhJAUFsbG93IHRvIGNsZWFuIHVzYWdlIGFzc29jaWF0ZWQgd2l0aCBhbiBlbnRpdHkgd2hlbiBpdCBpcyB6ZXJvIG9yIHdoZW4gdGhlcmUgaXMgbm+QbG9uZ2VyIGFueSBhbGxvd2FuY2UgZm9yIHRoZSBvcmlnaW4uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtgIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWVAUmVzdHJpY3RlZEVudGl0eQABHDRQZXJzb25hbEFsaWFzBAAIARRBbGlhcwAAAEBQZXJzb25hbElkZW50aXR5BAAoAQx1NjQAAQBEUmVmZXJyZWRDYW5kaWRhdGUEAAQBJEFjY291bnRJZAACAEhBY2NvdW50UGFydGljaXBhbnQEAAQBJEFjY291bnRJZAADAEBJbnZpdGVkQ2FuZGlkYXRlBAAEASRBY2NvdW50SWQABAAoTGl0ZVBlcnNvbgQABAEkQWNjb3VudElkAAUAJExpdGVBbGlhcwQACAEUQWxpYXMABgAA3Aw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQQQ2FsbAgEVAAESQABiBhjcmVhdGUMAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlAABM6Elzc3VlIGEgbmV3IGNsYXNzIG9mIGZ1bmdpYmxlIGFzc2V0cyBmcm9tIGEgcHVibGljIG9yaWdpbi4AJQFUaGlzIG5ldyBhc3NldCBjbGFzcyBoYXMgbm8gYXNzZXRzIGluaXRpYWxseSBhbmQgaXRzIG93bmVyIGlzIHRoZSBvcmlnaW4uAGEBVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gdGhlIGNvbmZpZ3VyZWQgYENyZWF0ZU9yaWdpbmAgYW5kIGhhdmUgc3VmZmljaWVudCBmdW5kcyBmcmVlLgC8RnVuZHMgb2Ygc2VuZGVyIGFyZSByZXNlcnZlZCBieSBgQXNzZXREZXBvc2l0YC4ALFBhcmFtZXRlcnM6WQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgYXNzZXQuIFRoaXMgbXVzdCBub3QgYmUgY3VycmVudGx5IGluIHVzZSB0byBpZGVudGlmeTEBYW4gZXhpc3RpbmcgYXNzZXQuIElmIFtgTmV4dEFzc2V0SWRgXSBpcyBzZXQsIHRoZW4gdGhpcyBtdXN0IGJlIGVxdWFsIHRvIGl0LlkBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjbGFzcyBvZiBhc3NldHMuIFRoZSBhZG1pbiBpcyB0aGUgaW5pdGlhbCBhZGRyZXNzIG9mIGVhY2icbWVtYmVyIG9mIHRoZSBhc3NldCBjbGFzcydzIGFkbWluIHRlYW0uTQEtIGBtaW5fYmFsYW5jZWA6IFRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgdGhpcyBuZXcgYXNzZXQgdGhhdCBhbnkgc2luZ2xlIGFjY291bnQgbXVzdD0BaGF2ZS4gSWYgYW4gYWNjb3VudCdzIGJhbGFuY2UgaXMgcmVkdWNlZCBiZWxvdyB0aGlzLCB0aGVuIGl0IGNvbGxhcHNlcyB0byB6ZXJvLgCYRW1pdHMgYENyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgMGZvcmNlX2NyZWF0ZRABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATRpc19zdWZmaWNpZW50yAEQYm9vbAABLG1pbl9iYWxhbmNlwAEoVDo6QmFsYW5jZQABTPhJc3N1ZSBhIG5ldyBjbGFzcyBvZiBmdW5naWJsZSBhc3NldHMgZnJvbSBhIHByaXZpbGVnZWQgb3JpZ2luLgC0VGhpcyBuZXcgYXNzZXQgY2xhc3MgaGFzIG5vIGFzc2V0cyBpbml0aWFsbHkuAKRUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gLgCcVW5saWtlIGBjcmVhdGVgLCBubyBmdW5kcyBhcmUgcmVzZXJ2ZWQuAFkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0LiBUaGlzIG11c3Qgbm90IGJlIGN1cnJlbnRseSBpbiB1c2UgdG8gaWRlbnRpZnkxAWFuIGV4aXN0aW5nIGFzc2V0LiBJZiBbYE5leHRBc3NldElkYF0gaXMgc2V0LCB0aGVuIHRoaXMgbXVzdCBiZSBlcXVhbCB0byBpdC5ZAS0gYG93bmVyYDogVGhlIG93bmVyIG9mIHRoaXMgY2xhc3Mgb2YgYXNzZXRzLiBUaGUgb3duZXIgaGFzIGZ1bGwgc3VwZXJ1c2VyIHBlcm1pc3Npb25zJQFvdmVyIHRoaXMgYXNzZXQsIGJ1dCBtYXkgbGF0ZXIgY2hhbmdlIGFuZCBjb25maWd1cmUgdGhlIHBlcm1pc3Npb25zIHVzaW5nkGB0cmFuc2Zlcl9vd25lcnNoaXBgIGFuZCBgc2V0X3RlYW1gLk0BLSBgbWluX2JhbGFuY2VgOiBUaGUgbWluaW11bSBiYWxhbmNlIG9mIHRoaXMgbmV3IGFzc2V0IHRoYXQgYW55IHNpbmdsZSBhY2NvdW50IG11c3Q9AWhhdmUuIElmIGFuIGFjY291bnQncyBiYWxhbmNlIGlzIHJlZHVjZWQgYmVsb3cgdGhpcywgdGhlbiBpdCBjb2xsYXBzZXMgdG8gemVyby4ArEVtaXRzIGBGb3JjZUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgNHN0YXJ0X2Rlc3Ryb3kEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAjDcU3RhcnQgdGhlIHByb2Nlc3Mgb2YgZGVzdHJveWluZyBhIGZ1bmdpYmxlIGFzc2V0IGNsYXNzLgBZAWBzdGFydF9kZXN0cm95YCBpcyB0aGUgZmlyc3QgaW4gYSBzZXJpZXMgb2YgZXh0cmluc2ljcyB0aGF0IHNob3VsZCBiZSBjYWxsZWQsIHRvIGFsbG93eGRlc3RydWN0aW9uIG9mIGFuIGFzc2V0IGNsYXNzLgBRAVRoZSBvcmlnaW4gbXVzdCBjb25mb3JtIHRvIGBGb3JjZU9yaWdpbmAgb3IgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUgYXNzZXQncyBgb3duZXJgLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZrhhbiBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuQGRlc3Ryb3lfYWNjb3VudHMEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAzDMRGVzdHJveSBhbGwgYWNjb3VudHMgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gYXNzZXQuAF0BYGRlc3Ryb3lfYWNjb3VudHNgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlhGFzc2V0IGlzIGluIGEgYERlc3Ryb3lpbmdgIHN0YXRlLgBdAUR1ZSB0byB3ZWlnaHQgcmVzdHJpY3Rpb25zLCB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBmdWxseTEBZGVzdHJveSBhbGwgYWNjb3VudHMuIEl0IHdpbGwgZGVzdHJveSBgUmVtb3ZlSXRlbXNMaW1pdGAgYWNjb3VudHMgYXQgYSB0aW1lLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuANRFYWNoIGNhbGwgZW1pdHMgdGhlIGBFdmVudDo6RGVzdHJveWVkQWNjb3VudHNgIGV2ZW50LkRkZXN0cm95X2FwcHJvdmFscwQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAEMGEBRGVzdHJveSBhbGwgYXBwcm92YWxzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGFzc2V0IHVwIHRvIHRoZSBtYXggKFQ6OlJlbW92ZUl0ZW1zTGltaXQpLgBhAWBkZXN0cm95X2FwcHJvdmFsc2Agc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyIGBzdGFydF9kZXN0cm95YCBoYXMgYmVlbiBjYWxsZWQsIGFuZCB0aGWEYXNzZXQgaXMgaW4gYSBgRGVzdHJveWluZ2Agc3RhdGUuAF0BRHVlIHRvIHdlaWdodCByZXN0cmljdGlvbnMsIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGZ1bGx5OQFkZXN0cm95IGFsbCBhcHByb3ZhbHMuIEl0IHdpbGwgZGVzdHJveSBgUmVtb3ZlSXRlbXNMaW1pdGAgYXBwcm92YWxzIGF0IGEgdGltZS4ATQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBkZXN0cm95ZWQuIFRoaXMgbXVzdCBpZGVudGlmeSBhbiBleGlzdGluZyAgIGFzc2V0LgDYRWFjaCBjYWxsIGVtaXRzIHRoZSBgRXZlbnQ6OkRlc3Ryb3llZEFwcHJvdmFsc2AgZXZlbnQuOGZpbmlzaF9kZXN0cm95BAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAUoxENvbXBsZXRlIGRlc3Ryb3lpbmcgYXNzZXQgYW5kIHVucmVzZXJ2ZSBjdXJyZW5jeS4AVQFgZmluaXNoX2Rlc3Ryb3lgIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBgc3RhcnRfZGVzdHJveWAgaGFzIGJlZW4gY2FsbGVkLCBhbmQgdGhlWQFhc3NldCBpcyBpbiBhIGBEZXN0cm95aW5nYCBzdGF0ZS4gQWxsIGFjY291bnRzIG9yIGFwcHJvdmFscyBzaG91bGQgYmUgZGVzdHJveWVkIGJlZm9yZRRoYW5kLgBNAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGRlc3Ryb3llZC4gVGhpcyBtdXN0IGlkZW50aWZ5IGFuIGV4aXN0aW5nICAgYXNzZXQuAOBFYWNoIHN1Y2Nlc3NmdWwgY2FsbCBlbWl0cyB0aGUgYEV2ZW50OjpEZXN0cm95ZWRgIGV2ZW50LhBtaW50DAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEsYmVuZWZpY2lhcnkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UABjCITWludCBhc3NldHMgb2YgYSBwYXJ0aWN1bGFyIGNsYXNzLgA5AVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBhc3NldCBgaWRgLgD8LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCBtaW50ZWQuDQEtIGBiZW5lZmljaWFyeWA6IFRoZSBhY2NvdW50IHRvIGJlIGNyZWRpdGVkIHdpdGggdGhlIG1pbnRlZCBhc3NldHMuxC0gYGFtb3VudGA6IFRoZSBhbW91bnQgb2YgdGhlIGFzc2V0IHRvIGJlIG1pbnRlZC4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgVQFNb2RlczogUHJlLWV4aXN0aW5nIGJhbGFuY2Ugb2YgYGJlbmVmaWNpYXJ5YDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mIGBiZW5lZmljaWFyeWAuEGJ1cm4MAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UABzxFAVJlZHVjZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBieSBhcyBtdWNoIGFzIHBvc3NpYmxlIHVwIHRvIGBhbW91bnRgIGFzc2V0cyBvZiBgaWRgLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE1hbmFnZXIgb2YgdGhlIGFzc2V0IGBpZGAuANBCYWlscyB3aXRoIGBOb0FjY291bnRgIGlmIHRoZSBgd2hvYCBpcyBhbHJlYWR5IGRlYWQuAPwtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IGJ1cm5lZC6gLSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgZGViaXRlZCBmcm9tLikBLSBgYW1vdW50YDogVGhlIG1heGltdW0gYW1vdW50IGJ5IHdoaWNoIGB3aG9gJ3MgYmFsYW5jZSBzaG91bGQgYmUgcmVkdWNlZC4AUQFFbWl0cyBgQnVybmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IGJ1cm5lZC4gSWYgdGhpcyB0YWtlcyB0aGUgYmFsYW5jZSB0byBiZWxvdyB0aGU5AW1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IGJ1cm5lZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWAJAU1vZGVzOiBQb3N0LWV4aXN0ZW5jZSBvZiBgd2hvYDsgUHJlICYgcG9zdCBab21iaWUtc3RhdHVzIG9mIGB3aG9gLiB0cmFuc2ZlcgwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAISNBNb3ZlIHNvbWUgYXNzZXRzIGZyb20gdGhlIHNlbmRlciBhY2NvdW50IHRvIGFub3RoZXIuAFhPcmlnaW4gbXVzdCBiZSBTaWduZWQuABEBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gaGF2ZSBzb21lIGFtb3VudCB0cmFuc2ZlcnJlZC6cLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuUQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBzZW5kZXIncyBiYWxhbmNlIG9mIGFzc2V0cyBzaG91bGQgYmUgcmVkdWNlZCBhbmRhAWB0YXJnZXRgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5dAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBzZW5kZXIgYmFsYW5jZSBhYm92ZSB6ZXJvIGJ1dCBiZWxvd7x0aGUgbWluaW11bSBiYWxhbmNlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgBhAUVtaXRzIGBUcmFuc2ZlcnJlZGAgd2l0aCB0aGUgYWN0dWFsIGFtb3VudCB0cmFuc2ZlcnJlZC4gSWYgdGhpcyB0YWtlcyB0aGUgc291cmNlIGJhbGFuY2VdAXRvIGJlbG93IHRoZSBtaW5pbXVtIGZvciB0aGUgYXNzZXQsIHRoZW4gdGhlIGFtb3VudCB0cmFuc2ZlcnJlZCBpcyBpbmNyZWFzZWQgdG8gdGFrZSBpdCB0byB6ZXJvLgA4V2VpZ2h0OiBgTygxKWBRAU1vZGVzOiBQcmUtZXhpc3RlbmNlIG9mIGB0YXJnZXRgOyBQb3N0LWV4aXN0ZW5jZSBvZiBzZW5kZXI7IEFjY291bnQgcHJlLWV4aXN0ZW5jZSBvZiRgdGFyZ2V0YC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQwBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAJSFkBTW92ZSBzb21lIGFzc2V0cyBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLCBrZWVwaW5nIHRoZSBzZW5kZXIgYWNjb3VudCBhbGl2ZS4AWE9yaWdpbiBtdXN0IGJlIFNpZ25lZC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpwtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCB0byBiZSBjcmVkaXRlZC5RAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIHNlbmRlcidzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZGEBYHRhcmdldGAncyBiYWxhbmNlIGluY3JlYXNlZC4gVGhlIGFtb3VudCBhY3R1YWxseSB0cmFuc2ZlcnJlZCBtYXkgYmUgc2xpZ2h0bHkgZ3JlYXRlciBpbl0BdGhlIGNhc2UgdGhhdCB0aGUgdHJhbnNmZXIgd291bGQgb3RoZXJ3aXNlIHRha2UgdGhlIHNlbmRlciBiYWxhbmNlIGFib3ZlIHplcm8gYnV0IGJlbG93vHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYHRhcmdldGA7IFBvc3QtZXhpc3RlbmNlIG9mIHNlbmRlcjsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mJGB0YXJnZXRgLjhmb3JjZV90cmFuc2ZlchABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABGHNvdXJjZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYYW1vdW50wAEoVDo6QmFsYW5jZQAKTLRNb3ZlIHNvbWUgYXNzZXRzIGZyb20gb25lIGFjY291bnQgdG8gYW5vdGhlci4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBBZG1pbiBvZiB0aGUgYXNzZXQgYGlkYC4AEQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBoYXZlIHNvbWUgYW1vdW50IHRyYW5zZmVycmVkLpgtIGBzb3VyY2VgOiBUaGUgYWNjb3VudCB0byBiZSBkZWJpdGVkLpQtIGBkZXN0YDogVGhlIGFjY291bnQgdG8gYmUgY3JlZGl0ZWQuWQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBgc291cmNlYCdzIGJhbGFuY2Ugb2YgYXNzZXRzIHNob3VsZCBiZSByZWR1Y2VkIGFuZFkBYGRlc3RgJ3MgYmFsYW5jZSBpbmNyZWFzZWQuIFRoZSBhbW91bnQgYWN0dWFsbHkgdHJhbnNmZXJyZWQgbWF5IGJlIHNsaWdodGx5IGdyZWF0ZXIgaW5NAXRoZSBjYXNlIHRoYXQgdGhlIHRyYW5zZmVyIHdvdWxkIG90aGVyd2lzZSB0YWtlIHRoZSBgc291cmNlYCBiYWxhbmNlIGFib3ZlIHplcm8gYnV01GJlbG93IHRoZSBtaW5pbXVtIGJhbGFuY2UuIE11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uAGEBRW1pdHMgYFRyYW5zZmVycmVkYCB3aXRoIHRoZSBhY3R1YWwgYW1vdW50IHRyYW5zZmVycmVkLiBJZiB0aGlzIHRha2VzIHRoZSBzb3VyY2UgYmFsYW5jZV0BdG8gYmVsb3cgdGhlIG1pbmltdW0gZm9yIHRoZSBhc3NldCwgdGhlbiB0aGUgYW1vdW50IHRyYW5zZmVycmVkIGlzIGluY3JlYXNlZCB0byB0YWtlIGl0IHRvIHplcm8uADhXZWlnaHQ6IGBPKDEpYFEBTW9kZXM6IFByZS1leGlzdGVuY2Ugb2YgYGRlc3RgOyBQb3N0LWV4aXN0ZW5jZSBvZiBgc291cmNlYDsgQWNjb3VudCBwcmUtZXhpc3RlbmNlIG9mHGBkZXN0YC4YZnJlZXplCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACzBVAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIGZyb20gYW4gYWNjb3VudCBgd2hvYC4gYHdob2BNAW11c3QgYWxyZWFkeSBleGlzdCBhcyBhbiBlbnRyeSBpbiBgQWNjb3VudGBzIG9mIHRoZSBhc3NldC4gSWYgeW91IHdhbnQgdG8gZnJlZXplIGFu9GFjY291bnQgdGhhdCBkb2VzIG5vdCBoYXZlIGFuIGVudHJ5LCB1c2UgYHRvdWNoX290aGVyYCBmaXJzdC4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLogtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBmcm96ZW4uADxFbWl0cyBgRnJvemVuYC4AOFdlaWdodDogYE8oMSlgEHRoYXcIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAMKOhBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBmcm96ZW4ukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVuZnJvemVuLgA8RW1pdHMgYFRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYDBmcmVlemVfYXNzZXQEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIADSTwRGlzYWxsb3cgZnVydGhlciB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgY2xhc3MuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AxC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAodGhhd19hc3NldAQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgAOJMRBbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciB0aGUgYXNzZXQgYWdhaW4uAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGFzc2V0IGBpZGAuAMQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgSHRyYW5zZmVyX293bmVyc2hpcAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADyh0Q2hhbmdlIHRoZSBPd25lciBvZiBhbiBhc3NldC4ALQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYXNzZXQgYGlkYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC4AVEVtaXRzIGBPd25lckNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWAgc2V0X3RlYW0QAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEDDEQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgDELSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYmUgZnJvemVuLqQtIGBpc3N1ZXJgOiBUaGUgbmV3IElzc3VlciBvZiB0aGlzIGFzc2V0LpwtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBhc3NldC6sLSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGFzc2V0LgBQRW1pdHMgYFRlYW1DaGFuZ2VkYC4AOFdlaWdodDogYE8oMSlgMHNldF9tZXRhZGF0YRABCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABEG5hbWUYARxWZWM8dTg+AAEYc3ltYm9sGAEcVmVjPHU4PgABIGRlY2ltYWxzDAEIdTgAEUB4U2V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gYXNzZXQuAC0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGFzc2V0IGBpZGAuANhGdW5kcyBvZiBzZW5kZXIgYXJlIHJlc2VydmVkIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTpRAWBNZXRhZGF0YURlcG9zaXRCYXNlICsgTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZSAqIChuYW1lLmxlbiArIHN5bWJvbC5sZW4pYCB0YWtpbmcgaW50b4xhY2NvdW50IGFueSBhbHJlYWR5IHJlc2VydmVkIGZ1bmRzLgC4LSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gdXBkYXRlLk0BLSBgbmFtZWA6IFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC5NAS0gYHN5bWJvbGA6IFRoZSBleGNoYW5nZSBzeW1ib2wgZm9yIHRoaXMgYXNzZXQuIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuLQEtIGBkZWNpbWFsc2A6IFRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhpcyBhc3NldCB1c2VzIHRvIHJlcHJlc2VudCBvbmUgdW5pdC4AUEVtaXRzIGBNZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYDhjbGVhcl9tZXRhZGF0YQQBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgASLIBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0LgAtAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLgCkQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBhc3NldCBvd25lci4AtC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYEhmb3JjZV9zZXRfbWV0YWRhdGEUAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARBuYW1lGAEcVmVjPHU4PgABGHN5bWJvbBgBHFZlYzx1OD4AASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuyAEQYm9vbAATOLhGb3JjZSB0aGUgbWV0YWRhdGEgZm9yIGFuIGFzc2V0IHRvIHNvbWUgdmFsdWUuAGxPcmlnaW4gbXVzdCBiZSBGb3JjZU9yaWdpbi4AaEFueSBkZXBvc2l0IGlzIGxlZnQgYWxvbmUuALgtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byB1cGRhdGUuTQEtIGBuYW1lYDogVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSBvZiB0aGlzIGFzc2V0LiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLk0BLSBgc3ltYm9sYDogVGhlIGV4Y2hhbmdlIHN5bWJvbCBmb3IgdGhpcyBhc3NldC4gTGltaXRlZCBpbiBsZW5ndGggYnkgYFN0cmluZ0xpbWl0YC4tAS0gYGRlY2ltYWxzYDogVGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGlzIGFzc2V0IHVzZXMgdG8gcmVwcmVzZW50IG9uZSB1bml0LgBQRW1pdHMgYE1ldGFkYXRhU2V0YC4AUQFXZWlnaHQ6IGBPKE4gKyBTKWAgd2hlcmUgTiBhbmQgUyBhcmUgdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSBhbmQgc3ltYm9sIHJlc3BlY3RpdmVseS5QZm9yY2VfY2xlYXJfbWV0YWRhdGEEAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAFCyAQ2xlYXIgdGhlIG1ldGFkYXRhIGZvciBhbiBhc3NldC4AbE9yaWdpbiBtdXN0IGJlIEZvcmNlT3JpZ2luLgBgQW55IGRlcG9zaXQgaXMgcmV0dXJuZWQuALQtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBjbGVhci4AYEVtaXRzIGBNZXRhZGF0YUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWBIZm9yY2VfYXNzZXRfc3RhdHVzIAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGlzc3VlcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABHGZyZWV6ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABLG1pbl9iYWxhbmNlwAEoVDo6QmFsYW5jZQABNGlzX3N1ZmZpY2llbnTIARBib29sAAEkaXNfZnJvemVuyAEQYm9vbAAVWJhBbHRlciB0aGUgYXR0cmlidXRlcyBvZiBhIGdpdmVuIGFzc2V0LgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4AkC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LpwtIGBvd25lcmA6IFRoZSBuZXcgT3duZXIgb2YgdGhpcyBhc3NldC6kLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBhc3NldC6cLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgYXNzZXQurC0gYGZyZWV6ZXJgOiBUaGUgbmV3IEZyZWV6ZXIgb2YgdGhpcyBhc3NldC5NAS0gYG1pbl9iYWxhbmNlYDogVGhlIG1pbmltdW0gYmFsYW5jZSBvZiB0aGlzIG5ldyBhc3NldCB0aGF0IGFueSBzaW5nbGUgYWNjb3VudCBtdXN0PQFoYXZlLiBJZiBhbiBhY2NvdW50J3MgYmFsYW5jZSBpcyByZWR1Y2VkIGJlbG93IHRoaXMsIHRoZW4gaXQgY29sbGFwc2VzIHRvIHplcm8uUQEtIGBpc19zdWZmaWNpZW50YDogV2hldGhlciBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhpcyBhc3NldCBpcyBkZXBvc2l0IG9mIHN1ZmZpY2llbnRNAXZhbHVlIHRvIGFjY291bnQgZm9yIHRoZSBzdGF0ZSBibG9hdCBhc3NvY2lhdGVkIHdpdGggaXRzIGJhbGFuY2Ugc3RvcmFnZS4gSWYgc2V0IHRvVQFgdHJ1ZWAsIHRoZW4gbm9uLXplcm8gYmFsYW5jZXMgbWF5IGJlIHN0b3JlZCB3aXRob3V0IGEgYGNvbnN1bWVyYCByZWZlcmVuY2UgKGFuZCB0aHVzTQFhbiBFRCBpbiB0aGUgQmFsYW5jZXMgcGFsbGV0IG9yIHdoYXRldmVyIGVsc2UgaXMgdXNlZCB0byBjb250cm9sIHVzZXItYWNjb3VudCBzdGF0ZSBncm93dGgpLj0BLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGFzc2V0IGNsYXNzIGlzIGZyb3plbiBleGNlcHQgZm9yIHBlcm1pc3Npb25lZC9hZG1pbjRpbnN0cnVjdGlvbnMuAOhFbWl0cyBgQXNzZXRTdGF0dXNDaGFuZ2VkYCB3aXRoIHRoZSBpZGVudGl0eSBvZiB0aGUgYXNzZXQuADhXZWlnaHQ6IGBPKDEpYEBhcHByb3ZlX3RyYW5zZmVyDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UAFlAtAUFwcHJvdmUgYW4gYW1vdW50IG9mIGFzc2V0IGZvciB0cmFuc2ZlciBieSBhIGRlbGVnYXRlZCB0aGlyZC1wYXJ0eSBhY2NvdW50LgBYT3JpZ2luIG11c3QgYmUgU2lnbmVkLgBNAUVuc3VyZXMgdGhhdCBgQXBwcm92YWxEZXBvc2l0YCB3b3J0aCBvZiBgQ3VycmVuY3lgIGlzIHJlc2VydmVkIGZyb20gc2lnbmluZyBhY2NvdW50VQFmb3IgdGhlIHB1cnBvc2Ugb2YgaG9sZGluZyB0aGUgYXBwcm92YWwuIElmIHNvbWUgbm9uLXplcm8gYW1vdW50IG9mIGFzc2V0cyBpcyBhbHJlYWR5SQFhcHByb3ZlZCBmcm9tIHNpZ25pbmcgYWNjb3VudCB0byBgZGVsZWdhdGVgLCB0aGVuIGl0IGlzIHRvcHBlZCB1cCBvciB1bnJlc2VydmVkIHRvVG1lZXQgdGhlIHJpZ2h0IHZhbHVlLgBFAU5PVEU6IFRoZSBzaWduaW5nIGFjY291bnQgZG9lcyBub3QgbmVlZCB0byBvd24gYGFtb3VudGAgb2YgYXNzZXRzIGF0IHRoZSBwb2ludCBvZkRtYWtpbmcgdGhpcyBjYWxsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuDQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IHRvIGRlbGVnYXRlIHBlcm1pc3Npb24gdG8gdHJhbnNmZXIgYXNzZXQuSQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IG9mIGFzc2V0IHRoYXQgbWF5IGJlIHRyYW5zZmVycmVkIGJ5IGBkZWxlZ2F0ZWAuIElmIHRoZXJlIGlz4GFscmVhZHkgYW4gYXBwcm92YWwgaW4gcGxhY2UsIHRoZW4gdGhpcyBhY3RzIGFkZGl0aXZlbHkuAJBFbWl0cyBgQXBwcm92ZWRUcmFuc2ZlcmAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgPGNhbmNlbF9hcHByb3ZhbAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AFzRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZXJlIG11c3QgYmUgYW4gYXBwcm92YWwgaW4gcGxhY2UgYmV0d2VlbiBzaWduZXIgYW5kLGBkZWxlZ2F0ZWAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBUZm9yY2VfY2FuY2VsX2FwcHJvdmFsDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEUb3duZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AGDRJAUNhbmNlbCBhbGwgb2Ygc29tZSBhc3NldCBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyIGJ5IGEgdGhpcmQtcGFydHkgYWNjb3VudC4ASQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgRm9yY2VPcmlnaW4gb3IgU2lnbmVkIG9yaWdpbiB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluaGFjY291bnQgb2YgdGhlIGFzc2V0IGBpZGAuAEkBVW5yZXNlcnZlcyBhbnkgZGVwb3NpdCBwcmV2aW91c2x5IHJlc2VydmVkIGJ5IGBhcHByb3ZlX3RyYW5zZmVyYCBmb3IgdGhlIGFwcHJvdmFsLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuBQEtIGBkZWxlZ2F0ZWA6IFRoZSBhY2NvdW50IGRlbGVnYXRlZCBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIGFzc2V0LgCURW1pdHMgYEFwcHJvdmFsQ2FuY2VsbGVkYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWBEdHJhbnNmZXJfYXBwcm92ZWQQAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEsZGVzdGluYXRpb24AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGGFtb3VudMABKFQ6OkJhbGFuY2UAGUhNAVRyYW5zZmVyIHNvbWUgYXNzZXQgYmFsYW5jZSBmcm9tIGEgcHJldmlvdXNseSBkZWxlZ2F0ZWQgYWNjb3VudCB0byBzb21lIHRoaXJkLXBhcnR5IGFjY291bnQuAEkBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGVyZSBtdXN0IGJlIGFuIGFwcHJvdmFsIGluIHBsYWNlIGJ5IHRoZSBgb3duZXJgIHRvIHRoZRxzaWduZXIuAFkBSWYgdGhlIGVudGlyZSBhbW91bnQgYXBwcm92ZWQgZm9yIHRyYW5zZmVyIGlzIHRyYW5zZmVycmVkLCB0aGVuIGFueSBkZXBvc2l0IHByZXZpb3VzbHm0cmVzZXJ2ZWQgYnkgYGFwcHJvdmVfdHJhbnNmZXJgIGlzIHVucmVzZXJ2ZWQuAJAtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC5hAS0gYG93bmVyYDogVGhlIGFjY291bnQgd2hpY2ggcHJldmlvdXNseSBhcHByb3ZlZCBmb3IgYSB0cmFuc2ZlciBvZiBhdCBsZWFzdCBgYW1vdW50YCBhbmS8ZnJvbSB3aGljaCB0aGUgYXNzZXQgYmFsYW5jZSB3aWxsIGJlIHdpdGhkcmF3bi5hAS0gYGRlc3RpbmF0aW9uYDogVGhlIGFjY291bnQgdG8gd2hpY2ggdGhlIGFzc2V0IGJhbGFuY2Ugb2YgYGFtb3VudGAgd2lsbCBiZSB0cmFuc2ZlcnJlZC60LSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBhc3NldHMgdG8gdHJhbnNmZXIuAJxFbWl0cyBgVHJhbnNmZXJyZWRBcHByb3ZlZGAgb24gc3VjY2Vzcy4AOFdlaWdodDogYE8oMSlgFHRvdWNoBAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyABokwENyZWF0ZSBhbiBhc3NldCBhY2NvdW50IGZvciBub24tcHJvdmlkZXIgYXNzZXRzLgDAQSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyIGFjY291bnQuAF0BLSBgb3JpZ2luYDogTXVzdCBiZSBTaWduZWQ7IHRoZSBzaWduZXIgYWNjb3VudCBtdXN0IGhhdmUgc3VmZmljaWVudCBmdW5kcyBmb3IgYSBkZXBvc2l0OCAgdG8gYmUgdGFrZW4uCQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3IgdGhlIGFjY291bnQgdG8gYmUgY3JlYXRlZC4AmEVtaXRzIGBUb3VjaGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuGHJlZnVuZAgBCGlk4AFMVDo6QXNzZXRJZFBhcmFtZXRlcgABKGFsbG93X2J1cm7IARBib29sABs0WQFSZXR1cm4gdGhlIGRlcG9zaXQgKGlmIGFueSkgb2YgYW4gYXNzZXQgYWNjb3VudCBvciBhIGNvbnN1bWVyIHJlZmVyZW5jZSAoaWYgYW55KSBvZiBhbiBhY2NvdW50LgBoVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC4APQEtIGBpZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCBmb3Igd2hpY2ggdGhlIGNhbGxlciB3b3VsZCBsaWtlIHRoZSBkZXBvc2l0LCAgcmVmdW5kZWQuXQEtIGBhbGxvd19idXJuYDogSWYgYHRydWVgIHRoZW4gYXNzZXRzIG1heSBiZSBkZXN0cm95ZWQgaW4gb3JkZXIgdG8gY29tcGxldGUgdGhlIHJlZnVuZC4ASQFJdCB3aWxsIGZhaWwgd2l0aCBlaXRoZXIgW2BFcnJvcjo6Q29udGFpbnNIb2xkc2BdIG9yIFtgRXJyb3I6OkNvbnRhaW5zRnJlZXplc2BdIGlm1HRoZSBhc3NldCBhY2NvdW50IGNvbnRhaW5zIGhvbGRzIG9yIGZyZWV6ZXMgaW4gcGxhY2UuAJxFbWl0cyBgUmVmdW5kZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC48c2V0X21pbl9iYWxhbmNlCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEsbWluX2JhbGFuY2XEAShUOjpCYWxhbmNlABwwlFNldHMgdGhlIG1pbmltdW0gYmFsYW5jZSBvZiBhbiBhc3NldC4AIQFPbmx5IHdvcmtzIGlmIHRoZXJlIGFyZW4ndCBhbnkgYWNjb3VudHMgdGhhdCBhcmUgaG9sZGluZyB0aGUgYXNzZXQgb3IgaWbgdGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgIGlzIGxlc3MgdGhhbiB0aGUgb2xkIG9uZS4A/E9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBoYXMgdG8gYmUgdGhlIE93bmVyIG9mIHRoZSxhc3NldCBgaWRgLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQuwC0gYG1pbl9iYWxhbmNlYDogVGhlIG5ldyB2YWx1ZSBvZiBgbWluX2JhbGFuY2VgLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4sdG91Y2hfb3RoZXIIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAdLIhDcmVhdGUgYW4gYXNzZXQgYWNjb3VudCBmb3IgYHdob2AuAMBBIGRlcG9zaXQgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBzaWduZXIgYWNjb3VudC4AXQEtIGBvcmlnaW5gOiBNdXN0IGJlIFNpZ25lZDsgdGhlIHNpZ25lciBhY2NvdW50IG11c3QgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZvciBhIGRlcG9zaXQ4ICB0byBiZSB0YWtlbi5hAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLCB0aGUgYXNzZXQgc3RhdHVzIG11c3QoICBiZSBsaXZlLowtIGB3aG9gOiBUaGUgYWNjb3VudCB0byBiZSBjcmVhdGVkLgCYRW1pdHMgYFRvdWNoZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wcmVmdW5kX290aGVyCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHjRdAVJldHVybiB0aGUgZGVwb3NpdCAoaWYgYW55KSBvZiBhIHRhcmdldCBhc3NldCBhY2NvdW50LiBVc2VmdWwgaWYgeW91IGFyZSB0aGUgZGVwb3NpdG9yLgBdAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIGVpdGhlciB0aGUgYWNjb3VudCBvd25lciwgZGVwb3NpdG9yLCBvciBhc3NldCBgQWRtaW5gLiBJbmEBb3JkZXIgdG8gYnVybiBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgdGhlIGFzc2V0LCB0aGUgY2FsbGVyIG11c3QgYmUgdGhlIGFjY291bnQgYW5kIHNob3VsZDR1c2UgYHJlZnVuZGAuABkBLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgZm9yIHRoZSBhY2NvdW50IGhvbGRpbmcgYSBkZXBvc2l0LnwtIGB3aG9gOiBUaGUgYWNjb3VudCB0byByZWZ1bmQuAEkBSXQgd2lsbCBmYWlsIHdpdGggZWl0aGVyIFtgRXJyb3I6OkNvbnRhaW5zSG9sZHNgXSBvciBbYEVycm9yOjpDb250YWluc0ZyZWV6ZXNgXSBpZtR0aGUgYXNzZXQgYWNjb3VudCBjb250YWlucyBob2xkcyBvciBmcmVlemVzIGluIHBsYWNlLgCcRW1pdHMgYFJlZnVuZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuFGJsb2NrCAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AHyhZAURpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVycyBvZiBhbiBhc3NldCBgaWRgIHRvIGFuZCBmcm9tIGFuIGFjY291bnQgYHdob2AuADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYXNzZXQgYGlkYC4AuC0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFjY291bnQncyBhc3NldC6ULSBgd2hvYDogVGhlIGFjY291bnQgdG8gYmUgdW5ibG9ja2VkLgBARW1pdHMgYEJsb2NrZWRgLgA4V2VpZ2h0OiBgTygxKWAwdHJhbnNmZXJfYWxsDAEIaWTgAUxUOjpBc3NldElkUGFyYW1ldGVyAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZcgBEGJvb2wAIEAdAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFzc2V0IGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQ9AWFueSBoZWxkLCBmcm96ZW4sIG9yIG1pbmltdW0gYmFsYW5jZSAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgAZAS0gYGlkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGZvciB0aGUgYWNjb3VudCBob2xkaW5nIGEgZGVwb3NpdC6gLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhc3NldCBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgdG8gYmUga2lsbGVkRQEgIChmYWxzZSksIG9yIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJhbGFuY2UsIHdoaWNoIHdpbGzoICBndWFyYW50ZWUgdG8ga2VlcCB0aGUgc2VuZGVyIGFzc2V0IGFjY291bnQgYWxpdmUgKHRydWUpLjBzZXRfcmVzZXJ2ZXMIAQhpZOABTFQ6OkFzc2V0SWRQYXJhbWV0ZXIAASByZXNlcnZlcx0BAchCb3VuZGVkVmVjPFQ6OlJlc2VydmVEYXRhLCBDb25zdFUzMjxNQVhfUkVTRVJWRVM+PgAhJMRTZXRzIHRoZSB0cnVzdGVkIHJlc2VydmUgaW5mb3JtYXRpb24gb2YgYW4gYXNzZXQuAFUBT3JpZ2luIG11c3QgYmUgdGhlIE93bmVyIG9mIHRoZSBhc3NldCBgaWRgLiBUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCUBYENyZWF0ZU9yaWdpbmAgb3IgYmUgdGhlIHNpZ25lZCBgb3duZXJgIGNvbmZpZ3VyZWQgZHVyaW5nIGFzc2V0IGNyZWF0aW9uLgCQLSBgaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQu8C0gYHJlc2VydmVzYDogVGhlIGZ1bGwgbGlzdCBvZiB0cnVzdGVkIHJlc2VydmVzIGluZm9ybWF0aW9uLgDURW1pdHMgYEFzc2V0TWluQmFsYW5jZUNoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu4BAsc3RhZ2luZ194Y20IdjUgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9y5AEkSnVuY3Rpb25zAADkECxzdGFnaW5nX3hjbQh2NSRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAOgBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAAQEBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQABQEBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQACQEBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQADQEBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQAEQEBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQAFQEBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQAGQEBSEFyYzxbSnVuY3Rpb247IDhdPgAIAADoAAADAQAAAOwA7BAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABgAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr8AFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAgBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya/ABRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXi0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya/ABRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAwAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoDAEIdTgAARBkYXRhCAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk+AEYQm9keUlkAAEQcGFydPwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQA9AEkTmV0d29ya0lkAAkAAPAEGE9wdGlvbgQEVAH0AQgQTm9uZQAAABBTb21lBAD0AAABAAD0ECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiROZXR3b3JrSWQAASAkQnlHZW5lc2lzBAAIASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIoAQx1NjQAAShibG9ja19oYXNoCAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAD4EAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQAcAEcW3U4OyA0XQABABRJbmRleAQAYAEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAD8EAx4Y20IdjMganVuY3Rpb24gQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW50YAEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tYAEMdTMyAAEUZGVub21gAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub21gAQx1MzIAARRkZW5vbWABDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub21gAQx1MzIAARRkZW5vbWABDHUzMgAEAAABAQAAAwIAAADsAAUBAAADAwAAAOwACQEAAAMEAAAA7AANAQAAAwUAAADsABEBAAADBgAAAOwAFQEAAAMHAAAA7AAZAQAAAwgAAADsAB0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBIQEEUwAABAAlAQEYVmVjPFQ+AAAhAQw0YXNzZXRzX2NvbW1vbmBsb2NhbF9hbmRfZm9yZWlnbl9hc3NldHNcRm9yZWlnbkFzc2V0UmVzZXJ2ZURhdGEAAAgBHHJlc2VydmXgASBMb2NhdGlvbgABMHRlbGVwb3J0YWJsZcgBEGJvb2wAACUBAAACIQEAKQEMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBBDYWxsBARUAAEMGGNyZWF0ZQgBKGFzc2V0X2tpbmTgAURCb3g8VDo6QXNzZXRLaW5kPgABEHJhdGUtAQEkRml4ZWRVMTI4AAAQDQFJbml0aWFsaXplIGEgY29udmVyc2lvbiByYXRlIHRvIG5hdGl2ZSBiYWxhbmNlIGZvciB0aGUgZ2l2ZW4gYXNzZXQuADQjIyBDb21wbGV4aXR5GC0gTygxKRh1cGRhdGUIAShhc3NldF9raW5k4AFEQm94PFQ6OkFzc2V0S2luZD4AARByYXRlLQEBJEZpeGVkVTEyOAABEAUBVXBkYXRlIHRoZSBjb252ZXJzaW9uIHJhdGUgdG8gbmF0aXZlIGJhbGFuY2UgZm9yIHRoZSBnaXZlbiBhc3NldC4ANCMjIENvbXBsZXhpdHkYLSBPKDEpGHJlbW92ZQQBKGFzc2V0X2tpbmTgAURCb3g8VDo6QXNzZXRLaW5kPgACECUBUmVtb3ZlIGFuIGV4aXN0aW5nIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBmb3IgdGhlIGdpdmVuIGFzc2V0LgA0IyMgQ29tcGxleGl0eRgtIE8oMSkEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuLQEMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEAMQBEHUxMjgAADEBDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBBDYWxsBARUAAEkRHNldF9pbnZ1bG5lcmFibGVzBAEMbmV3zAFEVmVjPFQ6OkFjY291bnRJZD4AADQxAVNldCB0aGUgbGlzdCBvZiBpbnZ1bG5lcmFibGUgKGZpeGVkKSBjb2xsYXRvcnMuIFRoZXNlIGNvbGxhdG9ycyBtdXN0IGRvIHNvbWXQcHJlcGFyYXRpb24sIG5hbWVseSB0byBoYXZlIHJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLgBZAVRoZSBjYWxsIHdpbGwgcmVtb3ZlIGFueSBhY2NvdW50cyB0aGF0IGhhdmUgbm90IHJlZ2lzdGVyZWQga2V5cyBmcm9tIHRoZSBzZXQuIFRoYXQgaXMsXQFpdCBpcyBub24tYXRvbWljOyB0aGUgY2FsbGVyIGFjY2VwdHMgYWxsIGBBY2NvdW50SWRgcyBwYXNzZWQgaW4gYG5ld2AgX2luZGl2aWR1YWxseV8gYXMxAWFjY2VwdGFibGUgSW52dWxuZXJhYmxlcywgYW5kIGlzIG5vdCBwcm9wb3NpbmcgYSBfc2V0XyBvZiBuZXcgSW52dWxuZXJhYmxlcy4AWQFUaGlzIGNhbGwgZG9lcyBub3QgbWFpbnRhaW4gbXV0dWFsIGV4Y2x1c2l2aXR5IG9mIGBJbnZ1bG5lcmFibGVzYCBhbmQgYENhbmRpZGF0ZXNgLiBJdGEBaXMgcmVjb21tZW5kZWQgdG8gdXNlIGEgYmF0Y2ggb2YgYGFkZF9pbnZ1bG5lcmFibGVgIGFuZCBgcmVtb3ZlX2ludnVsbmVyYWJsZWAgaW5zdGVhZC4gQVEBYGJhdGNoX2FsbGAgY2FuIGFsc28gYmUgdXNlZCB0byBlbmZvcmNlIGF0b21pY2l0eS4gSWYgYW55IGNhbmRpZGF0ZXMgYXJlIGluY2x1ZGVkIGluTQFgbmV3YCwgdGhleSBzaG91bGQgYmUgcmVtb3ZlZCB3aXRoIGByZW1vdmVfaW52dWxuZXJhYmxlX2NhbmRpZGF0ZWAgYWZ0ZXIgZXhlY3V0aW9uLgCUTXVzdCBiZSBjYWxsZWQgYnkgdGhlIGBVcGRhdGVPcmlnaW5gLlhzZXRfZGVzaXJlZF9jYW5kaWRhdGVzBAEMbWF4OAEMdTMyAAEUVQFTZXQgdGhlIGlkZWFsIG51bWJlciBvZiBub24taW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gSWYgbG93ZXJpbmcgdGhpcyBudW1iZXIsIHRoZW4gdGhlYQFudW1iZXIgb2YgcnVubmluZyBjb2xsYXRvcnMgY291bGQgYmUgaGlnaGVyIHRoYW4gdGhpcyBmaWd1cmUuIEFzaWRlIGZyb20gdGhhdCBlZGdlIGNhc2UsNQF0aGVyZSBzaG91bGQgYmUgbm8gb3RoZXIgd2F5IHRvIGhhdmUgbW9yZSBjYW5kaWRhdGVzIHRoYW4gdGhlIGRlc2lyZWQgbnVtYmVyLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLkhzZXRfY2FuZGlkYWN5X2JvbmQEARBib25kxAEwQmFsYW5jZU9mPFQ+AAIceFNldCB0aGUgY2FuZGlkYWN5IGJvbmQgYW1vdW50LgBRAUlmIHRoZSBjYW5kaWRhY3kgYm9uZCBpcyBpbmNyZWFzZWQgYnkgdGhpcyBjYWxsLCBhbGwgY3VycmVudCBjYW5kaWRhdGVzIHdoaWNoIGhhdmUgYU0BZGVwb3NpdCBsb3dlciB0aGFuIHRoZSBuZXcgYm9uZCB3aWxsIGJlIGtpY2tlZCBmcm9tIHRoZSBsaXN0IGFuZCBnZXQgdGhlaXIgZGVwb3NpdHMUYmFjay4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5UcmVnaXN0ZXJfYXNfY2FuZGlkYXRlAAMQQQFSZWdpc3RlciB0aGlzIGFjY291bnQgYXMgYSBjb2xsYXRvciBjYW5kaWRhdGUuIFRoZSBhY2NvdW50IG11c3QgKGEpIGFscmVhZHkgaGF2ZR0BcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMgYW5kIChiKSBiZSBhYmxlIHRvIHJlc2VydmUgdGhlIGBDYW5kaWRhY3lCb25kYC4A3FRoaXMgY2FsbCBpcyBub3QgYXZhaWxhYmxlIHRvIGBJbnZ1bG5lcmFibGVgIGNvbGxhdG9ycy4wbGVhdmVfaW50ZW50AAQUVQFEZXJlZ2lzdGVyIGBvcmlnaW5gIGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBOb3RlIHRoYXQgdGhlIGNvbGxhdG9yIGNhbiBvbmx5IGxlYXZlIG9uDQFzZXNzaW9uIGNoYW5nZS4gVGhlIGBDYW5kaWRhY3lCb25kYCB3aWxsIGJlIHVucmVzZXJ2ZWQgaW1tZWRpYXRlbHkuABkBVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgd291bGQgZHJvcCBiZWxvd1xgTWluRWxpZ2libGVDb2xsYXRvcnNgLkBhZGRfaW52dWxuZXJhYmxlBAEMd2hvBAEwVDo6QWNjb3VudElkAAUQRQFBZGQgYSBuZXcgYWNjb3VudCBgd2hvYCB0byB0aGUgbGlzdCBvZiBgSW52dWxuZXJhYmxlc2AgY29sbGF0b3JzLiBgd2hvYCBtdXN0IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzLiBJZiBgd2hvYCBpcyBhIGNhbmRpZGF0ZSwgdGhleSB3aWxsIGJlIHJlbW92ZWQuANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuTHJlbW92ZV9pbnZ1bG5lcmFibGUEAQx3aG8EATBUOjpBY2NvdW50SWQABhBhAVJlbW92ZSBhbiBhY2NvdW50IGB3aG9gIGZyb20gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYEludnVsbmVyYWJsZXNgIG11c3QoYmUgc29ydGVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLix1cGRhdGVfYm9uZAQBLG5ld19kZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAccXQFVcGRhdGUgdGhlIGNhbmRpZGFjeSBib25kIG9mIGNvbGxhdG9yIGNhbmRpZGF0ZSBgb3JpZ2luYCB0byBhIG5ldyBhbW91bnQgYG5ld19kZXBvc2l0YC4AQQFTZXR0aW5nIGEgYG5ld19kZXBvc2l0YCB0aGF0IGlzIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgZGVwb3NpdCB3aGlsZSBgb3JpZ2luYCBpc+BvY2N1cHlpbmcgYSB0b3AtYERlc2lyZWRDYW5kaWRhdGVzYCBzbG90IGlzIG5vdCBhbGxvd2VkLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYG9yaWdpbmAgaXMgbm90IGEgY29sbGF0b3IgY2FuZGlkYXRlLCB0aGUgdXBkYXRlZCBib25kIGlzIGxvd2VyGQF0aGFuIHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLCBhbmQvb3IgdGhlIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuTHRha2VfY2FuZGlkYXRlX3Nsb3QIARxkZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAEYdGFyZ2V0BAEwVDo6QWNjb3VudElkAAgcTQFUaGUgY2FsbGVyIGBvcmlnaW5gIHJlcGxhY2VzIGEgY2FuZGlkYXRlIGB0YXJnZXRgIGluIHRoZSBjb2xsYXRvciBjYW5kaWRhdGUgbGlzdCBieVUBcmVzZXJ2aW5nIGBkZXBvc2l0YC4gVGhlIGFtb3VudCBgZGVwb3NpdGAgcmVzZXJ2ZWQgYnkgdGhlIGNhbGxlciBtdXN0IGJlIGdyZWF0ZXIgdGhhbuB0aGUgZXhpc3RpbmcgYm9uZCBvZiB0aGUgdGFyZ2V0IGl0IGlzIHRyeWluZyB0byByZXBsYWNlLgBZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIGNhbGxlciBpcyBhbHJlYWR5IGEgY29sbGF0b3IgY2FuZGlkYXRlIG9yIGludnVsbmVyYWJsZSwgdGhlVQFjYWxsZXIgZG9lcyBub3QgaGF2ZSByZWdpc3RlcmVkIHNlc3Npb24ga2V5cywgdGhlIHRhcmdldCBpcyBub3QgYSBjb2xsYXRvciBjYW5kaWRhdGUsvGFuZC9vciB0aGUgYGRlcG9zaXRgIGFtb3VudCBjYW5ub3QgYmUgcmVzZXJ2ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUBDDhwYWxsZXRfc2Vzc2lvbhhwYWxsZXQQQ2FsbAQEVAABCCBzZXRfa2V5cwgBEGtleXM5AQEcVDo6S2V5cwABFHByb29mGAEcVmVjPHU4PgAALORTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlzYC4AHQFBbGxvd3MgYW4gYWNjb3VudCB0byBzZXQgaXRzIHNlc3Npb24ga2V5IHByaW9yIHRvIGJlY29taW5nIGEgdmFsaWRhdG9yLsBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4AAQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuVQEtIGBrZXlzYDogVGhlIG5ldyBzZXNzaW9uIGtleXMgdG8gc2V0LiBUaGVzZSBhcmUgdGhlIHB1YmxpYyBrZXlzIG9mIGFsbCBzZXNzaW9ucyBrZXlzXCAgc2V0dXAgaW4gdGhlIHJ1bnRpbWUuQQEtIGBwcm9vZmA6IFRoZSBwcm9vZiB0aGF0IGBvcmlnaW5gIGhhcyBhY2Nlc3MgdG8gdGhlIHByaXZhdGUga2V5cyBvZiBga2V5c2AuIFNlZU0BICBbYGltcGxfb3BhcXVlX2tleXNgXShzcF9ydW50aW1lOjppbXBsX29wYXF1ZV9rZXlzKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGU8ICBwcm9vZiBmb3JtYXQuKHB1cmdlX2tleXMAASDIUmVtb3ZlcyBhbnkgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlci4AwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSBlaXRoZXIgYmVdAWNvbnZlcnRpYmxlIHRvIGEgdmFsaWRhdG9yIElEIHVzaW5nIHRoZSBjaGFpbidzIHR5cGljYWwgYWRkcmVzc2luZyBzeXN0ZW0gKHRoaXMgdXN1YWxseVEBbWVhbnMgYmVpbmcgYSBjb250cm9sbGVyIGFjY291bnQpIG9yIGRpcmVjdGx5IGNvbnZlcnRpYmxlIGludG8gYSB2YWxpZGF0b3IgSUQgKHdoaWNolHVzdWFsbHkgbWVhbnMgYmVpbmcgYSBzdGFzaCBhY2NvdW50KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQEIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUsU2Vzc2lvbktleXMAAAQBEGF1cmE9AQHEPEF1cmEgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAAPQEQRHNwX2NvbnNlbnN1c19hdXJhHHNyMjU1MTksYXBwX3NyMjU1MTkYUHVibGljAAAEAAgBPHNyMjU1MTk6OlB1YmxpYwAAQQEMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0EENhbGwEBFQAARRUc3VzcGVuZF94Y21fZXhlY3V0aW9uAAEMSQFTdXNwZW5kcyBhbGwgWENNIGV4ZWN1dGlvbnMgZm9yIHRoZSBYQ01QIHF1ZXVlLCByZWdhcmRsZXNzIG9mIHRoZSBzZW5kZXIncyBvcmlnaW4uAKQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYENvbnRyb2xsZXJPcmlnaW5gLlByZXN1bWVfeGNtX2V4ZWN1dGlvbgACFLhSZXN1bWVzIGFsbCBYQ00gZXhlY3V0aW9ucyBmb3IgdGhlIFhDTVAgcXVldWUuAD0BTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0aGUgaW4vb3V0IGJvdW5kIGNoYW5uZWxzLgCkLSBgb3JpZ2luYDogTXVzdCBwYXNzIGBDb250cm9sbGVyT3JpZ2luYC5gdXBkYXRlX3N1c3BlbmRfdGhyZXNob2xkBAEMbmV3OAEMdTMyAAMUSQFPdmVyd3JpdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgd2hpY2ggbXVzdCBiZSBpbiB0aGUgcXVldWUgZm9yIHRoZSBvdGhlciBzaWRlIHRvIGJleHRvbGQgdG8gc3VzcGVuZCB0aGVpciBzZW5kaW5nLgB0LSBgb3JpZ2luYDogTXVzdCBwYXNzIGBSb290YC7oLSBgbmV3YDogRGVzaXJlZCB2YWx1ZSBmb3IgYFF1ZXVlQ29uZmlnRGF0YS5zdXNwZW5kX3ZhbHVlYFR1cGRhdGVfZHJvcF90aHJlc2hvbGQEAQxuZXc4AQx1MzIABBRFAU92ZXJ3cml0ZXMgdGhlIG51bWJlciBvZiBwYWdlcyB3aGljaCBtdXN0IGJlIGluIHRoZSBxdWV1ZSBhZnRlciB3aGljaCB3ZSBkcm9wIGFueYhmdXJ0aGVyIG1lc3NhZ2VzIGZyb20gdGhlIGNoYW5uZWwuAHQtIGBvcmlnaW5gOiBNdXN0IHBhc3MgYFJvb3RgLuwtIGBuZXdgOiBEZXNpcmVkIHZhbHVlIGZvciBgUXVldWVDb25maWdEYXRhLmRyb3BfdGhyZXNob2xkYFx1cGRhdGVfcmVzdW1lX3RocmVzaG9sZAQBDG5ldzgBDHUzMgAFFE0BT3ZlcndyaXRlcyB0aGUgbnVtYmVyIG9mIHBhZ2VzIHdoaWNoIHRoZSBxdWV1ZSBtdXN0IGJlIHJlZHVjZWQgdG8gYmVmb3JlIGl0IHNpZ25hbHMBAXRoYXQgbWVzc2FnZSBzZW5kaW5nIG1heSByZWNvbW1lbmNlIGFmdGVyIGl0IGhhcyBiZWVuIHN1c3BlbmRlZC4AdC0gYG9yaWdpbmA6IE11c3QgcGFzcyBgUm9vdGAu9C0gYG5ld2A6IERlc2lyZWQgdmFsdWUgZm9yIGBRdWV1ZUNvbmZpZ0RhdGEucmVzdW1lX3RocmVzaG9sZGAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQEMKHBhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAUQQc2VuZAgBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABHG1lc3NhZ2WVAQFUQm94PFZlcnNpb25lZFhjbTwoKT4+AAAAPHRlbGVwb3J0X2Fzc2V0cxABEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABSBEBVGVsZXBvcnQgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gc29tZSBkZXN0aW5hdGlvbiBjaGFpbi4AHQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2AgaW5zdGVhZC4qKgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYC4gVGhlIHdlaWdodCBsaW1pdCBmb3IgZmVlcyBpcyBub3QgcHJvdmlkZWQgYW5kIHRodXMgaXMgdW5saW1pdGVkLLR3aXRoIGFsbCBmZWVzIHRha2VuIGFzIG5lZWRlZCBmcm9tIHRoZSBhc3NldC4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuXHJlc2VydmVfdHJhbnNmZXJfYXNzZXRzEAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAJ4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4APQEqKlRoaXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZDogVXNlIGBsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGXIICBmZWUgb24gdGhlIGBkZXN0YCAoYW5kIHBvc3NpYmx5IHJlc2VydmUpIGNoYWlucy5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy4cZXhlY3V0ZQgBHG1lc3NhZ2XdAgG0Qm94PFZlcnNpb25lZFhjbTw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4+AAEobWF4X3dlaWdodNUBARhXZWlnaHQAAyDQRXhlY3V0ZSBhbiBYQ00gbWVzc2FnZSBmcm9tIGEgbG9jYWwsIHNpZ25lZCwgb3JpZ2luLgBNAUFuIGV2ZW50IGlzIGRlcG9zaXRlZCBpbmRpY2F0aW5nIHdoZXRoZXIgYG1zZ2AgY291bGQgYmUgZXhlY3V0ZWQgY29tcGxldGVseSBvciBvbmx5KHBhcnRpYWxseS4AXQFObyBtb3JlIHRoYW4gYG1heF93ZWlnaHRgIHdpbGwgYmUgdXNlZCBpbiBpdHMgYXR0ZW1wdGVkIGV4ZWN1dGlvbi4gSWYgdGhpcyBpcyBsZXNzIHRoYW5BAXRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgdGhhdCB0aGUgbWVzc2FnZSBjb3VsZCB0YWtlIHRvIGJlIGV4ZWN1dGVkLCB0aGVuIG5vfGV4ZWN1dGlvbiBhdHRlbXB0IHdpbGwgYmUgbWFkZS5EZm9yY2VfeGNtX3ZlcnNpb24IASBsb2NhdGlvbuABNEJveDxMb2NhdGlvbj4AARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAEGEkBRXh0b2xsIHRoYXQgYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uIGNhbiBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aHJvdWdoIGEgcGFydGljdWxhcjx2ZXJzaW9uIG9mIFhDTS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi7YLSBgbG9jYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdGhhdCBpcyBiZWluZyBkZXNjcmliZWQuEQEtIGB4Y21fdmVyc2lvbmA6IFRoZSBsYXRlc3QgdmVyc2lvbiBvZiBYQ00gdGhhdCBgbG9jYXRpb25gIHN1cHBvcnRzLmRmb3JjZV9kZWZhdWx0X3hjbV92ZXJzaW9uBAFEbWF5YmVfeGNtX3ZlcnNpb24JAwFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbkkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb25JAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdEkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0c9kCAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtOAEMdTMyAAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZMgBEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3RJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbTgBDHUzMgABMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRz2QIBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnlJAQFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0SQEBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHPZAgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZQ0DAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkEQMBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZQ0DAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdJUBAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuUGFkZF9hdXRob3JpemVkX2FsaWFzCAEcYWxpYXNlckkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcZXhwaXJlcxUDASxPcHRpb248dTY0PgAOLF0BQXV0aG9yaXplIGFub3RoZXIgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwuKQFUaGUgYGFsaWFzZXJgIGlzIG9ubHkgYXV0aG9yaXplZCB1bnRpbCB0aGUgcHJvdmlkZWQgYGV4cGlyeWAgYmxvY2sgbnVtYmVyLkkBVGhlIGNhbGwgY2FuIGFsc28gYmUgdXNlZCBmb3IgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYWxpYXMgaW4gb3JkZXIgdG8gdXBkYXRlIGl0c1hgZXhwaXJ5YCBibG9jayBudW1iZXIuAFEBVXN1YWxseSB1c2VmdWwgdG8gYWxsb3cgeW91ciBsb2NhbCBhY2NvdW50IHRvIGJlIGFsaWFzZWQgaW50byBmcm9tIGEgcmVtb3RlIGxvY2F0aW9u9GFsc28gdW5kZXIgeW91ciBjb250cm9sIChsaWtlIHlvdXIgYWNjb3VudCBvbiBhbm90aGVyIGNoYWluKS4AUQFXQVJOSU5HOiBtYWtlIHN1cmUgdGhlIGNhbGxlciBgb3JpZ2luYCAoeW91KSB0cnVzdHMgdGhlIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhY3QgaW5ZAXRoZWlyL3lvdXIgbmFtZS4gT25jZSBhdXRob3JpemVkIHVzaW5nIHRoaXMgY2FsbCwgdGhlIGBhbGlhc2VyYCBjYW4gZnJlZWx5IGltcGVyc29uYXRl1GBvcmlnaW5gIGluIFhDTSBwcm9ncmFtcyBleGVjdXRlZCBvbiB0aGUgbG9jYWwgY2hhaW4uXHJlbW92ZV9hdXRob3JpemVkX2FsaWFzBAEcYWxpYXNlckkBAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AA8IXQFSZW1vdmUgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgIGZyb20gdGhlIGxpc3Qgb2YgbG9jYXRpb25zIHRoYXQgY2FuIGFsaWFzIGludG+QdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwudHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzABAISQFSZW1vdmUgYWxsIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmBzIHRoYXQgY2FuIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gRG1ha2luZyB0aGlzIGNhbGwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkkBCAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjMEAE0BAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAYQEBMHY0OjpMb2NhdGlvbgAEAAhWNQQA4AEwdjU6OkxvY2F0aW9uAAUAAE0BECxzdGFnaW5nX3hjbQh2MzRtdWx0aWxvY2F0aW9uNE11bHRpTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9yUQEBJEp1bmN0aW9ucwAAUQEQDHhjbQh2MyRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAFUBASBKdW5jdGlvbgABAAhYMggAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAgAIWDMMAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAwAIWDQQAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAEAAhYNRQAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABQAIWDYYAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ABgAIWDccAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAHAAhYOCAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24AAFUBASBKdW5jdGlvbgAAVQEBIEp1bmN0aW9uAABVAQEgSnVuY3Rpb24ACAAAVQEQDHhjbQh2MyBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGABDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmtZAQFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAgBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya1kBAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4tAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmtZAQFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXkcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQADAEIdTgABAAwR2VuZXJhbEluZGV4BADAARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgMAQh1OAABEGRhdGEIASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWT4ARhCb2R5SWQAARBwYXJ0/AEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBABdAQEkTmV0d29ya0lkAAkAAFkBBBhPcHRpb24EBFQBXQEBCBBOb25lAAAAEFNvbWUEAF0BAAABAABdARAMeGNtCHYzIGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAABhARAsc3RhZ2luZ194Y20IdjQgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMMAQh1OAABIGludGVyaW9yZQEBJEp1bmN0aW9ucwAAZQEQLHN0YWdpbmdfeGNtCHY0JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAaQEBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAeQEBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQAfQEBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQAgQEBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQAhQEBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQAiQEBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQAjQEBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQAkQEBSEFyYzxbSnVuY3Rpb247IDhdPgAIAABpAQAAAwEAAABtAQBtARAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABgAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrcQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQIASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmtxAQFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleLQBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrcQEBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5HAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAwBCHU4AAQAMEdlbmVyYWxJbmRleAQAwAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoDAEIdTgAARBkYXRhCAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlk+AEYQm9keUlkAAEQcGFydPwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAdQEBJE5ldHdvcmtJZAAJAABxAQQYT3B0aW9uBARUAXUBAQgQTm9uZQAAABBTb21lBAB1AQAAAQAAdQEQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAgBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlcigBDHU2NAABKGJsb2NrX2hhc2gIASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWS0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAB5AQAAAwIAAABtAQB9AQAAAwMAAABtAQCBAQAAAwQAAABtAQCFAQAAAwUAAABtAQCJAQAAAwYAAABtAQCNAQAAAwcAAABtAQCRAQAAAwgAAABtAQCVAQgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAJkBAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAEQIBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BABdAgFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAAmQEMDHhjbQh2MwxYY20EEENhbGwAAAQAnQEBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAJ0BAAACoQEAoQEMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAClAQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAClAQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQApQEBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZcUBASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllcvEBAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k9QEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N01QEBGFdlaWdodAABEGNhbGz5AQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABRAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAD9AQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlAQIBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50pQEBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc60BAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBACZAQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BACZAQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABGHRpY2tldE0BATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQApQEBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAClAQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/9AQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAD9AQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAFUBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya10BASROZXR3b3JrSWQAASxkZXN0aW5hdGlvblEBAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJNAQE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARh0YXJnZXRNAQE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARRvd25lck0BATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYbG9ja2VyTQEBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABNAQE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7xAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAKUBEAx4Y20IdjMobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABACpAQE8VmVjPE11bHRpQXNzZXQ+AACpAQAAAq0BAK0BEAx4Y20IdjMobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZLEBARxBc3NldElkAAEMZnVutQEBLEZ1bmdpYmlsaXR5AACxARAMeGNtCHYzKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQATQEBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEAAgBIFt1ODsgMzJdAAEAALUBEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAwAEQdTEyOAAAACxOb25GdW5naWJsZQQAuQEBNEFzc2V0SW5zdGFuY2UAAQAAuQEQDHhjbQh2MyhtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADAARB1MTI4AAEAGEFycmF5NAQAcAEcW3U4OyA0XQACABhBcnJheTgEAL0BARxbdTg7IDhdAAMAHEFycmF5MTYEAMEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAAC9AQAAAwgAAAAMAMEBAAADEAAAAAwAxQEMDHhjbQh2MyBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQApQEBLE11bHRpQXNzZXRzAAEAPEV4ZWN1dGlvblJlc3VsdAQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AAIAHFZlcnNpb24EADgBOHN1cGVyOjpWZXJzaW9uAAMALFBhbGxldHNJbmZvBADZAQGYQm91bmRlZFZlYzxQYWxsZXRJbmZvLCBNYXhQYWxsZXRzSW5mbz4ABAA4RGlzcGF0Y2hSZXN1bHQEAOkBAThNYXliZUVycm9yQ29kZQAFAADJAQQYT3B0aW9uBARUAc0BAQgQTm9uZQAAABBTb21lBADNAQAAAQAAzQEAAAQIONEBANEBEAx4Y20IdjMYdHJhaXRzFEVycm9yAAGgIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAEACgBDHU2NAAVAEBFeHBlY3RhdGlvbkZhbHNlABYAOFBhbGxldE5vdEZvdW5kABcAME5hbWVNaXNtYXRjaAAYAExWZXJzaW9uSW5jb21wYXRpYmxlABkAUEhvbGRpbmdXb3VsZE92ZXJmbG93ABoALEV4cG9ydEVycm9yABsAOFJlYW5jaG9yRmFpbGVkABwAGE5vRGVhbAAdAChGZWVzTm90TWV0AB4AJExvY2tFcnJvcgAfADBOb1Blcm1pc3Npb24AIAAoVW5hbmNob3JlZAAhADhOb3REZXBvc2l0YWJsZQAiAExVbmhhbmRsZWRYY21WZXJzaW9uACMASFdlaWdodExpbWl0UmVhY2hlZAQA1QEBGFdlaWdodAAkABxCYXJyaWVyACUATFdlaWdodE5vdENvbXB1dGFibGUAJgBERXhjZWVkc1N0YWNrTGltaXQAJwAA1QEMKHNwX3dlaWdodHMkd2VpZ2h0X3YyGFdlaWdodAAACAEgcmVmX3RpbWW0AQx1NjQAAShwcm9vZl9zaXpltAEMdTY0AADZAQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0BBFMAAAQA5QEBGFZlYzxUPgAA3QEMDHhjbQh2MyhQYWxsZXRJbmZvAAAYARRpbmRleGABDHUzMgABEG5hbWXhAQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZeEBAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yYAEMdTMyAAEUbWlub3JgAQx1MzIAARRwYXRjaGABDHUzMgAA4QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADlAQAAAt0BAOkBDAx4Y20IdjM4TWF5YmVFcnJvckNvZGUAAQwcU3VjY2VzcwAAABRFcnJvcgQA7QEBjEJvdW5kZWRWZWM8dTgsIE1heERpc3BhdGNoRXJyb3JMZW4+AAEAOFRydW5jYXRlZEVycm9yBADtAQGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAgAA7QEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AADxAQQYT3B0aW9uBARUAU0BAQgQTm9uZQAAABBTb21lBABNAQAAAQAA9QEMDHhjbQh2MyhPcmlnaW5LaW5kAAEQGE5hdGl2ZQAAAEBTb3ZlcmVpZ25BY2NvdW50AAEAJFN1cGVydXNlcgACAAxYY20AAwAA+QEMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkGAEcVmVjPHU4PgAA/QEMDHhjbQh2M0RRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb25NAQE0TXVsdGlMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAABAhAMeGNtCHYzKG11bHRpYXNzZXRATXVsdGlBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQApQEBLE11bHRpQXNzZXRzAAAAEFdpbGQEAAUCAThXaWxkTXVsdGlBc3NldAABAAAFAhAMeGNtCHYzKG11bHRpYXNzZXQ4V2lsZE11bHRpQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWSxAQEcQXNzZXRJZAABDGZ1bgkCATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAYAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlksQEBHEFzc2V0SWQAAQxmdW4JAgE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRgAQx1MzIAAwAACQIQDHhjbQh2MyhtdWx0aWFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAANAgwMeGNtCHYzLFdlaWdodExpbWl0AAEIJFVubGltaXRlZAAAABxMaW1pdGVkBADVAQEYV2VpZ2h0AAEAABECDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAFQIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AABUCAAACGQIAGQIMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAB0CARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAdAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAB0CARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlNQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVySQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cx0CARhBc3NldHMAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cx0CARhBc3NldHMAARBkZXN0YQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs+QEBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAZQEBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlUQIBLEFzc2V0RmlsdGVyAAEQd2FudB0CARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABHHJlc2VydmVhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMlAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEABECASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEABECASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzHQIBGEFzc2V0cwABGHRpY2tldGEBASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAB0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAB0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABJAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQATQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABtAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmt1AQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25lAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjbRECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0JQIBFEFzc2V0AAEgdW5sb2NrZXJhAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABGHRhcmdldGEBASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0JQIBFEFzc2V0AAEUb3duZXJhAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0JQIBFEFzc2V0AAEYbG9ja2VyYQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAYQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkCAUBPcHRpb248TG9jYXRpb24+AC8AAB0CECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAIQIBKFZlYzxBc3NldD4AACECAAACJQIAJQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZCkCARxBc3NldElkAAEMZnVuLQIBLEZ1bmdpYmlsaXR5AAApAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABABhAQEgTG9jYXRpb24AAC0CECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAwAEQdTEyOAAAACxOb25GdW5naWJsZQQAMQIBNEFzc2V0SW5zdGFuY2UAAQAAMQIQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BADAARB1MTI4AAEAGEFycmF5NAQAcAEcW3U4OyA0XQACABhBcnJheTgEAL0BARxbdTg7IDhdAAMAHEFycmF5MTYEAMEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAIASBbdTg7IDMyXQAFAAA1Agwsc3RhZ2luZ194Y20IdjQgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAB0CARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAOAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EADkCAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQA6QEBOE1heWJlRXJyb3JDb2RlAAUAADkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBPQIEUwAABABFAgEYVmVjPFQ+AAA9Agwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXhgAQx1MzIAARBuYW1lQQIBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWVBAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmABDHUzMgABFG1pbm9yYAEMdTMyAAEUcGF0Y2hgAQx1MzIAAEECDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAARQIAAAI9AgBJAgQYT3B0aW9uBARUAWEBAQgQTm9uZQAAABBTb21lBABhAQAAAQAATQIMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbmEBASBMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AABRAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAB0CARhBc3NldHMAAAAQV2lsZAQAVQIBJFdpbGRBc3NldAABAABVAhAsc3RhZ2luZ194Y20IdjQUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkKQIBHEFzc2V0SWQAAQxmdW5ZAgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZCkCARxBc3NldElkAAEMZnVuWQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50YAEMdTMyAAMAAFkCECxzdGFnaW5nX3hjbQh2NBRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAXQIMLHN0YWdpbmdfeGNtCHY1DFhjbQQQQ2FsbAAABABhAgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAYQIAAAJlAgBlAgwsc3RhZ2luZ194Y20IdjUsSW5zdHJ1Y3Rpb24EEENhbGwAAdA0V2l0aGRyYXdBc3NldAQAaQIBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAGkCARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAaQIBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWS0ARxRdWVyeUlkAAEgcmVzcG9uc2WBAgEgUmVzcG9uc2UAAShtYXhfd2VpZ2h01QEBGFdlaWdodAABHHF1ZXJpZXKhAgFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzaQIBGEFzc2V0cwABLGJlbmVmaWNpYXJ54AEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHNpAgEYQXNzZXRzAAEQZGVzdOABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFMZmFsbGJhY2tfbWF4X3dlaWdodKUCAThPcHRpb248V2VpZ2h0PgABEGNhbGz5AQFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBADkAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBACpAgFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnngASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEQZGVzdOABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4ADgA0RXhjaGFuZ2VBc3NldAwBEGdpdmWtAgEsQXNzZXRGaWx0ZXIAARB3YW50aQIBGEFzc2V0cwABHG1heGltYWzIARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyAAEccmVzZXJ2ZeABIExvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzrQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXNxAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAF0CASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAF0CASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzaQIBGEFzc2V0cwABGHRpY2tldOABIExvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAaQIBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAaQIBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAKECAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBACFAgFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+pAgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBACpAgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAOwBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3Jr9AEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27kAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtXQIBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXRxAgEUQXNzZXQAASB1bmxvY2tlcuABIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXRxAgEUQXNzZXQAARh0YXJnZXTgASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0cQIBFEFzc2V0AAEUb3duZXLgASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXRxAgEUQXNzZXQAARhsb2NrZXLgASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd8gBEGJvb2wAKwAgU2V0VG9waWMEAAgBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAOABIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbqECAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldHECARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzuQIBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbsgBEGJvb2wAARhhc3NldHPBAgHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNtXQIBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbskCAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y21dAgEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHPNAgGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAGkCECxzdGFnaW5nX3hjbQh2NRRhc3NldBhBc3NldHMAAAQAbQIBKFZlYzxBc3NldD4AAG0CAAACcQIAcQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0FEFzc2V0AAAIAQhpZHUCARxBc3NldElkAAEMZnVueQIBLEZ1bmdpYmlsaXR5AAB1AhAsc3RhZ2luZ194Y20IdjUUYXNzZXQcQXNzZXRJZAAABADgASBMb2NhdGlvbgAAeQIQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBADAARB1MTI4AAAALE5vbkZ1bmdpYmxlBAB9AgE0QXNzZXRJbnN0YW5jZQABAAB9AhAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEAMABEHUxMjgAAQAYQXJyYXk0BABwARxbdTg7IDRdAAIAGEFycmF5OAQAvQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAwQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAgBIFt1ODsgMzJdAAUAAIECDCxzdGFnaW5nX3hjbQh2NSBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAaQIBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAIUCAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAA4AThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQAkQIBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BADpAQE4TWF5YmVFcnJvckNvZGUABQAAhQIEGE9wdGlvbgQEVAGJAgEIEE5vbmUAAAAQU29tZQQAiQIAAAEAAIkCAAAECDiNAgCNAhAMeGNtCHY1GHRyYWl0cxRFcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAoAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAQA1QEBGFdlaWdodAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAkQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVAgRTAAAEAJ0CARhWZWM8VD4AAJUCDCxzdGFnaW5nX3hjbQh2NShQYWxsZXRJbmZvAAAYARRpbmRleGABDHUzMgABEG5hbWWZAgGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AASxtb2R1bGVfbmFtZZkCAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABFG1ham9yYAEMdTMyAAEUbWlub3JgAQx1MzIAARRwYXRjaGABDHUzMgAAmQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AACdAgAAApUCAKECBBhPcHRpb24EBFQB4AEIEE5vbmUAAAAQU29tZQQA4AAAAQAApQIEGE9wdGlvbgQEVAHVAQEIEE5vbmUAAAAQU29tZQQA1QEAAAEAAKkCDCxzdGFnaW5nX3hjbQh2NURRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABIHF1ZXJ5X2lktAEcUXVlcnlJZAABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AACtAhAsc3RhZ2luZ194Y20IdjUUYXNzZXQsQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAGkCARhBc3NldHMAAAAQV2lsZAQAsQIBJFdpbGRBc3NldAABAACxAhAsc3RhZ2luZ194Y20IdjUUYXNzZXQkV2lsZEFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkdQIBHEFzc2V0SWQAAQxmdW61AgE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGABDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZHUCARxBc3NldElkAAEMZnVutQIBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50YAEMdTMyAAMAALUCECxzdGFnaW5nX3hjbQh2NRRhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAuQIEGE9wdGlvbgQEVAG9AgEIEE5vbmUAAAAQU29tZQQAvQIAAAEAAL0CECxzdGFnaW5nX3hjbQh2NRRhc3NldExBc3NldFRyYW5zZmVyRmlsdGVyAAEMIFRlbGVwb3J0BACtAgEsQXNzZXRGaWx0ZXIAAAA4UmVzZXJ2ZURlcG9zaXQEAK0CASxBc3NldEZpbHRlcgABADxSZXNlcnZlV2l0aGRyYXcEAK0CASxBc3NldEZpbHRlcgACAADBAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAb0CBFMAAAQAxQIBGFZlYzxUPgAAxQIAAAK9AgDJAgQYT3B0aW9uBARUAeQBCBBOb25lAAAAEFNvbWUEAOQAAAEAAM0CDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB0QIEUwAABADVAgEYVmVjPFQ+AADRAgwsc3RhZ2luZ194Y20IdjUQSGludAABBDBBc3NldENsYWltZXIEASBsb2NhdGlvbuABIExvY2F0aW9uAAAAANUCAAAC0QIA2QIIDHhjbTxWZXJzaW9uZWRBc3NldHMAAQwIVjMEAKUBATx2Mzo6TXVsdGlBc3NldHMAAwAIVjQEAB0CASh2NDo6QXNzZXRzAAQACFY1BABpAgEodjU6OkFzc2V0cwAFAADdAggMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAOECAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQA8QIBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BAD9AgFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAA4QIMDHhjbQh2MwxYY20EEENhbGwAAAQA5QIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAOUCAAAC6QIA6QIMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAClAQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAClAQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQApQEBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZLQBHFF1ZXJ5SWQAASByZXNwb25zZcUBASBSZXNwb25zZQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAEccXVlcmllcvEBAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABLGJlbmVmaWNpYXJ5TQEBNE11bHRpTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHOlAQEsTXVsdGlBc3NldHMAARBkZXN0TQEBNE11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5k9QEBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N01QEBGFdlaWdodAABEGNhbGztAgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVyYAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWABDHUzMgABMG1heF9jYXBhY2l0eWABDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50YAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmABDHUzMgABGHNlbmRlcmABDHUzMgABJHJlY2lwaWVudGABDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBABRAQFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAD9AQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeU0BATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlAQIBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50pQEBLE11bHRpQXNzZXRzAAEcbWF4aW1hbMgBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmVNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMBAgFATXVsdGlBc3NldEZpbHRlcgABEGRlc3RNAQE0TXVsdGlMb2NhdGlvbgABDHhjbZkBARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZv/QEBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzAQIBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc60BAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBADhAgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BADhAgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c6UBASxNdWx0aUFzc2V0cwABGHRpY2tldE0BATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEALQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWS0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodNUBARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQApQEBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAClAQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBADxAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADJAQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAOkBAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm/9AQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhgAQx1MzIAARBuYW1lGAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lGAEcVmVjPHU4PgABLGNyYXRlX21ham9yYAEMdTMyAAE8bWluX2NyYXRlX21pbm9yYAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAD9AQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAFUBASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya10BASROZXR3b3JrSWQAASxkZXN0aW5hdGlvblEBAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y22ZAQEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldK0BAShNdWx0aUFzc2V0AAEgdW5sb2NrZXJNAQE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARh0YXJnZXRNAQE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0rQEBKE11bHRpQXNzZXQAARRvd25lck0BATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldK0BAShNdWx0aUFzc2V0AAEYbG9ja2VyTQEBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBABNAQE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW7xAQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAO0CDAx4Y204ZG91YmxlX2VuY29kZWQ0RG91YmxlRW5jb2RlZAQEVAAABAEcZW5jb2RlZBgBHFZlYzx1OD4AAPECDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQA9QIBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAPUCAAAC+QIA+QIMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAB0CARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAdAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAB0CARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlNQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVySQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0cx0CARhBc3NldHMAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cx0CARhBc3NldHMAARBkZXN0YQEBIExvY2F0aW9uAAEMeGNtEQIBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZPUBAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdNUBARhXZWlnaHQAARBjYWxs7QIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAZQEBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAE0CAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHNRAgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeWEBASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlUQIBLEFzc2V0RmlsdGVyAAEQd2FudB0CARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c1ECASxBc3NldEZpbHRlcgABHHJlc2VydmVhAQEgTG9jYXRpb24AAQx4Y20RAgEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyAAEQZGVzdGEBASBMb2NhdGlvbgABDHhjbRECARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzUQIBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMlAgEUQXNzZXQAATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAPECASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAPECASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzHQIBGEFzc2V0cwABGHRpY2tldGEBASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAB0CARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAB0CARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABJAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAyQEBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvTQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQATQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBABtAQEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmt1AQEkTmV0d29ya0lkAAEsZGVzdGluYXRpb25lAQFASW50ZXJpb3JMb2NhdGlvbgABDHhjbRECARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0JQIBFEFzc2V0AAEgdW5sb2NrZXJhAQEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldCUCARRBc3NldAABGHRhcmdldGEBASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0JQIBFEFzc2V0AAEUb3duZXJhAQEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0JQIBFEFzc2V0AAEYbG9ja2VyYQEBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3yAEQYm9vbAArACBTZXRUb3BpYwQACAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAYQEBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdA0CASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkCAUBPcHRpb248TG9jYXRpb24+AC8AAP0CDCxzdGFnaW5nX3hjbQh2NQxYY20EEENhbGwAAAQAAQMBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAAEDAAACBQMABQMMLHN0YWdpbmdfeGNtCHY1LEluc3RydWN0aW9uBBBDYWxsAAHQNFdpdGhkcmF3QXNzZXQEAGkCARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBABpAgEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAGkCARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lktAEcUXVlcnlJZAABIHJlc3BvbnNlgQIBIFJlc3BvbnNlAAEobWF4X3dlaWdodNUBARhXZWlnaHQAARxxdWVyaWVyoQIBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c2kCARhBc3NldHMAASxiZW5lZmljaWFyeeABIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzaQIBGEFzc2V0cwABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmT1AQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHSlAgE4T3B0aW9uPFdlaWdodD4AARBjYWxs7QIBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmABDHUzMgABQG1heF9tZXNzYWdlX3NpemVgAQx1MzIAATBtYXhfY2FwYWNpdHlgAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGABDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JgAQx1MzIAARhzZW5kZXJgAQx1MzIAASRyZWNpcGllbnRgAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQA5AFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c60CASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ54AEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABEGRlc3TgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlrQIBLEFzc2V0RmlsdGVyAAEQd2FudGkCARhBc3NldHMAARxtYXhpbWFsyAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c60CASxBc3NldEZpbHRlcgABHHJlc2VydmXgASBMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHOtAgEsQXNzZXRGaWx0ZXIAARBkZXN04AEgTG9jYXRpb24AAQx4Y21dAgEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb6kCAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c60CASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzcQIBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0DQIBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAD9AgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAD9AgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c2kCARhBc3NldHMAARh0aWNrZXTgASBMb2NhdGlvbgAYABBUcmFwBAC0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lktAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTVAQEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAGkCARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAGkCARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAChAgFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAhQIBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBADpAQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4YAEMdTMyAAEQbmFtZRgBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRgBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmABDHUzMgABPG1pbl9jcmF0ZV9taW5vcmABDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAqQIBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADsASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya/QBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9u5AFASW50ZXJpb3JMb2NhdGlvbgABDHhjbV0CARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEgdW5sb2NrZXLgASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0cQIBFEFzc2V0AAEYdGFyZ2V04AEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldHECARRBc3NldAABFG93bmVy4AEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0cQIBFEFzc2V0AAEYbG9ja2Vy4AEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXfIARBib29sACsAIFNldFRvcGljBAAIASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADgASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXQNAgEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW6hAgFAT3B0aW9uPExvY2F0aW9uPgAvABxQYXlGZWVzBAEUYXNzZXRxAgEUQXNzZXQAMABASW5pdGlhdGVUcmFuc2ZlchQBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AASxyZW1vdGVfZmVlc7kCAWxPcHRpb248QXNzZXRUcmFuc2ZlckZpbHRlcj4AATxwcmVzZXJ2ZV9vcmlnaW7IARBib29sAAEYYXNzZXRzwQIB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbV0CARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW7JAgFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNt/QIBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzzQIBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAAAJAwQYT3B0aW9uBARUATgBCBBOb25lAAAAEFNvbWUEADgAAAEAAA0DEFBzdGFnaW5nX3hjbV9leGVjdXRvchh0cmFpdHM4YXNzZXRfdHJhbnNmZXIwVHJhbnNmZXJUeXBlAAEQIFRlbGVwb3J0AAAAMExvY2FsUmVzZXJ2ZQABAEhEZXN0aW5hdGlvblJlc2VydmUAAgA0UmVtb3RlUmVzZXJ2ZQQASQEBRFZlcnNpb25lZExvY2F0aW9uAAMAABEDCAx4Y21AVmVyc2lvbmVkQXNzZXRJZAABDAhWMwQAsQEBLHYzOjpBc3NldElkAAMACFY0BAApAgEsdjQ6OkFzc2V0SWQABAAIVjUEAHUCASx2NTo6QXNzZXRJZAAFAAAVAwQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAABkDDEhjdW11bHVzX3BhbGxldF94Y20YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuHQMMUHBhbGxldF9tZXNzYWdlX3F1ZXVlGHBhbGxldBBDYWxsBARUAAEIJHJlYXBfcGFnZQgBOG1lc3NhZ2Vfb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAAAQ9AVJlbW92ZSBhIHBhZ2Ugd2hpY2ggaGFzIG5vIG1vcmUgbWVzc2FnZXMgcmVtYWluaW5nIHRvIGJlIHByb2Nlc3NlZCBvciBpcyBzdGFsZS5IZXhlY3V0ZV9vdmVyd2VpZ2h0EAE4bWVzc2FnZV9vcmlnaW4hAwFITWVzc2FnZU9yaWdpbk9mPFQ+AAEQcGFnZTgBJFBhZ2VJbmRleAABFGluZGV4OAEcVDo6U2l6ZQABMHdlaWdodF9saW1pdNUBARhXZWlnaHQAATR4RXhlY3V0ZSBhbiBvdmVyd2VpZ2h0IG1lc3NhZ2UuAE0BVGVtcG9yYXJ5IHByb2Nlc3NpbmcgZXJyb3JzIHdpbGwgYmUgcHJvcGFnYXRlZCB3aGVyZWFzIHBlcm1hbmVudCBlcnJvcnMgYXJlIHRyZWF0ZWRUYXMgc3VjY2VzcyBjb25kaXRpb24uAHQtIGBvcmlnaW5gOiBNdXN0IGJlIGBTaWduZWRgLjUBLSBgbWVzc2FnZV9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgYXJyaXZlZC49AS0gYHBhZ2VgOiBUaGUgcGFnZSBpbiB0aGUgcXVldWUgaW4gd2hpY2ggdGhlIG1lc3NhZ2UgdG8gYmUgZXhlY3V0ZWQgaXMgc2l0dGluZy4JAS0gYGluZGV4YDogVGhlIGluZGV4IGludG8gdGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkLlkBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIG1heGltdW0gYW1vdW50IG9mIHdlaWdodCBhbGxvd2VkIHRvIGJlIGNvbnN1bWVkIGluIHRoZSBleGVjdXRpb25EICBvZiB0aGUgbWVzc2FnZS4A9EJlbmNobWFyayBjb21wbGV4aXR5IGNvbnNpZGVyYXRpb25zOiBPKGluZGV4ICsgd2VpZ2h0X2xpbWl0KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuIQMIXGN1bXVsdXNfcHJpbWl0aXZlc19jb3JlWEFnZ3JlZ2F0ZU1lc3NhZ2VPcmlnaW4AAQwQSGVyZQAAABhQYXJlbnQAAQAcU2libGluZwQAnAEYUGFyYUlkAAIAACUDDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzKQMBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAEh8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLgBVAVRoaXMgd2lsbCByZXR1cm4gYE9rYCBpbiBhbGwgY2lyY3Vtc3RhbmNlcy4gVG8gZGV0ZXJtaW5lIHRoZSBzdWNjZXNzIG9mIHRoZSBiYXRjaCwgYW4xAWV2ZW50IGlzIGRlcG9zaXRlZC4gSWYgYSBjYWxsIGZhaWxlZCBhbmQgdGhlIGJhdGNoIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiB0aGVVAWBCYXRjaEludGVycnVwdGVkYCBldmVudCBpcyBkZXBvc2l0ZWQsIGFsb25nIHdpdGggdGhlIG51bWJlciBvZiBzdWNjZXNzZnVsIGNhbGxzIG1hZGVNAWFuZCB0aGUgZXJyb3Igb2YgdGhlIGZhaWxlZCBjYWxsLiBJZiBhbGwgd2VyZSBzdWNjZXNzZnVsLCB0aGVuIHRoZSBgQmF0Y2hDb21wbGV0ZWRgTGV2ZW50IGlzIGRlcG9zaXRlZC40YXNfZGVyaXZhdGl2ZQgBFGluZGV4LQMBDHUxNgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAE03FNlbmQgYSBjYWxsIHRocm91Z2ggYW4gaW5kZXhlZCBwc2V1ZG9ueW0gb2YgdGhlIHNlbmRlci4AVQFGaWx0ZXIgZnJvbSBvcmlnaW4gYXJlIHBhc3NlZCBhbG9uZy4gVGhlIGNhbGwgd2lsbCBiZSBkaXNwYXRjaGVkIHdpdGggYW4gb3JpZ2luIHdoaWNovHVzZSB0aGUgc2FtZSBmaWx0ZXIgYXMgdGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwuAEUBTk9URTogSWYgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55IGFjY291bnQtYmFzZWQgZmlsdGVyaW5nIGlzIG5vdCBob25vcmVkIChpLmUuYQFiZWNhdXNlIHlvdSBleHBlY3QgYHByb3h5YCB0byBoYXZlIGJlZW4gdXNlZCBwcmlvciBpbiB0aGUgY2FsbCBzdGFjayBhbmQgeW91IGRvIG5vdCB3YW50UQF0aGUgY2FsbCByZXN0cmljdGlvbnMgdG8gYXBwbHkgdG8gYW55IHN1Yi1hY2NvdW50cyksIHRoZW4gdXNlIGBhc19tdWx0aV90aHJlc2hvbGRfMWB8aW4gdGhlIE11bHRpc2lnIHBhbGxldCBpbnN0ZWFkLgD0Tk9URTogUHJpb3IgdG8gdmVyc2lvbiAqMTIsIHRoaXMgd2FzIGNhbGxlZCBgYXNfbGltaXRlZF9zdWJgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uJGJhdGNoX2FsbAQBFGNhbGxzKQMBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAjTsU2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzIGFuZCBhdG9taWNhbGx5IGV4ZWN1dGUgdGhlbS4hAVRoZSB3aG9sZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrIGFuZCBmYWlsIGlmIGFueSBvZiB0aGUgY2FsbHMgZmFpbGVkLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLixkaXNwYXRjaF9hcwgBJGFzX29yaWdpbjEDAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADGMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgA0IyMgQ29tcGxleGl0eRwtIE8oMSkuLGZvcmNlX2JhdGNoBAEUY2FsbHMpAwF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h01QEBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4caWZfZWxzZQgBEG1haW4gAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEgZmFsbGJhY2sgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW4xAwFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABxTIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AUQFBbG1vc3QgdGhlIHNhbWUgYXMgW2BQYWxsZXQ6OmRpc3BhdGNoX2FzYF0gYnV0IGZvcndhcmRzIGFueSBlcnJvciBvZiB0aGUgaW5uZXIgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuKQMAAAIgAC0DAAAFBAAxAwhkbmV4dF9wZW9wbGVfcGFzZW9fcnVudGltZTBPcmlnaW5DYWxsZXIAATAYc3lzdGVtBAA1AwF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAAAsUG9sa2Fkb3RYY20EADkDAUhwYWxsZXRfeGNtOjpPcmlnaW4AHwAoQ3VtdWx1c1hjbQQAPQMBaGN1bXVsdXNfcGFsbGV0X3hjbTo6T3JpZ2luACAAGFBlb3BsZQQAQQMBbGluZGl2X3BhbGxldF9wZW9wbGU6Ok9yaWdpbgAzAChQcm9vZk9mSW5rBABNAwGoaW5kaXZfcGFsbGV0X3Byb29mX29mX2luazo6T3JpZ2luPFJ1bnRpbWU+ADUAEEdhbWUEAFEDAYhpbmRpdl9wYWxsZXRfZ2FtZTo6T3JpZ2luPFJ1bnRpbWU+ADcAFFNjb3JlBABVAwGMaW5kaXZfcGFsbGV0X3Njb3JlOjpPcmlnaW48UnVudGltZT4AOAAoUGVvcGxlTGl0ZQQAWQMBpGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZTo6T3JpZ2luPFJ1bnRpbWU+AD4AJFJlc291cmNlcwQAXQMBeGluZGl2X3BhbGxldF9yZXNvdXJjZXM6Ok9yaWdpbgA/ABxNZW1iZXJzBABlAwGUaW5kaXZfcGFsbGV0X21lbWJlcnM6Ok9yaWdpbjxSdW50aW1lPgBDABxDb2luYWdlBABtAwGUaW5kaXZfcGFsbGV0X2NvaW5hZ2U6Ok9yaWdpbjxSdW50aW1lPgBEABhIb25vdXIEAIkDAWxpbmRpdl9wYWxsZXRfaG9ub3VyOjpPcmlnaW4ARwAANQMMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBBAEQEFJvb3QAAAAYU2lnbmVkBAAEASRBY2NvdW50SWQAAQAQTm9uZQACAChBdXRob3JpemVkAAMAADkDDChwYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgMWGNtBADgASBMb2NhdGlvbgAAACBSZXNwb25zZQQA4AEgTG9jYXRpb24AAQAAPQMMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIFFJlbGF5AAAAQFNpYmxpbmdQYXJhY2hhaW4EAJwBGFBhcmFJZAABAABBAwxMaW5kaXZfcGFsbGV0X3Blb3BsZRhwYWxsZXQYT3JpZ2luAAEIQFBlcnNvbmFsSWRlbnRpdHkEACgBKFBlcnNvbmFsSWQAAAA0UGVyc29uYWxBbGlhcwQARQMBWFJldmlzZWRDb250ZXh0dWFsQWxpYXMAAQAARQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHlYUmV2aXNlZENvbnRleHR1YWxBbGlhcwAADAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEQcmluZzgBJFJpbmdJbmRleAABCGNhSQMBPENvbnRleHR1YWxBbGlhcwAASQMQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHk8Q29udGV4dHVhbEFsaWFzAAAIARRhbGlhcwgBFEFsaWFzAAEcY29udGV4dAgBHENvbnRleHQAAE0DDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBhPcmlnaW4EBFQAAQxYQXV0aG9yaXplZEFwcGx5V2l0aFNpZwQABAEwVDo6QWNjb3VudElkAAAARFJlZmVycmVkQ2FuZGlkYXRlBAAEATBUOjpBY2NvdW50SWQAAQBASW52aXRlZENhbmRpZGF0ZQQABAEwVDo6QWNjb3VudElkAAIAAFEDDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQYT3JpZ2luBARUAAEEHEludml0ZWQEAAQBMFQ6OkFjY291bnRJZAAAAABVAwxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBhPcmlnaW4EBFQAAQRIQWNjb3VudFBhcnRpY2lwYW50BAAEATBUOjpBY2NvdW50SWQAAAAAWQMMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQYT3JpZ2luBARUAAEIKExpdGVQZXJzb24EAAQBMFQ6OkFjY291bnRJZAAAACRMaXRlQWxpYXMEAEUDAVhSZXZpc2VkQ29udGV4dHVhbEFsaWFzAAEAAF0DDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzGHBhbGxldBhPcmlnaW4AAQxETm90aWZpY2F0aW9uQWxpYXMEAAgBFEFsaWFzAAAAOFN0bXRTdG9yZUFsaWFzBAAIARRBbGlhcwABAFBMb25nVGVybVN0b3JhZ2VDbGFpbQgACAEUQWxpYXMAAGEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgACAABhAwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1BNZW1iZXJzaGlwQ29sbGVjdGlvbgABCBhQZW9wbGUAAAAoTGl0ZVBlb3BsZQABAABlAwxQaW5kaXZfcGFsbGV0X21lbWJlcnMYcGFsbGV0GE9yaWdpbgQEVAFpAwEILE1lbWJlckFsaWFzCAAIAShJZGVudGlmaWVyAABFAwFYUmV2aXNlZENvbnRleHR1YWxBbGlhcwAAACxTZWxmSW5jbHVkZQQACAEsTWVtYmVyT2Y8VD4AAQAAaQMIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUcUnVudGltZQAAAABtAwxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0GE9yaWdpbgQEVAFpAwEMEENvaW4IARxjb2luX2lkBAEwVDo6QWNjb3VudElkAAEQY29pbnEDARBDb2luAAAALFVubG9hZFRva2VuDAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4AAShwcm92ZW5fbXNnCAEgW3U4OyAzMl0AAQxmZWWFAwEkVW5sb2FkRmVlAAEAWEluZmFsbGlibGVVbnBhaWRTaWduZWQEAQx3aG8EATBUOjpBY2NvdW50SWQAAgAAcQMMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldBBDb2luAAAIARR2YWx1ZXUDATBEZW5vbWluYXRpb24AAQxhZ2UtAwEMdTE2AAB1AwAABQkAeQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAF9AwRTAAAEAIEDARhWZWM8VD4AAH0DDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAgQMAAAJ9AwCFAwxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0JFVubG9hZEZlZQABCBxQcmVwYWlkAAAAKEZyb21PdXRwdXQIAUhmZWVfcmVjeWNsZXJfdmFsdWV1AwEwRGVub21pbmF0aW9uAAFIZmVlX3JlY3ljbGVyX2luZGV4OAEkUmluZ0luZGV4AAEAAIkDDExpbmRpdl9wYWxsZXRfaG9ub3VyGHBhbGxldBhPcmlnaW4AAQQUVm90ZXIEARxhbGlhc2VzjQMBLFZvdGVBbGlhc2VzAAAAAI0DDExpbmRpdl9wYWxsZXRfaG9ub3VyFHR5cGVzLFZvdGVBbGlhc2VzAAAIATRzdWJqZWN0X2FsaWFzCAEwU3ViamVjdEFsaWFzAAEscG9pbnRfYWxpYXMIAShQb2ludEFsaWFzAACRAww8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEUUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXPMAURWZWM8VDo6QWNjb3VudElkPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAwUQFJbW1lZGlhdGVseSBkaXNwYXRjaCBhIG11bHRpLXNpZ25hdHVyZSBjYWxsIHVzaW5nIGEgc2luZ2xlIGFwcHJvdmFsIGZyb20gdGhlIGNhbGxlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA9AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUBAW11bHRpLXNpZ25hdHVyZSwgYnV0IGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYXBwcm92YWwgcHJvY2Vzcy6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgC4UmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0LgA0IyMgQ29tcGxleGl0eRkBTyhaICsgQykgd2hlcmUgWiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBjYWxsIGFuZCBDIGl0cyBleGVjdXRpb24gd2VpZ2h0LiBhc19tdWx0aRQBJHRocmVzaG9sZC0DAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW50lQMBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEobWF4X3dlaWdodNUBARhXZWlnaHQAAahVAVJlZ2lzdGVyIGFwcHJvdmFsIGZvciBhIGRpc3BhdGNoIHRvIGJlIG1hZGUgZnJvbSBhIGRldGVybWluaXN0aWMgY29tcG9zaXRlIGFjY291bnQgaWb4YXBwcm92ZWQgYnkgYSB0b3RhbCBvZiBgdGhyZXNob2xkIC0gMWAgb2YgYG90aGVyX3NpZ25hdG9yaWVzYC4APQEqKklmIHRoZSBhcHByb3ZhbCB0aHJlc2hvbGQgaXMgbWV0IChpbmNsdWRpbmcgdGhlIHNlbmRlcidzIGFwcHJvdmFsKSwgdGhpcyB3aWxsRQFpbW1lZGlhdGVseSBleGVjdXRlIHRoZSBjYWxsLioqIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGV4ZWN1dGUgYSBtdWx0aXNpZyBjYWxsIC3AYGFwcHJvdmVfYXNfbXVsdGlgIHdpbGwgbmV2ZXIgdHJpZ2dlciBleGVjdXRpb24uAC0BUGF5bWVudDogYERlcG9zaXRCYXNlYCB3aWxsIGJlIHJlc2VydmVkIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCBwbHVzPQFgdGhyZXNob2xkYCB0aW1lcyBgRGVwb3NpdEZhY3RvcmAuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhpcyBkaXNwYXRjaCBoYXBwZW5zIG9yNGlzIGNhbmNlbGxlZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5LlkBLSBgbWF5YmVfdGltZXBvaW50YDogSWYgdGhpcyBpcyB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gdGhpcyBtdXN0IGJlIGBOb25lYC4gSWYgaXQgaXNRAW5vdCB0aGUgZmlyc3QgYXBwcm92YWwsIHRoZW4gaXQgbXVzdCBiZSBgU29tZWAsIHdpdGggdGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZNR0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFsIHRyYW5zYWN0aW9uLogtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuAE0BTk9URTogRm9yIGludGVybWVkaWF0ZSBhcHByb3ZhbHMgKG5vdCB0aGUgZmluYWwgYXBwcm92YWwpLCB5b3Ugc2hvdWxkIGdlbmVyYWxseSB1c2VFAWBhcHByb3ZlX2FzX211bHRpYCBpbnN0ZWFkLCBzaW5jZSBpdCBvbmx5IHJlcXVpcmVzIGEgaGFzaCBvZiB0aGUgY2FsbCBhbmQgaXMgbW9yZShlZmZpY2llbnQuAFkBUmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0IGlmIGB0aHJlc2hvbGRgIGlzIGV4YWN0bHkgYDFgLiBPdGhlcndpc2VVAW9uIHN1Y2Nlc3MsIHJlc3VsdCBpcyBgT2tgIGFuZCB0aGUgcmVzdWx0IGZyb20gdGhlIGludGVyaW9yIGNhbGwsIGlmIGl0IHdhcyBleGVjdXRlZCzcbWF5IGJlIGZvdW5kIGluIHRoZSBkZXBvc2l0ZWQgYE11bHRpc2lnRXhlY3V0ZWRgIGV2ZW50LgA0IyMgQ29tcGxleGl0eVAtIGBPKFMgKyBaICsgQ2FsbClgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLiEBLSBPbmUgY2FsbCBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oWilgIHdoZXJlIGBaYCBpcyB0eC1sZW4uvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50LmwtIFRoZSB3ZWlnaHQgb2YgdGhlIGBjYWxsYC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuQGFwcHJvdmVfYXNfbXVsdGkUASR0aHJlc2hvbGQtAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPMAURWZWM8VDo6QWNjb3VudElkPgABPG1heWJlX3RpbWVwb2ludJUDAZBPcHRpb248VGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASRjYWxsX2hhc2gIASBbdTg7IDMyXQABKG1heF93ZWlnaHTVAQEYV2VpZ2h0AAKYVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuADkBKipUaGlzIGZ1bmN0aW9uIHdpbGwgTkVWRVIgZXhlY3V0ZSB0aGUgY2FsbCwgZXZlbiBpZiB0aGUgYXBwcm92YWwgdGhyZXNob2xkIGlzUQFyZWFjaGVkLioqIEl0IG9ubHkgcmVnaXN0ZXJzIGFwcHJvdmFsLiBUbyBhY3R1YWxseSBleGVjdXRlIHRoZSBjYWxsLCBgYXNfbXVsdGlgIG11c3TwYmUgY2FsbGVkIHdpdGggdGhlIGZ1bGwgY2FsbCBkYXRhIGJ5IGFueSBvZiB0aGUgc2lnbmF0b3JpZXMuAE0BVGhpcyBmdW5jdGlvbiBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGBhc19tdWx0aWAgZm9yIGludGVybWVkaWF0ZSBhcHByb3ZhbHMgc2luY2UgaXTQb25seSByZXF1aXJlcyB0aGUgY2FsbCBoYXNoLCBub3QgdGhlIGZ1bGwgY2FsbCBkYXRhLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuAD0BTk9URTogVG8gZXhlY3V0ZSB0aGUgY2FsbCBhZnRlciBhcHByb3ZhbHMgYXJlIGdhdGhlcmVkLCBhbnkgc2lnbmF0b3J5IG11c3QgY2FsbCkBYGFzX211bHRpYCB3aXRoIHRoZSBmdWxsIGNhbGwgZGF0YS4gVGhpcyBmdW5jdGlvbiBjYW5ub3QgZXhlY3V0ZSB0aGUgY2FsbC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50Lk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC48Y2FuY2VsX2FzX211bHRpEAEkdGhyZXNob2xkLQMBDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzzAFEVmVjPFQ6OkFjY291bnRJZD4AASR0aW1lcG9pbnSZAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABJGNhbGxfaGFzaAgBIFt1ODsgMzJdAANUVQFDYW5jZWwgYSBwcmUtZXhpc3RpbmcsIG9uLWdvaW5nIG11bHRpc2lnIHRyYW5zYWN0aW9uLiBBbnkgZGVwb3NpdCByZXNlcnZlZCBwcmV2aW91c2x5xGZvciB0aGlzIG9wZXJhdGlvbiB3aWxsIGJlIHVucmVzZXJ2ZWQgb24gc3VjY2Vzcy4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBVAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIGZvciB0aGlzIGRpc3BhdGNoIGJlZm9yZSBpdCBpcyBleGVjdXRlZC5BAS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBjYW4gYXBwcm92ZSB0aGlzbGRpc3BhdGNoLiBNYXkgbm90IGJlIGVtcHR5Ll0BLSBgdGltZXBvaW50YDogVGhlIHRpbWVwb2ludCAoYmxvY2sgbnVtYmVyIGFuZCB0cmFuc2FjdGlvbiBpbmRleCkgb2YgdGhlIGZpcnN0IGFwcHJvdmFseHRyYW5zYWN0aW9uIGZvciB0aGlzIGRpc3BhdGNoLswtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBleGVjdXRlZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAuMC0gT25lIGV2ZW50LoQtIEkvTzogMSByZWFkIGBPKFMpYCwgb25lIHJlbW92ZS5wLSBTdG9yYWdlOiByZW1vdmVzIG9uZSBpdGVtLjBwb2tlX2RlcG9zaXQMASR0aHJlc2hvbGQtAwEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXPMAURWZWM8VDo6QWNjb3VudElkPgABJGNhbGxfaGFzaAgBIFt1ODsgMzJdAAQ09FBva2UgdGhlIGRlcG9zaXQgcmVzZXJ2ZWQgZm9yIGFuIGV4aXN0aW5nIG11bHRpc2lnIG9wZXJhdGlvbi4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgbXVzdCBiZSB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yIG9mXHRoZSBtdWx0aXNpZyBvcGVyYXRpb24uAAEBVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyB3YWl2ZWQgaWYgdGhlIGRlcG9zaXQgYW1vdW50IGhhcyBjaGFuZ2VkLgAZAS0gYHRocmVzaG9sZGA6IFRoZSB0b3RhbCBudW1iZXIgb2YgYXBwcm92YWxzIG5lZWRlZCBmb3IgdGhpcyBtdWx0aXNpZy49AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUsICBtdWx0aXNpZy4FAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRoaXMgZGVwb3NpdCBpcyByZXNlcnZlZCBmb3IuAIxFbWl0cyBgRGVwb3NpdFBva2VkYCBpZiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6VAwQYT3B0aW9uBARUAZkDAQgQTm9uZQAAABBTb21lBACZAwAAAQAAmQMIPHBhbGxldF9tdWx0aXNpZyRUaW1lcG9pbnQELEJsb2NrTnVtYmVyATgACAEYaGVpZ2h0OAEsQmxvY2tOdW1iZXIAARRpbmRleDgBDHUzMgAAnQMMLHBhbGxldF9zdWRvGHBhbGxldBBDYWxsBARUAAEUEHN1ZG8EARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAABDUBQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFJvb3RgIG9yaWdpbi5Uc3Vkb191bmNoZWNrZWRfd2VpZ2h0CAEQY2FsbCABfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AARh3ZWlnaHTVAQEYV2VpZ2h0AAEUNQFBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLi0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhlsFN1ZG8gdXNlciB0byBzcGVjaWZ5IHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4cc2V0X2tleQQBDG5ldwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAIIXQFBdXRoZW50aWNhdGVzIHRoZSBjdXJyZW50IHN1ZG8ga2V5IGFuZCBzZXRzIHRoZSBnaXZlbiBBY2NvdW50SWQgKGBuZXdgKSBhcyB0aGUgbmV3IHN1ZG8Qa2V5LhxzdWRvX2FzCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgADEE0BQXV0aGVudGljYXRlcyB0aGUgc3VkbyBrZXkgYW5kIGRpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYFNpZ25lZGAgb3JpZ2luIGZyb21AYSBnaXZlbiBhY2NvdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uKHJlbW92ZV9rZXkABAyEUGVybWFuZW50bHkgcmVtb3ZlcyB0aGUgc3VkbyBrZXkuAGwqKlRoaXMgY2Fubm90IGJlIHVuLWRvbmUuKioEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuoQMMMHBhbGxldF9wcm94eRhwYWxsZXQQQ2FsbAQEVAABLBRwcm94eQwBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGWlAwFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsIAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAAJE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcmlzZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuYQEtIGBmb3JjZV9wcm94eV90eXBlYDogU3BlY2lmeSB0aGUgZXhhY3QgcHJveHkgdHlwZSB0byBiZSB1c2VkIGFuZCBjaGVja2VkIGZvciB0aGlzIGNhbGwu0C0gYGNhbGxgOiBUaGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC4kYWRkX3Byb3h5DAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUZGVsYXk4AURCbG9ja051bWJlckZvcjxUPgABJEUBUmVnaXN0ZXIgYSBwcm94eSBhY2NvdW50IGZvciB0aGUgc2VuZGVyIHRoYXQgaXMgYWJsZSB0byBtYWtlIGNhbGxzIG9uIGl0cyBiZWhhbGYuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6EQEtIGBwcm94eWA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIGBjYWxsZXJgIHdvdWxkIGxpa2UgdG8gbWFrZSBhIHByb3h5LvwtIGBwcm94eV90eXBlYDogVGhlIHBlcm1pc3Npb25zIGFsbG93ZWQgZm9yIHRoaXMgcHJveHkgYWNjb3VudC5NAS0gYGRlbGF5YDogVGhlIGFubm91bmNlbWVudCBwZXJpb2QgcmVxdWlyZWQgb2YgdGhlIGluaXRpYWwgcHJveHkuIFdpbGwgZ2VuZXJhbGx5IGJlFHplcm8uMHJlbW92ZV9wcm94eQwBIGRlbGVnYXRlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4AAhyoVW5yZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM6JQEtIGBwcm94eWA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIGBjYWxsZXJgIHdvdWxkIGxpa2UgdG8gcmVtb3ZlIGFzIGEgcHJveHkuQQEtIGBwcm94eV90eXBlYDogVGhlIHBlcm1pc3Npb25zIGN1cnJlbnRseSBlbmFibGVkIGZvciB0aGUgcmVtb3ZlZCBwcm94eSBhY2NvdW50LjhyZW1vdmVfcHJveGllcwADGLRVbnJlZ2lzdGVyIGFsbCBwcm94eSBhY2NvdW50cyBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBdAVdBUk5JTkc6IFRoaXMgbWF5IGJlIGNhbGxlZCBvbiBhY2NvdW50cyBjcmVhdGVkIGJ5IGBjcmVhdGVfcHVyZWAsIGhvd2V2ZXIgaWYgZG9uZSwgdGhlblkBdGhlIHVucmVzZXJ2ZWQgZmVlcyB3aWxsIGJlIGluYWNjZXNzaWJsZS4gKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiosY3JlYXRlX3B1cmUMAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleC0DAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUaW5kZXgtAwEMdTE2AAEYaGVpZ2h0YAFEQmxvY2tOdW1iZXJGb3I8VD4AASRleHRfaW5kZXhgAQx1MzIABUCgUmVtb3ZlcyBhIHByZXZpb3VzbHkgc3Bhd25lZCBwdXJlIHByb3h5LgBJAVdBUk5JTkc6ICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqIEFueSBmdW5kcyBoZWxkIGluIGl0IHdpbGwgYmU0aW5hY2Nlc3NpYmxlLgBZAVJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLCBhbmQgdGhlIHNlbmRlciBhY2NvdW50IG11c3QgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgYSBjYWxsIHRvsGBjcmVhdGVfcHVyZWAgd2l0aCBjb3JyZXNwb25kaW5nIHBhcmFtZXRlcnMuAFUBLSBgc3Bhd25lcmA6IFRoZSBhY2NvdW50IHRoYXQgb3JpZ2luYWxseSBjYWxsZWQgYGNyZWF0ZV9wdXJlYCB0byBjcmVhdGUgdGhpcyBhY2NvdW50LlUBLSBgaW5kZXhgOiBUaGUgZGlzYW1iaWd1YXRpb24gaW5kZXggb3JpZ2luYWxseSBwYXNzZWQgdG8gYGNyZWF0ZV9wdXJlYC4gUHJvYmFibHkgYDBgLgkBLSBgcHJveHlfdHlwZWA6IFRoZSBwcm94eSB0eXBlIG9yaWdpbmFsbHkgcGFzc2VkIHRvIGBjcmVhdGVfcHVyZWAuRQEtIGBoZWlnaHRgOiBUaGUgaGVpZ2h0IG9mIHRoZSBjaGFpbiB3aGVuIHRoZSBjYWxsIHRvIGBjcmVhdGVfcHVyZWAgd2FzIHByb2Nlc3NlZC5RAS0gYGV4dF9pbmRleGA6IFRoZSBleHRyaW5zaWMgaW5kZXggaW4gd2hpY2ggdGhlIGNhbGwgdG8gYGNyZWF0ZV9wdXJlYCB3YXMgcHJvY2Vzc2VkLgA1AUZhaWxzIHdpdGggYE5vUGVybWlzc2lvbmAgaW4gY2FzZSB0aGUgY2FsbGVyIGlzIG5vdCBhIHByZXZpb3VzbHkgY3JlYXRlZCBwdXJl+GFjY291bnQgd2hvc2UgYGNyZWF0ZV9wdXJlYCBjYWxsIGhhcyBjb3JyZXNwb25kaW5nIHBhcmFtZXRlcnMuIGFubm91bmNlCAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoPAE0Q2FsbEhhc2hPZjxUPgAGPAUBUHVibGlzaCB0aGUgaGFzaCBvZiBhIHByb3h5LWNhbGwgdGhhdCB3aWxsIGJlIG1hZGUgaW4gdGhlIGZ1dHVyZS4AXQFUaGlzIG11c3QgYmUgY2FsbGVkIHNvbWUgbnVtYmVyIG9mIGJsb2NrcyBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgYHByb3h5YCBpcyBhdHRlbXB0ZWQlAWlmIHRoZSBkZWxheSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3h5IHJlbGF0aW9uc2hpcCBpcyBncmVhdGVyIHRoYW4gemVyby4AEQFObyBtb3JlIHRoYW4gYE1heFBlbmRpbmdgIGFubm91bmNlbWVudHMgbWF5IGJlIG1hZGUgYXQgYW55IG9uZSB0aW1lLgAJAVRoaXMgd2lsbCB0YWtlIGEgZGVwb3NpdCBvZiBgQW5ub3VuY2VtZW50RGVwb3NpdEZhY3RvcmAgYXMgd2VsbCBhcxkBYEFubm91bmNlbWVudERlcG9zaXRCYXNlYCBpZiB0aGVyZSBhcmUgbm8gb3RoZXIgcGVuZGluZyBhbm5vdW5jZW1lbnRzLgAlAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCBhIHByb3h5IG9mIGByZWFsYC4ALFBhcmFtZXRlcnM6DQEtIGByZWFsYDogVGhlIGFjY291bnQgdGhhdCB0aGUgcHJveHkgd2lsbCBtYWtlIGEgY2FsbCBvbiBiZWhhbGYgb2YuFQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlIGJ5IHRoZSBgcmVhbGAgYWNjb3VudC5McmVtb3ZlX2Fubm91bmNlbWVudAgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaDwBNENhbGxIYXNoT2Y8VD4AByhwUmVtb3ZlIGEgZ2l2ZW4gYW5ub3VuY2VtZW50LgBZAU1heSBiZSBjYWxsZWQgYnkgYSBwcm94eSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhleSBwcmV2aW91c2x5IGFubm91bmNlZCBhbmQgcmV0dXJuMHRoZSBkZXBvc2l0LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlamVjdF9hbm5vdW5jZW1lbnQIASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkY2FsbF9oYXNoPAE0Q2FsbEhhc2hPZjxUPgAIKLBSZW1vdmUgdGhlIGdpdmVuIGFubm91bmNlbWVudCBvZiBhIGRlbGVnYXRlLgBhAU1heSBiZSBjYWxsZWQgYnkgYSB0YXJnZXQgKHByb3hpZWQpIGFjY291bnQgdG8gcmVtb3ZlIGEgY2FsbCB0aGF0IG9uZSBvZiB0aGVpciBkZWxlZ2F0ZXMlAShgZGVsZWdhdGVgKSBoYXMgYW5ub3VuY2VkIHRoZXkgd2FudCB0byBleGVjdXRlLiBUaGUgZGVwb3NpdCBpcyByZXR1cm5lZC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczr0LSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0aGF0IHByZXZpb3VzbHkgYW5ub3VuY2VkIHRoZSBjYWxsLrwtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0byBiZSBtYWRlLjxwcm94eV9hbm5vdW5jZWQQASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZaUDAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGwgAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAksTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXplZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AqFJlbW92ZXMgYW55IGNvcnJlc3BvbmRpbmcgYW5ub3VuY2VtZW50KHMpLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLmEBLSBgZm9yY2VfcHJveHlfdHlwZWA6IFNwZWNpZnkgdGhlIGV4YWN0IHByb3h5IHR5cGUgdG8gYmUgdXNlZCBhbmQgY2hlY2tlZCBmb3IgdGhpcyBjYWxsLtAtIGBjYWxsYDogVGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuMHBva2VfZGVwb3NpdAAKIEkBUG9rZSAvIEFkanVzdCBkZXBvc2l0cyBtYWRlIGZvciBwcm94aWVzIGFuZCBhbm5vdW5jZW1lbnRzIGJhc2VkIG9uIGN1cnJlbnQgdmFsdWVzLg0BVGhpcyBjYW4gYmUgdXNlZCBieSBhY2NvdW50cyB0byBwb3NzaWJseSBsb3dlciB0aGVpciBsb2NrZWQgYW1vdW50LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAAEBVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyB3YWl2ZWQgaWYgdGhlIGRlcG9zaXQgYW1vdW50IGhhcyBjaGFuZ2VkLgCMRW1pdHMgYERlcG9zaXRQb2tlZGAgaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMupQMEGE9wdGlvbgQEVAGpAwEIEE5vbmUAAAAQU29tZQQAqQMAAAEAAKkDCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lJFByb3h5VHlwZQABGAxBbnkAAAAsTm9uVHJhbnNmZXIAAQAsQ2FuY2VsUHJveHkAAgAgSWRlbnRpdHkAAwBESWRlbnRpdHlKdWRnZW1lbnQABAAgQ29sbGF0b3IABQAArQMMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0EENhbGwEBFQAASAsdW5kZXJfYWxpYXMEARBjYWxsIAG0Qm94PDxUIGFzIGZyYW1lX3N5c3RlbTo6Q29uZmlnPjo6UnVudGltZUNhbGw+AAAQFQFEaXNwYXRjaCBhIGNhbGwgdW5kZXIgYW4gYWxpYXMgdXNpbmcgdGhlIGBhY2NvdW50IDwtPiBhbGlhc2AgbWFwcGluZy4ARQFUaGlzIGlzIGEgY2FsbCB2ZXJzaW9uIG9mIHRoZSB0cmFuc2FjdGlvbiBleHRlbnNpb24gYEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50YC4lAUl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGluc3RlYWQgd2hlbiBzdWl0YWJsZS5Ec2V0X2FsaWFzX2FjY291bnQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAE0Y2FsbF92YWxpZF9hdDgBREJsb2NrTnVtYmVyRm9yPFQ+AAFMLQFUaGlzIHRyYW5zYWN0aW9uIGlzIHJlZnVuZGVkIGlmIHN1Y2Nlc3NmdWwgYW5kIG5vIGFsaWFzIHdhcyBwcmV2aW91c2x5IHNldC4AsFRoZSBjYWxsIGlzIHZhbGlkIGZyb20gYGNhbGxfdmFsaWRfYXRgIHVudGlsvGBjYWxsX3ZhbGlkX2F0ICsgYWNjb3VudF9zZXR1cF90aW1lX3RvbGVyYW5jZWAuHQFgYWNjb3VudF9zZXR1cF90aW1lX3RvbGVyYW5jZWAgaXMgYSBjb25zdGFudCBhdmFpbGFibGUgaW4gdGhlIG1ldGFkYXRhLgBhAVRoaXMgY2FsbCBpcyBhdXRob3JpemVkIHRocm91Z2ggdGhlIGBBc1BlcnNvbmFsQWxpYXNXaXRoUHJvb2ZgIHZhcmlhbnQgb2YgdGhlIGBBc1BlcnNvbmBZAXRyYW5zYWN0aW9uIGV4dGVuc2lvbiwgd2hpY2ggcHJvdmlkZXMgbm8gbm9uY2UtYmFzZWQgcmVwbGF5IHByb3RlY3Rpb24uIFJlcGxheSBpcyBvbmx5WQFwcmV2ZW50ZWQgZm9yIGFzIGxvbmcgYXMgdGhlIGFsaWFzIHN0aWxsIHBvaW50cyBhdCB0aGUgYWNjb3VudCB0aGlzIGNhbGwgc2V0cy4gQXMgc29vblUBYXMgdGhlIGFsaWFzIGlzIHBvaW50ZWQgYXQgYSBkaWZmZXJlbnQgYWNjb3VudCAoYnkgYW5vdGhlciBgc2V0X2FsaWFzX2FjY291bnRgKSwgdGhpc00BY2FsbCBiZWNvbWVzIHJlcGxheWFibGUgYWdhaW4gdW50aWwgaXRzIHZhbGlkaXR5IHBlcmlvZCBlbGFwc2VzLiBDb25zZXF1ZW50bHksIGlmIDJZAXN1Y2ggdHJhbnNhY3Rpb25zIHNldHRpbmcgMiBkaWZmZXJlbnQgYWNjb3VudHMgaGF2ZSBvdmVybGFwcGluZyB2YWxpZGl0eSBwZXJpb2RzLCB0aGV5TQFjYW4gYmUgcmVwbGF5ZWQgYWdhaW5zdCBlYWNoIG90aGVyIGluZGVmaW5pdGVseSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBvdmVybGFwLiBUb1UBYXZvaWQgdGhpcywgdGhlIGNhbGxlciBtdXN0IG5vdCBoYXZlIDIgc3VjaCB0cmFuc2FjdGlvbnMgYWxpdmUgKHdpdGhpbiB0aGVpciB2YWxpZGl0eWRwZXJpb2QpIGF0IHRoZSBzYW1lIHRpbWUuACxQYXJhbWV0ZXJzOrgtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gc2V0IHRoZSBhbGlhcyBmb3IuAQEtIGBjYWxsX3ZhbGlkX2F0YDogVGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBjYWxsIGJlY29tZXMgdmFsaWQuTHVuc2V0X2FsaWFzX2FjY291bnQAAgQVAVJlbW92ZSB0aGUgbWFwcGluZyBmcm9tIGEgcGFydGljdWxhciBhbGlhcyB0byBpdHMgcmVnaXN0ZXJlZCBhY2NvdW50Lmhmb3JjZV9yZWNvZ25pemVfcGVyc29uaG9vZAQBGHBlb3BsZbEDAUBWZWM8TWVtYmVyT2Y8VD4+AAMQ4FJlY29nbml6ZSBhIHNldCBvZiBwZW9wbGUgd2l0aG91dCBhbnkgYWRkaXRpb25hbCBjaGVja3MuAFEBVGhlIHBlb3BsZSBhcmUgaWRlbnRpZmllZCBieSB0aGUgcHJvdmlkZWQgbGlzdCBvZiBrZXlzIGFuZCB3aWxsIGVhY2ggYmUgYXNzaWduZWQsIGlumG9yZGVyLCB0aGUgbmV4dCBhdmFpbGFibGUgcGVyc29uYWwgSUQuXHNldF9wZXJzb25hbF9pZF9hY2NvdW50CAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABNGNhbGxfdmFsaWRfYXQ4AURCbG9ja051bWJlckZvcjxUPgAEPGhTZXQgYSBwZXJzb25hbCBpZCBhY2NvdW50LgBNAVRoZSBhY2NvdW50IGNhbiB0aGVuIGJlIHVzZWQgdG8gc2lnbiB0cmFuc2FjdGlvbnMgb24gYmVoYWxmIG9mIHRoZSBwZXJzb25hbCBpZCwgYW5kpHByb3ZpZGUgcmVwbGF5IHByb3RlY3Rpb24gd2l0aCB0aGUgbm9uY2UuAFEBVGhpcyB0cmFuc2FjdGlvbiBpcyByZWZ1bmRlZCBpZiBzdWNjZXNzZnVsIGFuZCBubyBhY2NvdW50IHdhcyBwcmV2aW91c2x5IHNldCBmb3IgdGhlMHBlcnNvbmFsIGlkLgCwVGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgY2FsbF92YWxpZF9hdGAgdW50aWy8YGNhbGxfdmFsaWRfYXQgKyBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYC4dAWBhY2NvdW50X3NldHVwX3RpbWVfdG9sZXJhbmNlYCBpcyBhIGNvbnN0YW50IGF2YWlsYWJsZSBpbiB0aGUgbWV0YWRhdGEuACxQYXJhbWV0ZXJzOrgtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gc2V0IHRoZSBhbGlhcyBmb3IuAQEtIGBjYWxsX3ZhbGlkX2F0YDogVGhlIGJsb2NrIG51bWJlciB3aGVuIHRoZSBjYWxsIGJlY29tZXMgdmFsaWQuZHVuc2V0X3BlcnNvbmFsX2lkX2FjY291bnQABQR4VW5zZXQgdGhlIHBlcnNvbmFsIGlkIGFjY291bnQuYGNyZWF0ZV9wZW9wbGVfY29sbGVjdGlvbgAGKHRDcmVhdGUgdGhlIHBlb3BsZSBjb2xsZWN0aW9uLgApAVRoaXMgY2FsbCBpcyB2YWxpZCBvbmx5IGlmIHRoZSBjb2xsZWN0aW9uIGRvZXNuJ3QgZXhpc3QgeWV0LiBPbmNlIGNyZWF0ZWQsjHRoaXMgY2FsbCBjYW5ub3QgYmUgZXhlY3V0ZWQgYWdhaW4uANRUaGUgY29sbGVjdGlvbiBpcyBjcmVhdGVkIHdpdGggYSBmaXhlZCBjb25maWd1cmF0aW9uOrgtIE93bmVyOiBDb25maWd1cmVkIHZpYSBgQ29sbGVjdGlvbk93bmVyYCB0eXBlwC0gT25ib2FyZGluZyBzaXplOiBgUEVPUExFX09OQk9BUkRJTkdfU0laRWAgKDEwKUgtIE1vZGU6IGBGbGV4aWJsZWBMLSBSaW5nIHNpemU6IGBSMmU5YFhjbGVhbl91cF9zdGFsZV9hbGlhc2VzBAEcYWxpYXNlc7UDAdxCb3VuZGVkVmVjPENvbnRleHR1YWxBbGlhcywgQ29uc3RVMzI8TUFYX0JVTEtfQ0xFQU5VUD4+AAdQoFJlbW92ZSBzdGFsZSBhbGlhcyA8LT4gYWNjb3VudCBtYXBwaW5ncy4AYEEgbWFwcGluZyBpcyBzdGFsZSB3aGVuOi0BLSBpdHMgY29udGV4dCBoYXMgYmVlbiByZW1vdmVkIGZyb20gW2BDb25maWc6OkFjY291bnRDb250ZXh0c2BdIChnb3Zlcm5hbmNlqCAgcmVjb25maWd1cmF0aW9uLCBlbmRlZCBhaXJkcm9wIGV0Yy4pLCBvcnAtIGl0cyByaW5nIGhhcyBiZWVuIGRlbGV0ZWQuAB0BUmV2aXNpb24gbWlzbWF0Y2hlcyBkbyBub3QgcmVuZGVyIGFuIGFsaWFzIHN0YWxlLiBUaGUgdXNlciBjYW4gY29udGludWUVAXRyYW5zYWN0aW5nIHZpYSBgQXNQZXJzb25hbEFsaWFzV2l0aEFjY291bnRSZXZpc2VkYCB3aXRob3V0IGhhdmluZyB0b0xyZWRvIGFjY291bnQgc2V0dXAuAPxUeXBpY2FsbHkgc3VibWl0dGVkIGJ5IHRoZSBPQ1csIGJ1dCB0aGUgZGlzcGF0Y2ggZG9lcyBub3QgdHJ1c3SodGhlIGNhbGxlci4gRWFjaCBhbGlhcyBpcyByZS12YWxpZGF0ZWQgdmlh7GBTZWxmOjplbnN1cmVfYWxpYXNfaXNfc3RhbGVgOyB0aG9zZSB0aGF0IGFyZSBub3Qgc3RhbGUgYXJlIHNraXBwZWQuAPBBdCBtb3N0IFtgTUFYX0JVTEtfQ0xFQU5VUGBdIGFsaWFzZXMgYXJlIHByb2Nlc3NlZCBwZXIgY2FsbC4AAQFUaGUgdHJhbnNhY3Rpb24gc291cmNlIG11c3QgYmUgbG9jYWwgb3IgaW4tYmxvY2suIFRodXMsIGV4dGVybmFseGludm9jYXRpb25zIGFyZSBub3QgcGVybWl0dGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6xAwAAAggAtQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFJAwRTAAAEALkDARhWZWM8VD4AALkDAAACSQMAvQMMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQQQ2FsbAQEVAABRBB2b3RlCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABHG9waW5pb27BAwEkSnVkZ2VtZW50AAAE4EZlZWxlc3Mgb24gc3VjY2VzcyAoZGV0ZXJtaW5lZCBvbmx5IGJ5IHRvcCB0aHJlZSBsaW5lcykuKGNsb3NlX2Nhc2UIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAFMbWF4X2NhbGxiYWNrX3dlaWdodNUBARhXZWlnaHQAARBRAWBtYXhfY2FsbGJhY2tfd2VpZ2h0YCBpcyBhIGNhbGxlci1kZWNsYXJlZCB1cHBlciBib3VuZCBvbiB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsYmFja1UBZGlzcGF0Y2hlZCB3aGVuIHRoZSBjYXNlIGlzIGNsb3NlZC4gSXQgaXMgaW5jbHVkZWQgaW4gdGhpcyBjYWxsJ3MgZGVjbGFyZWQgd2VpZ2h0IGFuZFkBY2hlY2tlZCBhZ2FpbnN0IHRoZSBhY3R1YWwgY2FsbGJhY2sgd2VpZ2h0IG9uLWNoYWluLCB3aXRoIHRoZSBkaWZmZXJlbmNlIHJlZnVuZGVkLiBUaGVBAWNhbGwgZmFpbHMgd2l0aCBgQ2FsbGJhY2tXZWlnaHRUb29Mb3dgIGlmIHRoZSBib3VuZCBkb2VzIG5vdCBjb3ZlciB0aGUgY2FsbGJhY2suKGNsZWFuX3ZvdGUIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAEUdm90ZXIIARRBbGlhcwACDC0BT3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZC4gVGhlIHRyYW5zYWN0aW9uIGlzIGF1dGhvcml6ZWQgaW4gYEF1dGhvcml6ZUNhbGxgYQF3aGVuIHRoZSBzb3VyY2UgaXMgbG9jYWwgKGUuZy4gZnJvbSB0aGUgb2ZmY2hhaW4gd29ya2VyKS4gRm9yIGV4dGVybmFsIHRyYW5zYWN0aW9ucywgdXNlUGBjbGVhbl92b3RlX3NpZ25lZGAuJHJlYXBfY2FzZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgAAwAkaW50ZXJ2ZW5lDAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAABHHZlcmRpY3TBAwEkSnVkZ2VtZW50AAFMbWF4X2NhbGxiYWNrX3dlaWdodNUBARhXZWlnaHQABBBRAWBtYXhfY2FsbGJhY2tfd2VpZ2h0YCBpcyBhIGNhbGxlci1kZWNsYXJlZCB1cHBlciBib3VuZCBvbiB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsYmFja1UBZGlzcGF0Y2hlZCB3aGVuIHRoZSBjYXNlIGlzIGludGVydmVuZWQuIEl0IGlzIGluY2x1ZGVkIGluIHRoaXMgY2FsbCdzIGRlY2xhcmVkIHdlaWdodFkBYW5kIGNoZWNrZWQgYWdhaW5zdCB0aGUgYWN0dWFsIGNhbGxiYWNrIHdlaWdodCBvbi1jaGFpbiwgd2l0aCB0aGUgZGlmZmVyZW5jZSByZWZ1bmRlZC5RAVRoZSBjYWxsIGZhaWxzIHdpdGggYENhbGxiYWNrV2VpZ2h0VG9vTG93YCBpZiB0aGUgYm91bmQgZG9lcyBub3QgY292ZXIgdGhlIGNhbGxiYWNrLihjbGFpbV92b3RlBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAAFCCEBQSBwZXJzb24gY2xhaW1zIHRoZSBtb2IgY3JlZGl0IGFzc29jaWF0ZWQgd2l0aCBhIGNvcnJlY3Qgdm90ZSBvbiBhIGNhc2UuYFRoZSBjYXNlIG11c3QgYmUgYERvbmVgLjhwYXlvdXRfcmV3YXJkcwQBLGRlc3RpbmF0aW9uBAEwVDo6QWNjb3VudElkAAYECQFBIHBlcnNvbiBjb252ZXJ0cyB0aGVpciBjbGFpbWVkIG1vYiBjcmVkaXQgaW50byBhIGRpcmVjdCB0cmFuc2Zlci4sY2xhaW1fdm90ZXMEATBjYXNlX2luZGljZXPJAwE4VmVjPENhc2VJbmRleD4ABwg1AUEgcGVyc29uIGNsYWltcyBtdWx0aXBsZSBtb2IgY3JlZGl0cyBhc3NvY2lhdGVkIGEgY29ycmVjdCB2b3RlIG9uIGEgY2FzZS4gVGhlUGNhc2UgbXVzdCBiZSBgRG9uZWAuSHN0YXJ0X3BheW91dF9yb3VuZAAIAFhzY2hlZHVsZV9wYXlvdXRfcm91bmRzDAEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+AAEUY291bnQ4AQx1MzIAARhwZXJpb2Q4AURCbG9ja051bWJlckZvcjxUPgAJAFhyZW1vdmVfcGF5b3V0X3NjaGVkdWxlBAEUaW5kZXg4AQx1MzIACgAwY2xhaW1fY3JlZGl0AAsAMGNsZWFuX3BvaW50cwgBFHJvdW5kOAEoUm91bmRJbmRleAABFHZvdGVyCAEUQWxpYXMADABAZm9yY2VfcmlwZW5fY2FzZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgADQAodG91Y2hfY2FzZQQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgADgBQY2xlYXJfdm90aW5nX3BlbmFsdHkADwBEY2xlYW5fdm90ZV9zaWduZWQIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4AAEUdm90ZXIIARRBbGlhcwAQBFhPcmlnaW4gbXVzdCBiZSBzaWduZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsEDEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5JEp1ZGdlbWVudAABCBRUcnV0aAQAxQMBFFRydXRoAAAAIENvbnRlbXB0AAEAAMUDEDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5FFRydXRoAAEIEFRydWUAAAAURmFsc2UAAQAAyQMAAAI4AM0DDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldBBDYWxsBARUAAFYFGFwcGx5AAAMkC0gRGVjbGFyZSBpbnRlbnRpb24gdG8gZ2V0IGEgdGF0dG9vLkwtIERlcG9zaXQgaXMgdGFrZW4uuC0gYElua1R5cGVgIG1heSBub3QgYmUgYFByb2NlZHVyYWxEZXJpdmF0aXZlYC48c3VibWl0X2V2aWRlbmNlBAEgZXZpZGVuY2UIATBFdmlkZW5jZUhhc2gAARC8LSBPcGVuIGEgTW9iIFJ1bGUgY2FzZSB0byBqdWRnZSB0aGUgYGV2aWRlbmNlYC78LSBSZXF1ZXN0cyBhIGp1ZGdlbWVudCBmb3IgdGhlIHByb29mLW9mLWluayBldmlkZW5jZSBzdGF0ZW1lbnQuUQEtIE5lZWRzIGBTaWduZWRFeHRlbnNpb25gIHRvIGF2b2lkIHVwZnJvbnQgcmVxdWlyZW1lbnQgZm9yIGZlZSBpZiBganVkZ2VtZW50cyA9PSAwYC45AS0gSWYgYGp1ZGdlbWVudHMgPiAwYCwgdGhlbiBhbiBhZGRpdGlvbmFsIGZlZSBzaG91bGQgYmUgY2hhcmdlZCBpbnRvIFRyZWFzdXJ5LhhqdWRnZWQMARh0aWNrZXQ4AURPcmFjbGVUaWNrZXRPZjxUPgABHGNvbnRleHR4AUBKdWRnZW1lbnRDb250ZXh0AAEkanVkZ2VtZW50wQMBJEp1ZGdlbWVudAACBOhJcyBjYWxsZWQgYnkgdGhlIE9yYWNsZSB3aGVuIHRoZSBldmlkZW5jZSBoYXMgYmVlbiBqdWRnZWQuRHJlZ2lzdGVyX3JlZmVycmVkDAEMa2V5CAEsTWVtYmVyT2Y8VD4AASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAABSHByb29mX29mX293bmVyc2hpcNEDAbA8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQADJFAtIEdldHMgYSBuZXcgYGluZGV4YHgtIFB1dHMgYW4gZW50cnkgaW50byBgUGVvcGxlYC6YLSBDYWxscyBQZW9wbGUvYG5ld1BlcnNvbihpbmRleCwga2V5KWAALCMgQXJndW1lbnRzsCogYGtleWAgLSBUaGUgcGVyc29uYWwgaWRlbnRpdHkgdG8gcmVnaXN0ZXIuIQEqIGBkZXN0aW5hdGlvbmAgLSBUaGUgYWNjb3VudCByZWNlaXZpbmcgdGhlIGNhbmRpZGF0ZSdzIHJlZmVycmFsIHJld2FyZC5JASogYHByb29mX29mX293bmVyaHNpcGAgLSBUaGUgc2lnbmF0dXJlIG9mIHByZWRlZmluZWQgcHJlZml4IGAicG9wIHJlZ2lzdGVyIHVzaW5nImCoICBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgc2VuZGVyIGFjY291bnQgaWQuVHJlZ2lzdGVyX25vbl9yZWZlcnJlZAwBDGtleQgBLE1lbWJlck9mPFQ+AAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQAAUhwcm9vZl9vZl9vd25lcnNoaXDRAwGwPFQ6OkNyeXB0byBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUABDhQLSBHZXRzIGEgbmV3IGBpbmRleGB4LSBQdXRzIGFuIGVudHJ5IGludG8gYFBlb3BsZWAumC0gQ2FsbHMgUGVvcGxlL2BuZXdQZXJzb24oaW5kZXgsIGtleSlgACwjIEFyZ3VtZW50c7AqIGBrZXlgIC0gVGhlIHBlcnNvbmFsIGlkZW50aXR5IHRvIHJlZ2lzdGVyLsAqIGBkZXN0aW5hdGlvbmAgLSBUaGUgYWNjb3VudCByZWNlaXZpbmcgcmV3YXJkcy5JASogYHByb29mX29mX293bmVyaHNpcGAgLSBUaGUgc2lnbmF0dXJlIG9mIHByZWRlZmluZWQgcHJlZml4IGAicG9wIHJlZ2lzdGVyIHVzaW5nImCoICBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgc2VuZGVyIGFjY291bnQgaWQuACgjIFdhcm5pbmc6ADkBVGhpcyBjYWxsIGNhbiBwYXkgdHdvIHJld2FyZHMgdG8gdGhlIHNhbWUgYWNjb3VudCBmb3Igbm9uLXJlZmVycmVkIGNhbmRpZGF0ZXMuKQFUaGUgYXBwIGlzIHJlc3BvbnNpYmxlIGZvciBhbnkgYWRkaXRpb25hbCBwcml2YWN5IGhhbmRsaW5nIGFmdGVyIHRyYW5zZmVyLhhyZXJvbGwABQAYY29tbWl0CAEYY2hvaWNl1QMBJElua0Nob2ljZQABKHJlcXVpcmVfaWQVAwFIT3B0aW9uPFBlcnNvbmFsSWQ+AAYUSQFDb21taXQgdG8gYSBkZXNpZ24gYW5kIGF1dGhvcml6ZSB0aGUgc3RvcmFnZSBmb3IgKHBvc3NpYmx5IGp1c3QgaW5pdGlhbCkgZXZpZGVuY2UuAFUBSWYgYSBzcGVjaWZpYyBwZXJzb25hbCBpZGVudGl0eSBpcyByZXF1aXJlZCwgdGhlbiB0aGlzIGNhbiBiZSBwbGFjZWQgaW4gYHJlcXVpcmVfaWRgLkEBVGhpcyBjYW4gYmUgYW55IHVudXNlZC91bnJlc2VydmVkIHBlcnNvbmFsIGlkZW50aXR5IG5vIGdyZWF0ZXIgdGhhbiB0aGUgYE5leHRJZGAgY291bnRlci40YWxsb2NhdGVfZnVsbAAHABx0aW1lb3V0BAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAIDDkBT25jZSBhIHRpbWVvdXQgcGFzc2VzLCByZW1vdmVzIGEgY2FuZGlkYXRlIHdobyBpcyBzZWxlY3RlZCBidXQgbm90IHlldCBwcm92ZW4uWQFJZiB0aGUgY2FuZGlkYXRlIHdhcyByZWZlcnJlZCB0aGVuIHJlZmVycmFsIGlzIGJhZCwgaWYgY2FuZGlkYXRlIGFwcGxpZWQgd2l0aCBkZXBvc2l0LExkZXBvc2l0IGlzIHNsYXNoZWQuIGZsYWtlb3V0AAkEtFJlbW92ZSBhIGNhbmRpZGF0ZSB3aG8gaGFzIG5vdCB5ZXQgY29tbWl0dGVkLlBhcHBseV93aXRoX3NpZ25hdHVyZQwBIHJlZmVycmVyKAEoUGVyc29uYWxJZAABJHNpZ25hdHVyZdkDAUhUOjpUaWNrZXRTaWduYXR1cmUAARh0aWNrZXQEASRUOjpUaWNrZXQAChB0VXRpbGl6ZSBhIHJlZmVycmFsIHNpZ25hdHVyZS4AXQFUaGUgcGF5bG9hZCB0byBiZSBzaWduZWQgYnkgdGhlIHJlZmVycmVyIHVzaW5nIHRoZWlyIHJlZ2lzdGVyZWQga2V5IHBhaXIgaXMgdGhlIGVuY29kZWSkYnl0ZXMgb2YgdGhlIGFjY291bnQgSUQgb2YgdGhlIGNhbmRpZGF0ZS5UYXBwbHlfd2l0aF9pbnZpdGF0aW9uDAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBLFRpY2tldE9mPFQ+AAEkc2lnbmF0dXJl2QMBSFQ6OlRpY2tldFNpZ25hdHVyZQATENRBcHBseSB0byB0aGUgUHJvb2Ytb2YtSW5rIHByb2Nlc3Mgd2l0aCBhbiBpbnZpdGF0aW9uLgBZAVRoZSBwYXlsb2FkIHRvIGJlIHNpZ25lZCBieSB0aGUgaW52aXRlciB1c2luZyB0aGVpciByZWdpc3RlcmVkIGtleSBwYWlyIGlzIHRoZSBlbmNvZGVkpGJ5dGVzIG9mIHRoZSBhY2NvdW50IElEIG9mIHRoZSBjYW5kaWRhdGUuRGFkZF9kZXNpZ25fZmFtaWx5DAEUaW5kZXgtAwEsRmFtaWx5SW5kZXgAARBraW5k4QMBKEZhbWlseUtpbmQAAQhpZAgBIEZhbWlseUlkAAsE8EFkZCBhIGRlc2lnbiBmYW1pbHkuIE11c3QgaGF2ZSBwcml2aWxlZ2VkIGFjY2VzcyB0byBkbyB0aGlzLkxzZXRfcmVmZXJyYWxfdGlja2V0BAEYdGlja2V0BAEkVDo6VGlja2V0AAwYvEFkZCBhIHJlZmVycmFsIHRpY2tldCBhc3NvY2lhdGVkIHdpdGggYSBwZXJzb24uAFUBT25seSBvbmUgcmVmZXJyYWwgdGlja2V0IG1heSBiZSBhY3RpdmUgYXQgYW55IGdpdmVuIHRpbWUgZm9yIG9uZSBwZXJzb24uIENhbGxpbmcgdGhpcyUBZXh0cmluc2ljIHdoaWxlIGEgdmFsaWQgdGlja2V0IGlzIHNldCB3aWxsIG92ZXJ3cml0ZSB0aGUgZXhpc3RpbmcgdGlja2V0LgA5AUlmIGFueSBwZW5kaW5nIHJlZmVycmFsIHJld2FyZHMgYXJlIHByZXNlbnQsIHRoZXkgbmVlZCB0byBiZSByZWdpc3RlcmVkIGZpcnN0LlhjYW5jZWxfcmVmZXJyYWxfdGlja2V0BAEYdGlja2V0BAEkVDo6VGlja2V0AA0EyENhbmNlbCBhIHJlZmVycmFsIHRpY2tldCBhc3NvY2lhdGVkIHdpdGggYSBwZXJzb24ujHJlZ2lzdGVyX3N1Y2Nlc3NmdWxfcmVmZXJyYWxfcmV3YXJkBAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQADgA0Z3JhbnRfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAPGORHcmFudHMgaW52aXRlcyB0byBhbiBhY2NvdW50IHNvIHRoZXkgY2FuIGRpc3RyaWJ1dGUgdGhlbS4AmFRoZSBvcmlnaW4gbXVzdCBiZSBgSW52aXRhdGlvbnNPcmlnaW4uALAtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gZ2l2ZSBpbnZpdGVzIHRvLqQtIGBjb3VudGA6IFRoZSBudW1iZXIgb2YgaW52aXRlcyB0byBnaXZlLpByZW1vdmVfYXZhaWxhYmxlX2FuZF9wZW5kaW5nX2ludml0ZXMIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEUbGltaXQ4AQx1MzIAEBicUmVtb3ZlIGFsbCBpbnZpdGVzIGdpdmVuIHRvIGFuIGFjY291bnQuAJxUaGUgb3JpZ2luIG11c3QgYmUgYEludml0YXRpb25zT3JpZ2luYC4A0C0gYGFjY291bnRgOiBUaGUgYWNjb3VudCB0byByZW1vdmUgYWxsIGludml0ZXMgZnJvbS7sLSBgbGltaXRgOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVuZGluZyBpbnZpdGVzIHRvIHJlbW92ZS5Ec2V0X2ludml0ZV90aWNrZXQEARh0aWNrZXQEASxUaWNrZXRPZjxUPgARFEhJbnZpdGUgYW4gYWNjb3VudC4ADQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIGhhdmUgc29tZSBpbnZpdGVzIGxlZnQuAJQtIGB0aWNrZXRgOiBUaGUgaW52aXRlIHRpY2tldCB0byBzZXQuUGNhbmNlbF9pbnZpdGVfdGlja2V0BAEYdGlja2V0BAEsVGlja2V0T2Y8VD4AEhRUQ2FuY2VsIGFuIGludml0YXRpb24uACEBVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSB0aGUgYWNjb3VudCB0aGF0IG93bnMgdGhlIHRpY2tldCB0byBjYW5jZWwuAKAtIGB0aWNrZXRgOiBUaGUgaW52aXRlIHRpY2tldCB0byBjYW5jZWwuRHNldF9jb25maWd1cmF0aW9uBAEYY29uZmln5QMBfENvbmZpZ1JlY29yZDxCbG9ja051bWJlckZvcjxUPj4AMgQVAVNldCB0aGUgY29uZmlndXJhdGlvbiByZWNvcmQuIE11c3QgaGF2ZSBwcml2aWxlZ2VkIGFjY2VzcyB0byBkbyB0aGlzLmBzZXRfcmVpbWJ1cnNlbWVudF92YWx1ZXMIATxyZWZlcnJlZF92YWx1ZXPpAwHoQm91bmRlZFZlYzwoQmFsYW5jZU9mPFQ+LCB1MzIpLCBUOjpNYXhSZWltYnVyc2VtZW50VmFsdWVzPgABPHJlZmVycmVyX3ZhbHVlc+kDAehCb3VuZGVkVmVjPChCYWxhbmNlT2Y8VD4sIHUzMiksIFQ6Ok1heFJlaW1idXJzZW1lbnRWYWx1ZXM+ADMoTQFTZXQgdGhlIHZhbHVlcyBvZiB0aGUgcmVpbWJ1cnNlbWVudCBhd2FyZGVkIHRvIHJlZmVycmVkIGNhbmRpZGF0ZXMgYXMgd2VsbCBhcyB0aGVpck0BcmVmZXJyZXJzLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2YgcmVpbWJ1cnNlbWVudHMgZm9yIGVhY2ggdmFsdWUuIFRoZXNlIHZhbHVlcyBhcmUkc3RvcmVkIGluUQFyZXZlcnNlIG9yZGVyIG9mIHRoZWlyIHByaW9yaXR5LCBzbyB0aGUgbGFzdCB2YWx1ZSBpbiB0aGUgbGlzdCB3aWxsIGJlIHRoZSBmaXJzdCBvbmVJAXRvIGJlIHVzZWQgYnkgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtLiBUaGUgbGVuZ3RoIG9mIHRoZSB0d28gbGlzdHMgbXVzdCBiZSBlcXVhbC4AIFdBUk5JTkchAE0BQWZ0ZXIgdGhlIG51bWJlciBvZiByZWltYnVyc2VtZW50cyBpcyBleGhhdXN0ZWQgZm9yIGEgdmFsdWUgaW4gdGhlIGxpc3QsIHRoZSBwYWxsZXT0c3RhcnRzIHVzaW5nIHRoZSBuZXh0IHZhbHVlIGltbWVkaWF0ZWx5IGZvciBmdXR1cmUgdHJhbnNmZXJzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RAwAAA0AAAAAMANUDDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCRJbmtDaG9pY2UAARRARGVzaWduZWRFbGVjdGl2ZQgALQMBLEZhbWlseUluZGV4AAAtAwEsRGVzaWduSW5kZXgAAABEUHJvY2VkdXJhbEFjY291bnQEAC0DASxGYW1pbHlJbmRleAABAEhQcm9jZWR1cmFsUGVyc29uYWwEAC0DASxGYW1pbHlJbmRleAACAChQcm9jZWR1cmFsCAAtAwEsRmFtaWx5SW5kZXgAAAwBMFZhcmlhbnRJbmRleAADAFBQcm9jZWR1cmFsRGVyaXZhdGl2ZQgAKAEoUGVyc29uYWxJZAAAFQMBSE9wdGlvbjxQZXJzb25hbElkPgAEAADZAwgoc3BfcnVudGltZThNdWx0aVNpZ25hdHVyZQABEBxFZDI1NTE5BADRAwFIZWQyNTUxOTo6U2lnbmF0dXJlAAAAHFNyMjU1MTkEANEDAUhzcjI1NTE5OjpTaWduYXR1cmUAAQAURWNkc2EEAN0DAUBlY2RzYTo6U2lnbmF0dXJlAAIADEV0aAQA3QMBWGVjZHNhOjpLZWNjYWtTaWduYXR1cmUAAwAA3QMAAANBAAAADADhAwxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQoRmFtaWx5S2luZAABECBEZXNpZ25lZAQBFGNvdW50LQMBLERlc2lnbkluZGV4AAAARFByb2NlZHVyYWxBY2NvdW50AAEASFByb2NlZHVyYWxQZXJzb25hbAACAChQcm9jZWR1cmFsBAEUcmFuZ2UMATBWYXJpYW50SW5kZXgAAwAA5QMMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0MENvbmZpZ1JlY29yZAQsQmxvY2tOdW1iZXIBOAAgAThyZXJvbGxfdGltZW91dDgBLEJsb2NrTnVtYmVyAAE8ZmFzdHRyYWNrX2NvdW50OAEMdTMyAAEcbWF4aW11bTgBDHUzMgABOGZ1bGxfYWxsb2NfbGVuKAEMdTY0AAFAZnVsbF9hbGxvY19jb3VudDgBDHUzMgABOGluaXRfYWxsb2NfbGVuKAEMdTY0AAFAaW5pdF9hbGxvY19jb3VudDgBDHUzMgABHHRpbWVvdXQ4ASxCbG9ja051bWJlcgAA6QMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHtAwRTAAAEAPEDARhWZWM8VD4AAO0DAAAECMQ4APEDAAAC7QMA9QMMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldBBDYWxsBARUAAFMTHNpZ25fdXBfd2l0aF9pbnZpdGUIAThpZGVudGlmaWVyX2tled0DAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABIGFpcmRyb3Bz+QMBmE9wdGlvbjxBaXJkcm9wVnJmczxBaXJkcm9wUHJvb2ZPZjxUPj4+AABI0FNpZ24gdXAgZm9yIHRoZSBnYW1lIHVzaW5nIGFuIGFjY291bnQgYW5kIGFuIGludml0ZS4AFQFUaGlzIGlzIGZvciBuZXcgcGxheWVycyBvciBhcmNoaXZlZCBwbGF5ZXJzLCBvdGhlciBwbGF5ZXJzIHNob3VsZCB1c2WoW2BQYWxsZXQ6OnNpZ25fdXBfd2l0aF9hY2NvdW50YF0gZm9yIGZyZWUuANRBIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVnaXN0cmF0aW9uIHBoYXNlLgBFAWBhaXJkcm9wc2Agb3B0aW9uYWxseSBlbnRlcnMgdGhlIHBsYXllciBpbnRvIHRoZSBhaXJkcm9wIGRyYXdzIHNjaGVkdWxlZCBmb3IgdGhpczkBZ2FtZS4gUGFzcyBgTm9uZWAgdG8gc2tpcCBpdDsgb3RoZXJ3aXNlIGl0IGhvbGRzIGV4YWN0bHkgb25lIFZSRiBwZXIgc2NoZWR1bGVkVQFhaXJkcm9wIGV2ZW50IChgYWlyZHJvcHNfc2NoZWR1bGVkYCBpbiB0aGUgW2BHYW1lYF0gc3RvcmFnZSksIGluIGFpcmRyb3AtaW5kZXggb3JkZXIuVQFFYWNoIGVudHJ5IGlzIGJvdW5kIHRvIGl0cyBvd24gZXZlbnQgaWQgKHNlZSBbYFBhbGxldDo6YWlyZHJvcF9ldmVudF9pZGBdKSwgc2VlZHMgdGhlWQFwbGF5ZXIncyBkcmF3IHNsb3QgZm9yIHRoYXQgZXZlbnQgYW5kIHByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgdmFyaWFudCBpZh0BdGhlIHBsYXllciBpcyByZWNvZ25pemVkIChwYWxsZXQtc2NvcmUgYHJlY29nbml0aW9uYCBpcyBgUmVjb2duaXplZGAgb3JVAWBFeHRlcm5hbGx5UmVjb2duaXplZGApLCBvdGhlcndpc2UgdGhlIGFjY291bnQgdmFyaWFudC4gVGhlIHNpZ24tdXAgZmFpbHMgZW50aXJlbHkgaWZJAWFueSBldmVudCBkb2VzIG5vdCBhY2NlcHQgaXRzIHJlZ2lzdHJhdGlvbiBvciB0aGUgbnVtYmVyIG9mIHN1cHBsaWVkIFZSRnMgZG9lcyBub3RZAW1hdGNoIGBhaXJkcm9wc19zY2hlZHVsZWRgLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgW2BBaXJkcm9wVnJmc2BdIGZvciBtb3JlIGRldGFpbHMuAEEBVGhlIG9yaWdpbiBtdXN0IGJlIGEgc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIHVzZSB0aGUgYEdhbWVBc0ludml0ZWRgIGV4dGVuc2lvbi5Qc2lnbl91cF93aXRoX2FjY291bnQIAThpZGVudGlmaWVyX2tled0DAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABIGFpcmRyb3Bz+QMBmE9wdGlvbjxBaXJkcm9wVnJmczxBaXJkcm9wUHJvb2ZPZjxUPj4+AAFMmFNpZ24gdXAgZm9yIHRoZSBnYW1lIHVzaW5nIGFuIGFjY291bnQuAD0BSWYgdGhlIHBsYXllciBpcyBuZXcgb3IgYXJjaGl2ZWQsIHRoZW4gYSBkZXBvc2l0IHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgc2lnbmVyLmxPdGhlcndpc2UgdGhlIGNhbGwgaXMgZnJlZS4A1EEgZ2FtZSBtdXN0IGJlIG9uZ29pbmcgYW5kIGluIGl0cyByZWdpc3RyYXRpb24gcGhhc2UuAEUBYGFpcmRyb3BzYCBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhlIGFpcmRyb3AgZHJhd3Mgc2NoZWR1bGVkIGZvciB0aGlzOQFnYW1lLiBQYXNzIGBOb25lYCB0byBza2lwIGl0OyBvdGhlcndpc2UgaXQgaG9sZHMgZXhhY3RseSBvbmUgVlJGIHBlciBzY2hlZHVsZWRVAWFpcmRyb3AgZXZlbnQgKGBhaXJkcm9wc19zY2hlZHVsZWRgIGluIHRoZSBbYEdhbWVgXSBzdG9yYWdlKSwgaW4gYWlyZHJvcC1pbmRleCBvcmRlci5VAUVhY2ggZW50cnkgaXMgYm91bmQgdG8gaXRzIG93biBldmVudCBpZCAoc2VlIFtgUGFsbGV0OjphaXJkcm9wX2V2ZW50X2lkYF0pLCBzZWVkcyB0aGVZAXBsYXllcidzIGRyYXcgc2xvdCBmb3IgdGhhdCBldmVudCBhbmQgcHJvdmVzIHRoZWlyIGlkZW50aXR5IHBhdGg6IHRoZSBhbGlhcyB2YXJpYW50IGlmHQF0aGUgcGxheWVyIGlzIHJlY29nbml6ZWQgKHBhbGxldC1zY29yZSBgcmVjb2duaXRpb25gIGlzIGBSZWNvZ25pemVkYCBvclUBYEV4dGVybmFsbHlSZWNvZ25pemVkYCksIG90aGVyd2lzZSB0aGUgYWNjb3VudCB2YXJpYW50LiBUaGUgc2lnbi11cCBmYWlscyBlbnRpcmVseSBpZkkBYW55IGV2ZW50IGRvZXMgbm90IGFjY2VwdCBpdHMgcmVnaXN0cmF0aW9uIG9yIHRoZSBudW1iZXIgb2Ygc3VwcGxpZWQgVlJGcyBkb2VzIG5vdFkBbWF0Y2ggYGFpcmRyb3BzX3NjaGVkdWxlZGAuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYEFpcmRyb3BWcmZzYF0gZm9yIG1vcmUgZGV0YWlscy4AMQFUaGUgb3JpZ2luIG11c3QgYmUgc2lnbmVkIGJ5IGFuIGFjY291bnQsIG9yLCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgdXNlfGBTY29yZUFzUGFydGljaXBhbnRgIGV4dGVuc2lvbi5Ic2lnbl91cF93aXRoX2FsaWFzEAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAAURzdGF0ZW1lbnRfYWNjb3VudAQBMFQ6OkFjY291bnRJZAABDHNpZ9kDAUxUOjpBY2NvdW50U2lnbmF0dXJlAAEgYWlyZHJvcHP5AwGYT3B0aW9uPEFpcmRyb3BWcmZzPEFpcmRyb3BQcm9vZk9mPFQ+Pj4AAmxUU2lnbiB1cCBmb3IgdGhlIGdhbWUuAFUBSWYgYSBwbGF5ZXIgaXMgYWxyZWFkeSByZWNvZ25pemVkIGJ5IGFub3RoZXIgRElNLCB0aGV5IGNhbiBzaWduIHVzaW5nIHRoZWlyIGFsaWFzIGFuZBEBZG9uJ3QgbmVlZCBhbnkgZGVwb3NpdCBvciBpbnZpdGUgdG8gcHJvdmUgdGhlaXIgaW5pdGlhbCBjcmVkaWJpbGl0eS5hAU9uIHRvcCBvZiB0aGlzIHRoZWlyIHNjb3JlIGlzIG5ldmVyIGdvaW5nIGJlbG93IHBlcnNvbmhvb2QgdGhyZXNob2xkIGFuZCB0aGUgcGxheWVyIHdpbGxMbmV2ZXIgZ2V0IGFyY2hpdmVkLgDUQSBnYW1lIG11c3QgYmUgb25nb2luZyBhbmQgaW4gaXRzIHJlZ2lzdHJhdGlvbiBwaGFzZS4AkFRoZSBvcmlnaW4gbXVzdCBiZSBhIHBlcnNvbmFsIGFsaWFzLgAsUGFyYW1ldGVyczphAS0gYHN0YXRlbWVudF9hY2NvdW50YDogdGhlIGFjY291bnQgaWQgdG8gdXNlIHRvIGludGVyYWN0IHdpdGggdGhlIHN0YXRlbWVudCBzdG9yZSBkdXJpbmcsICB0aGUgZ2FtZS5VAS0gYHNpZ2A6IHRoZSBwcm9vZiBvZiBvd25lcnNoaXAgb2YgdGhlIGFjY291bnQgYHN0YXRlbWVudF9hY2NvdW50YCBieSBhbiBhbGlhcywgaXQgaXNdASAgdGhlIHNpZ25hdHVyZSBvZiB0aGUgbWVzc2FnZSBgInBvcDpnYW1lOnN0bXRfYWNjb3VudF9mb3JfYWxpYXM6ImAgY29uY2F0ZW5hdGVkIHRvIHRoZUkBICBhbGlhcywgYW5kIHRoZW4gaGFzaGVkIHdpdGggYGJsYWtlMl8yNTZgIChibGFrZTIgMjU2Yml0IG91dHB1dCkuIFRoZSBiYXNlIG9mIHRoZRkBICBtZXNzYWdlIGNhbiBiZSBmb3VuZCBpbiB0aGUgY29uc3RhbnQ6IGBwcm9vZl9vZl9vd25lcnNoaXBfbXNnX2Jhc2VgLlEBLSBgYWlyZHJvcHNgOiBvcHRpb25hbGx5IGVudGVycyB0aGUgcGxheWVyIGludG8gdGhlIGFpcmRyb3AgZHJhd3Mgc2NoZWR1bGVkIGZvciB0aGlzYQEgIGdhbWUuIFBhc3MgYE5vbmVgIHRvIHNraXAgaXQ7IG90aGVyd2lzZSBpdCBob2xkcyBleGFjdGx5IG9uZSBWUkYgcGVyIHNjaGVkdWxlZCBhaXJkcm9wYQEgIGV2ZW50IChgYWlyZHJvcHNfc2NoZWR1bGVkYCBpbiB0aGUgYEdhbWVgIHN0b3JhZ2UpLCBpbiBhaXJkcm9wLWluZGV4IG9yZGVyLiBFYWNoIGVudHJ5WQEgIGlzIGJvdW5kIHRvIGl0cyBvd24gZXZlbnQgaWQgKHNlZSBgUGFsbGV0OjphaXJkcm9wX2V2ZW50X2lkYCkgYW5kIHNlZWRzIHRoZSBwbGF5ZXInc2EBICBkcmF3IHNsb3QgZm9yIHRoYXQgZXZlbnQ7IHRoZSBhbGlhcyB2YXJpYW50IG11c3QgYmUgdXNlZCBmb3IgYWxpYXMtYmFzZWQgcGxheWVycyBnaXZlbkEBICB0aGV5IGFyZSByZWNvZ25pemVkIGluIHBhbGxldC1zY29yZSBwYXJ0aWNpcGFudCBpbmZvcm1hdGlvbi4gVGhlIHNpZ24tdXAgZmFpbHNdASAgZW50aXJlbHkgaWYgYW55IGV2ZW50IGRvZXMgbm90IGFjY2VwdCBpdHMgcmVnaXN0cmF0aW9uIG9yIHRoZSBudW1iZXIgb2Ygc3VwcGxpZWQgVlJGc1kBICBkb2VzIG5vdCBtYXRjaCBgYWlyZHJvcHNfc2NoZWR1bGVkYC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIGBBaXJkcm9wVnJmc2AgZm9yIG1vcmUoICBkZXRhaWxzLoBzaWduX3VwX3dpdGhfYWNjb3VudF9saXRlX2ludml0ZQwBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAThpZGVudGlmaWVyX2tled0DAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABIGFpcmRyb3Bz+QMBmE9wdGlvbjxBaXJkcm9wVnJmczxBaXJkcm9wUHJvb2ZPZjxUPj4+ABV0RQFTaWduIHVwIGZvciB0aGUgZ2FtZSB1c2luZyBhbiBhY2NvdW50IGFuZCBhIGxpdGUgaW52aXRlLCB0aGUgaW52aXRhdGlvbiBvZiBhIGxpdGUccGVyc29uLgBVAUxpdGUgcGVyc29uaG9vZCBpcyBjcmVkaWJsZSBlbm91Z2ggdG8gcGxheSwgc28gYSBsaXRlIHBlcnNvbiBjYW4gaW52aXRlIGFuIGFjY291bnQgb2ZNAXRoZWlyIG93bi4gSXQgaXMgcmVnaXN0ZXJlZCBhcyBhbiBhY2NvdW50LWJhc2VkIHBsYXllciB3aXRoIGFuIGludml0ZWQgY3JlZGliaWxpdHkuANRBIGdhbWUgbXVzdCBiZSBvbmdvaW5nIGFuZCBpbiBpdHMgcmVnaXN0cmF0aW9uIHBoYXNlLgBFAWBhaXJkcm9wc2Agb3B0aW9uYWxseSBlbnRlcnMgdGhlIHBsYXllciBpbnRvIHRoZSBhaXJkcm9wIGRyYXdzIHNjaGVkdWxlZCBmb3IgdGhpczkBZ2FtZS4gUGFzcyBgTm9uZWAgdG8gc2tpcCBpdDsgb3RoZXJ3aXNlIGl0IGhvbGRzIGV4YWN0bHkgb25lIFZSRiBwZXIgc2NoZWR1bGVkVQFhaXJkcm9wIGV2ZW50IChgYWlyZHJvcHNfc2NoZWR1bGVkYCBpbiB0aGUgW2BHYW1lYF0gc3RvcmFnZSksIGluIGFpcmRyb3AtaW5kZXggb3JkZXIuVQFFYWNoIGVudHJ5IGlzIGJvdW5kIHRvIGl0cyBvd24gZXZlbnQgaWQgKHNlZSBbYFBhbGxldDo6YWlyZHJvcF9ldmVudF9pZGBdKSwgc2VlZHMgdGhlWQFwbGF5ZXIncyBkcmF3IHNsb3QgZm9yIHRoYXQgZXZlbnQgYW5kIHByb3ZlcyB0aGVpciBpZGVudGl0eSBwYXRoOiB0aGUgYWxpYXMgdmFyaWFudCBpZh0BdGhlIHBsYXllciBpcyByZWNvZ25pemVkIChwYWxsZXQtc2NvcmUgYHJlY29nbml0aW9uYCBpcyBgUmVjb2duaXplZGAgb3JVAWBFeHRlcm5hbGx5UmVjb2duaXplZGApLCBvdGhlcndpc2UgdGhlIGFjY291bnQgdmFyaWFudC4gVGhlIHNpZ24tdXAgZmFpbHMgZW50aXJlbHkgaWZJAWFueSBldmVudCBkb2VzIG5vdCBhY2NlcHQgaXRzIHJlZ2lzdHJhdGlvbiBvciB0aGUgbnVtYmVyIG9mIHN1cHBsaWVkIFZSRnMgZG9lcyBub3RZAW1hdGNoIGBhaXJkcm9wc19zY2hlZHVsZWRgLiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgW2BBaXJkcm9wVnJmc2BdIGZvciBtb3JlIGRldGFpbHMuADUBVGhlIG9yaWdpbiBtdXN0IGJlIGEgbGl0ZSBhbGlhcyBpbiBbYGluZGl2X3BhbGxldF9zY29yZTo6U0NPUkVfQ09OVEVYVGBdLCBzZWVZAVtgQ29uZmlnOjpFbnN1cmVMaXRlQWxpYXNgXS4gVGhlIGxpdGUgcGVyc29uIG5hbWVzIHRoZSBhY2NvdW50IHBsYXlpbmcgb24gdGhlaXIgYmVoYWxmVQF3aXRoIGBhY2NvdW50YCwgc28gdGhlIHBsYXlpbmcgYWNjb3VudCBpcyBub3QgdGhlIGxpdGUgcGVyc29uJ3Mgb3duIGFjY291bnQgYW5kIHN0YXlzTHVubGlua2FibGUgZnJvbSBpdC4AXQFBIGxpdGUgcGVyc29uIGludml0ZXMgb25lIGFjY291bnQsIGV2ZXI6IHRoZSBmaXJzdCBhY2NvdW50IHRoZXkgc2lnbiB1cCB0aGlzIHdheSBpcyB0aGXsb25seSBvbmUgdGhleSBjYW4gcGxheSB3aXRoLCBldmVuIGFmdGVyIGl0IHN0b3BwZWQgcGxheWluZy4AOQFUaGlzIG11c3QgYmUgdXNlZCBieSBsaXRlLXBlb3BsZSBvbiB0aGVpciBmaXJzdCBzaWdudXAgb3IgYWZ0ZXIgdGhleSBoYXZlIGJlZW70YXJjaGl2ZWQuIEZ1cnRoZXIgc2lnbnVwcyB3aGlsZSB0aGUgcGxheWVyIGlzIGFjdGl2ZSBtdXN0IHVzZaRbYFBhbGxldDo6c2lnbl91cF93aXRoX2FjY291bnRgXSBpbnN0ZWFkLhhyZXBvcnQEASxmdWxsX3JlcG9ydBEEATRGdWxsUmVwb3J0PFQ+AANclEFmdGVyIHRoZSBnYW1lLCBzZW5kIHRoZSBmdWxsIHJlcG9ydC4A0FRoZSBnYW1lIG11c3QgYmUgb25nb2luZyBhbmQgaW4gaXRzIHJlcG9ydGluZyBwaGFzZS4AVQFUaGUgb3JpZ2luIG11c3QgYmUgYW4gYWxpYXMsIG9yIHNpZ25lZCBieSBhbiBhY2NvdW50LCBvciBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgdXNlfGBTY29yZUFzUGFydGljaXBhbnRgIGV4dGVuc2lvbi4ARQFgZnVsbF9yZXBvcnRgIGhvbGRzIG9uZSBlbnRyeSBwZXIgcm91bmQgKGV4YWN0bHkgYGdhbWUucm91bmRzYCBvZiB0aGVtKSwgYW5kIGVhY2hFAXJvdW5kIGxpc3RzIG9uZSBgUmVwb3J0YCBwZXIgY28tcGxheWVyIGluIHRoZSByZXBvcnRlcidzIGdyb3VwIGZvciB0aGF0IHJvdW5kLCBpbj0BZ3JvdXAgb3JkZXIgYW5kIGV4Y2x1ZGluZyB0aGUgcmVwb3J0ZXIuIEEgcm91bmQgd2hvc2UgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIHRoZTkBcmVwb3J0ZXIncyByZWFsIGdyb3VwIG1lbWJlcnNoaXAgaXMgcmVqZWN0ZWQgd2l0aCBgRXJyb3I6OkludmFsaWRSZXBvcnRgLiBFYWNoYQFgUmVwb3J0OjpQZXJzb25gIHZvdGUgYXdhcmRzIGFuIGF0dGVuZGFuY2UgTkZUIGNsYWltIGNyZWRpdCB0byB0aGUgYXR0ZXN0ZWUgaW1tZWRpYXRlbHk7jGBSZXBvcnQ6Ok5vdFBlcnNvbmAgYXdhcmRzIG5vdGhpbmcuAEkBQWZ0ZXIgdGhlIHZvdGVzIGZyb20gdGhlIHJlcG9ydCBhcmUgY291bnRlZCwgdGhlIHJlcG9ydGVyIGFuZCBlYWNoIG9mIHRoZSByZXBvcnRlZEUBcGxheWVycyB3aG9zZSBhdHRlbmRhbmNlIGNhbiBub3cgYmUgZGV0ZXJtaW5lZCBhcmUgcHJvY2Vzc2VkIGVhcmx5LiBUaGlzIGxldHMgdGhlTQFnYW1lIHNraXAgdGhlIHBsYXllci1wcm9jZXNzIHBoYXNlIGVudGlyZWx5IHdoZW4gZXZlcnkgcGxheWVyIGhhcyBiZWVuIHByb2Nlc3NlZCBieVR0aGUgZW5kIG9mIHJlcG9ydGluZy4ASQFPbiBzdWNjZXNzIHRoZSBjYWxsIHBheXMgbm8gZmVlIChgUGF5czo6Tm9gKS4gSXRzIHdlaWdodCBzY2FsZXMgd2l0aCB0aGUgbnVtYmVyIG9mTQFjby1wbGF5ZXIgZW50cmllcyBhY3Jvc3MgYWxsIHJvdW5kcywgbm90IHRoZSByb3VuZCBjb3VudCwgc28gcGFydGlhbCBncm91cHMgYXJlIG5vdFEBb3ZlcmNoYXJnZWQuIFRoZSBwcmUtZGlzcGF0Y2ggY2hhcmdlIGFzc3VtZXMgZXZlcnkgY28tcGxheWVyIGVudHJ5IHBsdXMgdGhlIHJlcG9ydGVySQFpcyBlYXJseS1lbmFjdGVkIGFuZCBpcyByZWZ1bmRlZCBkb3duIHRvIHRoZSBhY3R1YWwgZW5hY3RtZW50IGNvdW50IHBvc3QtZGlzcGF0Y2guIG9mZmJvYXJkAAQcgE9mZmJvYXJkIGEgcGxheWVyIGZyb20gdGhlIGdhbWUuAFUBVGhlIG9yaWdpbiBtdXN0IGJlIGFuIGFsaWFzLCBvciBzaWduZWQgYnkgYW4gYWNjb3VudCwgb3Igc2lnbmVkIGJ5IGFuIGFjY291bnQgYW5kIHVzZXxgU2NvcmVBc1BhcnRpY2lwYW50YCBleHRlbnNpb24uAF0BVGhlcmUgbXVzdCBiZSBubyBnYW1lIG9yIHRoZSBleGlzdGluZyBnYW1lIG11c3QgYmUgaW4gcmVnaXN0cmF0aW9uIHBoYXNlIGFuZCB0aGUgcGxheWVylG11c3QgaGF2ZSBub3Qgc2lnbmVkIHVwIGZvciB0aGUgZ2FtZS4ca2lja291dAQBGHBsYXllcgQBMFQ6OkFjY291bnRJZAAFGDEBS2lja291dCBhIGtpY2thYmxlIHBsYXllciB0aGF0IGlzIG5vdCBwbGF5aW5nIGFmdGVyIGBOb25QbGF5aW5nS2lja291dFRpbWVgLgCgVGhlIG9yaWdpbiBtdXN0IGJlIHNpZ25lZCBieSBhbiBhY2NvdW50LgAhAS0gYHBsYXllcmA6IFRoZSBwbGF5ZXIgdG8ga2lja291dC4gSXQgbXVzdCBiZSBhcmNoaXZlZCBhbmQga2lja2FibGUgd2l0aNggIGBhcmNoaXZlZF9zaW5jZWAgb2xkZXIgdGhhbiBgTm9uUGxheWluZ0tpY2tvdXRUaW1lYC40Z3JhbnRfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAGGPRHcmFudCBzb21lIGludml0ZXMgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBkaXN0cmlidXRlIHRoZW0uAIhUaGUgb3JpZ2luIG11c3QgYmUgYEludml0ZUlzc3VlcmAuALQtIGBhY2NvdW50YDogVGhlIGFjY291bnQgdG8gZ3JhbnQgaW52aXRlcyB0by6oLSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGludml0ZXMgdG8gZ3JhbnQukHJlbW92ZV9hdmFpbGFibGVfYW5kX3BlbmRpbmdfaW52aXRlcwgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRsaW1pdDgBDHUzMgAHGJhDbGVhciBhbGwgaW52aXRlcyBnaXZlbiB0byBhbiBhY2NvdW50LgCIVGhlIG9yaWdpbiBtdXN0IGJlIGBJbnZpdGVJc3N1ZXJgLgDQLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgaW52aXRlcyBmcm9tLuwtIGBsaW1pdGA6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZW5kaW5nIGludml0ZXMgdG8gcmVtb3ZlLkRzZXRfaW52aXRlX3RpY2tldAQBGHRpY2tldAQBLFRpY2tldE9mPFQ+AAgUSEludml0ZSBhbiBhY2NvdW50LgANAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGludml0ZXMgbGVmdC4AlC0gYHRpY2tldGA6IFRoZSBpbnZpdGUgdGlja2V0IHRvIHNldC5QY2FuY2VsX2ludml0ZV90aWNrZXQEARh0aWNrZXQEASxUaWNrZXRPZjxUPgAJFERDYW5jZWwgYW4gaW52aXRlLgAhAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgdGhlIGFjY291bnQgdGhhdCBvd25zIHRoZSB0aWNrZXQgdG8gY2FuY2VsLgCgLSBgdGlja2V0YDogVGhlIGludml0ZSB0aWNrZXQgdG8gY2FuY2VsLjhzY2hlZHVsZV9nYW1lcwQBPGdhbWVzX3NjaGVkdWxlcyUEAVhWZWM8R2FtZVNjaGVkdWxlT2Y8VD4+AAoI0FNjaGVkdWxlcyBuZXcgZ2FtZXMgYWNjb3JkaW5nIHRvIHByb3ZpZGVkIHNjaGVkdWxlcy5dAVNjaGVkdWxlcyBtdXN0IGJlIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIsIGFuZCBhZnRlciB0aGUgb25nb2luZyBnYW1lIChpZiB0aGVyZSBpcyBhbnkpLlRyZW1vdmVfc2NoZWR1bGVkX2dhbWUEAThnYW1lX3BsYXlfdGltZTgBDHUzMgALAEBzZXRfcGxheV9kZXBvc2l0BAEYYW1vdW50xAFITmF0aXZlQmFsYW5jZU9mPFQ+ABAEFQFVcGRhdGUgdGhlIGNvbmZpZ3VyZWQgcGxheSBkZXBvc2l0IGFtb3VudCBmb3IgZnV0dXJlIGFjY291bnQgc2lnbnVwcy40Y2xhaW1fYWlyZHJvcAwBKGdhbWVfaW5kZXg4ARxHYW1lSWR4AAE0YWlyZHJvcF9pbmRleAwBCHU4AAEsYmVuZWZpY2lhcnkEATBUOjpBY2NvdW50SWQAEUgtAUNsYWltIGEgcHJpemUgZnJvbSB0aGUgYWlyZHJvcCBldmVudCBhdCBpbmRleCBgYWlyZHJvcF9pbmRleGAgc2NoZWR1bGVkIGZvcjRgZ2FtZV9pbmRleGAuADkBQSBnYW1lIHNjaGVkdWxlcyBvbmUgYWlyZHJvcCBldmVudCBwZXIgZW50cnkgaW4gaXRzIHNjaGVkdWxlJ3MgYGFpcmRyb3BzYCAoc2VlUQFbYEdhbWVTY2hlZHVsZWBdKTsgYGFpcmRyb3BfaW5kZXhgIHNlbGVjdHMgd2hpY2ggb2YgdGhlbSB0byBjbGFpbSBmcm9tLiBBIHBsYXllciB3aG8hAXdvbiBzZXZlcmFsIG9mIHRoZSBnYW1lJ3MgYWlyZHJvcCBldmVudHMgY2xhaW1zIGVhY2ggb2YgdGhlbSBzZXBhcmF0ZWx5LgBhAUVsaWdpYmlsaXR5IHJlcXVpcmVzIDIgY29uZGl0aW9ucyBvbiB0aGUgY2xhaW1hbnQgdG8gYmUgcmVjb2duaXplZCBhbmQgaGF2ZSBhdHRlbmRlZCB0aGVYZ2FtZS4gSW4gbW9yZSBkZXRhaWxzOlEBKiB0byBiZSBlaXRoZXIgcmVjb2duaXplZCBpbiBwYWxsZXQtc2NvcmUgKGByZWNvZ25pdGlvbi5pc19yZWNvZ25pemVkKClgKSBvciB0byBoYXZl2CAgcmVhY2hlZCB0aGUgcGVyc29uaG9vZCBzY29yZSAoYHJlYWNoZWRfcGVyc29uaG9vZGApLGEBKiBBTkQgZm9yIGBnYW1lX2luZGV4YCB0byBtYXRjaCB0aGUgcGFydGljaXBhbnQncyBgbGFzdF9hdHRlbmRlZF9nYW1lYCDigJQgaS5lLiB0aGUgbW9zdFEBICByZWNlbnQgZ2FtZSB0aGUgY2xhaW1hbnQgYWN0dWFsbHkgYXR0ZW5kZWQgbXVzdCBiZSBleGFjdGx5IHRoZSBnYW1lIHRoZSBhaXJkcm9wIGlzVQEgIHRpZWQgdG8uIFN1YnNlcXVlbnQgZ2FtZSBhdHRlbmRhbmNlIG92ZXJyaWRlcyB0aGlzIGluZm9ybWF0aW9uIHNvIHRoZSBjbGFpbSBtdXN0IGJlYQEgIG1hZGUgYmVmb3JlIGF0dGVuZGluZyBhbm90aGVyIGdhbWUuIEluIHBhcnRpY3VsYXIgYW4gYWlyZHJvcCBldmVudCBkcmF3biBsYXRlIHJlbGF0aXZlSQEgIHRvIHRoZSBnYW1lIHBsYXkgdGltZSBtdXN0IGJlIGNsYWltZWQgYmVmb3JlIHRoZSBjbGFpbWFudCBhdHRlbmRzIHRoZSBuZXh0IGdhbWUuALRDbGFpbXMgYWdhaW5zdCBhIGNhbmNlbGxlZCBnYW1lIGFyZSByZWplY3RlZC5sdGVzdG5ldF9mb3JjZV9zdGFydF9zaHVmZmxlAGUM1EZvcmNlIHN0YXJ0IHRoZSBzaHVmZmxlIGJlZm9yZSBpdHMgbm9ybWFsIHN0YXJ0IHRpbWUuAE0BVGhpcyBhY3Rpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGJ5IHRoZSByb290IG9yaWdpbiBhbmQgaXMgb25seSBtZWFudCBmb3IgdGVzdGluZy5sdGVzdG5ldF9mb3JjZV9lbmRfcmVwb3J0aW5nAGYM+EZvcmNlIGVuZCBhIGdhbWUncyByZXBvcnRpbmcgcGhhc2UgYmVmb3JlIGl0cyBub3JtYWwgZW5kIHRpbWUuAE0BVGhpcyBhY3Rpb24gY2FuIG9ubHkgYmUgcGVyZm9ybWVkIGJ5IHRoZSByb290IG9yaWdpbiBhbmQgaXMgb25seSBtZWFudCBmb3IgdGVzdGluZy48c2V0X2dhbWVfcGhhc2VzBAEYcGhhc2VzQQQBTFBoYXNlRHVyYXRpb25WYWx1ZXMADiyIT3ZlcnJpZGUgdGhlIGdhbWUgcGhhc2UgZHVyYXRpb25zLgApAVJlc3RyaWN0ZWQgdG8gW2BDb25maWc6Ok1hbmFnZXJPcmlnaW5gXSAob3Igcm9vdCkuIFVudGlsIHJlc2V0LCBhbGwgZnV0dXJlNQFnYW1lIHNjaGVkdWxlcyB1c2UgdGhlc2UgcGhhc2VzIGluc3RlYWQgb2YgW2BDb25maWc6OkRlZmF1bHRQaGFzZUR1cmF0aW9uc2BdLg0BVG8gcmV2ZXJ0LCB0aGUgbWFuYWdlciByZS1pc3N1ZXMgdGhlIGNhbGwgd2l0aCB0aGUgZGVzaXJlZCBleHBsaWNpdMB2YWx1ZXMg4oCUIHRoZXJlIGlzIG5vIHNlcGFyYXRlIGNsZWFyIGV4dHJpbnNpYy4AGQFPbmx5IGNhbGxhYmxlIHdoaWxlIG5vIGdhbWUgZXhpc3RzIG9yIHRoZSBjdXJyZW50IGdhbWUgaXMgc3RpbGwgaW4gaXRzKQFSZWdpc3RyYXRpb24gcGhhc2U7IG90aGVyd2lzZSBmYWlscyB3aXRoIFtgRXJyb3I6OkludmFsaWRHYW1lU3RhdGVgXS4gVGhpcx0BcHJldmVudHMgY2hhbmdpbmcgcGhhc2UgZHVyYXRpb25zIG9uY2UgcGxheWVycyBoYXZlIGNvbW1pdHRlZCB0byBhIGdhbWWId2hvc2UgdGltaW5nIGlzIGFscmVhZHkgbG9ja2VkIGluLixjYW5jZWxfZ2FtZQAPDD0BQ2FuY2VsIHRoZSBjdXJyZW50IGdhbWUgd2hpbGUgaXQgaXMgc3RpbGwgaW4gdGhlIFJlZ2lzdHJhdGlvbiBvciBTaHVmZmxlIHBoYXNlLgDIUmVzdHJpY3RlZCB0byBbYENvbmZpZzo6TWFuYWdlck9yaWdpbmBdIChvciByb290KS4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu+QMEGE9wdGlvbgQEVAH9AwEIEE5vbmUAAAAQU29tZQQA/QMAAAEAAP0DDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcyxBaXJkcm9wVnJmcwQEUAABCBxBY2NvdW50BAABBAEBAUJvdW5kZWRWZWM8VnJmU2lnbmF0dXJlLCBDb25zdFUzMjx7IE1BWF9HQU1FX0FJUkRST1BTIGFzIHUzMiB9Pj4AAAAUQWxpYXMMARhwcm9vZnMNBAHUQm91bmRlZFZlYzxQLCBDb25zdFUzMjx7IE1BWF9HQU1FX0FJUkRST1BTIGFzIHUzMiB9Pj4AAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEAAAEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBQQEUwAABAAJBAEYVmVjPFQ+AAAFBBAcc3BfY29yZRxzcjI1NTE5DHZyZjBWcmZTaWduYXR1cmUAAAgBKHByZV9vdXRwdXQIATBWcmZQcmVPdXRwdXQAARRwcm9vZtEDASBWcmZQcm9vZgAACQQAAAIFBAANBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0DBFMAAAQAgQMBGFZlYzxUPgAAEQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEVBARTAAAEACEEARhWZWM8VD4AABUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBGQQEUwAABAAdBAEYVmVjPFQ+AAAZBAxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMYUmVwb3J0AAEIGFBlcnNvbgAAACROb3RQZXJzb24AAQAAHQQAAAIZBAAhBAAAAhUEACUEAAACKQQAKQQMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzMEdhbWVTY2hlZHVsZQgcQXNzZXRJZAHgHEJhbGFuY2UBxAAQAThnYW1lX3BsYXlfdGltZTgBDHUzMgABGHJvdW5kcwwBCHU4AAE4bWF4X2dyb3VwX3NpemU4AQx1MzIAASBhaXJkcm9wcy0EAUkBQm91bmRlZFZlYzxHYW1lQWlyZHJvcDxBc3NldElkLCBCYWxhbmNlPiwgQ29uc3RVMzI8CnsgTUFYX0dBTUVfQUlSRFJPUFMgYXMgdTMyIH0+PgAALQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAExBARTAAAEAD0EARhWZWM8VD4AADEEDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcyxHYW1lQWlyZHJvcAgcQXNzZXRJZAHgHEJhbGFuY2UBxAAMASxkcmF3X29mZnNldDgBDHUzMgABMGNsYWltX3dpbmRvdzgBDHUzMgABFHByaXplNQQBeEFpcmRyb3BQcml6ZTxBc3NldElkLCBCYWxhbmNlPgAANQQMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzMEFpcmRyb3BQcml6ZQgcQXNzZXRJZAHgMEFzc2V0QmFsYW5jZQHEABABIGFzc2V0X2lk4AEcQXNzZXRJZAABMGFzc2V0X2Ftb3VudMQBMEFzc2V0QmFsYW5jZQABLG1heF93aW5uZXJzOAEMdTMyAAEod2lubmVyX2NhcDkEARxQZXJtaWxsAAA5BAw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcm1pbGwAAAQAOAEMdTMyAAA9BAAAAjEEAEEEDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlc0xQaGFzZUR1cmF0aW9uVmFsdWVzAAAUATByZWdpc3RyYXRpb244AQx1MzIAARxzaHVmZmxlOAEMdTMyAAFMcG9zdF9zaHVmZmxlX21hcmdpbjgBDHUzMgABJHJlcG9ydGluZzgBDHUzMgABOHBsYXllcl9wcm9jZXNzOAEMdTMyAABFBAxIaW5kaXZfcGFsbGV0X3Njb3JlGHBhbGxldBBDYWxsBARUAAEkWHNjaGVkdWxlX3BheW91dF9yb3VuZHMMARhhbW91bnTEATBCYWxhbmNlT2Y8VD4AARRjb3VudDgBDHUzMgABIGR1cmF0aW9uOAFEQmxvY2tOdW1iZXJGb3I8VD4AAQxcU2NoZWR1bGUgcGF5b3V0IHJvdW5kcy4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LlhyZW1vdmVfcGF5b3V0X3NjaGVkdWxlBAEUaW5kZXg4AQx1MzIAAgyAUmVtb3ZlIGEgc2NoZWR1bGVkIHBheW91dCByb3VuZC4AkENhbGxlZCBmcm9tIGBNYW5hZ2VyT3JpZ2luYCBvciByb290LkB0cmFuc2l0aW9uX3JvdW5kBAEscm91bmRfaW5kZXg4AQx1MzIAAxhIU3RhcnQgYSBuZXcgcm91bmQuAFEBVGhpcyBpcyB2YWxpZCBpZiB0aGUgY3VycmVudCByb3VuZCBpcyBmaW5pc2hlZCwgb3IgaWYgdGhlIGN1cnJlbnQgcm91bmQgZG9lc24ndCBoYXZlqHBsYW5uaW5nIGFuZCBhIHNjaGVkdWxlIGV4aXN0cyB0byBwbGFuIGl0LgC8VGhpcyBpcyBhIHRhc2ssIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gYW55Ym9keS5Qb3BlcmF0ZV9wYXlvdXRfcm91bmQIASxyb3VuZF9pbmRleDgBKFJvdW5kSW5kZXgAARRsaW1pdDgBDHUzMgAEPHhPcGVyYXRlIHNvbWUgcm91bmQgcGF5aW5nIG91dC4AUQFEcmFpbnMgcm91bmQncyBwYXJ0aWNpcGFudHMsIHVwIHRvIGEgbGltaXQuIEZvciBlYWNoIHBhcnRpY2lwYW50LCBhZGQgdGhlIGNhbGN1bGF0ZWQVAXJld2FyZCAoYGJhc2VfcmV3YXJkICsgcmVtYWluZGVyX3BvcnRpb25gKSB0byB0aGVpciBgY3JlZGl0YCBiYWxhbmNlLgBhAVRoZW4sIG1vdmVzIGZ1bmRzIG9uIHRoZSBwb3QgYWNjb3VudCBmcm9tIFBheW91dCB0byBDcmVkaXQsIHNvIHRoZXkgYXJlIG93ZWQgdG8gc3BlY2lmaWOgcGFydGljaXBhbnRzIHJhdGhlciB0aGFuIHRoZSByb3VuZCBwb29sLgBFAUZpbmFsbHksIHJlbGVhc2UgdGhlIGxlZnRvdmVyIGZyb20gdGhlIFBheW91dCBob2xkIGJhY2sgdG8gdGhlIHBvdCdzIGZyZWUgYmFsYW5jZVQoZnVuZHMgYXJlIHJlY3ljbGVkKS4AvFRoaXMgaXMgYSB0YXNrLCBhbmQgY2FuIGJlIGNhbGxlZCBmcm9tIGFueWJvZHkuAMQqIHJvdW5kX2luZGV4OiBUaGUgaW5kZXggb2YgdGhlIHJvdW5kIHRvIG9wZXJhdGUuEQEqIGxpbWl0OiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFydGljaXBhbnRzIHRvIG9wZXJhdGUgaW4gdGhpcyBjYWxsLiBjYXNoX291dAAFJFkBQ2FzaCBvdXQgaGFsZiBvZiB0aGUgc2NvcmUsIHJvdW5kZWQgdXAuIENvbnZlcnRzIHRoZSBzY29yZSBpbnRvIHBvaW50cyBmb3IgdGhlIGN1cnJlbnQlAXBheW91dCByb3VuZC4gQ2FsbGVyIG11c3QgaGF2ZSBuZXZlciByZWFjaGVkIHBlcnNvbmhvb2Qgc2luY2Ugb25ib2FyZGluZy4AtEl0IGNhbiBiZSBjYWxsZWQgb25jZSBwZXIgZ2FtZSBzZXNzaW9uIChlcmEpLgA9AU9yaWdpbiBtdXN0IGJlIHNpZ25lZCBvciBwYXJ0aWNpcGFudCAoc2lnbmVkIGV4dHJpbnNpYyB1c2luZyBTY29yZUFzUGFydGljaXBhbnRYdHJhbnNhY3Rpb24gZXh0ZW5zaW9uKQDMQWxpYXMgb3JpZ2luIGlzIG5vdCBhbGxvd2VkIGFzIHRoZXkgY2FuJ3QgY2FzaCBvdXQuNHJlZGVlbV9jcmVkaXQEASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAAGGFEBUmVkZWVtIGZ1bGwgYWNjdW11bGF0ZWQgY3JlZGl0LCB0cmFuc2ZlcnJpbmcgaXQgdG8gdGhlIHByb3ZpZGVkIGRlc3RpbmF0aW9uIGFjY291bnQuAORDcmVkaXQgaXMgY29udmVydGVkIGZyb20gcG9pbnRzIGR1cmluZyBwYXlvdXQgcHJvY2Vzc2luZy4ASQFPcmlnaW4gbXVzdCBiZSBhIHBlcnNvbiBhbGlhcywgYSBzaWduZWQgYWNjb3VudCBvciBhIHBhcnRpY2lwYW50IChzaWduZWQgZXh0cmluc2ljwHVzaW5nIFNjb3JlQXNQYXJ0aWNpcGFudCB0cmFuc2FjdGlvbiBleHRlbnNpb24pLiByZWdpc3RlcgQBDGtleUkEAQ0BT3B0aW9uPChNZW1iZXJPZjxUPiw8VDo6Q3J5cHRvIGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZSkKPgAHNPBSZWdpc3RlciBhcyBhIHBlcnNvbiwgb3IgcmVzdW1lIHBlcnNvbmhvb2QgYWZ0ZXIgc3VzcGVuc2lvbi4AJQFSZXF1aXJlcyBzY29yZSA+PSBwZXJzb25ob29kIHRocmVzaG9sZCAob3IgaGF2aW5nIHByZXZpb3VzbHkgcmVhY2hlZCBpdCkuAGEBSWYgdGhlIHBhcnRpY2lwYW50IHdhcyBwcmV2aW91c2x5IHJlY29nbmlzZWQgYW5kIGlzIG5vdyBzdXNwZW5kZWQsIHRoZXkgbXVzdCBub3QgcHJvdmlkZYhhIGtleS4gVGhlIGV4aXN0aW5nIGtleSBpcyByZXVzZWQuAD0BSWYgdGhlIHBhcnRpY2lwYW50IHdhcyBuZXZlciByZWNvZ25pc2VkLCB0aGV5IG11c3QgcHJvdmlkZSBhIGtleSBhbmQgYSBwcm9vZiBvZhkBb3duZXJzaGlwIChga2V5YCBwYXJhbWV0ZXIpOiBhIHNpZ25hdHVyZSBvdmVyIGAicG9wIHJlZ2lzdGVyIHVzaW5nIiB8fExzZW5kZXJfYWNjb3VudF9pZGAuAEUBT3JpZ2luIG11c3QgYmUgc2lnbmVkIG9yIGEgcGFydGljaXBhbnQgKHNpZ25lZCBleHRyaW5zaWMgdXNpbmcgU2NvcmVBc1BhcnRpY2lwYW50XHRyYW5zYWN0aW9uIGV4dGVuc2lvbikuaHNldF9hYnNlbmNlX2dyYWNlX3NjaGVkdWxlBAEgc2NoZWR1bGVRBAFEQWJzZW5jZUdyYWNlVGllcnMACDh8U2V0IHRoZSBhYnNlbmNlIGdyYWNlIHNjaGVkdWxlLgApAUV2ZXJ5IHRpZXIgbXVzdCBzYXRpc2Z5OiBgMCA8PSB3aW5kb3cgPD0gOGAgYW5kIGBhbGxvd2VkX21pc3NlcyA8IHdpbmRvd2AuFQFgYWxsb3dlZF9taXNzZXMgPSAwYCBkaXNhYmxlcyBncmFjZSBlbnRpcmVseSAoYW55IGFic2VuY2UgaW1tZWRpYXRlbHkoc3VzcGVuZHMpLgAlAVRpZXJzIG11c3QgYmUgcHJvdmlkZWQgaW4gYXNjZW5kaW5nIG9yZGVyIG9mIGBwb3B1bGF0aW9uX3NpemVfdGhyZXNob2xkYC4A/EFuIGVtcHR5IHNjaGVkdWxlIGRpc2FibGVzIHRoZSBncmFjZSBwZXJpb2QgZW50aXJlbHkgKGltbWVkaWF0ZR0Bc3VzcGVuc2lvbiBvbiBhbnkgbWlzc2VkIGdhbWUpLiBUaGUgbmV3IHJhdGlvIHRha2VzIGVmZmVjdCBhdCB0aGUgc3RhcnQJAW9mIHRoZSBuZXh0IHJlcG9ydCBzZXNzaW9uIHdoZW4gYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJlY2FsY3VsYXRlc1BgQWJzZW5jZUdyYWNlUmF0aW9gLgCQQ2FsbGVkIGZyb20gYE1hbmFnZXJPcmlnaW5gIG9yIHJvb3QuhHNldF9wZXJzb25ob29kX3RocmVzaG9sZF9zY2hlZHVsZQQBIHNjaGVkdWxlXQQBYFBlcnNvbmhvb2RUaHJlc2hvbGRUaWVycwAJQJhTZXQgdGhlIHBlcnNvbmhvb2QtdGhyZXNob2xkIHNjaGVkdWxlLgA4VGllcnMgbXVzdCBiZTowLSBub24tZW1wdHksyC0gc29ydGVkIGFzY2VuZGluZyBieSBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAsGQEtIGNhcHBlZCBieSBhIGZpbmFsIHRpZXIgd2l0aCBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZCA9PSB1MzI6Ok1BWGAsFQEtIHBlci10aWVyOiBgMCA8IHNjb3JlX3RocmVzaG9sZCA8PSBNQVhfUEVSU09OSE9PRF9USFJFU0hPTERgICg9IDIxKSzULSBoYXZlIG5vbi1kZWNyZWFzaW5nIGBzY29yZV90aHJlc2hvbGRgIGFjcm9zcyB0aWVycy4ACQFUaGUgbmV3IGN1cnZlIHRha2VzIGVmZmVjdCBhdCB0aGUgc3RhcnQgb2YgdGhlIG5leHQgcmVwb3J0IHNlc3Npb274d2hlbiBgdXBkYXRlX3RocmVzaG9sZHMoKWAgcmVjYWxjdWxhdGVzIGBQZXJzb25ob29kVGhyZXNob2xkYC4AAQFBbHJlYWR5LXJlY29nbml6ZWQgcGFydGljaXBhbnRzIGFyZSBOT1QgcmV0cm9hY3RpdmVseSBzdXNwZW5kZWQ6EQF0aGUgbmV3IGJhciBvbmx5IGdhdGVzIGZ1dHVyZSBzY29yZSBldmFsdWF0aW9ucyBpbiBgc2V0X2F0dGVuZGFuY2VgLgCQQ2FsbGVkIGZyb20gYE1hbmFnZXJPcmlnaW5gIG9yIHJvb3QuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkkEBBhPcHRpb24EBFQBTQQBCBBOb25lAAAAEFNvbWUEAE0EAAABAABNBAAABAgI0QMAUQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFVBARTAAAEAFkEARhWZWM8VD4AAFUEDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXNAQWJzZW5jZUdyYWNlVGllcgAADAFkcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZDgBDHUzMgABGHdpbmRvdwwBCHU4AAE4YWxsb3dlZF9taXNzZXMMAQh1OAAAWQQAAAJVBABdBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAWEEBFMAAAQAZQQBGFZlYzxUPgAAYQQMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlc1xQZXJzb25ob29kVGhyZXNob2xkVGllcgAACAFkcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZDgBDHUzMgABPHNjb3JlX3RocmVzaG9sZAwBCHU4AABlBAAAAmEEAGkEDGBpbmRpdl9wYWxsZXRfbmZ0X2NyZWRpdHMYcGFsbGV0EENhbGwEBFQAAQxEc2VuZF9jcmVkaXRfdHJlZXMIAThmaXJzdF9zZXF1ZW5jZSgBMFRyZWVTZXF1ZW5jZQABNGRpc2NyaW1pbmF0b3I4AURCbG9ja051bWJlckZvcjxUPgASHEkBRGVsaXZlcnMgdGhlIHF1ZXVlZCBjcmVkaXQgdHJlZXMgdGhhdCBmaXQgb25lIFhDTSBtZXNzYWdlIHRvIHRoZSBORlQgY2xhaW1zIGNoYWluLgBFAUF1dGhvcml6ZWQgY2FsbCBzdWJtaXR0ZWQgYnkgdGhpcyBwYWxsZXQncyBvZmZjaGFpbiB3b3JrZXI6IGl0IGlzIGFjY2VwdGVkIGZyb20gYREBbG9jYWwgb3IgaW4tYmxvY2sgc291cmNlIG9ubHksIHNvIGl0IGNhbm5vdCBiZSBzdWJtaXR0ZWQgZXh0ZXJuYWxseS4AWQFgZmlyc3Rfc2VxdWVuY2VgIG11c3QgYmUgdGhlIHNlcXVlbmNlIGF0IHRoZSBmcm9udCBvZiBgQ3JlZGl0VHJlZURlbGl2ZXJ5UXVldWVgLCB3aGljaD0BbWFrZXMgYSByZXRyeSB0aGF0IHJhY2VkIGEgc3VjY2Vzc2Z1bCBkZWxpdmVyeSBzdGFsZSByYXRoZXIgdGhhbiBhIHNlY29uZCBzZW5kLkxyZXBsYXlfY3JlZGl0X3RyZWVzBAEYYmxvY2tzbQQB6EJvdW5kZWRWZWM8QmxvY2tOdW1iZXJGb3I8VD4sIFQ6Ok1heENyZWRpdFRyZWVzUGVyTWVzc2FnZT4AE0D0UmVzZW5kcyB0aGUgY3JlZGl0IHRyZWVzIG9mIGBibG9ja3NgIHRvIHRoZSBORlQgY2xhaW1zIGNoYWluLgBdAVBlcm1pc3Npb25sZXNzOiBhIGNyZWRpdCB0cmVlIGlzIGEgcHVibGljIGNvbW1pdG1lbnQgdGhlIGNsYWltcyBjaGFpbiBpcyBtZWFudCB0byBob2xkLF0BYW5kIHRoZSB0cmVlcyBhcmUgcmVhZCBmcm9tIFtgTmZ0Q2xhaW1DcmVkaXRSb290c2BdIHJhdGhlciB0aGFuIHN1cHBsaWVkIGJ5IHRoZSBjYWxsZXIuUQFCbG9ja3Mgd2l0aG91dCBhIHRyZWUgYXJlIHNraXBwZWQuIEEgcmVzZW50IHRyZWUgY2FycmllcyBubyBzZXF1ZW5jZSBudW1iZXIsIHNvIHRoaXNdAWNhbm5vdCBkaXN0dXJiIHRoZSBjbGFpbXMgY2hhaW4ncyB0cmFja2luZyBvZiB0aGUgbGl2ZSBzdHJlYW0sIGFuZCBvbmUgdGhlIGNsYWltcyBjaGFpbgEBYWxyZWFkeSBob2xkcyBpcyBpZ25vcmVkIHRoZXJlIHJhdGhlciB0aGFuIG92ZXJ3cml0aW5nIGFueXRoaW5nLgBZAVRoZSBjYWxsZXIgcGF5cyBmb3IgdGhlIHJlbW90ZSB3b3JrLCBbYENvbmZpZzo6TmZ0Q2xhaW1zUmVtb3RlV2VpZ2h0YF0gcGVyIHRyZWUgb24gdG9wXQFvZiB0aGlzIGNhbGwncyBvd24gd2VpZ2h0LCBhbmQgdGhhdCBmZWUgaXMgdGhlIG9ubHkgdGhpbmcgbGltaXRpbmcgaG93IG9mdGVuIGFueW9uZSBtYXlZAXJlcGFpci4gSXQgaXMgZGVsaWJlcmF0ZWx5IG5vdCByYXRlLWxpbWl0ZWQ6IGEgbGltaXQgc2hhcmVkIGJldHdlZW4gYXdhcmQgYmxvY2tzIHdvdWxkWQFsZXQgYSByZXBsYXkgb2YgYW55IHJldGFpbmVkIHJvb3QsIGluY2x1ZGluZyBvbmUgYWxyZWFkeSBkZWxpdmVyZWQsIGNvbnN1bWUgdGhlIHJlcGFpcrhjYXBhY2l0eSBvZiB0aGUgdHJlZXMgdGhhdCByZWFsbHkgYXJlIG1pc3NpbmcuADQjIyBQYXJhbWV0ZXJzEQEtIGBibG9ja3NgOiBUaGUgYXdhcmQgYmxvY2tzIHRvIHJlc2VuZCwgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLnh0ZXN0bmV0X2dyYW50X25mdF9jbGFpbV9jcmVkaXQUASBjbGFpbWFudHEEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgABIGF0dGVzdGVycQQBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+AAEoZ2FtZV9pbmRleDgBHEdhbWVJZHgAARRyb3VuZAwBKFJvdW5kSW5kZXgAAURhdHRlc3Rlcl9wb3NpdGlvbjgBQEF0dGVzdGVyUG9zaXRpb24AZ2DoQXdhcmQgYW4gTkZUIGNsYWltIGNyZWRpdCB0byBgY2xhaW1hbnRgIG91dHNpZGUgb2YgYSBnYW1lLgBNAVRoaXMgYWN0aW9uIGNhbiBvbmx5IGJlIHBlcmZvcm1lZCBieSB0aGUgcm9vdCBvcmlnaW4gYW5kIGlzIG9ubHkgbWVhbnQgZm9yIHRlc3RpbmcuSQFJdCBleGlzdHMgYmVjYXVzZSBhIGNyZWRpdCBpcyBvdGhlcndpc2Ugb25seSBlYXJuZWQgYnkgYSBgUGVyc29uYCB2b3RlIGluIGEgcGxheWVkRQFnYW1lLCB3aGljaCBtYWtlcyB0aGUgY2xhaW0gY2hhaW4ncyBtaW50aW5nIHBhdGggaGFyZCB0byBleGVyY2lzZSBvbiBpdHMgb3duLiBUaGUBAWNyZWRpdCBpdCBhd2FyZHMgaXMgYSBub3JtYWwgb25lOiBpdCBpcyByZWNvcmRlZCBpbiB0aGlzIGJsb2NrJ3NFAVtgTmZ0Q2xhaW1DcmVkaXRBd2FyZHNgXSwgY29tbWl0dGVkIHRvIHRoZSBibG9jaydzIHRyZWUgYW5kIGNsYWltZWQgd2l0aCB0aGUgc2FtZUxwcm9vZiBhcyBhbnkgb3RoZXIuAFEBVGhlIGNyZWRpdCBpcyB0aGUgb25lIGBhdHRlc3RlcmAgd291bGQgZWFybiBgY2xhaW1hbnRgIGJ5IHJlcG9ydGluZyB0aGVtIGEgcGVyc29uIGluSQFgcm91bmRgIG9mIGBnYW1lX2luZGV4YCwgc28gaXQgZG9lcyBub3QgbmVlZCBhbnkgb2YgdGhvc2UgdG8gZXhpc3QuIEEgc2xvdCBpcyB1c2VkUQFvbmNlIHBlciBjbGFpbWFudCBhbmQgZ2FtZTogcmVwZWF0aW5nIGEgY2FsbCB3aXRoIHRoZSBzYW1lIGBnYW1lX2luZGV4YCwgYHJvdW5kYCBhbmRdAWBhdHRlc3Rlcl9wb3NpdGlvbmAgZm9yIHRoZSBzYW1lIGBjbGFpbWFudGAgZmFpbHMgcmF0aGVyIHRoYW4gYXdhcmRpbmcgYSBzZWNvbmQgY3JlZGl0LqBWYXJ5IGFueSBvZiB0aGVtIHRvIGF3YXJkIG1vcmUgdGhhbiBvbmUuACxQYXJhbWV0ZXJzOk0BLSBgY2xhaW1hbnRgOiB3aG8gdGhlIGNyZWRpdCBpcyBhd2FyZGVkIHRvLCBhbmQgdGhlIG9ubHkgaWRlbnRpdHkgdGhhdCBjYW4gbWludCBpdC5VAS0gYGF0dGVzdGVyYDogdGhlIHJlcG9ydGVyIHRoZSBjcmVkaXQgaXMgYXR0cmlidXRlZCB0bywgd2hpY2ggYWxvbmcgd2l0aCBgZ2FtZV9pbmRleGAhASAgYW5kIGByb3VuZGAgaXMgd2hhdCBtYWtlcyB0aGUgY3JlZGl0IGRpc3RpbmN0IGZyb20gYW5vdGhlciBjbGFpbWFudCdzLlEBLSBgZ2FtZV9pbmRleGA6IHRoZSBnYW1lIHRoZSBjcmVkaXQgaXMgYXR0cmlidXRlZCB0by4gQWxsIHRoZSBjcmVkaXRzIGEgYmxvY2sgYXdhcmRzHQEgIG11c3QgbmFtZSB0aGUgc2FtZSBnYW1lLCBzaW5jZSB0aGUgYmxvY2sncyB0cmVlIGlzIGxhYmVsbGVkIHdpdGggb25lLtQtIGByb3VuZGA6IHRoZSByb3VuZCBvZiB0aGF0IGdhbWUsIGJlbG93IGBNYXhSb3VuZHNgLmEBLSBgYXR0ZXN0ZXJfcG9zaXRpb25gOiB0aGUgYXR0ZXN0ZXIncyBwbGFjZSBpbiB0aGUgZ3JvdXAsIGJlbG93IGBNYXhHcm91cFNpemVgLiBUb2dldGhlcgEBICB3aXRoIGByb3VuZGAgaXQgcGlja3MgdGhlIGNsYWltYW50J3MgY3JlZGl0IHNsb3QgZm9yIHRoZSBnYW1lLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATgEUwAABADJAwEYVmVjPFQ+AABxBAw0aW5kaXZfc3VwcG9ydCBpZGVudGl0eTxBY2NvdW50T3JQZXJzb24EJEFjY291bnRJZAEEAQgcQWNjb3VudAQABAEkQWNjb3VudElkAAAAGFBlcnNvbgQACAEUQWxpYXMAAQAAdQQMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0EENhbGwEBFQAASAscmVzZXJ2ZV9pZHMEARRjb3VudDgBDHUzMgAABIRSZXNlcnZlIGEgbnVtYmVyIG9mIHBlcnNvbmFsIElEcy5QcmVuZXdfaWRfcmVzZXJ2YXRpb24EAQhpZCgBKFBlcnNvbmFsSWQAAQS8UmVuZXcgYSBwZXJzb25hbCBJRC4gVGhlIElEIG11c3Qgbm90IGJlIGluIHVzZS5UY2FuY2VsX2lkX3Jlc2VydmF0aW9uBAEIaWQoAShQZXJzb25hbElkAAIEhENhbmNlbCBhIHBlcnNvbmFsIElEIHJlc2VydmF0aW9uLlByZWNvZ25pemVfcGVyc29uaG9vZAQBMGlkc19hbmRfa2V5c3kEAfBCb3VuZGVkVmVjPChQZXJzb25hbElkLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4AAwQpAUdyYW50IHBlcnNvbmhvb2QgZm9yIGEgbGlzdCBvZiBjYW5kaWRhdGVzIHRoYXQgaGF2ZSByZXNlcnZlZCBwZXJzb25hbCBJRHMuSHN1c3BlbmRfcGVyc29uaG9vZAQBDGlkc4UEAbRCb3VuZGVkVmVjPFBlcnNvbmFsSWQsIFQ6Ok1heFBlcnNvbkJhdGNoU2l6ZT4ABAhdAVN1c3BlbmQgdGhlIHBlcnNvbmhvb2Qgb2YgYSBsaXN0IG9mIHJlY29nbml6ZWQgcGVvcGxlLiBUaGUgcGVvcGxlIG11c3Qgbm90IGN1cnJlbnRseSBiZShzdXNwZW5kZWQuRHJlc3VtZV9wZXJzb25ob29kBAEIaWQoAShQZXJzb25hbElkAAUEEQFSZXN1bWUgc29tZW9uZSdzIHBlcnNvbmhvb2QuIFRoZSBwZXJzb24gbXVzdCBjdXJyZW50bHkgYmUgc3VzcGVuZGVkLlhzdGFydF9tdXRhdGlvbl9zZXNzaW9uAAYIXQFTdGFydCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgZG9lcyBub3QgY2hlY2slAXdoZXRoZXIgYSBtdXRhdGlvbiBzZXNzaW9uIGlzIGFscmVhZHkgb25nb2luZyBhbmQgY2FuIHN0YXJ0IG5ldyBzZXNzaW9ucy5QZW5kX211dGF0aW9uX3Nlc3Npb24ABxBdAUVuZCBhIG11dGF0aW9uIHNlc3Npb24gaW4gdGhlIHVuZGVybHlpbmcgYFBlb3BsZWAgaW50ZXJmYWNlLiBUaGlzIGNhbGwgY2FuIGVuZCBtdWx0aXBsZeBtdXRhdGlvbiBzZXNzaW9ucywgZXZlbiBvbmVzIG5vdCBzdGFydGVkIGJ5IHRoaXMgcGFsbGV0LgDYVGhpcyBjYWxsIHdpbGwgZmFpbCBpZiBubyBtdXRhdGlvbiBzZXNzaW9uIGlzIG9uZ29pbmcuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQQEUwAABACBBAEYVmVjPFQ+AAB9BAAABAgoCACBBAAAAn0EAIUEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKARTAAAEAIkEARhWZWM8VD4AAIkEAAACKACNBAxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBBDYWxsBARUAAEYeGluY3JlYXNlX2F0dGVzdGF0aW9uX2FsbG93YW5jZQgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAARRjb3VudDgBDHUzMgAAGCUBR3JhbnQgc29tZSBhdHRlc3RhdGlvbiBhbGxvd2FuY2UgdG8gYW4gYWNjb3VudCBzbyB0aGV5IGNhbiBhdHRlc3QgcGVvcGxlLgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDILSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIGdyYW50IGF0dGVzdGF0aW9ucyB0by68LSBgY291bnRgOiBUaGUgbnVtYmVyIG9mIGF0dGVzdGF0aW9ucyB0byBncmFudC5sY2xlYXJfYXR0ZXN0YXRpb25fYWxsb3dhbmNlBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFLxDbGVhciBhbGwgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGZvciBhbiBhY2NvdW50LgDEVGhlIG9yaWdpbiBtdXN0IGJlIGBBdHRlc3RhdGlvbkFsbG93YW5jZU1hbmFnZXJgLgDkLSBgYWNjb3VudGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSBhbGwgYXR0ZXN0YXRpb25zIGZyb20uGGF0dGVzdBQBJGNhbmRpZGF0ZQQBMFQ6OkFjY291bnRJZAABTGNhbmRpZGF0ZV9zaWduYXR1cmXZAwFcVDo6QXR0ZXN0YXRpb25TaWduYXR1cmUAATByaW5nX3ZyZl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcNEDAThTaWduYXR1cmVPZjxUPgABVGNvbnN1bWVyX3JlZ2lzdHJhdGlvbpEEAaxPcHRpb248TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zT2Y8VD4+AAKESEF0dGVzdCBhbiBhY2NvdW50LgBFAVRoZSBvcmlnaW4gbXVzdCBiZSBzaWduZWQgYnkgYW4gYWNjb3VudCBhbmQgaGF2ZSBzb21lIGF0dGVzdGF0aW9uIGFsbG93YW5jZSBsZWZ0LgDwVGhlIGF1dGhvcml0eSB3aWxsIGhhdmUgdG8gZ2V0IHR3byBzaWduYXR1cmVzIGZyb20gdGhlIHVzZXI6TQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIGFjY291bnQga2V5IGF0dGVzdGluZyB0byB0aGUgb3duZXJzaGlwIG9mIHRoZSBgY2FuZGlkYXRlYCggIGFjY291bnQ7XQEtIG9uZSBjcmVhdGVkIHVzaW5nIHRoZWlyIHJpbmctdnJmIGtleSBhdHRlc3RpbmcgdG8gdGhlIG93bmVyc2hpcCBvZiB0aGUgYHJpbmdfdnJmX2tleWAYICBrZXkuAGEBVGhlIG1lc3NhZ2UgdG8gYmUgc2lnbmVkIGJ5IGJvdGgga2V5cyBmcm9tIHdoaWNoIHRoZSBzaWduYXR1cmVzIGFyZSBnZW5lcmF0ZWQgaXMgY3JlYXRlZFUBYnkgY29uY2F0ZW5hdGluZyB0aGUgYnl0ZXMgInBvcDpwZW9wbGUtbGl0ZTpyZWdpc3RlciB1c2luZyIgd2l0aCB0aGUgZW5jb2RlZCBieXRlcyBvZi0BdGhlIHVzZXIncyBhY2NvdW50IChgY2FuZGlkYXRlYCksIGFuZCB0aGUgZW5jb2RlZCBieXRlcyBvZiB0aGUgcmluZyBWUkYga2V5RChgcmluZ192cmZfa2V5YCkuAFhPbiBzdWNjZXNzLCB0aGlzIGNhbGw6wC0gc3RvcmVzIGxpdGUgcmVnaXN0cmF0aW9uIGRhdGEgaW4gYExpdGVQZW9wbGVgLPQtIGFkZHMgdGhlIHVzZXIncyByaW5nIFZSRiBrZXkgdG8gdGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24uAC0BVGhlIGxpdGUgbWVtYmVyIGNvbGxlY3Rpb24gbXVzdCBhbHJlYWR5IGhhdmUgYmVlbiBpbml0aWFsaXplZCBieSBgb25fcG9sbGAuAPwtIGBjYW5kaWRhdGVgOiBUaGUgY2FuZGlkYXRlIHRvIGJlIHJlY29nbml6ZWQgYXMgYSBsaXRlIHBlcnNvbi5hAS0gYGNhbmRpZGF0ZV9zaWduYXR1cmVgOiBUaGUgc2lnbmF0dXJlLCBwcm92aWRlZCBieSB0aGUgY2FuZGlkYXRlLCB0byBhbGxvdyB0aGUgYXR0ZXN0ZXLcICB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgb24gdGhlaXIgYmVoYWxmLiUBLSBgcmluZ192cmZfa2V5YDogVGhlIHJpbmcgVlJGIGtleSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxpdGUgcGVyc29uLl0BLSBgcmluZ192cmZfa2V5X3NpZ25hdHVyZWA6IFRoZSByaW5nIFZSRiBzaWduYXR1cmUsIHByb3ZpZGVkIGJ5IHRoZSBjYW5kaWRhdGUsIHRvIGFsbG93VQEgIHRoZSBhdHRlc3RlciB0byBjb21wbGV0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MuIFRoaXMgYWxzbyBwcm92ZSB0aGUgb3duZXJzaGlwIG9mkCAgdGhlIHJpbmcgVlJGIGtleSBieSB0aGUgY2FuZGlkYXRlLl0BLSBjb25zdW1lcl9yZWdpc3RyYXRpb246IE9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBjYW4gY29udGFpbiB0aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uXQEgIHRvIGZvcndhcmQgYSBjb25zdW1lciByZWdpc3RyYXRpb24gcmVxdWVzdCB0byB0aGUgYExpdGVDb25zdW1lclJlZ2lzdHJhcmAgc2VydmljZS4gSWZRASAgcHJlc2VudCwgaXQgYWxzbyBjb250YWlucyBhIHNpZ25hdHVyZSBjcmVhdGVkIGJ5IHRoZSB1c2VyIGluIG9yZGVyIHRvIHZhbGlkYXRlIHRoZSUBICBpbnRlbnQuIE1vcmUgaW5mb3JtYXRpb24gb24gdGhlIHNpZ25pbmcgcGF5bG9hZCBnZW5lcmF0aW9uIGF2YWlsYWJsZSBpbuwgIFt0eXBlczo6TGl0ZUNvbnN1bWVyUmVnaXN0cmF0aW9uUGFyYW1zOjpzaWduaW5nX3BheWxvYWRdLkhkaXNwYXRjaF9hc19zaWduZXIEARBjYWxsIAFMQm94PFQ6OlJ1bnRpbWVDYWxsPgAFAERzZXRfYWxpYXNfYWNjb3VudAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAATh2YWxpZF9hdF9ibG9jazgBREJsb2NrTnVtYmVyRm9yPFQ+AAY4tFNldCB0aGUgYWNjb3VudCBhc3NvY2lhdGVkIHdpdGggYSBsaXRlIGFsaWFzLgC0VGhlIGNhbGwgaXMgdmFsaWQgZnJvbSBgdmFsaWRfYXRfYmxvY2tgIHVudGlsxGB2YWxpZF9hdF9ibG9jayArIGFjY291bnRfc2V0dXBfYmxvY2tfdG9sZXJhbmNlYC4AJQFUaGlzIGNhbGwgaXMgYXV0aG9yaXplZCB0aHJvdWdoIHRoZSBgQXNMaXRlQWxpYXNXaXRoUHJvb2ZgIHZhcmlhbnQgb2YgdGhlMQFgUGVvcGxlTGl0ZUF1dGhgIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiwgd2hpY2ggcHJvdmlkZXMgbm8gbm9uY2UtYmFzZWQgcmVwbGF5RQFwcm90ZWN0aW9uLiBSZXBsYXkgaXMgb25seSBwcmV2ZW50ZWQgZm9yIGFzIGxvbmcgYXMgdGhlIGFsaWFzIHN0aWxsIHBvaW50cyBhdCB0aGVJAWFjY291bnQgdGhpcyBjYWxsIHNldHMuIEFzIHNvb24gYXMgdGhlIGFsaWFzIGlzIHBvaW50ZWQgYXQgYSBkaWZmZXJlbnQgYWNjb3VudCAoYnlNAWFub3RoZXIgYHNldF9hbGlhc19hY2NvdW50YCksIHRoaXMgY2FsbCBiZWNvbWVzIHJlcGxheWFibGUgYWdhaW4gdW50aWwgaXRzIHZhbGlkaXR5WQFwZXJpb2QgZWxhcHNlcy4gQ29uc2VxdWVudGx5LCBpZiAyIHN1Y2ggdHJhbnNhY3Rpb25zIHNldHRpbmcgMiBkaWZmZXJlbnQgYWNjb3VudHMgaGF2ZVkBb3ZlcmxhcHBpbmcgdmFsaWRpdHkgcGVyaW9kcywgdGhleSBjYW4gYmUgcmVwbGF5ZWQgYWdhaW5zdCBlYWNoIG90aGVyIGluZGVmaW5pdGVseSBmb3ItAXRoZSBkdXJhdGlvbiBvZiB0aGUgb3ZlcmxhcC4gVG8gYXZvaWQgdGhpcywgdGhlIGNhbGxlciBtdXN0IG5vdCBoYXZlIDIgc3VjaA0BdHJhbnNhY3Rpb25zIGFsaXZlICh3aXRoaW4gdGhlaXIgdmFsaWRpdHkgcGVyaW9kKSBhdCB0aGUgc2FtZSB0aW1lLkx1bnNldF9hbGlhc19hY2NvdW50AAcABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpEEBBhPcHRpb24EBFQBlQQBCBBOb25lAAAAEFNvbWUEAJUEAAABAACVBAxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlFHR5cGVzeExpdGVDb25zdW1lclJlZ2lzdHJhdGlvblBhcmFtcwgkQWNjb3VudElkAQQkU2lnbmF0dXJlAdkDABQBJHNpZ25hdHVyZdkDASRTaWduYXR1cmUAARxhY2NvdW50BAEkQWNjb3VudElkAAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAASB1c2VybmFtZZkEASBVc2VybmFtZQABRHJlc2VydmVkX3VzZXJuYW1lnQQBQE9wdGlvbjxVc2VybmFtZT4AAJkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAnQQEGE9wdGlvbgQEVAGZBAEIEE5vbmUAAAAQU29tZQQAmQQAAAEAAKEEDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzGHBhbGxldBBDYWxsBARUAAE0UHJlZ2lzdGVyX2xpdGVfcGVyc29uDAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIAASB1c2VybmFtZZkEASBVc2VybmFtZQABRHJlc2VydmVkX3VzZXJuYW1lnQQBQE9wdGlvbjxVc2VybmFtZT4AAASUUmVnaXN0ZXIgYSBsaXRlIHBlcnNvbiBhcyBhIGNvbnN1bWVyLjxyZWdpc3Rlcl9wZXJzb24MAVBsaW5rZWRfbGl0ZV9pZGVudGl0eQQBMFQ6OkFjY291bnRJZAABTGxpdGVfaWRlbnRpdHlfcHJvb2bZAwFQVDo6T2ZmY2hhaW5TaWduYXR1cmUAATx1c2VybmFtZV9jaG9pY2WlBAFYUGVyc29uYWxVc2VybmFtZUNob2ljZQABJJxSZWdpc3RlciBhIHByb3ZlbiBwZXJzb24gYXMgYSBjb25zdW1lci4AXQFUaGUgcGVyc29uIG11c3QgbGluayBhIHByZXZpb3VzbHkgcmVjb2duaXplZCBsaXRlIGlkZW50aXR5LCB3aGljaCB3aWxsIGJlIHVwZ3JhZGVkIHRvIGFZAWZ1bGwgcGVyc29uIGNvbnN1bWVyLiBJbiBvcmRlciB0byBwcm92ZSB0aGV5IGhvbGQgdGhlIGxpdGUgaWRlbnRpdHkgdGhleSB3YW50IHRvIGxpbmssYQF1c2VycyBtdXN0IHByb3ZpZGUgYSBgbGl0ZV9pZGVudGl0eV9wcm9vZmAgc2lnbmF0dXJlLCBjcmVhdGVkIGJ5IHNpZ25pbmcgdGhlIGFsaWFzIGJ5dGVziHVzaW5nIHRoZWlyIGxpdGUgY29uc3VtZXIgYWNjb3VudC4AOQFUaGUgY29uc3VtZXIgY2FuIGNob29zZSBpZiB0aGV5IHdhbnQgdG8gaGF2ZSBhIG5ldyB1c2VybmFtZSBvciB1c2UgYW4gZXhpc3RpbmcVAXJlc2VydmF0aW9uIG1hZGUgaW4gdGhlIG5hbWUgb2YgdGhlIGxpdGUgY29uc3VtZXIgd2hvIHdpbGwgYmUgbGlua2VkLmh0b3VjaF9wZXJzb25fYXV0aG9yaXphdGlvbgACEEkBVXBkYXRlIGEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiBieSBlbnN1cmluZyB0aGV5IGNhbiBzdGlsbCBhdXRoZW50aWNhdGUgYXMgcGVvcGxlLgBRAVRoaXMgY2FsbCBtdXN0IGJlIHBlcmZvcm1lZCBhdCBsZWFzdCBgTWluUGVyc29uQXV0aFVwZGF0ZUludGVydmFsYCBzZWNvbmRzIGFmdGVyIHRoZZRsYXN0IHVwZGF0ZSBpbiBvcmRlciB0byBwcmV2ZW50IHNwYW0ujHJlbW92ZV9leHBpcmVkX3VzZXJuYW1lX3Jlc2VydmF0aW9uCAEgdXNlcm5hbWWZBAEgVXNlcm5hbWUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAMgOQFSZW1vdmUgYW4gZXhwaXJlZCBlbnRyeSBmcm9tIGEgdXNlcm5hbWUgcmVzZXJ2YXRpb24gcXVldWUuIFRoZSB0YXJnZXQgZW50cnkgaXMBAWlkZW50aWZpZWQgYnkgYGFjY291bnRgIGFuZCBjYW4gYmUgYXQgYW55IHBvc2l0aW9uIGluIHRoZSBxdWV1ZS4dAUVhY2ggY2FsbCByZW1vdmVzIGV4YWN0bHkgb25lIGVudHJ5LCBzbyBpdCBtdXN0IGJlIGNhbGxlZCByZXBlYXRlZGx5IHRvkGNsZWFyIG11bHRpcGxlIGV4cGlyZWQgcmVzZXJ2YXRpb25zLgAtAVRoaXMgaXMgYSBwZXJtaXNzaW9ubGVzcyBjYWxsOyB0aGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZC4gVGhlIGBhY2NvdW50YDEBcGFyYW1ldGVyIGlzIGFsc28gdXNlZCBmb3IgdHJhbnNhY3Rpb24gcG9vbCBkZWR1cGxpY2F0aW9uLCBhbGxvd2luZyBwYXJhbGxlbBEBc3VibWlzc2lvbnMgdGhhdCB0YXJnZXQgZGlmZmVyZW50IGV4cGlyZWQgZW50cmllcyBpbiB0aGUgc2FtZSBxdWV1ZS5UdXBkYXRlX2lkZW50aWZpZXJfa2V5BAE4aWRlbnRpZmllcl9rZXndAwFcQ29tbXVuaWNhdGlvbklkZW50aWZpZXIABBDYVXBkYXRlIHRoZSBjb21tdW5pY2F0aW9uIGlkZW50aWZpZXIga2V5IG9mIGEgY29uc3VtZXIuAEEBVGhlIG9yaWdpbiBtdXN0IGJlIHRoZSBhY2NvdW50IHJlZ2lzdGVyZWQgZm9yIHRoYXQgY29uc3VtZXIsIHJlZ2FyZGxlc3Mgb2YgdGhlaXIwY3JlZGliaWxpdHkuhHNldF91c2VybmFtZV9yZXNlcnZhdGlvbl9kdXJhdGlvbgQBIGR1cmF0aW9uKAEMdTY0AAUMHQFTZXQgdGhlIGR1cmF0aW9uIGZvciB3aGljaCBhIHVzZXJuYW1lIHJlc2VydmF0aW9uIGlzIHZhbGlkLCBpbiBzZWNvbmRzLgBgVGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QuTGRlbW90ZV9hdXRoX2V4cGlyZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAcMMQFEZW1vdGUgYSBmdWxsIHBlcnNvbiB0byBhIGxpdGUgcGVyc29uIGFmdGVyIHRoZWlyIGF1dGhvcml6YXRpb24gaGFzIGV4cGlyZWQuAPRUaGlzIGlzIGEgcGVybWlzc2lvbmxlc3MgY2FsbDsgdGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQuvHNldF9ub3RpZmljYXRpb25fc3RhdGVtZW50X2FjY291bnRfZm9yX3NlcXVlbmNlCAEkcmVmZXJlbmNlqQQBVE5vdGlmaWNhdGlvblJlZmVyZW5jZQABKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACDwNAUFzc29jaWF0ZSBhIHN0YXRlbWVudCBhY2NvdW50IHdpdGggYSBub3RpZmljYXRpb24gY29udGV4dCBzZXF1ZW5jZS4AUQFUaGUgYXNzb2NpYXRlZCBhY2NvdW50IGNhbiBzdWJtaXQgc3RhdGVtZW50cyB3aGlsZSB0aGlzIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24gaXMcYWN0aXZlLjEBVGhlIG9yaWdpbiBtdXN0IGJlIGBPcmlnaW46Ok5vdGlmaWNhdGlvbkFsaWFzYCwgY3JlYXRlZCBieSB0aGUgYEFzUmVzb3VyY2VzYE0BKGBSZWdpc3Rlck5vdGlmaWNhdGlvbldpdGhQcm9vZiguLilgKSB0cmFuc2FjdGlvbiBleHRlbnNpb24gYWZ0ZXIgcHJvb2YgdmFsaWRhdGlvbi4dAU9uIHN1Y2Nlc3MsIGluY3JlYXNlcyBzdGF0ZW1lbnQgYWxsb3dhbmNlIGFuZCBzdG9yZXMgcmVnaXN0cmF0aW9uIHN0YXRlaGB7YWNjb3VudF9pZCwgcmVmZXJlbmNlfWAuACxQYXJhbWV0ZXJzOsQqIGByZWZlcmVuY2VgOiBub3RpZmljYXRpb24gcGVyaW9kL3NlcXVlbmNlIHBhaXIuCQEgIC0gYHJlZmVyZW5jZS5wZXJpb2RgIG11c3QgYmUgdGhlIGN1cnJlbnQgc3RhdGVtZW50LXN0b3JlIHBlcmlvZC4BASAgLSBgcmVmZXJlbmNlLnNlcWAgbXVzdCBiZSBpbiBgMC4uPU5vdGlmaWNhdGlvblNsb3RzUGVyUGVyaW9kYC5NASogYGFjY291bnRfaWRgOiBzdGF0ZW1lbnQgYWNjb3VudCB0byBhdXRob3JpemUuIE11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBieSBhbm90aGVycCAgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi6MY2xlYXJfZXhwaXJlZF9ub3RpZmljYXRpb25fc2VxdWVuY2UIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEMc2VxDAEIdTgACSgtAUNsZWFyIGEgc3RhbGUgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbiBhbmQgcmV2b2tlIGl0cyBzdGF0ZW1lbnQgYWxsb3dhbmNlLgD0VGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGw7IHRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkLiEBU3VjY2VlZHMgb25seSB3aGVuIHRoZSByZWdpc3RyYXRpb24ncyBwZXJpb2QtZGVyaXZlZCBleHBpcnkgaGFzIGVsYXBzZWQuWQFPbiBzdWNjZXNzLCByZW1vdmVzIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24gc3RhdGUgYW5kIGRlY3JlYXNlcyBzdGF0ZW1lbnQgYWxsb3dhbmNlLgAsUGFyYW1ldGVyczpZASogYGFjY291bnRgOiBzdGF0ZW1lbnQgYWNjb3VudCBwcmV2aW91c2x5IGFzc29jaWF0ZWQgd2l0aCBhIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24uXQEqIGBzZXFgOiBub3RpZmljYXRpb24gc2VxdWVuY2UgdG8gY2xlYXIuIE11c3QgbWF0Y2ggc3RvcmVkIHJlZ2lzdHJhdGlvbiBzZXF1ZW5jZSBhbmQgYmWYICBpbiBgMC4uPU5vdGlmaWNhdGlvblNsb3RzUGVyUGVyaW9kYC5sc2V0X3N0YXRlbWVudF9zdG9yZV9hY2NvdW50DAEYcGVyaW9kOAEMdTMyAAEMc2VxOAEMdTMyAAE4dGFyZ2V0X2FjY291bnQEATBUOjpBY2NvdW50SWQACiwJAUNsYWltIGFuIGFub255bW91cyBzdGF0ZW1lbnQgc3RvcmUgYWxsb3dhbmNlIGZvciBhIHRhcmdldCBhY2NvdW50LgApAVRoZSBvcmlnaW4gbXVzdCBiZSBgT3JpZ2luOjpTdG10U3RvcmVBbGlhc2AsIHByb2R1Y2VkIGJ5IHRoZSBgQXNSZXNvdXJjZXNgVQEoYFJlZ2lzdGVyU3RhdGVtZW50U3RvcmVBbGxvd2FuY2UoLi4pYCkgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIGFmdGVyIHByb29mIHZhbGlkYXRpb24uRQFPbiBzdWNjZXNzLCBpbmNyZWFzZXMgdGhlIHN0YXRlbWVudCBhbGxvd2FuY2UgZm9yIGB0YXJnZXRfYWNjb3VudGAgYW5kIHN0b3JlcyB0aGWYbWFwcGluZyBpbiBgU3RhdGVtZW50U3RvcmVBbGxvd2FuY2VzYC4ALFBhcmFtZXRlcnM6PQEqIGBwZXJpb2RgOiBkYXkgbnVtYmVyIHNpbmNlIFVuaXggZXBvY2guIE11c3QgYmUgaW4gdGhlIGFjY2VwdGVkIHBlcmlvZCB3aW5kb3cuRQEqIGBzZXFgOiBzbG90IG51bWJlciB3aXRoaW4gdGhlIHBlcmlvZCwgYm91bmRlZCBieSB0aGUgY29sbGVjdGlvbi1zcGVjaWZpYyBsaW1pdC7MKiBgdGFyZ2V0X2FjY291bnRgOiBzdGF0ZW1lbnQgYWNjb3VudCB0byBhdXRob3JpemUujGNsZWFyX2V4cGlyZWRfc3RtdF9zdG9yZV9hbGxvd2FuY2VzCAEYcGVyaW9kOAEMdTMyAAEsZmlyc3RfZW50cnkIARRBbGlhcwALFPBSZW1vdmUgZXhwaXJlZCBzdGF0ZW1lbnQgc3RvcmUgYWxsb3dhbmNlcyBmb3IgYSBwYXN0IHBlcmlvZC4A9FRoaXMgaXMgYSBwZXJtaXNzaW9ubGVzcyBjYWxsOyB0aGUgb3JpZ2luIG11c3QgYmUgYXV0aG9yaXplZC5FAVJlbW92ZXMgdXAgdG8gYFN0bXRTdG9yZUNsZWFudXBMaW1pdGAgZW50cmllcyBmcm9tIGBTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZXNgIGZvckEBdGhlIGdpdmVuIGBwZXJpb2RgLCBkZWNyZWFzaW5nIHRoZSBzdGF0ZW1lbnQgYWxsb3dhbmNlIGZvciBlYWNoIHJlbW92ZWQgYWNjb3VudC5cY2xhaW1fbG9uZ190ZXJtX3N0b3JhZ2UMARhwZXJpb2Q4AQx1MzIAARxjb3VudGVyDAEIdTgAAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAwwOQFDbGFpbSBsb25nLXRlcm0gc3RvcmFnZSBvbiBhIHJlbW90ZSBjaGFpbiB1c2luZyBhbiBhbm9ueW1vdXMgbWVtYmVyc2hpcCBwcm9vZi4AUQFUaGUgb3JpZ2luIG11c3QgYmUgYE9yaWdpbjo6TG9uZ1Rlcm1TdG9yYWdlQ2xhaW0oYWxpYXMsIGNvbGxlY3Rpb24pYCwgY3JlYXRlZCBieSB0aGVVAWBBc1Jlc291cmNlc2AgKGBDbGFpbUxvbmdUZXJtU3RvcmFnZSguLilgKSB0cmFuc2FjdGlvbiBleHRlbnNpb24gYWZ0ZXIgcmluZy1WUkYgcHJvb2YsdmFsaWRhdGlvbi4ALFBhcmFtZXRlcnM6SQEqIGBwZXJpb2RgOiB0aGUgY2xhaW1pbmcgcGVyaW9kLiBNdXN0IGJlIHRoZSBjdXJyZW50IHBlcmlvZCBvciB0aGUgcHJldmlvdXMgb25lIGlmaCAgd2l0aGluIHRoZSBncmFjZSB3aW5kb3cuDQEqIGBjb3VudGVyYDogdGhlIGNsYWltIGNvdW50ZXIgd2l0aGluIHRoZSBwZXJpb2QuIE11c3QgYmUgbGVzcyB0aGFuLQEgIGBMb25nVGVybVN0b3JhZ2VDbGFpbXNQZXJQZXJpb2RgLiBFYWNoIGNvdW50ZXIgcHJvZHVjZXMgYSBkaXN0aW5jdCBhbGlhcy4lASogYGFjY291bnRfaWRgOiB0aGUgYWNjb3VudCB0byBhdXRob3JpemUgZm9yIHN0b3JhZ2Ugb24gdGhlIHJlbW90ZSBjaGFpbi6cY2xlYXJfZXhwaXJlZF9sb25nX3Rlcm1fc3RvcmFnZV9hbGlhc2VzCAEYcGVyaW9kOAEMdTMyAAEUbGltaXQ4AQx1MzIADSDwQ2xlYXIgc3BlbnQgbG9uZy10ZXJtIHN0b3JhZ2UgYWxpYXNlcyBmb3IgYW4gZXhwaXJlZCBwZXJpb2QuAEUBVGhpcyBpcyBhIHBlcm1pc3Npb25sZXNzIGNhbGwgYXV0aG9yaXplZCB2aWEgdGhlIGBhdXRob3JpemVgIGF0dHJpYnV0ZS4gSXQgY2FuIGJlJQFjYWxsZWQgYnkgYW55b25lIG9uY2UgYSBwZXJpb2QgaGFzIGZ1bGx5IGV4cGlyZWQgKHBhc3QgdGhlIGdyYWNlIHdpbmRvdykuACxQYXJhbWV0ZXJzOtAqIGBwZXJpb2RgOiB0aGUgZXhwaXJlZCBwZXJpb2QgdG8gY2xlYXIgYWxpYXNlcyBmb3IuAQEqIGBsaW1pdGA6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIHRvIHJlbW92ZSBpbiB0aGlzIGNhbGwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqUEDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzFHR5cGVzWFBlcnNvbmFsVXNlcm5hbWVDaG9pY2UAAQgoU3RhbmRhbG9uZQQAmQQBIFVzZXJuYW1lAAAALFJlc2VydmF0aW9uBACZBAEgVXNlcm5hbWUAAQAAqQQMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXNUTm90aWZpY2F0aW9uUmVmZXJlbmNlAAAIARhwZXJpb2Q4AQx1MzIAAQxzZXEMAQh1OAAArQQMbGluZGl2X3BhbGxldF9jaHVua3NfbWFuYWdlchhwYWxsZXQQQ2FsbAQEVAABCChhZGRfY2h1bmtzDAE0cmluZ19leHBvbmVudLEEATBSaW5nRXhwb25lbnQAAShwYWdlX2luZGV4OAEkUGFnZUluZGV4AAE4ZW5jb2RlZF9jaHVua3O1BAGYQm91bmRlZFZlYzx1OCwgTWF4RW5jb2RlZENodW5rc0xlbjxUPj4AABBoQWRkcyBhIG5ldyBwYWdlIG9mIGNodW5rcy4AQQFUaGUgaGFzaCBvZiB0aGUgY2h1bmtzIG11c3QgbWF0Y2ggdGhlIGhhc2ggc3RvcmVkIG9uLWNoYWluIGluIGBDaHVua1BhZ2VIYXNoZXNgLtxUaGUgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIHBhZ2UgYWxyZWFkeSBleGlzdHMgb24tY2hhaW4uVHNldF9jaHVua19wYWdlX2hhc2hlcwgBNHJpbmdfZXhwb25lbnSxBAEwUmluZ0V4cG9uZW50AAEscGFnZV9oYXNoZXO5BAHMQm91bmRlZFZlYzxDaHVua1BhZ2VIYXNoLCBDb25zdFUzMjxNQVhfUEFHRV9DT1VOVD4+AAEYDQFTZXRzIHRoZSBleHBlY3RlZCBoYXNoZXMgZm9yIGNodW5rIHBhZ2VzIGZvciBhIGdpdmVuIHJpbmcgZXhwb25lbnQuACEBQWxsb3dzIHNldHRpbmcgdGhlIGV4cGVjdGVkIGhhc2hlcyB0aGF0IGNodW5rcyBtdXN0IG1hdGNoIHdoZW4gYWRkZWQgdmlhNGBhZGRfY2h1bmtzYC4ArFRoZSBvcmlnaW4gbXVzdCBiZSBgTWFuYWdlck9yaWdpbmAgb3Igcm9vdC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMusQQQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkwUmluZ0V4cG9uZW50AAEMEFIyZTkACQAUUjJlMTAACgAUUjJlMTQADgAAtQQMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AAC5BAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AAC9BAxQaW5kaXZfcGFsbGV0X21lbWJlcnMYcGFsbGV0EENhbGwEBFQAATgsbWVyZ2VfcmluZ3MMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABPGJhc2VfcmluZ19pbmRleDgBJFJpbmdJbmRleAABRHRhcmdldF9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAAMUQFNZXJnZSB0aGUgbWVtYmVycyBpbiB0d28gcmluZ3MgaW50byBhIHNpbmdsZSwgbmV3IHJpbmcuIEluIG9yZGVyIGZvciB0aGUgcmluZ3MgdG8gYmU1AWVsaWdpYmxlIGZvciBtZXJnaW5nLCB0aGV5IG11c3QgYmUgYmVsb3cgMS8yIG9mIG1heCBjYXBhY2l0eSwgaGF2ZSBubyBwZW5kaW5n4HN1c3BlbnNpb25zIGFuZCBub3QgYmUgdGhlIHRvcCByaW5nIHVzZWQgZm9yIG9uYm9hcmRpbmcuTHNldF9vbmJvYXJkaW5nX3NpemUIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABPG9uYm9hcmRpbmdfc2l6ZTgBDHUzMgABBE0BRm9yY2Ugc2V0IHRoZSBvbmJvYXJkaW5nIHNpemUgZm9yIGEgY29sbGVjdGlvbi4gVGhpcyBjYWxsIHJlcXVpcmVzIHJvb3QgcHJpdmlsZWdlcy4wc2VsZl9pbmNsdWRlDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAARhtZW1iZXIIASxNZW1iZXJPZjxUPgABNGNhbGxfdmFsaWRfYXQoAQx1NjQAAihBAUFsbG93IGEgbWVtYmVyIHdhaXRpbmcgaW4gdGhlIG9uYm9hcmRpbmcgcXVldWUgdG8gaW5jbHVkZSB0aGVtc2VsdmVzIGludG8gYSByaW5nTQFhZnRlciBlbm91Z2ggdGltZSBoYXMgcGFzc2VkLiBUaGlzIGJ5cGFzc2VzIHRoZSBub3JtYWwgY29ob3J0LWJhc2VkIG9uYm9hcmRpbmcgc2l6ZTByZXF1aXJlbWVudC4AOQFUaGlzIGNhbGwgbXVzdCBiZSBkaXNwYXRjaGVkIHdpdGggYSBgU2VsZkluY2x1ZGVgIG9yaWdpbiwgYXV0aGVudGljYXRlZCBieSB0aGUhAWBBc01lbWJlcmAgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uLiBUaGUgcmluZ3MgbXVzdCBiZSBpbiBhcHBlbmQtb25seSBtb2RlLgBNAVRoZSBgY2FsbF92YWxpZF9hdGAgcGFyYW1ldGVyIGRpY3RhdGVzIHRoZSB0aW1lIHdpbmRvdyBpbiB3aGljaCB0aGlzIHRyYW5zYWN0aW9uIGlzTQF2YWxpZCBhbmQgcmVwcmVzZW50cyB0aGUgdGltZXN0YW1wIChpbiBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoKSB3aGVuIHRoaXMgY2FsbDhiZWNvbWVzIHZhbGlkLlRidWlsZF9yaW5nX2F1dGhvcml6ZWQYAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAATRyaW5nX2V4cG9uZW50sQQBMFJpbmdFeHBvbmVudAABIHJldmlzaW9uCQMBVE9wdGlvbjxSZXZpc2lvbkluZGV4PgABKHRvX2luY2x1ZGU4AQx1MzIAATRkaXNjcmltaW5hdG9yOAEMdTMyAGQs2EJ1aWxkIGEgcmluZyByb290IGZvciBhIHNwZWNpZmljIHJpbmcgaW4gYSBjb2xsZWN0aW9uLgDYU3VibWl0dGVkIGJ5IHRoZSBPQ1cgd2l0aCBhIGB0b19pbmNsdWRlYCBzbmFwc2hvdCBmcm9tMQFbYFBhbGxldDo6c2hvdWxkX2J1aWxkX3JpbmdgXS4gTGVmdG92ZXJzIGZyb20gbGF0ZXIgb25ib2FyZGluZyBhcmUgcGlja2VkIHVwGQFvbiB0aGUgbmV4dCBPQ1cgdGljaywgb3IgYnkgdGhlIG1lbWJlciB2aWEgW2BTZWxmOjpzZWxmX2luY2x1ZGVgXSB3aGVugGNvaG9ydCBnYXRpbmcgc3RhbGxzIG9uYm9hcmRpbmcuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLmhvbmJvYXJkX21lbWJlcnNfYXV0aG9yaXplZBQBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABEGhlYWQ4ASRQYWdlSW5kZXgAATBmaXJzdF9tZW1iZXLBBAFMT3B0aW9uPE1lbWJlck9mPFQ+PgABNGRpc2NyaW1pbmF0b3I4AQx1MzIAZSARAU9uYm9hcmQgbWVtYmVycyBmcm9tIHRoZSBvbmJvYXJkaW5nIHF1ZXVlIGZvciBhIHNwZWNpZmljIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wucG1lcmdlX3F1ZXVlX3BhZ2VzX2F1dGhvcml6ZWQMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABMGluaXRpYWxfaGVhZDgBJFBhZ2VJbmRleAABIG5ld19oZWFkOAEkUGFnZUluZGV4AGYMDQFNZXJnZSB0aGUgdG9wIHR3byBvbmJvYXJkaW5nIHF1ZXVlIHBhZ2VzIGZvciBhIHNwZWNpZmljIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci6AcmVtb3ZlX3N1c3BlbmRlZF9rZXlzX2F1dGhvcml6ZWQQAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbgkDAVRPcHRpb248UmV2aXNpb25JbmRleD4AATRkaXNjcmltaW5hdG9yOAEMdTMyAGcg7FJlbW92ZSBzdXNwZW5kZWQga2V5cyBmcm9tIGEgc3BlY2lmaWMgcmluZyBpbiBhIGNvbGxlY3Rpb24uAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wubGRlbGV0ZV9yaW5nX3BhZ2VfYXV0aG9yaXplZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAaAzIRGVsZXRlIGEgcGFnZSBmb3IgYSBzcGVjaWZpYyByaW5nIGluIGEgY29sbGVjdGlvbi4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLoBlbnF1ZXVlX3JpbmdfZGVsZXRpb25fYXV0aG9yaXplZAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleABpHOxFbnF1ZXVlIGEgcmluZyBmb3IgZGVsZXRpb24gYXMgcGFydCBvZiBjb2xsZWN0aW9uIGRlbGV0aW9uLgAhAUFyY2hpdmVzIHRoZSByaW5nIHJvb3QsIG5vdGlmaWVzIHN1YnNjcmliZXJzLCByZW1vdmVzIHJpbmcgbWV0YWRhdGEsIGFuZPhlbnF1ZXVlcyByaW5nIHBhZ2VzIGludG8gYFJpbmdEZWxldGlvblF1ZXVlYCBmb3IgcHJvY2Vzc2luZyBieXhgZGVsZXRlX3JpbmdfcGFnZV9hdXRob3JpemVkYC4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLpxkZWxldGVfb25ib2FyZGluZ19xdWV1ZV9wYWdlX2F1dGhvcml6ZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgAahz8RGVsZXRlIGFuIG9uYm9hcmRpbmcgcXVldWUgcGFnZSBhcyBwYXJ0IG9mIGNvbGxlY3Rpb24gZGVsZXRpb24uAB0BUmVtb3ZlcyBhbGwgYE1lbWJlcnNgIGVudHJpZXMgZm9yIHRoZSBtZW1iZXJzIGluIHRoZSBwYWdlLCB0aGVuIHJlbW92ZXMlAXRoZSBwYWdlIGl0c2VsZi4gQ2FuIG9ubHkgcHJvY2VlZCB3aGVuIGFsbCByaW5ncyBhbmQgcmluZyBwYWdlcyBoYXZlIGJlZW44ZnVsbHkgZGVsZXRlZC4AhFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLpxmaW5hbGl6ZV9jb2xsZWN0aW9uX2RlbGV0aW9uX2F1dGhvcml6ZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgBrHHRGaW5hbGl6ZSBjb2xsZWN0aW9uIGRlbGV0aW9uLgAdAVJlbW92ZXMgYWxsIHJlbWFpbmluZyBwZXItY29sbGVjdGlvbiBzdG9yYWdlIGFuZCB0aGUgb3duZXIncyBpZGVudGlmaWVyGQFyZWZlcmVuY2UuIENhbiBvbmx5IHByb2NlZWQgd2hlbiBhbGwgcmluZ3MsIHJpbmcgcGFnZXMsIGFuZCBvbmJvYXJkaW5nkHF1ZXVlIHBhZ2VzIGhhdmUgYmVlbiBmdWxseSBkZWxldGVkLgCEU3VibWl0dGVkIGJ5IHRoZSBvZmZjaGFpbiB3b3JrZXIuiHJlbW92ZV9vcnBoYW5lZF9tZW1iZXJzX2F1dGhvcml6ZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgBuJPRSZW1vdmUgb3JwaGFuZWQgYE1lbWJlcnNgIGVudHJpZXMgZm9yIGEgc3VzcGVuZGVkIGNvbGxlY3Rpb24uAFUBU3VzcGVuZGVkIG1lbWJlcnMgY2FuIGxlYXZlIGVudHJpZXMgaW4gYE1lbWJlcnNgIHRoYXQgb3V0bGl2ZSB0aGVpciByaW5nLCBzbyBiZWZvcmUgYfxjb2xsZWN0aW9uIGNhbiBiZSBmaW5hbGl6ZWQgdGhlc2UgbXVzdCBiZSBkcmFpbmVkLiBEcmFpbnMgdXAgdG85AWBPUlBIQU5FRF9NRU1CRVJTX1JFTU9WQUxfTElNSVRgIGVudHJpZXMgZm9yIGBpZGVudGlmaWVyYC4gVGhlIG9mZmNoYWluIHdvcmtlcj0BcmVzdWJtaXRzIHVudGlsIHRoZSBwcmVmaXggaXMgZW1wdHksIGFmdGVyIHdoaWNoIHRoZSBjb2xsZWN0aW9uIGRlbGV0aW9uIGNhbiBiZShmaW5hbGl6ZWQuAIRTdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci5obWFya19yaW5nX3N0YWxlX2F1dGhvcml6ZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAbBjwTWFyayBhIHJpbmcgYXMgc3RhbGUgc28gdGhlIG9mZmNoYWluIHdvcmtlciB3aWxsIHJlYnVpbGQgaXQuAB0BQW55b25lIGNhbiBzdWJtaXQgdGhpcyB0cmFuc2FjdGlvbiBpZiB0aGUgcmluZyBoYXMgbWVtYmVycyB0aGF0IGFyZSBub3QlAXlldCBpbmNsdWRlZCBpbiB0aGUgcm9vdCAoYHRvdGFsID4gaW5jbHVkZWRgKSBhbmQgdGhlIHJpbmcgaXMgbm90IGFscmVhZHklAW1hcmtlZCBzdGFsZS4gVGhpcyBpcyBhIHJlY292ZXJ5IG1lY2hhbmlzbSBpbiBjYXNlIHRoZSBgU3RhbGVSaW5nc2AgZW50cnlsd2FzIGxvc3Qgb3IgbmV2ZXIgaW5zZXJ0ZWQudGNsZWFuX3VwX29sZF9yb290c19hdXRob3JpemVkDAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEUbGltaXQ4AQx1MzIAbSCAQ2xlYW4gdXAgZXhwaXJlZCBvbGQgcmluZyByb290cy4AEQFSZW1vdmVzIHVwIHRvIGBsaW1pdGAgb2xkIHJpbmcgcm9vdHMgZm9yIHRoZSBnaXZlbiByaW5nIGluIHRoZSBnaXZlbixjb2xsZWN0aW9uLgDQVGhlIHRyYW5zYWN0aW9uIHNvdXJjZSBtdXN0IGJlIGBMb2NhbGAgb3IgYEluQmxvY2tgLgD0VGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7BBAQYT3B0aW9uBARUAQgBCBBOb25lAAAAEFNvbWUEAAgAAAEAAMUEDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQQQ2FsbAQEVAABYBRzcGxpdAQBKHNwbGl0X2ludG/JBAF9AUJvdW5kZWRWZWM8CihEZW5vbWluYXRpb24sIEJvdW5kZWRWZWM8VDo6QWNjb3VudElkLCBUOjpNYXhTcGxpdE91dHB1dHM+KSwgVDo6Ck1heFNwbGl0T3V0cHV0cyw+AABQhFNwbGl0IGEgY29pbiBpbnRvIG11bHRpcGxlIGNvaW5zLgA9AVRoZSBvcmlnaW4gbXVzdCBiZSBhIFtPcmlnaW46OkNvaW5dLCB3aGljaCBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgdHJhbnNhY3Rpb27UZXh0ZW5zaW9uIFtgQXNDb2luYWdlYF0oY3JhdGU6OmV4dGVuc2lvbjo6QXNDb2luYWdlKS4A1FRoZSBjYWxsIGlzIGZyZWUgYW5kIGFnZXMgdGhlIHJlc3VsdGluZyBjb2lucyBieSBvbmUuAEkBVGhlIGBzcGxpdF9pbnRvYCBwYXJhbWV0ZXIgY29udGFpbnMgYSB2ZWN0b3Igb2YgcGFpcnMsIGVhY2ggcGFpciBjb250YWluaW5nIGEgY29pblUBdmFsdWUgYW5kIGEgbGlzdCBvZiBkZXN0aW5hdGlvbiBhY2NvdW50IGlkcy4gRm9yIGVhY2ggcGFpciwgYSBuZXcgY29pbiB3aXRoIHRoZSBnaXZlbsR2YWx1ZSBpcyBjcmVhdGVkIGZvciBlYWNoIGRlc3RpbmF0aW9uIGFjY291bnQgaWQuAFhWYWxpZGl0eSByZXF1aXJlbWVudHM6PQEoYW4gaW52YWxpZCB0cmFuc2FjdGlvbiB3b24ndCBiZSBpbmNsdWRlZCBpbiBhIGJsb2NrLCB0aGUgY29pbiBpcyBub3QgY29uc3VtZWQp4CogVGhlIGNvaW4ncyBhZ2UgbXVzdCBiZSBsZXNzIHRoYW4gW0NvbmZpZzo6TWF4aW11bUFnZV0uVQEqIFRoZSBkZW5vbWluYXRpb24gbXVzdCBiZSB3aXRoaW4gdGhlIGJvdW5kcyBkZWZpbmVkIGJ5IFtDb25maWc6Ok1pbmltdW1FeHBvbmVudF0gYW5kcCAgW0NvbmZpZzo6TWF4aW11bUV4cG9uZW50XS4tASogVGhlIHRvdGFsIHZhbHVlIG9mIHRoZSBuZXcgY29pbnMgbXVzdCBlcXVhbCB0aGUgdmFsdWUgb2YgdGhlIG9yaWdpbiBjb2luLgkBKiBUaGUgbnVtYmVyIG9mIG91dHB1dHMgbXVzdCBub3QgZXhjZWVkIFtDb25maWc6Ok1heFNwbGl0T3V0cHV0c10uJQEqIFRoZSBhZ2Ugb2YgdGhlIG5ldyBjb2lucyBpcyBzZXQgdG8gdGhlIGFnZSBvZiB0aGUgb3JpZ2luIGNvaW4gcGx1cyBvbmUu4CogRWFjaCBkZXN0aW5hdGlvbiBhY2NvdW50IG11c3Qgbm90IGFscmVhZHkgaGF2ZSBhIGNvaW4uIHRyYW5zZmVyBAEIdG8EATBUOjpBY2NvdW50SWQAASyMVHJhbnNmZXIgYSBjb2luIHRvIGFub3RoZXIgYWNjb3VudC4APQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9u1GV4dGVuc2lvbiBbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkuANBUaGUgY2FsbCBpcyBmcmVlIGFuZCBhZ2VzIHRoZSByZXN1bHRpbmcgY29pbiBieSBvbmUuAFhWYWxpZGl0eSByZXF1aXJlbWVudHM6PQEoYW4gaW52YWxpZCB0cmFuc2FjdGlvbiB3b24ndCBiZSBpbmNsdWRlZCBpbiBhIGJsb2NrLCB0aGUgY29pbiBpcyBub3QgY29uc3VtZWQp3CogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgbXVzdCBub3QgYWxyZWFkeSBoYXZlIGEgY29pbi7gKiBUaGUgY29pbidzIGFnZSBtdXN0IGJlIGxlc3MgdGhhbiBbQ29uZmlnOjpNYXhpbXVtQWdlXS5cbG9hZF9yZWN5Y2xlcl93aXRoX2NvaW4IAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwE4U2lnbmF0dXJlT2Y8VD4AAkRoTG9hZCBjb2luIGludG8gYSByZWN5Y2xlci4APQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9u1GV4dGVuc2lvbiBbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkuAERUaGUgY2FsbCBpcyBmcmVlLgBZAVRoZSBgbWVtYmVyX2tleWAgcGFyYW1ldGVyIGlzIHRoZSBtZW1iZXIga2V5IHRvIGJlIGluY2x1ZGVkIGluIHRoZSByZWN5Y2xlciwgYW5kIHdob3NlqGFsaWFzIGlzIHVzZWQgdG8gdW5sb2FkIGZyb20gdGhlIHJlY3ljbGVyLgBYVmFsaWRpdHkgcmVxdWlyZW1lbnRzOj0BKGFuIGludmFsaWQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgaW5jbHVkZWQgaW4gYSBibG9jaywgdGhlIGNvaW4gaXMgbm90IGNvbnN1bWVkKQEBKiBUaGUgYG1lbWJlcl9rZXlgIG11c3Qgbm90IGFscmVhZHkgYmUgdXNlZCBpbiBhbm90aGVyIHJlY3ljbGVyLtAqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCAoaS5lLiB3ZWxsIGZvcm1lZCkuUQEqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIGEgdmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBjb2luJ3MgYWNjb3VudCBpZCBieSB0aGU8ICBgbWVtYmVyX2tleWAuBQEqIFRoZSByZWN5Y2xlciBjb2xsZWN0aW9uIGZvciB0aGUgY29pbidzIHZhbHVlIG11c3QgYWxyZWFkeSBleGlzdIRsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXQQATBwcmVzZXJ2YXRpb27ZBAFEQ29kZWNQcmVzZXJ2YXRpb24AARR2YWx1ZXUDATBEZW5vbWluYXRpb24AAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwE4U2lnbmF0dXJlT2Y8VD4AA3CQTG9hZCBleHRlcm5hbCBhc3NldCBpbnRvIGEgcmVjeWNsZXIuAIxUaGUgb3JpZ2luIG11c3QgYmUgYSBzaWduZWQgb3JpZ2luLgCAVGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZWZ1bmRlZC4ARQFUaGUgYHByZXNlcnZhdGlvbmAgcGFyYW1ldGVyIGluZGljYXRlcyBob3cgdGhlIGFzc2V0IHRyYW5zZmVyIHNob3VsZCBwcmVzZXJ2ZSB0aGVEc2lnbmVyJ3MgYWNjb3VudC4AQQFUaGUgYHZhbHVlYCBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSBkZW5vbWluYXRpb24gdG8gYmUgbG9hZGVkIGludG8gdGhlIHJlY3ljbGVyLj0BVGhlIGVxdWl2YWxlbnQgYW1vdW50IG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGlzIHRyYW5zZmVycmVkIGZyb20gdGhlIHNpZ25lciB0b0x0aGUgcGFsbGV0IGFjY291bnQuAFkBVGhlIGBtZW1iZXJfa2V5YCBwYXJhbWV0ZXIgaXMgdGhlIG1lbWJlciBrZXkgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlY3ljbGVyLCBhbmQgd2hvc2WoYWxpYXMgaXMgdXNlZCB0byB1bmxvYWQgZnJvbSB0aGUgcmVjeWNsZXIuAFUBVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIHBhcmFtZXRlciBpcyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBzaWduZXIncyBhY2NvdW50IGlkIGJ5IHRoZTRgbWVtYmVyX2tleWAuADRSZXF1aXJlbWVudHM6AQEqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBub3QgYWxyZWFkeSBiZSB1c2VkIGluIGFub3RoZXIgcmVjeWNsZXIu0CogVGhlIGBtZW1iZXJfa2V5YCBtdXN0IGJlIHZhbGlkIChpLmUuIHdlbGwgZm9ybWVkKS5BASogVGhlIGB2YWx1ZWAgbXVzdCBiZSB3aXRoaW4gdGhlIGJvdW5kcyBkZWZpbmVkIGJ5IFtDb25maWc6Ok1pbmltdW1FeHBvbmVudF0gYW5kcCAgW0NvbmZpZzo6TWF4aW11bUV4cG9uZW50XS5VASogVGhlIHNpZ25lciBtdXN0IGhhdmUgZW5vdWdoIGJhbGFuY2Ugb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQgdG8gY292ZXIgdGhlIGVxdWl2YWxlbnSQICBhbW91bnQgZm9yIHRoZSBnaXZlbiBkZW5vbWluYXRpb24uWQEqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIGEgdmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBzaWduZXIncyBhY2NvdW50IGlkIGJ5IHRoZTRgbWVtYmVyX2tleWAuoGxvYWRfcmVjeWNsZXJfd2l0aF9leHRlcm5hbF9hc3NldF91bnBhaWQQATBwcmVzZXJ2YXRpb27ZBAFEQ29kZWNQcmVzZXJ2YXRpb24AARR2YWx1ZXUDATBEZW5vbWluYXRpb24AAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwE4U2lnbmF0dXJlT2Y8VD4AD0wtAUxvYWQgZXh0ZXJuYWwgYXNzZXQgaW50byBhIHJlY3ljbGVyIChpbmZhbGxpYmxlLCB2YWxpZGF0ZWQgdW5wYWlkIHZhcmlhbnQpLgBNAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhldHRyYW5zYWN0aW9uIGV4dGVuc2lvbiB2YXJpYW50jQFbYEFzQ29pbmFnZUluZm86OkluZmFsbGlibGVVbnBhaWRTaWduZWRgXShjcmF0ZTo6ZXh0ZW5zaW9uOjpBc0NvaW5hZ2VJbmZvOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkKS4AANxUaGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIHZhbGlkYXRpb24gcGhhc2UgbXVzdCBlbnN1cmU6FQEtIFRoZSBgbWVtYmVyX2tleWAgaXMgdmFsaWQgYW5kIG5vdCBhbHJlYWR5IHVzZWQgaW4gYW5vdGhlciByZWN5Y2xlci5FAS0gVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIGlzIGEgdmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBzaWduZXIncyBhY2NvdW50IGlkIGJ5IHRoZTwgIGBtZW1iZXJfa2V5YC4tAS0gVGhlIGB2YWx1ZWAgaXMgd2l0aGluIHRoZSBib3VuZHMgZGVmaW5lZCBieSBbQ29uZmlnOjpNaW5pbXVtRXhwb25lbnRdIGFuZEEBICBbQ29uZmlnOjpNYXhpbXVtRXhwb25lbnRdLCBhbmQgY2FuIGJlIGxvc3NsZXNzbHkgY29udmVydGVkIHRvIGFuIGFzc2V0IGFtb3VudC5ZAS0gVGhlIHNpZ25lciBoYXMgZW5vdWdoIGJhbGFuY2Ugb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQgdG8gY292ZXIgdGhlIGVxdWl2YWxlbnQgYW1vdW505CAgZm9yIHRoZSBnaXZlbiBkZW5vbWluYXRpb24gKHJlc3BlY3RpbmcgYHByZXNlcnZhdGlvbmApLqwtIFRoZSBub25jZSBpcyB2YWxpZCBmb3IgcmVwbGF5IHByb3RlY3Rpb24u1C0gVGhlIHJlY3ljbGVyIGNvbGxlY3Rpb24gZm9yIGB2YWx1ZWAgYWxyZWFkeSBleGlzdHMuAERUaGUgY2FsbCBpcyBmcmVlLrhsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXRfdW5wYWlkX2JhdGNoBAEUaXRlbXPdBAHUQm91bmRlZFZlYzxVbnBhaWRMb2FkSW5wdXQ8VD4sIFQ6Ok1heEJhdGNoVW5wYWlkTG9hZD4AEDwZAUJhdGNoZWQgdmFyaWFudCBvZiBbYFNlbGY6OmxvYWRfcmVjeWNsZXJfd2l0aF9leHRlcm5hbF9hc3NldF91bnBhaWRgXS4ATQFUaGUgb3JpZ2luIG11c3QgYmUgW09yaWdpbjo6SW5mYWxsaWJsZVVucGFpZFNpZ25lZF0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZXR0cmFuc2FjdGlvbiBleHRlbnNpb24gdmFyaWFudI0BW2BBc0NvaW5hZ2VJbmZvOjpJbmZhbGxpYmxlVW5wYWlkU2lnbmVkYF0oY3JhdGU6OmV4dGVuc2lvbjo6QXNDb2luYWdlSW5mbzo6SW5mYWxsaWJsZVVucGFpZFNpZ25lZCkuMQFUaGUgZXh0ZW5zaW9uIHZhbGlkYXRlcyBlYWNoIGlubmVyIGl0ZW0gYW5kIGFkZGl0aW9uYWxseSBjaGVja3Mgd2l0aGluLWJhdGNoVQFtZW1iZXIta2V5IHVuaXF1ZW5lc3MgYW5kIHRoYXQgdGhlIHNpZ25lcidzIGJhbGFuY2UgY292ZXJzIHRoZSBzdW0gb2YgYWxsIGlubmVyIGFzc2V0IGFtb3VudHMuAEEBVGhpcyBjYWxsIGRpc3BhdGNoZXMgZWFjaCBpbm5lciBsb2FkIGJ5IHJlLXJ1bm5pbmcgdGhlIHNhbWUgY2hlY2tzIHRoZSBleHRlbnNpb25RAWp1c3QgcGVyZm9ybWVkIChzZWUgW2BSZWN5Y2xlck1hbmFnZXI6OmxvYWRgXSkuIFRoZSByZWR1bmRhbmN5IG1hdGNoZXMgdGhlIGRlZmVuc2l2ZU0BcGF0dGVybiB1c2VkIGJ5IFtgU2VsZjo6bG9hZF9yZWN5Y2xlcl93aXRoX2V4dGVybmFsX2Fzc2V0X3VucGFpZGBdOiBhIGRpc3BhdGNoIHBhdGhFAXRoYXQgZmFpbHMgYW55IG9mIHRoZXNlIGNoZWNrcyBpcyBhIGxvZ2ljIGJ1ZyBpbiB0aGUgZXh0ZW5zaW9uLCBub3QgYSB1c2VyIGVycm9yLgBEVGhlIGNhbGwgaXMgZnJlZS5kdW5sb2FkX3JlY3ljbGVyX2ludG9fY29pbhQBHGFsaWFzZXPpBAGYQm91bmRlZFZlYzxBbGlhcywgVDo6TWF4Q29uc29saWRhdGlvbj4AARR2YWx1ZXUDATBEZW5vbWluYXRpb24AARRpbmRleDgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAABCHRvBAEwVDo6QWNjb3VudElkAARolFVubG9hZCBhIHJlY3ljbGVyIHRvIG1pbnQgYSBuZXcgY29pbi4AXQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0gd2l0aCBgZmVlOiBVbmxvYWRGZWU6OlByZXBhaWRgLCB3aGljaCBjYW4gYmVhAW9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkgdXNpbmdYYEFzVW5sb2FkVG9rZW5QZW9wbGVgLOxgQXNVbmxvYWRUb2tlbkxpdGVQZW9wbGVgLCBvciBgQXNVbmxvYWRUb2tlblBhaWRgIHZhcmlhbnRzLgBJAVRoaXMgZnVuY3Rpb24gYWxsb3dzIGEgdXNlciB0byBwcm92ZSB0aGV5IG93biBvbmUgb3IgbW9yZSBjb2lucyBpbiBhIHJlY3ljbGVyIHJpbmddAXdpdGhvdXQgcmV2ZWFsaW5nIHdoaWNoIHNwZWNpZmljIGNvaW5zIHRoZXkgb3duLiBJdCBjb25zb2xpZGF0ZXMgb25lIG9yIG11bHRpcGxlIGlucHV0c2hpbnRvIGEgc2luZ2xlIG91dHB1dCBjb2luLgAsUGFyYW1ldGVyczpFASogYGFsaWFzZXNgOiB0aGUgbGlzdCBvZiBhbGlhc2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1lbWJlciBrZXlzIGluY2x1ZGVkIGluIHRoZRUBICByZWN5Y2xlci4gVGhlIHByb29mcyBmb3IgdGhlc2UgYWxpYXNlcyBhcmUgY29udGFpbmVkIGluIHRoZSBvcmlnaW4u+CogYHZhbHVlYCBhbmQgYGluZGV4YDogaWRlbnRpZmllcyB0aGUgcmVjeWNsZXIgYmVpbmcgdW5sb2FkZWQu/CogYF9yZXZpc2lvbmA6IHRoZSByZWN5Y2xlciByZXZpc2lvbiB1c2VkIGZvciB0aGUgYWxpYXNfcHJvb2ZzLsQqIGB0b2A6IHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgbmV3IGNvaW4uADRSZXF1aXJlbWVudHM6KQEqIFRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0gd2l0aCBgZmVlOiBVbmxvYWRGZWU6OlByZXBhaWRgLvAqIFRoZSByZWN5Y2xlciBpZGVudGlmaWVkIGJ5IGB2YWx1ZWAgYW5kIGBpbmRleGAgbXVzdCBleGlzdC5RASogVGhlIGFsaWFzIHByb29mcyBwcm92aWRlZCBpbiB0aGUgb3JpZ2luIG11c3QgYmUgdmFsaWQgZm9yIHRoZSByZWN5Y2xlcidzIHJldmlzaW9uLiEBKiBUaGUgYGFsaWFzZXNgIHByb3ZpZGVkIG11c3QgbWF0Y2ggdGhlIGFsaWFzZXMgZGVyaXZlZCBmcm9tIHRoZSBwcm9vZnMuFQEqIFRoZSBhbGlhc2VzIG11c3Qgbm90IGhhdmUgYmVlbiBhbHJlYWR5IHVubG9hZGVkIGZyb20gdGhpcyByZWN5Y2xlci68KiBUaGUgbnVtYmVyIG9mIGFsaWFzZXMgbXVzdCBiZSBhIHBvd2VyIG9mIHR3by41ASogVGhlIHJlc3VsdGluZyBjb25zb2xpZGF0ZWQgdmFsdWUgbXVzdCBub3QgZXhjZWVkIFtDb25maWc6Ok1heGltdW1FeHBvbmVudF0ujHVubG9hZF9yZWN5Y2xlcl9pbnRvX2V4dGVybmFsX2Fzc2V0FAEcYWxpYXNlc+kEAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBMERlbm9taW5hdGlvbgABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEIdG8EATBUOjpBY2NvdW50SWQABWDwVW5sb2FkIGEgcmVjeWNsZXIgdG8gd2l0aGRyYXcgdGhlIHVuZGVybHlpbmcgZXh0ZXJuYWwgYXNzZXQuAFEBVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9u1GV4dGVuc2lvbiBbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkuAF0BV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpQcmVwYWlkXSAodmlhIGZyZWUgb3IgcGFpZCB1bmxvYWQgdG9rZW4pLCBubyBmZWUgaXMgZGVkdWN0ZWQuUQFXaGVuIGBmZWVgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHVubG9hZGVkIGFzc2V0cy4AMQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBhIHVzZXIgdG8gd2l0aGRyYXcgdGhlaXIgY29pbnMgYmFjayBpbnRvIHRoZSB1bmRlcmx5aW5ngGFzc2V0IChlLmcuLCBhbiBleHRlcm5hbCBhc3NldCkuACxQYXJhbWV0ZXJzOkUBKiBgYWxpYXNlc2A6IHRoZSBsaXN0IG9mIGFsaWFzZXMgY29ycmVzcG9uZGluZyB0byB0aGUgbWVtYmVyIGtleXMgaW5jbHVkZWQgaW4gdGhlFQEgIHJlY3ljbGVyLiBUaGUgcHJvb2ZzIGZvciB0aGVzZSBhbGlhc2VzIGFyZSBjb250YWluZWQgaW4gdGhlIG9yaWdpbi74KiBgdmFsdWVgIGFuZCBgaW5kZXhgOiBpZGVudGlmaWVzIHRoZSByZWN5Y2xlciBiZWluZyB1bmxvYWRlZC78KiBgX3JldmlzaW9uYDogdGhlIHJlY3ljbGVyIHJldmlzaW9uIHVzZWQgZm9yIHRoZSBhbGlhc19wcm9vZnMu5CogYHRvYDogdGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0LgA0UmVxdWlyZW1lbnRzOqwqIFRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0u8CogVGhlIHJlY3ljbGVyIGlkZW50aWZpZWQgYnkgYHZhbHVlYCBhbmQgYGluZGV4YCBtdXN0IGV4aXN0LlEBKiBUaGUgYWxpYXMgcHJvb2ZzIHByb3ZpZGVkIGluIHRoZSBvcmlnaW4gbXVzdCBiZSB2YWxpZCBmb3IgdGhlIHJlY3ljbGVyJ3MgcmV2aXNpb24uWQEqIFRoZSBhbGlhc2VzIG11c3Qgbm90IGhhdmUgYmVlbiBhbHJlYWR5IHVubG9hZGVkIChleGNlcHQgZm9yIHRoZSBmaXJzdCBvbmUgd2hlbiBgZmVlYBUBICBpcyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgd2hpY2ggd2FzIHByZS1tYXJrZWQgaW4gdGhlIGV4dGVuc2lvbikurHBheV9mb3JfcmVjeWNsZXJfdW5sb2FkX2ZlZV90b2tlbl93aXRoX2NvaW4IAShtZW1iZXJfa2V5CAEsTWVtYmVyT2Y8VD4AAUhwcm9vZl9vZl9vd25lcnNoaXDRAwG4PENyeXB0b09mPFQ+IGFzIEdlbmVyYXRlVmVyaWZpYWJsZT46OlNpZ25hdHVyZQAGVCkBUGF5IHRoZSBmZWUgdG8gcmVnaXN0ZXIgYSBtZW1iZXIga2V5IGZvciBhIHBhaWQgdW5sb2FkIHRva2VuIHVzaW5nIGEgY29pbi4APQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgd2hpY2ggY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIHRyYW5zYWN0aW9u1GV4dGVuc2lvbiBbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkuAEkBVGhlIGNvaW4gaXMgY29uc3VtZWQuIFRoZSBmZWUgaXMgZGVkdWN0ZWQgZnJvbSB0aGUgY29pbidzIHZhbHVlIGFuZCB0cmFuc2ZlcnJlZCB0bx0BW0NvbmZpZzo6RmVlRGVzdGluYXRpb25dLiBUaGUgcmVtYWluaW5nIHZhbHVlIG9mIHRoZSBjb2luIGlzIGRlc3Ryb3llZC4A1ElmIHRoZSBjYWxsIGZhaWxzLCB0aGUgb3JpZ2luIGNvaW4gaXMgc3RpbGwgY29uc3VtZWQuAF0BVG8gcHJvdGVjdCB0aGUgdXNlciBhZ2FpbnN0IHZhcnlpbmcgZmVlcywgaWYgdGhlIGNvaW4ncyB2YWx1ZSBpcyBsZXNzIHRoYW4gdGhlIGZlZSwgdGhl6GNhbGwgaXMgaW52YWxpZCAoYW4gaW52YWxpZCBjYWxsIG5ldmVyIGdvZXMgaW50byBhIGJsb2NrKS4AXQFUaGUgYHByb29mX29mX293bmVyc2hpcGAgaXMgYSBzaWduYXR1cmUgb2YgdGhlIGNhbGxlcidzIGFjY291bnQgSUQgYnkgdGhlIGBtZW1iZXJfa2V5YC4lAVRoaXMgZW5zdXJlcyB0aGUgY2FsbGVyIGNvbnRyb2xzIHRoZSBtZW1iZXIga2V5IHRvIHByZXZlbnQgZnJvbnQtcnVubmluZy4ANFJlcXVpcmVtZW50czrgKiBUaGUgY29pbidzIGFnZSBtdXN0IGJlIGxlc3MgdGhhbiBbQ29uZmlnOjpNYXhpbXVtQWdlXS7cKiBUaGUgZGVub21pbmF0aW9uIG11c3QgYmUgc3VmZmljaWVudCB0byBjb3ZlciB0aGUgZmVlLtgqIFRoZSBgbWVtYmVyX2tleWAgbXVzdCBiZSB2YWxpZCBhbmQgbm90IGFscmVhZHkgdXNlZC6kKiBUaGUgYHByb29mX29mX293bmVyc2hpcGAgbXVzdCBiZSB2YWxpZC60cGF5X2Zvcl9yZWN5Y2xlcl91bmxvYWRfZmVlX3Rva2VuX3dpdGhfbmF0aXZlCAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBuDxDcnlwdG9PZjxUPiBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUABzxdAVBheSB0aGUgZmVlIHRvIHJlZ2lzdGVyIGEgbWVtYmVyIGtleSBmb3IgYSBwYWlkIHVubG9hZCB0b2tlbiB1c2luZyB0aGUgbmF0aXZlIGN1cnJlbmN5LgBoVGhlIG9yaWdpbiBtdXN0IGJlIFNpZ25lZC4ARQFUaGlzIGFkZHMgdGhlIGBtZW1iZXJfa2V5YCB0byBhICJwYWlkIHVubG9hZCB0b2tlbiByaW5nIi4gQmVpbmcgcGFydCBvZiB0aGlzIHJpbmchAWFsbG93cyB0aGUgdXNlciB0byBsYXRlciBnZW5lcmF0ZSBhbiBgVW5sb2FkVG9rZW5gIHRvIHVubG9hZCBhIHJlY3ljbGVyLgANAVRoZSBmZWUgaXMgdHJhbnNmZXJyZWQgZnJvbSB0aGUgY2FsbGVyIHRvIFtDb25maWc6OkZlZURlc3RpbmF0aW9uXS4AXQFUaGUgYHByb29mX29mX293bmVyc2hpcGAgaXMgYSBzaWduYXR1cmUgb2YgdGhlIGNhbGxlcidzIGFjY291bnQgSUQgYnkgdGhlIGBtZW1iZXJfa2V5YC4lAVRoaXMgZW5zdXJlcyB0aGUgY2FsbGVyIGNvbnRyb2xzIHRoZSBtZW1iZXIga2V5IHRvIHByZXZlbnQgZnJvbnQtcnVubmluZy4ANFJlcXVpcmVtZW50czrYKiBUaGUgYG1lbWJlcl9rZXlgIG11c3QgYmUgdmFsaWQgYW5kIG5vdCBhbHJlYWR5IHVzZWQupCogVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIG11c3QgYmUgdmFsaWQu1HBheV9mb3JfcmVjeWNsZXJfdW5sb2FkX2ZlZV90b2tlbl93aXRoX2V4dGVybmFsX2Fzc2V0CAEobWVtYmVyX2tleQgBLE1lbWJlck9mPFQ+AAFIcHJvb2Zfb2Zfb3duZXJzaGlw0QMBuDxDcnlwdG9PZjxUPiBhcyBHZW5lcmF0ZVZlcmlmaWFibGU+OjpTaWduYXR1cmUACEBFAVBheSB0aGUgZmVlIHRvIHJlZ2lzdGVyIGEgbWVtYmVyIGtleSBmb3IgYSBwYWlkIHVubG9hZCB0b2tlbiB1c2luZyB0aGUgdW5kZXJseWluZzxleHRlcm5hbCBhc3NldC4AaFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQuAEUBVGhpcyBhZGRzIHRoZSBgbWVtYmVyX2tleWAgdG8gYSAicGFpZCB1bmxvYWQgdG9rZW4gcmluZyIuIEJlaW5nIHBhcnQgb2YgdGhpcyByaW5nIQFhbGxvd3MgdGhlIHVzZXIgdG8gbGF0ZXIgZ2VuZXJhdGUgYW4gYFVubG9hZFRva2VuYCB0byB1bmxvYWQgYSByZWN5Y2xlci4ADQFUaGUgZmVlIGlzIHRyYW5zZmVycmVkIGZyb20gdGhlIGNhbGxlciB0byBbQ29uZmlnOjpGZWVEZXN0aW5hdGlvbl0uAF0BVGhlIGBwcm9vZl9vZl9vd25lcnNoaXBgIGlzIGEgc2lnbmF0dXJlIG9mIHRoZSBjYWxsZXIncyBhY2NvdW50IElEIGJ5IHRoZSBgbWVtYmVyX2tleWAuJQFUaGlzIGVuc3VyZXMgdGhlIGNhbGxlciBjb250cm9scyB0aGUgbWVtYmVyIGtleSB0byBwcmV2ZW50IGZyb250LXJ1bm5pbmcuADRSZXF1aXJlbWVudHM62CogVGhlIGBtZW1iZXJfa2V5YCBtdXN0IGJlIHZhbGlkIGFuZCBub3QgYWxyZWFkeSB1c2VkLqQqIFRoZSBgcHJvb2Zfb2Zfb3duZXJzaGlwYCBtdXN0IGJlIHZhbGlkLtB1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldF9hbmRfbG9hZGVkX2NvaW5zHAEcYWxpYXNlc+kEAZhCb3VuZGVkVmVjPEFsaWFzLCBUOjpNYXhDb25zb2xpZGF0aW9uPgABFHZhbHVldQMBMERlbm9taW5hdGlvbgABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEIdG8EATBUOjpBY2NvdW50SWQAAVRleHRlcm5hbF9hc3NldF9hbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AATBsb2FkZWRfY29pbnPtBAHsQm91bmRlZFZlYzwoRGVub21pbmF0aW9uLCBNZW1iZXJPZjxUPiksIFQ6Ok1heFNwbGl0T3V0cHV0cz4ACZRFAVVubG9hZCBhIHJlY3ljbGVyIGludG8gYSBtaXhlZCBvdXRwdXQgb2YgZXh0ZXJuYWwgYXNzZXQgYW5kIGZyZXNobHkgbG9hZGVkIGNvaW5zLgBRAVRoZSBvcmlnaW4gbXVzdCBiZSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0sIHdoaWNoIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSB0cmFuc2FjdGlvbtRleHRlbnNpb24gW2BBc0NvaW5hZ2VgXShjcmF0ZTo6ZXh0ZW5zaW9uOjpBc0NvaW5hZ2UpLgBZAVRoaXMgZnVuY3Rpb24gYWxsb3dzIGEgdXNlciB0byBvZmZib2FyZCBwYXJ0IG9mIHRoZSB1bmxvYWRlZCB2YWx1ZSBpbnRvIHRoZSB1bmRlcmx5aW5nAQFhc3NldCB3aGlsZSByZW1pbnRpbmcgdGhlIHJlc3QgYXMgZnJlc2hseSBsb2FkZWQgcmVjeWNsZXIgY29pbnMuAEUBV2hlbiBgZmVlYCBpcyBbVW5sb2FkRmVlOjpQcmVwYWlkXSwgYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAgaXMgdHJhbnNmZXJyZWQgYXMtaXMuNQFXaGVuIGBmZWVgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB0aGUgZmVlIGlzIGRlZHVjdGVkIGZyb20gdGhlIHNwZWNpZmllZAUBYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGAsIHNvIHRoZSByZWNpcGllbnQgcmVjZWl2ZXMgdGhlIHJlbWFpbmRlci4ALFBhcmFtZXRlcnM6RQEqIGBhbGlhc2VzYDogdGhlIGxpc3Qgb2YgYWxpYXNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZW1iZXIga2V5cyBpbmNsdWRlZCBpbiB0aGUVASAgcmVjeWNsZXIuIFRoZSBwcm9vZnMgZm9yIHRoZXNlIGFsaWFzZXMgYXJlIGNvbnRhaW5lZCBpbiB0aGUgb3JpZ2luLvgqIGB2YWx1ZWAgYW5kIGBpbmRleGA6IGlkZW50aWZpZXMgdGhlIHJlY3ljbGVyIGJlaW5nIHVubG9hZGVkLvgqIGByZXZpc2lvbmA6IHRoZSByZWN5Y2xlciByZXZpc2lvbiB1c2VkIGZvciB0aGUgYWxpYXMgcHJvb2ZzLvwqIGB0b2A6IHRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgZXh0ZXJuYWwgYXNzZXQgcG9ydGlvbi5dASogYGV4dGVybmFsX2Fzc2V0X2Ftb3VudGA6IHRoZSBncm9zcyBhc3NldCBwb3J0aW9uIHRvIG9mZmJvYXJkIGZyb20gdGhlIHVubG9hZGVkIHZhbHVlLl0BKiBgbG9hZGVkX2NvaW5zYDogdGhlIGZyZXNobHkgbG9hZGVkIHJlY3ljbGVyIGNvaW5zIHRvIG1pbnQgZnJvbSB0aGUgcmVtYWluaW5nIHVubG9hZGVkICAgdmFsdWUuAEUBVGhlIHRvdGFsIHVubG9hZGVkIHZhbHVlIG11c3QgYWx3YXlzIGVxdWFsIHRoZSBhc3NldCBwb3J0aW9uIHBsdXMgdGhlIGxvYWRlZC1jb2luSQFwb3J0aW9uLiBJbiBgRnJvbU91dHB1dGAgbW9kZSwgdGhlIGFzc2V0IHBvcnRpb24gbXVzdCBiZSBsYXJnZSBlbm91Z2ggdG8gY292ZXIgdGhlLHVubG9hZCBmZWUuADRSZXF1aXJlbWVudHM6rCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXS7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi5ZASogVGhlIGFsaWFzZXMgbXVzdCBub3QgaGF2ZSBiZWVuIGFscmVhZHkgdW5sb2FkZWQgKGV4Y2VwdCBmb3IgdGhlIGZpcnN0IG9uZSB3aGVuIGBmZWVgFQEgIGlzIFtVbmxvYWRGZWU6OkZyb21PdXRwdXRdLCB3aGljaCB3YXMgcHJlLW1hcmtlZCBpbiB0aGUgZXh0ZW5zaW9uKS5VASogYGxvYWRlZF9jb2luc2AgbXVzdCBub3QgYmUgZW1wdHksIGFuZCBhbGwgbG9hZGVkLWNvaW4gbWVtYmVyIGtleXMgbXVzdCBiZSB2YWxpZCBhbmQkICB1bnVzZWQuYQEqIFRoZSB0b3RhbCB1bmxvYWRlZCB2YWx1ZSBtdXN0IGVxdWFsIGBleHRlcm5hbF9hc3NldF9hbW91bnRgIHBsdXMgdGhlIHRvdGFsIGFzc2V0IHZhbHVlUCAgb2YgYGxvYWRlZF9jb2luc2AuRQEqIFdoZW4gdXNpbmcgW1VubG9hZEZlZTo6RnJvbU91dHB1dF0sIGBleHRlcm5hbF9hc3NldF9hbW91bnRgIG11c3QgY292ZXIgdGhlIGZlZS7EdW5sb2FkX3JlY3ljbGVyX2ludG9fZXh0ZXJuYWxfYXNzZXRfbm9uX2Fub255bW91cxABFGlucHV0+QQBoFVubG9hZFJlY3ljbGVySW5wdXQ8VDo6TWF4Q29uc29saWRhdGlvbj4AATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgABCHRvBAEwVDo6QWNjb3VudElkAAEwZmVlX2N1cnJlbmN5/QQBLEZlZUN1cnJlbmN5AAsYMQFVbmxvYWQgYSByZWN5Y2xlciB0byB3aXRoZHJhdyB0aGUgdW5kZXJseWluZyBleHRlcm5hbCBhc3NldCAobm9uLWFub255bW91cykuAFUBQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgW1NlbGY6OnVubG9hZF9yZWN5Y2xlcnNfaW50b19leHRlcm5hbF9hc3NldF9ub25fYW5vbnltb3VzXXRmb3IgdGhlIHNpbmdsZS1yZWN5Y2xlciBjYXNlLgBZAVNlZSBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyc19pbnRvX2V4dGVybmFsX2Fzc2V0X25vbl9hbm9ueW1vdXNdIGZvciBmdWxsIGRvY3VtZW50YXRpb24uyHVubG9hZF9yZWN5Y2xlcnNfaW50b19leHRlcm5hbF9hc3NldF9ub25fYW5vbnltb3VzEAEYaW5wdXRzAQUBtFZlYzxVbmxvYWRSZWN5Y2xlcklucHV0PFQ6Ok1heENvbnNvbGlkYXRpb24+PgABMGFsaWFzX3Byb29mc3kDAaxCb3VuZGVkVmVjPFByb29mT2Y8VD4sIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEIdG8EATBUOjpBY2NvdW50SWQAATBmZWVfY3VycmVuY3n9BAEsRmVlQ3VycmVuY3kADFhRAVVubG9hZCBtdWx0aXBsZSByZWN5Y2xlcnMgdG8gd2l0aGRyYXcgdGhlIHVuZGVybHlpbmcgZXh0ZXJuYWwgYXNzZXQgKG5vbi1hbm9ueW1vdXMpLgBBAVRoaXMgaXMgYSBzaWduZWQtb3JpZ2luIHZlcnNpb24gb2YgW2BTZWxmOjp1bmxvYWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldGBdGQF3aGVyZSB0aGUgZmVlIGlzIHBhaWQgZXhwbGljaXRseSBieSB0aGUgc2lnbmVyIHJhdGhlciB0aGFuIHRocm91Z2ggdGhl8HJpbmctYXV0aGVudGljYXRlZCB1bmxvYWQgdG9rZW4sIGFuZCBmb3IgbXVsdGlwbGUgcmVjeWNsZXJzLgAxAVRoZSBmZWUgY2hhcmdlZCBpcyBvbmUgdW5sb2FkIHRva2VuIGZlZSBwZXIgcmVjeWNsZXIgKGkuZS4sIGBpbnB1dHMubGVuKClgKS4ALFBhcmFtZXRlcnM6MQEqIGBpbnB1dHNgOiBBIGxpc3Qgb2YgaW5wdXRzLCBzcGVjaWZ5aW5nIHRoZSByZWN5Y2xlciBhbmQgYWxpYXNlcyB0byB1bmxvYWQuVQEqIGBhbGlhc19wcm9vZnNgOiB0aGUgcHJvb2ZzIGZvciBhbGwgYWxpYXNlcyBhY3Jvc3MgYWxsIGlucHV0cywgc2lnbmVkIG92ZXIgYSBtZXNzYWdlVQEgIHRoYXQgaW5jbHVkZXMgdGhlIHNpZ25lci4gVGhlIHByb29mcyBtdXN0IGNvcnJlc3BvbmQgc2VxdWVudGlhbGx5IHRvIHRoZSBhbGlhc2VzIGluLCAgYGlucHV0c2AuuCogYHRvYDogdGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSBhc3NldC45ASogYGZlZV9jdXJyZW5jeWA6IHdoZXRoZXIgdG8gcGF5IHRoZSBmZWUgaW4gbmF0aXZlIGN1cnJlbmN5IG9yIGV4dGVybmFsIGFzc2V0LgA0UmVxdWlyZW1lbnRzOnAqIFRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQulCogQWxsIHNwZWNpZmllZCByZWN5Y2xlcnMgbXVzdCBleGlzdC4tASogVGhlIGFsaWFzIHByb29mcyBtdXN0IGNvcnJlc3BvbmQgc2VxdWVudGlhbGx5IHRvIHRoZSBhbGlhc2VzIGluIGBpbnB1dHNgLjkBKiBgaW5wdXRzYCBtdXN0IG5vdCBiZSBlbXB0eSBhbmQgZWFjaCBlbGVtZW50IG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgYWxpYXMuQQEqIFRoZSBzaWduZXIgbXVzdCBoYXZlIHN1ZmZpY2llbnQgYmFsYW5jZSB0byBwYXkgdGhlIGZlZSAob25lIGZlZSBwZXIgcmVjeWNsZXIpLrB1bmxvYWRfYXJjaGl2ZWRfcmVjeWNsZXJfaW50b19leHRlcm5hbF9hc3NldCABFHZhbHVldQMBMERlbm9taW5hdGlvbgABFGluZGV4OAEkUmluZ0luZGV4AAE0cmVjeWNsZXJfcm9vdAUFATBNZW1iZXJzT2Y8VD4AATR1bmxvYWRlZF9yb290PAEQSDI1NgABLGFsaWFzX3Byb29mfQMBKFByb29mT2Y8VD4AAUxub25faW5jbHVzaW9uX3Byb29mCQUBZQFCb3VuZGVkVmVjPEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9UUklFX05PREVfTEVOPj4sIENvbnN0VTMyPApNQVhfVFJJRV9QUk9PRl9OT0RFUz4sPgABCHRvBAEwVDo6QWNjb3VudElkAAEwZmVlX2N1cnJlbmN5/QQBLEZlZUN1cnJlbmN5ABGQBQFSZWNvdmVyIGEgY29pbiBmcm9tIGFuIGFyY2hpdmVkIHJlY3ljbGVyIGludG8gdGhlIGV4dGVybmFsIGFzc2V0LgBYVGhpcyBpcyBhIHNpZ25lZCBjYWxsLgDwSXQgYWxsb3dzIGEgdXNlciB0byB1bmxvYWQgYSBjb2luIGZyb20gYW4gYXJjaGl2ZWQgcmVjeWNsZXIuSQFUaGUgdW5sb2FkIHRva2VuIGZlZSBpcyBjaGFyZ2VkIHRvIHRoZSBzaWduZXIsIGFuZCB0aGUgY2FsbCBpcyBub3QgcmVmdW5kZWQsIGFzIGl0HQFhY2NvdW50cyBmb3IgdGhlIGV4dHJhIHByb29mIHZlcmlmaWNhdGlvbiBhbmQgYXJjaGl2ZWQgcmVjeWNsZXIgdXBkYXRlLgAsUGFyYW1ldGVyczrsKiBgdmFsdWVgIGFuZCBgaW5kZXhgOiBpZGVudGlmeSB0aGUgYXJjaGl2ZWQgcmVjeWNsZXIgcmluZy4xASogYHJlY3ljbGVyX3Jvb3RgOiB0aGUgZGVsZXRlZCByaW5nJ3MgcmluZy1WUkYgcm9vdDsgdmFsaWRhdGVkIHRvZ2V0aGVyIHdpdGjkICBgdW5sb2FkZWRfcm9vdGAgYWdhaW5zdCB0aGUgc3RvcmVkIGFyY2hpdmFsIGNvbW1pdG1lbnQuBQEqIGB1bmxvYWRlZF9yb290YDogdGhlIGN1cnJlbnQgcm9vdCBvZiB0aGUgdW5sb2FkZWQtYWxpYXNlcyB0cmllLjkBKiBgYWxpYXNfcHJvb2ZgOiBhIHJpbmctVlJGIG1lbWJlcnNoaXAgcHJvb2YsIGNyZWF0ZWQgb3ZlciB0aGUgbWVzc2FnZSBiaW5kaW5nWQEgIGBibGFrZTJfMjU2KFVOTE9BRF9BUkNISVZFRF9NU0dfUFJFRklYICsrIHNpZ25lcilgIGluIHRoZSByZWN5Y2xlciB1bmxvYWRpbmcgY29udGV4dHQgIFVOTE9BRElOR19SRUNZQ0xFUl9DT05URVhULjUBKiBgbm9uX2luY2x1c2lvbl9wcm9vZmA6IHRyaWUgbm9kZXMgcHJvdmluZyB0aGUgY2FsbGVyJ3MgYWxpYXMgaXMgYWJzZW50IGZyb21VASAgYHVubG9hZGVkX3Jvb3RgIChpLmUuIGl0IHdhcyBuZXZlciB1bmxvYWRlZCk7IG11c3QgYWxzbyBjb3ZlciB0aGUgaW5zZXJ0aW9uIHBhdGggb2a4ICB0aGUgYWxpYXMgc28gdGhlIG5ldyByb290IGNhbiBiZSByZWNvbXB1dGVkLuQqIGB0b2A6IHRoZSBhY2NvdW50IHJlY2VpdmluZyB0aGUgcmVjb3ZlcmVkIGRlbm9taW5hdGlvbi5ZASogYGZlZV9jdXJyZW5jeWA6IHdoZXRoZXIgdGhlIHVubG9hZCBmZWUgaXMgcGFpZCBpbiBuYXRpdmUgY3VycmVuY3kgb3IgZXh0ZXJuYWwgYXNzZXQuAGEBT24gc3VjY2VzcyB0aGUgZnVsbCBkZW5vbWluYXRpb24gaXMgcmVsZWFzZWQgdG8gYHRvYCwgdGhlIGFsaWFzIGlzIGFkZGVkIHRvIHRoZSB1bmxvYWRlZDUBc2V0IChzbyBpdCBjYW5ub3QgYmUgcmVjb3ZlcmVkIGFnYWluKSwgYW5kIHRoZSBhcmNoaXZlJ3MgcmVjb3ZlcmFibGUgY291bnQgaXPAZGVjcmVtZW50ZWQgKHRoZSBlbnRyeSBpcyByZW1vdmVkIG9uY2UgZHJhaW5lZCkuAFUBVGhlIHVubG9hZGVkLWFsaWFzZXMgdHJpZSBuZWVkZWQgZm9yIGB1bmxvYWRlZF9yb290YCBhbmQgYG5vbl9pbmNsdXNpb25fcHJvb2ZgIGNhbiBiZTEBcmVjb25zdHJ1Y3RlZCBvZmZjaGFpbiBieSBsaXN0ZW5pbmcgdG8gdGhlIFtgRXZlbnQ6OlJlY3ljbGVyQWxpYXNVbmxvYWRlZGBdLFEBW2BFdmVudDo6UmVjeWNsZXJBcmNoaXZlZGBdIGFuZCBbYEV2ZW50OjpBcmNoaXZlZFJlY3ljbGVyVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldGBdHGV2ZW50cy4AVQFUaGlzIGNhbGwgY29uZmxpY3RzIHdpdGggYW55IG90aGVyIGNhbGwgdGhhdCB1bmxvYWRzIGZyb20gdGhlIHNhbWUgYXJjaGl2ZWQgcmVjeWNsZXI6YQFlYWNoIHVubG9hZCB1cGRhdGVzIHRoZSBjb21taXRtZW50LCBzbyB0aGUgcHJvb2ZzIGluIHRoZSBjb21wZXRpbmcgY2FsbCBiZWNvbWUgb3V0ZGF0ZWQuQQFgcmVjeWNsZXJfcm9vdGAgYW5kIGB1bmxvYWRlZF9yb290YCBhcmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSBzdG9yZWQgY29tbWl0bWVudCBhdE0BdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiwgdGhlcmVmb3JlIHJlc29sdmluZyBzdWNoIGNvbmZsaWN0cyB3aXRob3V0IGNoYXJnaW5nIGZlZXMgYnmMbWFya2luZyBvdXRkYXRlZCBwcm9vZnMgYXMgaW52YWxpZC5odW5sb2FkX3JlY3ljbGVyX2ludG9fY29pbnMYARxhbGlhc2Vz6QQBmEJvdW5kZWRWZWM8QWxpYXMsIFQ6Ok1heENvbnNvbGlkYXRpb24+AAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAAEUaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBNFJldmlzaW9uSW5kZXgAAShzcGxpdF9pbnRvyQQBfQFCb3VuZGVkVmVjPAooRGVub21pbmF0aW9uLCBCb3VuZGVkVmVjPFQ6OkFjY291bnRJZCwgVDo6TWF4U3BsaXRPdXRwdXRzPiksIFQ6OgpNYXhTcGxpdE91dHB1dHMsPgABHG1heF9mZWXEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ADbTUVW5sb2FkIGEgcmVjeWNsZXIgdG8gbWludCBtdWx0aXBsZSBuZXcgY29pbnMgKHNwbGl0KS4AKQFUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpVbmxvYWRUb2tlbl0gd2l0aCBgZmVlOiBVbmxvYWRGZWU6OlByZXBhaWRgLgBFAVRoaXMgZnVuY3Rpb24gY29tYmluZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgW1NlbGY6OnVubG9hZF9yZWN5Y2xlcl9pbnRvX2NvaW5dIGFuZEUBW1NlbGY6OnNwbGl0XSBpbiBhIHNpbmdsZSBhdG9taWMgb3BlcmF0aW9uLiBUaGUgcmVzdWx0aW5nIGNvaW5zJyBhZ2UgaXMgMSBiZWNhdXNlRQF0aGUgYWN0aW9uIG9mIHNwbGl0dGluZyBhZ2UgY29pbnMuIFRoaXMgaXMgYWxzbyBpbXBvcnRhbnQgYmVjYXVzZSByZXN1bHRpbmcgY29pbnPoYXJlIG5vdCBlbnRpcmVseSBmcmVzaCwgdGhleSBjYW4gYmUgbGlua2VkIHRvIG90aGVyIGNvaW5zLgBZAVVubGlrZSBbU2VsZjo6dW5sb2FkX3JlY3ljbGVyX2ludG9fY29pbl0sIHRoaXMgY2FsbCBkb2VzICoqbm90KiogcmVxdWlyZSB0aGUgbnVtYmVyIG9mdGFsaWFzZXMgdG8gYmUgYSBwb3dlciBvZiB0d28uACxQYXJhbWV0ZXJzOkUBKiBgYWxpYXNlc2A6IHRoZSBsaXN0IG9mIGFsaWFzZXMgY29ycmVzcG9uZGluZyB0byB0aGUgbWVtYmVyIGtleXMgaW5jbHVkZWQgaW4gdGhlFQEgIHJlY3ljbGVyLiBUaGUgcHJvb2ZzIGZvciB0aGVzZSBhbGlhc2VzIGFyZSBjb250YWluZWQgaW4gdGhlIG9yaWdpbi74KiBgdmFsdWVgIGFuZCBgaW5kZXhgOiBpZGVudGlmaWVzIHRoZSByZWN5Y2xlciBiZWluZyB1bmxvYWRlZC74KiBgcmV2aXNpb25gOiB0aGUgcmVjeWNsZXIgcmV2aXNpb24gdXNlZCBmb3IgdGhlIGFsaWFzX3Byb29mcy5RASogYHNwbGl0X2ludG9gOiBhIHZlY3RvciBvZiBwYWlycywgZWFjaCBwYWlyIGNvbnRhaW5pbmcgYSBkZW5vbWluYXRpb24gYW5kIGEgbGlzdCBvZmggIGRlc3RpbmF0aW9uIGFjY291bnQgaWRzLlkBKiBgbWF4X2ZlZWA6IHRoZSBtYXhpbXVtIGZlZSB0aGUgY2FsbGVyIGlzIHdpbGxpbmcgdG8gcGF5LCBleHByZXNzZWQgaW4gdGhlIHVuZGVybHlpbmdJASAgYXNzZXQgYmFsYW5jZS4gSXQgbXVzdCBiZSBlcXVhbCB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0b3RhbCB2YWx1ZSBvZiB0aGU5ASAgdW5sb2FkZWQgY29pbnMgYW5kIHRoZSB0b3RhbCB2YWx1ZSBvZiB0aGUgbmV3IGNvaW5zIGRlZmluZWQgaW4gYHNwbGl0X2ludG9gLgDIICBXaGVuIHVzaW5nIFtVbmxvYWRGZWU6OlByZXBhaWRdLCB0aGlzIG11c3QgYmUgMC5FASAgV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgdGhpcyBhbW91bnQgaXMgZGVkdWN0ZWQgZnJvbSB0aGUgaW5wdXQ6IHRoZVUBICBuZXR3b3JrIGZlZSBpcyB0cmFuc2ZlcnJlZCB0byBbQ29uZmlnOjpGZWVEZXN0aW5hdGlvbl0gYW5kIGFueSByZW1haW5kZXIgaXMgYnVybmVkLkEBICBUaGUgY2FsbGVyIGNhbiBxdWVyeSBgZ2V0X3BhaWRfdW5sb2FkX3Rva2VuX2ZlZV9pbl9hc3NldGAgdG8gZXN0aW1hdGUgdGhlIGZlZS4AYQEgIFRoaXMgcGFyYW1ldGVyIHNlcnZlcyBhcyBhIHNhZmVndWFyZDogdGhlIHRyYW5zYWN0aW9uIGlzIHJlamVjdGVkIGF0IHZhbGlkYXRpb24gaWYgdGhlQQEgIGFjdHVhbCBuZXR3b3JrIGZlZSBleGNlZWRzIGBtYXhfZmVlYCwgcHJvdGVjdGluZyB0aGUgY2FsbGVyIGZyb20gZXhjZXNzaXZlIGZlZV0BICBpbmNyZWFzZXMgdGhhdCB3b3VsZCByZW5kZXIgdGhlIGFyZ3VtZW50IGBzcGxpdF9pbnRvYCBpbnZhbGlkICh1bmxvYWRlZCBmdW5kcyBtdXN0IGJlmCAgaGlnaGVyIHRoYW4gdGhlIHNwbGl0IHBsdXMgdGhlIGZlZSkuADRSZXF1aXJlbWVudHM6rCogVGhlIG9yaWdpbiBtdXN0IGJlIFtPcmlnaW46OlVubG9hZFRva2VuXS7wKiBUaGUgcmVjeWNsZXIgaWRlbnRpZmllZCBieSBgdmFsdWVgIGFuZCBgaW5kZXhgIG11c3QgZXhpc3QuUQEqIFRoZSBhbGlhcyBwcm9vZnMgcHJvdmlkZWQgaW4gdGhlIG9yaWdpbiBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVjeWNsZXIncyByZXZpc2lvbi4hASogVGhlIGBhbGlhc2VzYCBwcm92aWRlZCBtdXN0IG1hdGNoIHRoZSBhbGlhc2VzIGRlcml2ZWQgZnJvbSB0aGUgcHJvb2ZzLmEBKiBUaGUgdG90YWwgdmFsdWUgb2YgdGhlIG5ldyBjb2lucyBkZWZpbmVkIGluIGBzcGxpdF9pbnRvYCBwbHVzIGBtYXhfZmVlYCBtdXN0IGVxdWFsIHRoZZAgIHRvdGFsIHZhbHVlIG9mIHRoZSB1bmxvYWRlZCBjb2lucy5VASogYG1heF9mZWVgIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGUgbWluaW11bSBjb2luLiAoVGhpcyBpcyBpbXBsaWVkIGJ5IHRoZSBjb25kaXRpb24kICBhYm92ZSku4CogRWFjaCBkZXN0aW5hdGlvbiBhY2NvdW50IG11c3Qgbm90IGFscmVhZHkgaGF2ZSBhIGNvaW4u3CogV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpQcmVwYWlkXSwgYG1heF9mZWVgIG11c3QgYmUgMC4tASogV2hlbiB1c2luZyBbVW5sb2FkRmVlOjpGcm9tT3V0cHV0XSwgYG1heF9mZWVgIG11c3QgY292ZXIgdGhlIG5ldHdvcmsgZmVlLqBkaXJlY3Rfb2ZmYm9hcmRfY29pbl9pbnRvX2V4dGVybmFsX2Fzc2V0BAEIdG8EATBUOjpBY2NvdW50SWQADmDwRGlyZWN0bHkgb2ZmYm9hcmQgYSBjb2luIGludG8gdGhlIHVuZGVybHlpbmcgZXh0ZXJuYWwgYXNzZXQuANRUaGUgb3JpZ2luIG11c3QgYmUgYSBbT3JpZ2luOjpDb2luXSwgb2J0YWluZWQgdGhyb3VnaOhbYEFzQ29pbmFnZWBdKGNyYXRlOjpleHRlbnNpb246OkFzQ29pbmFnZSkgdXNpbmcgYEFzQ29pbmAuADkBVGhpcyBjYWxsIGJ5cGFzc2VzIHRoZSByZWN5Y2xlci91bmxvYWQtdG9rZW4gb2ZmYm9hcmRpbmcgZmxvdyBhbmQgcmVsZWFzZXMgdGhlzHVuZGVybHlpbmcgYXNzZXQgZGlyZWN0bHksIHdoYXRldmVyIHRoZSBjb2luJ3MgYWdlLgBEIyBQcml2YWN5IHdhcm5pbmcAQQFEaXJlY3RseSBvZmZib2FyZGluZyBhIGNvaW4gd2l0aCBub24temVybyBhZ2UgcHVibGljbHkgbGlua3MgdGhlIGNvaW4ncyB0cmFuc2ZlclUBY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGFjY291bnQsIHdoaWNoIGNvbXByb21pc2VzLCB0byBzb21lIGV4dGVudCwgdGhlIGFub255bWl0eSBvZk0BZXZlcnkgcHJldmlvdXMgaG9sZGVyIGluIHRoZSBjaGFpbjogaWYgQWxpY2Ugc2VuZHMgYSBjb2luIHRvIEJvYiBhbmQgQm9iIHRvIENoYXJsaWVFAWFuZCBDaGFybGllIGRpcmVjdGx5IG9mZmJvYXJkcyBpdCwgQWxpY2UgbWF5IGRlZHVjZSB3aGF0IEJvYiBkaWQgd2l0aCB0aGUgY29pbi4gQVkBZnJlc2ggY29pbiAoYGFnZSA9PSAwYCkgaGFzIGp1c3QgYmVlbiB1bmxvYWRlZCBmcm9tIGEgcmVjeWNsZXIgYW5kIGNhcnJpZXMgbm8gdHJhbnNmZXJBAWhpc3RvcnksIHNvIGl0IGNhbiBiZSBvZmZib2FyZGVkIGRpcmVjdGx5IHdpdGhvdXQgdGhpcyBwcml2YWN5IGxvc3MuIEZvciBtYXhpbXVtHQFwcml2YWN5LCBvZmZib2FyZCBjb2lucyB3aXRoIG5vbi16ZXJvIGFnZSB0aHJvdWdoIHRoZSByZWN5Y2xlciBpbnN0ZWFkLgAsUGFyYW1ldGVyczo9ASogYHRvYDogZGVzdGluYXRpb24gYWNjb3VudCB0aGF0IHJlY2VpdmVzIHRoZSByZWxlYXNlZCB1bmRlcmx5aW5nIGFzc2V0IGFtb3VudC4ANFJlcXVpcmVtZW50czqQKiBUaGUgb3JpZ2luIG11c3QgYmUgW09yaWdpbjo6Q29pbl0uEQEqIFRoZSBkZW5vbWluYXRpb24gbXVzdCBiZSByZXByZXNlbnRhYmxlIGFzIHVuZGVybHlpbmctYXNzZXQgYW1vdW50LlxzZXRfdW5kZXJseWluZ19hc3NldF9pZAQBIGFzc2V0X2lk4AFURnVuZ2libGVzQXNzZXRJZE9mPFQ+AAokvFNldCB0aGUgdW5kZXJseWluZyBhc3NldCBpZCB1c2VkIGJ5IHRoZSBwYWxsZXQuAC0BVGhlIG9yaWdpbiBtdXN0IHNhdGlzZnkgW2BDb25maWc6OlVuZGVybHlpbmdBc3NldElkTWFuYWdlcmBdLiBUaGUgc2V0dGVyIGlzIQEqKnNpbmdsZS11c2UqKjogY2FsbGluZyBpdCBhZ2FpbiBhZnRlciB0aGUgYXNzZXQgaWQgaGFzIGJlZW4gc2V0IHJldHVybnNNAVtgRXJyb3I6OkFzc2V0SWRBbHJlYWR5U2V0YF0uIENoYW5naW5nIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGFmdGVyIGNvaW5zIGV4aXN0IHdvdWxkNQFvcnBoYW4gdGhlIGhlbGQgYmFsYW5jZXMgb2YgZXZlcnkgaW4tZmxpZ2h0IGNvaW4sIHNvIHRoZSBvbi1jaGFpbiBkZWNpc2lvbiBpc1xpbnRlbnRpb25hbGx5IG9uZS1zaG90LgDkVGhlIGFzc2V0IGlkIG11c3QgYWxyZWFkeSBleGlzdCBpbiBbYENvbmZpZzo6RnVuZ2libGVzYF0uOGNsZWFuX3JlY3ljbGVyBAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAGUkdENsZWFuIHVwIGFuIGV4cGlyZWQgcmVjeWNsZXIuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS4ADQFUaGlzIHJlbW92ZXMgYW4gb2xkIHJlY3ljbGVyIHRoYXQgaGFzIGV4Y2VlZGVkIGl0cyBleHBpcmF0aW9uIHRpbWUuSQFBbnkgcmVtYWluaW5nIChub3QgdW5sb2FkZWQpIHZhbHVlIGluIHRoZSByZWN5Y2xlciBpcyBjb25zaWRlcmVkIGxvc3QgYW5kIGFkZGVkIHRvYQFBbnkgcmVtYWluaW5nIChub3QteWV0LXVubG9hZGVkKSBjb2lucyBhcmUgbm90IGRlc3Ryb3llZDogdGhlIHJpbmcgaXMgYXJjaGl2ZWQgYW5kIHRoZWly/GJhY2tpbmcgYXNzZXQgc3RheXMgaGVsZCBpbiB0aGUgcGFsbGV0IGFjY291bnQsIHJlY292ZXJhYmxlIHZpYeRbYFBhbGxldDo6dW5sb2FkX2FyY2hpdmVkX3JlY3ljbGVyX2ludG9fZXh0ZXJuYWxfYXNzZXRgXS5kY2xlYW5fY29uc3VtZWRfZnJlZV90b2tlbgQBGHBlcmlvZDgBGFBlcmlvZABmDPxDbGVhbnVwIHN0b3JhZ2UgZm9yIGNvbnN1bWVkIGZyZWUgdW5sb2FkIHRva2VucyBvZiBvbGQgcGVyaW9kcy4AQQFUaGlzIGlzIGEgbWFpbnRlbmFuY2UgY2FsbC4gVGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQgYW5kIGZyb20gbG9jYWwgc291cmNlLnBjbGVhbl9wYWlkX3VubG9hZF90b2tlbl9yaW5nCAEYcGVyaW9kOAEYUGVyaW9kAAEocmluZ19pbmRleDgBJFJpbmdJbmRleABoGAkBQ2xlYW4gdXAgYSBzaW5nbGUgcmluZyBpbiBhbiBleHBpcmVkIHBhaWQgdW5sb2FkIHRva2VuIGNvbGxlY3Rpb24uAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS4pAVJpbmdzIG11c3QgYmUgY2xlYW5lZCBzZXF1ZW50aWFsbHkgKHJpbmcgMCBmaXJzdCwgdGhlbiAxLCBldGMuKSBiZWZvcmUgdGhldGNvbGxlY3Rpb24gY2FuIGJlIGRlbGV0ZWQgdmlhjQFbYGRlbGV0ZV9leHBpcmVkX3BhaWRfdW5sb2FkX3Rva2VuX2NvbGxlY3Rpb25gXShTZWxmOjpkZWxldGVfZXhwaXJlZF9wYWlkX3VubG9hZF90b2tlbl9jb2xsZWN0aW9uKS5MY2xlYW5fcmVjeWNsZXJfZHVzdABpFHBDbGVhbiB1cCBkdXN0IGZvciByZWN5Y2xlcnMuAEEBVGhpcyBpcyBhIG1haW50ZW5hbmNlIGNhbGwuIFRoZSBvcmlnaW4gbXVzdCBiZSBhdXRob3JpemVkIGFuZCBmcm9tIGxvY2FsIHNvdXJjZS5RAVJlbW92ZXMgdXAgdG8gRFVTVF9DTEVBTlVQX0JBVENIX1NJWkUgZW50cmllcyBmcm9tIFtSZWN5Y2xlckFsaWFzU3RhdGVzXSBwZXIgY2FsbCB0b1Bib3VuZCB0aGUgb3BlcmF0aW9uLnBjbGVhbl9wYWlkX3VubG9hZF90b2tlbl9kdXN0AGoMlENsZWFuIHVwIGR1c3QgZm9yIHBhaWQgdW5sb2FkIHRva2Vucy4AQQFUaGlzIGlzIGEgbWFpbnRlbmFuY2UgY2FsbC4gVGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQgYW5kIGZyb20gbG9jYWwgc291cmNlLqxkZWxldGVfZXhwaXJlZF9wYWlkX3VubG9hZF90b2tlbl9jb2xsZWN0aW9uBAEYcGVyaW9kOAEYUGVyaW9kAGsYRQFEZWxldGUgYW4gZXhwaXJlZCBwYWlkIHVubG9hZCB0b2tlbiBjb2xsZWN0aW9uIGFmdGVyIGFsbCByaW5ncyBoYXZlIGJlZW4gY2xlYW5lZC4AQQFUaGlzIGlzIGEgbWFpbnRlbmFuY2UgY2FsbC4gVGhlIG9yaWdpbiBtdXN0IGJlIGF1dGhvcml6ZWQgYW5kIGZyb20gbG9jYWwgc291cmNlLpBBbGwgcmluZ3MgbXVzdCBoYXZlIGJlZW4gY2xlYW5lZCB2aWFBAVtgY2xlYW5fcGFpZF91bmxvYWRfdG9rZW5fcmluZ2BdKFNlbGY6OmNsZWFuX3BhaWRfdW5sb2FkX3Rva2VuX3JpbmcpIGJlZm9yZSB0aGlzOGNhbiBiZSBjYWxsZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLskEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBzQQEUwAABADVBAEYVmVjPFQ+AADNBAAABAh1A9EEANEEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAMwBGFZlYzxUPgAA1QQAAALNBADZBAxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0RENvZGVjUHJlc2VydmF0aW9uAAEMKEV4cGVuZGFibGUAAAAcUHJvdGVjdAABACBQcmVzZXJ2ZQACAADdBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeEEBFMAAAQA5QQBGFZlYzxUPgAA4QQMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldDxVbnBhaWRMb2FkSW5wdXQEBFQAABABMHByZXNlcnZhdGlvbtkEAURDb2RlY1ByZXNlcnZhdGlvbgABFHZhbHVldQMBMERlbm9taW5hdGlvbgABKG1lbWJlcl9rZXkIASxNZW1iZXJPZjxUPgABSHByb29mX29mX293bmVyc2hpcNEDAThTaWduYXR1cmVPZjxUPgAA5QQAAALhBADpBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AADtBAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEEBFMAAAQA9QQBGFZlYzxUPgAA8QQAAAQIdQMIAPUEAAAC8QQA+QQMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldExVbmxvYWRSZWN5Y2xlcklucHV0BDBBbGlhc2VzQm91bmQAABABFHZhbHVldQMBMERlbm9taW5hdGlvbgABFGluZGV4OAEkUmluZ0luZGV4AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEcYWxpYXNlc+kEAXxCb3VuZGVkVmVjPEFsaWFzLCBBbGlhc2VzQm91bmQ+AAD9BAxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UYcGFsbGV0LEZlZUN1cnJlbmN5AAEIGE5hdGl2ZQAAADRFeHRlcm5hbEFzc2V0AAEAAAEFAAAC+QQABQUMKHZlcmlmaWFibGUQcmluZ0RNZW1iZXJzQ29tbWl0bWVudAADIAEAAAwACQUMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAENBQRTAAAEABEFARhWZWM8VD4AAA0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAEQUAAAINBQAVBQx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIYcGFsbGV0EENhbGwEBFQAARwkc3Vic2NyaWJlDAFcc3Vic2NyaWJlcl9wYXJhY2hhaW5faWScARhQYXJhSWQAAUxtZW1iZXJzX2NvbGxlY3Rpb25zGQUBHQFCb3VuZGVkVmVjPChJZGVudGlmaWVyLCBSaW5nRXhwb25lbnQpLCBUOjpNYXhDb2xsZWN0aW9uc1BlclN1YnNjcmliZXIsPgABMHBhbGxldF9pbmRleAwBCHU4AAAsoFJlZ2lzdGVycyB0aGUgcGFyYWNoYWluIGFzIGEgc3Vic2NyaWJlci7QVGhlIGluaXRpYWwgc3RhdGUgd2lsbCBiZSBzZW50IG92ZXIgc2hvcnRseSB2aWEgWENNLgAkIyMgT3JpZ2luqFJlcXVpcmVzIGBNYW5hZ2VPcmlnaW5gIChnb3Zlcm5hbmNlL3Jvb3QpLgA0IyMgUGFyYW1ldGVycxUBLSBgc3Vic2NyaWJlcl9wYXJhY2hhaW5faWRgOiBUaGUgUGFyYUlkIG9mIHRoZSBzdWJzY3JpYmluZyBwYXJhY2hhaW4uRQEtIGBtZW1iZXJzX2NvbGxlY3Rpb25zYDogTGlzdCBvZiBjb2xsZWN0aW9uIGlkZW50aWZpZXJzIHRvIHN1YnNjcmliZSB0byBhbmQgdGhlaXJwICByZXNwZWN0aXZlIHJpbmcgZXhwb25lbnRzLjUBLSBgcGFsbGV0X2luZGV4YDogUGFsbGV0IGluZGV4IG9mIG1lbWJlcnMtc3Vic2NyaWJlciBvbiB0aGUgc3Vic2NyaWJlciBjaGFpbi4sdW5zdWJzY3JpYmUEAVxzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZCUFAThPcHRpb248UGFyYUlkPgABJGRVbnN1YnNjcmliZXMgYSBwYXJhY2hhaW4uACQjIyBPcmlnaW49AS0gKipTZWxmLXVuc3Vic2NyaWJlKio6IFN1YnNjcmliZXIgcGFyYWNoYWluIHZpYSBYQ00gKGBFbnN1cmVTdWJzY3JpYmVyT3JpZ2luYCnULSAqKkdvdmVybmFuY2UgdW5zdWJzY3JpYmUqKjogUmVxdWlyZXMgYE1hbmFnZU9yaWdpbmAANCMjIFBhcmFtZXRlcnNhAS0gYHN1YnNjcmliZXJfcGFyYWNoYWluX2lkYDogVGhlIFBhcmFJZCB0byB1bnN1YnNjcmliZS4gUmVxdWlyZWQgZm9yIGdvdmVybmFuY2UsIGlnbm9yZWTEICBmb3Igc2VsZi11bnN1YnNjcmliZSAoZGVyaXZlZCBmcm9tIFhDTSBvcmlnaW4pLjhyZXF1ZXN0X3JlcGxheQwBXHN1YnNjcmliZXJfcGFyYWNoYWluX2lknAEYUGFyYUlkAAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAURyaW5nX3Jvb3RfaW5kaWNlcykFAbBCb3VuZGVkVmVjPFJpbmdJbmRleCwgVDo6TWF4VXBkYXRlc1BlckJhdGNoPgACJJxSZXF1ZXN0cyByZXBsYXkgb2Ygc3BlY2lmaWMgcmluZyByb290cy4ANQFQZXJtaXNzaW9ubGVzcyDigJQgYW55IHNpZ25lZCBvcmlnaW4gY2FuIHJlcXVlc3QgYSByZXBsYXkgZm9yIGFueSBzdWJzY3JpYmVyLkkBVGhlIHN1YnNjcmliZXIgcGFyYWNoYWluIGlzIGlkZW50aWZpZWQgYnkgdGhlIGBzdWJzY3JpYmVyX3BhcmFjaGFpbl9pZGAgcGFyYW1ldGVyLgAsUGFyYW1ldGVyczroLSBgc3Vic2NyaWJlcl9wYXJhY2hhaW5faWRgOiBUaGUgUGFyYUlkIG9mIHRoZSBzdWJzY3JpYmVyLpgtIGBpZGVudGlmaWVyYDogQ29sbGVjdGlvbiBpZGVudGlmaWVyLlkBLSBgcmluZ19yb290X2luZGljZXNgOiBMaXN0IG9mIHJpbmcgcm9vdCBpbmRpY2VzLCBtdXN0IGJlIGluIHN0cmljdGx5IGFzY2VuZGluZyBvcmRlci48ZW5xdWV1ZV91cGRhdGVzCAEkc2VuZF9wYWdlLQMBDHUxNgABNGRpc2NyaW1pbmF0b3I4AURCbG9ja051bWJlckZvcjxUPgADDPhFbnF1ZXVlcyBwZW5kaW5nIHVwZGF0ZXMgaW50byBhIHNlYWxlZCBiYXRjaCBmb3IgZGlzdHJpYnV0aW9uLgDEQXV0aG9yaXplZCBjYWxsIHN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLihzZW5kX2JhdGNoDAEccGFyYV9pZJwBGFBhcmFJZAABIHNlcXVlbmNlKAE4U2VxdWVuY2VOdW1iZXIAATRkaXNjcmltaW5hdG9yOAFEQmxvY2tOdW1iZXJGb3I8VD4ABAzEU2VuZHMgdGhlIGN1cnJlbnQgYmF0Y2ggdG8gYSBzcGVjaWZpYyBzdWJzY3JpYmVyLgD0QXV0aG9yaXplZCBtYWludGVuYW5jZSBjYWxsIHN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLjhzZW5kX2luaXRfcGFnZRABHHBhcmFfaWScARhQYXJhSWQAAWBjdXJyZW50X2NvbGxlY3Rpb25faW5kZXg4AQx1MzIAAUBhZnRlcl9yaW5nX2luZGV4CQMBRE9wdGlvbjxSaW5nSW5kZXg+AAE0ZGlzY3JpbWluYXRvcjgBREJsb2NrTnVtYmVyRm9yPFQ+AAUM2FNlbmRzIG9uZSBwYWdlIG9mIGluaXRpYWxpemF0aW9uIGRhdGEgdG8gYSBzdWJzY3JpYmVyLgD0QXV0aG9yaXplZCBtYWludGVuYW5jZSBjYWxsIHN1Ym1pdHRlZCBieSB0aGUgb2ZmY2hhaW4gd29ya2VyLkxhYmFuZG9uX3N0dWNrX2JhdGNoBAE0ZGlzY3JpbWluYXRvcjgBREJsb2NrTnVtYmVyRm9yPFQ+AAYU5EFiYW5kb25zIGEgc3R1Y2sgYmF0Y2ggdGhhdCBleGNlZWRlZCBgU3R1Y2tCYXRjaFRpbWVvdXRgLjEBU3Vic2NyaWJlcnMgdGhhdCBkaWQgbm90IHJlY2VpdmUgdGhlIGJhdGNoIGNhbiByZWNvdmVyIHZpYSBgcmVxdWVzdF9yZXBsYXlgLgA1AUF1dGhvcml6ZWQgbWFpbnRlbmFuY2UgY2FsbCBzdWJtaXR0ZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlciB3aGVuIGEgYmF0Y2ggaGFzsGJlZW4gYWN0aXZlIGxvbmdlciB0aGFuIGBTdHVja0JhdGNoVGltZW91dGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLhkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBHQUEUwAABAAhBQEYVmVjPFQ+AAAdBQAABAgIsQQAIQUAAAIdBQAlBQQYT3B0aW9uBARUAZwBCBBOb25lAAAAEFNvbWUEAJwAAAEAACkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AAC0FDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBhwYWxsZXQQQ2FsbAQEVAABNDhzY2hlZHVsZV9ldmVudAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABEGluZm8xBQE4RXZlbnRJbmZvT2Y8VD4AABRVAVNjaGVkdWxlIGEgbmV3IGFpcmRyb3AgZXZlbnQuIE9yaWdpbiBtdXN0IGJlIGBNYW5hZ2VyT3JpZ2luYC4gVGhlIHByaXplIGFsbG9jYXRpb24gaXMZAWhlbGQgaW4gdGhlIHBhbGxldCdzIHBvdCBhY2NvdW50LiBUaGUgcG90IGlzIGFzc3VtZWQgdG8gYmUgcHJlLWZ1bmRlZC4AUQFDcm9zcy1wYWxsZXQgY2FsbGVycyBzaG91bGQgdXNlIHRoZSBbYGNyYXRlOjp0eXBlczo6QWlyZHJvcDo6c2NoZWR1bGVgXSB0cmFpdCBtZXRob2TkaW5zdGVhZCwgd2hpY2ggZGViaXRzIGEgY2FsbGVyLXN1cHBsaWVkIGBzb3VyY2VgIGFjY291bnQuWHJlbW92ZV9zY2hlZHVsZWRfZXZlbnQEASBldmVudF9pZAgBHEV2ZW50SWQAAQgRAVJlbW92ZSBhIHByZXZpb3VzbHkgc2NoZWR1bGVkIGV2ZW50LiBUaGUgZXZlbnQgbXVzdCBub3QgaGF2ZSBhbHJlYWR5nHN0YXJ0ZWQsIG90aGVyd2lzZSB0aGlzIGNhbGwgd2lsbCBmYWlsLjBlbmFibGVfYXNzZXQIASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAAKEE0BRW5hYmxlIGFuIGFzc2V0IGZvciB1c2UgaW4gYWlyZHJvcCBldmVudHMuIFRoZSBvcmlnaW4gbXVzdCBiZSBgTWFuYWdlck9yaWdpbmAgb25seS4AWQFUcmFuc2ZlcnMgdGhlIGFzc2V0J3MgY3VycmVudCBtaW5pbXVtIGJhbGFuY2UgZnJvbSBgc291cmNlYCB0byB0aGUgcGFsbGV0J3MgcG90IHNvIHRoZSUBcG90J3MgYXNzZXQgYWNjb3VudCBzdGF5cyBhbGl2ZSB3aGlsZSBldmVudHMgaG9sZCBwcml6ZSBmdW5kcyBhZ2FpbnN0IGl0LjRkaXNhYmxlX2Fzc2V0CAEgYXNzZXRfaWTgATBBc3NldElkT2Y8VD4AASxiZW5lZmljaWFyeQQBMFQ6OkFjY291bnRJZAALFFkBRGlzYWJsZSBhbiBhc3NldCBwcmV2aW91c2x5IGVuYWJsZWQgd2l0aCBgZW5hYmxlX2Fzc2V0YC4gUmVmdW5kcyB0aGUgb3JpZ2luYWxseS1mdW5kZWQ5AWFtb3VudCBmcm9tIHRoZSBwb3QgdG8gYGJlbmVmaWNpYXJ5YC4gVGhlIG9yaWdpbiBtdXN0IGJlIGBNYW5hZ2VyT3JpZ2luYCBvbmx5LgBNAVRoZSBtYW5hZ2VyIGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyBubyBldmVudHMgc3RpbGwgcmVmZXJlbmNlIHRoaXMgYXNzZXQgYmVmb3JlGQFkaXNhYmxpbmcsIGJ1dCB0aGlzIGlzIHNhZmUgc2luY2Ugc2NoZWR1bGluZyBhbiBldmVudCBpcyBwZXJtaXNzaW9uZWQudHN0YXJ0X3JlZ2lzdHJhdGlvbl9hdXRob3JpemVkCAEgZXZlbnRfaWQIARxFdmVudElkAAE0ZGlzY3JpbWluYXRvcjgBDHUzMgACHNxPQ1ctZHJpdmVuOiB0cmFuc2l0aW9uIGBTY2hlZHVsZWQg4oaSIFJlZ2lzdGVyaW5nYCB3aGVuhGByZWdpc3RyYXRpb25fc3RhcnRzYCBpcyByZWFjaGVkLgBFAWBkaXNjcmltaW5hdG9yYCBpcyBhbnkgYHUzMmA7IGl0IGxldHMgdGhlIE9DVyBzZW5kIGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uIHdoZW4gYVUBcHJldmlvdXMgb25lIGlzIGJhbm5lZCBieSB0aGUgcG9vbCBiZWNhdXNlIGl0IHdhcyB2YWxpZGF0ZWQgYWdhaW5zdCBhIGRpZmZlcmVudCBzdGF0ZVkBYWZ0ZXIgYSByZS1vcmcuIEFzIHRoZSBhY2NlcHRlZCB0cmFuc2FjdGlvbiBzb3VyY2UgaXMgb25seSBsb2NhbCwgaXQgY2Fubm90IGJlIHVzZWQgdG84c3BhbSB0aGUgcG9vbC50Y2xvc2VfcmVnaXN0cmF0aW9uX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAM0bE9DVy1kcml2ZW46IGF0IGBkcmF3X3RpbWVgOlAtIGNsb3NlIHJlZ2lzdHJhdGlvboQtIGNvbXB1dGUgdGhlIHRhcmdldCB3aW5uZXIgY291bnTMLSByZWxlYXNlIHRoZSB1bnVzZWQtc2xvdCBwcml6ZSBhbGxvY2F0aW9uIHVwLWZyb250+C0gcmVjb3JkIHRoZSByYW5kb21uZXNzIHNvdXJjZSdzIGN1cnJlbnQgbW9tZW50IGFzIGEgd2F0ZXJtYXJruC0gdHJhbnNpdGlvbiBgUmVnaXN0ZXJpbmcg4oaSIEF3YWl0aW5nRW50cm9weWAAHQFUaGUgZW50cm9weSBjYXB0dXJlIGFuZCB0aGUgd2lubmVyIGRyYXdzIGFyZSBwZXJmb3JtZWQgaW4gbGF0ZXIgc3RhZ2VzLgBFAWBkaXNjcmltaW5hdG9yYCBpcyBhbnkgYHUzMmA7IGl0IGxldHMgdGhlIE9DVyBzZW5kIGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uIHdoZW4gYVUBcHJldmlvdXMgb25lIGlzIGJhbm5lZCBieSB0aGUgcG9vbCBiZWNhdXNlIGl0IHdhcyB2YWxpZGF0ZWQgYWdhaW5zdCBhIGRpZmZlcmVudCBzdGF0ZVkBYWZ0ZXIgYSByZS1vcmcuIEFzIHRoZSBhY2NlcHRlZCB0cmFuc2FjdGlvbiBzb3VyY2UgaXMgb25seSBsb2NhbCwgaXQgY2Fubm90IGJlIHVzZWQgdG84c3BhbSB0aGUgcG9vbC5oY2FwdHVyZV9lbnRyb3B5X2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAwsWQFPQ1ctZHJpdmVuOiBzZWVkIHRoZSBkcmF3IHdpdGggZnJlc2ggcmFuZG9tbmVzcyBwcm9kdWNlZCBhZnRlciByZWdpc3RyYXRpb24gY2xvc2VkIGFuZLR0cmFuc2l0aW9uIGBBd2FpdGluZ0VudHJvcHkg4oaSIERyYXdXaW5uZXJzYC4ALQFUaGUgYGF1dGhvcml6ZWAgZ2F0ZSBvbmx5IGxldHMgdGhpcyBjYWxsIHRocm91Z2ggb25jZSB0aGUgcmFuZG9tbmVzcyBzb3VyY2UpAXJlcG9ydHMgYSB2YWx1ZSB3aXRoIGEgbW9tZW50IHN0cmljdGx5IGdyZWF0ZXIgdGhhbiB0aGUgd2F0ZXJtYXJrIHJlY29yZGVkAQF3aGVuIHJlZ2lzdHJhdGlvbiBjbG9zZWQ7IHVudGlsIHRoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGludmFsaWQuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlXQFhZnRlciBhIHJlLW9yZywgb3IgaW52YWxpZGF0ZWQgYmVjYXVzZSB0aGUgcmFuZG9tbmVzcyBpcyBub3QgZnJlc2ggeWV0LiBBcyB0aGUgYWNjZXB0ZWQVAXRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0byBzcGFtIHRoZSBwb29sLlxkcmF3X3dpbm5lcnNfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIABCTQT0NXLWRyaXZlbjogZHJhdyB1cCB0byBgRHJhd0xpbWl0YCB3aW5uZXJzIHBlciBjYWxsLgBFAUFmdGVyIGFsbCB0aGUgd2lubmVycyBhcmUgZHJhd24sIHRoZSB0cmFuc2l0aW9uIHRvIGBDbGFpbWluZ2AgaXMgcGVyZm9ybWVkIGJ5IHRoZZBzZXBhcmF0ZSBgY2xvc2VfZHJhd2luZ19hdXRob3JpemVkYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuYGNsb3NlX2RyYXdpbmdfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIABRxRAU9DVy1kcml2ZW46IG9uY2UgYGRyYXdfd2lubmVyc19hdXRob3JpemVkYCBoYXMgZmlsbGVkIHRoZSB3aW5uZXIgc2V0LCB0cmFuc2l0aW9uIHRoZZxldmVudCBmcm9tIGBEcmF3V2lubmVyc2AgdG8gYENsYWltaW5nYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuZGNsb3NlX2NsYWltaW5nX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAYYMQFPQ1ctZHJpdmVuOiBhdCBgZW5kX3RpbWVgIGNsb3NlIGNsYWltaW5nIGFuZCBlbnRlciB0aGUgZmlyc3QgY2xlYW4tdXAgcGhhc2UuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLoRjbGVhbl91cF9yZWdpc3RyYXRpb25zX2F1dGhvcml6ZWQIASBldmVudF9pZAgBHEV2ZW50SWQAATRkaXNjcmltaW5hdG9yOAEMdTMyAAccOQFPQ1ctZHJpdmVuOiBGaXJzdCBzdGVwIG9mIGNsZWFuLXVwIGlzIHRvIGNsZWFyIHVwIHRvIGBDbGVhckxpbWl0YCBlbnRyaWVzIGZyb21VAWBSZWdpc3RyYXRpb25zYC4gV2hlbiB0aGUgc3RvcmFnZSBpcyBmdWxseSBkcmFpbmVkLCB0cmFuc2l0aW9ucyB0byBgQ2xlYXJpbmdXaW5uZXJzYC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wubGNsZWFuX3VwX3dpbm5lcnNfYXV0aG9yaXplZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABNGRpc2NyaW1pbmF0b3I4AQx1MzIACBw9AU9DVy1kcml2ZW46IFNlY29uZCBzdGVwIG9mIGNsZWFuLXVwIGlzIHRvIGNsZWFyIHVwIHRvIGBDbGVhckxpbWl0YCBlbnRyaWVzIGZyb20pAWBXaW5uZXJzYC4gV2hlbiB0aGUgc3RvcmFnZSBpcyBmdWxseSBkcmFpbmVkLCB0cmFuc2l0aW9ucyB0byBgRmluYWxpemluZ2AuAEUBYGRpc2NyaW1pbmF0b3JgIGlzIGFueSBgdTMyYDsgaXQgbGV0cyB0aGUgT0NXIHNlbmQgYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24gd2hlbiBhVQFwcmV2aW91cyBvbmUgaXMgYmFubmVkIGJ5IHRoZSBwb29sIGJlY2F1c2UgaXQgd2FzIHZhbGlkYXRlZCBhZ2FpbnN0IGEgZGlmZmVyZW50IHN0YXRlWQFhZnRlciBhIHJlLW9yZy4gQXMgdGhlIGFjY2VwdGVkIHRyYW5zYWN0aW9uIHNvdXJjZSBpcyBvbmx5IGxvY2FsLCBpdCBjYW5ub3QgYmUgdXNlZCB0bzhzcGFtIHRoZSBwb29sLkxmaW5hbGl6ZV9hdXRob3JpemVkCAEgZXZlbnRfaWQIARxFdmVudElkAAE0ZGlzY3JpbWluYXRvcjgBDHUzMgAJHE0BT0NXLWRyaXZlbjogVGhpcmQgc3RlcCBvZiBjbGVhbi11cCBpcyB0byByZWxlYXNlIHRoZSB1bmNsYWltZWQgcHJpemUgYWxsb2NhdGlvbiBhbmREcmVtb3ZlIHRoZSBldmVudC4ARQFgZGlzY3JpbWluYXRvcmAgaXMgYW55IGB1MzJgOyBpdCBsZXRzIHRoZSBPQ1cgc2VuZCBhIGRpZmZlcmVudCB0cmFuc2FjdGlvbiB3aGVuIGFVAXByZXZpb3VzIG9uZSBpcyBiYW5uZWQgYnkgdGhlIHBvb2wgYmVjYXVzZSBpdCB3YXMgdmFsaWRhdGVkIGFnYWluc3QgYSBkaWZmZXJlbnQgc3RhdGVZAWFmdGVyIGEgcmUtb3JnLiBBcyB0aGUgYWNjZXB0ZWQgdHJhbnNhY3Rpb24gc291cmNlIGlzIG9ubHkgbG9jYWwsIGl0IGNhbm5vdCBiZSB1c2VkIHRvOHNwYW0gdGhlIHBvb2wuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjEFDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlcyRFdmVudEluZm8IHEFzc2V0SWQB4DBBc3NldEJhbGFuY2UBxAAQARRwcml6ZTUEAYxBaXJkcm9wUHJpemU8QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABTHJlZ2lzdHJhdGlvbl9zdGFydHMoAQx1NjQAASRkcmF3X3RpbWUoAQx1NjQAASBlbmRfdGltZSgBDHU2NAAANQUMTGluZGl2X3BhbGxldF9ob25vdXIYcGFsbGV0EENhbGwEBFQAAQQYYmVzdG93CAEQdm90ZTkFASBWb3RlRGF0YQABPGNhbGxfdmFsaWRfZnJvbSgBHFNlY29uZHMAABA4QmVzdG93IGEgdm90ZS4AVQFBY2NlcHRzIG9ubHkgdGhlIFtgT3JpZ2luOjpWb3RlcmBdIG9yaWdpbiwgd2hpY2ggaXMgY3JlYXRlZCBieSB2ZXJpZnlpbmcgYSByaW5nIHByb29mBQFpbiB0aGUgW2BWb3RlckF1dGhgXShleHRlbnNpb246OlZvdGVyQXV0aCkgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy45BQxMaW5kaXZfcGFsbGV0X2hvbm91chR0eXBlcyBWb3RlRGF0YQAADAEcc3ViamVjdAgBJFN1YmplY3RJZAABFHBvaW50DAEcUG9pbnRJZAABJGRpcmVjdGlvbj0FASREaXJlY3Rpb24AAD0FDExpbmRpdl9wYWxsZXRfaG9ub3VyFHR5cGVzJERpcmVjdGlvbgABCChIb25vdXJhYmxlAAAANERpc2hvbm91cmFibGUAAQAAQQUMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBBDYWxsBARUAAEQQGZvcmNlX3NldF9jdXJzb3IEARhjdXJzb3JFBQFMT3B0aW9uPEN1cnNvck9mPFQ+PgAAFF0BQWxsb3dzIHJvb3QgdG8gc2V0IGEgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQsIHN0b3Agb3IgZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEkBU2hvdWxkIG5vcm1hbGx5IG5vdCBiZSBuZWVkZWQgYW5kIGlzIG9ubHkgaW4gcGxhY2UgYXMgZW1lcmdlbmN5IG1lYXN1cmUuIE5vdGUgdGhhdAUBcmVzdGFydGluZyB0aGUgbWlncmF0aW9uIHByb2Nlc3MgaW4gdGhpcyBtYW5uZXIgd2lsbCBub3QgY2FsbCB0aGUtAVtgTWlncmF0aW9uU3RhdHVzSGFuZGxlcjo6c3RhcnRlZGBdIGhvb2sgb3IgZW1pdCBhbiBgVXBncmFkZVN0YXJ0ZWRgIGV2ZW50Llxmb3JjZV9zZXRfYWN0aXZlX2N1cnNvcgwBFGluZGV4OAEMdTMyAAEwaW5uZXJfY3Vyc29yVQUBWE9wdGlvbjxSYXdDdXJzb3JPZjxUPj4AAShzdGFydGVkX2F0CQMBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AARhZAUFsbG93cyByb290IHRvIHNldCBhbiBhY3RpdmUgY3Vyc29yIHRvIGZvcmNlZnVsbHkgc3RhcnQvZm9yd2FyZCB0aGUgbWlncmF0aW9uIHByb2Nlc3MuAEUBVGhpcyBpcyBhbiBlZGdlLWNhc2UgdmVyc2lvbiBvZiBbYFNlbGY6OmZvcmNlX3NldF9jdXJzb3JgXSB0aGF0IGFsbG93cyB0byBzZXQgdGhlYQFgc3RhcnRlZF9hdGAgdmFsdWUgdG8gdGhlIG5leHQgYmxvY2sgbnVtYmVyLiBPdGhlcndpc2UgdGhpcyB3b3VsZCBub3QgYmUgcG9zc2libGUsIHNpbmNlRQFgZm9yY2Vfc2V0X2N1cnNvcmAgdGFrZXMgYW4gYWJzb2x1dGUgYmxvY2sgbnVtYmVyLiBTZXR0aW5nIGBzdGFydGVkX2F0YCB0byBgTm9uZWABAWluZGljYXRlcyB0aGF0IHRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBwbHVzIG9uZSBzaG91bGQgYmUgdXNlZC5IZm9yY2Vfb25ib2FyZF9tYm1zAAIQoEZvcmNlcyB0aGUgb25ib2FyZGluZyBvZiB0aGUgbWlncmF0aW9ucy4AXQFUaGlzIHByb2Nlc3MgaGFwcGVucyBhdXRvbWF0aWNhbGx5IG9uIGEgcnVudGltZSB1cGdyYWRlLiBJdCBpcyBpbiBwbGFjZSBhcyBhbiBlbWVyZ2VuY3n8bWVhc3VyZW1lbnQuIFRoZSBjdXJzb3IgbmVlZHMgdG8gYmUgYE5vbmVgIGZvciB0aGlzIHRvIHN1Y2NlZWQuOGNsZWFyX2hpc3RvcmljBAEgc2VsZWN0b3JZBQGgSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3I8SWRlbnRpZmllck9mPFQ+PgADFGhDbGVhcnMgdGhlIGBIaXN0b3JpY2Agc2V0LgANAWBtYXBfY3Vyc29yYCBtdXN0IGJlIHNldCB0byB0aGUgbGFzdCB2YWx1ZSB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGVdAWBIaXN0b3JpY0NsZWFyZWRgIGV2ZW50LiBUaGUgZmlyc3QgdGltZSBgTm9uZWAgY2FuIGJlIHVzZWQuIGBsaW1pdGAgbXVzdCBiZSBjaG9zZW4gaW4gYah3YXkgdGhhdCB3aWxsIHJlc3VsdCBpbiBhIHNlbnNpYmxlIHdlaWdodC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQUEGE9wdGlvbgQEVAFJBQEIEE5vbmUAAAAQU29tZQQASQUAAAEAAEkFCERwYWxsZXRfbWlncmF0aW9uczxNaWdyYXRpb25DdXJzb3IIGEN1cnNvcgFNBSxCbG9ja051bWJlcgE4AQgYQWN0aXZlBABRBQGEQWN0aXZlQ3Vyc29yPEN1cnNvciwgQmxvY2tOdW1iZXI+AAAAFFN0dWNrAAEAAE0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAUQUIRHBhbGxldF9taWdyYXRpb25zMEFjdGl2ZUN1cnNvcggYQ3Vyc29yAU0FLEJsb2NrTnVtYmVyATgADAEUaW5kZXg4AQx1MzIAATBpbm5lcl9jdXJzb3JVBQE4T3B0aW9uPEN1cnNvcj4AAShzdGFydGVkX2F0OAEsQmxvY2tOdW1iZXIAAFUFBBhPcHRpb24EBFQBTQUBCBBOb25lAAAAEFNvbWUEAE0FAAABAABZBQhEcGFsbGV0X21pZ3JhdGlvbnNcSGlzdG9yaWNDbGVhbnVwU2VsZWN0b3IECElkAV0FAQggU3BlY2lmaWMEAGEFARxWZWM8SWQ+AAAAIFdpbGRjYXJkCAEUbGltaXQJAwEsT3B0aW9uPHUzMj4AATxwcmV2aW91c19jdXJzb3JlBQE8T3B0aW9uPFZlYzx1OD4+AAEAAF0FDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAYQUAAAJdBQBlBQQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAGkFDFxwYWxsZXRfdmVyaWZ5X3NpZ25hdHVyZSRleHRlbnNpb248VmVyaWZ5U2lnbmF0dXJlBARUAAEIIERpc2FibGVkAAAAGFNpZ25lZAgBJHNpZ25hdHVyZdkDATBUOjpTaWduYXR1cmUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEAAG0FDExpbmRpdl9wYWxsZXRfcGVvcGxlJGV4dGVuc2lvbiBBc1BlcnNvbgQEVAAABABxBQFcT3B0aW9uPEFzUGVyc29uSW5mbzxUPj4AAHEFBBhPcHRpb24EBFQBdQUBCBBOb25lAAAAEFNvbWUEAHUFAAABAAB1BQxMaW5kaXZfcGFsbGV0X3Blb3BsZSRleHRlbnNpb24wQXNQZXJzb25JbmZvBARUAAEUaEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50BAA4ASBUOjpOb25jZQAAAGBBc1BlcnNvbmFsQWxpYXNXaXRoUHJvb2YQAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAADgBNFJldmlzaW9uSW5kZXgAAAgBHENvbnRleHQAAQBsQXNQZXJzb25hbElkZW50aXR5V2l0aFByb29mCADRAwE4U2lnbmF0dXJlT2Y8VD4AACgBKFBlcnNvbmFsSWQAAgB0QXNQZXJzb25hbElkZW50aXR5V2l0aEFjY291bnQEADgBIFQ6Ok5vbmNlAAMAhEFzUGVyc29uYWxBbGlhc1dpdGhBY2NvdW50UmV2aXNlZBQAOAEgVDo6Tm9uY2UAAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAADgBNFJldmlzaW9uSW5kZXgAAAgBHENvbnRleHQABAAAeQUMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmskZXh0ZW5zaW9uXEFzUHJvb2ZPZklua1BhcnRpY2lwYW50BARUAAAEAH0FAZhPcHRpb248QXNQcm9vZk9mSW5rUGFydGljaXBhbnRJbmZvPFQ+PgAAfQUEGE9wdGlvbgQEVAGBBQEIEE5vbmUAAAAQU29tZQQAgQUAAAEAAIEFDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rJGV4dGVuc2lvbmxBc1Byb29mT2ZJbmtQYXJ0aWNpcGFudEluZm8EBFQAAQw4QXNBcHBseVdpdGhTaWcEADgBIFQ6Ok5vbmNlAAAAKEFzUmVmZXJyZWQEADgBIFQ6Ok5vbmNlAAEAJEFzSW52aXRlZAQAOAEgVDo6Tm9uY2UAAgAAhQUMSGluZGl2X3BhbGxldF9zY29yZSRleHRlbnNpb25IU2NvcmVBc1BhcnRpY2lwYW50BARUAAAEAIkFAaBPcHRpb248U2NvcmVBc1BhcnRpY2lwYW50RGF0YTxUOjpOb25jZT4+AACJBQQYT3B0aW9uBARUAY0FAQgQTm9uZQAAABBTb21lBACNBQAAAQAAjQUMSGluZGl2X3BhbGxldF9zY29yZSRleHRlbnNpb25YU2NvcmVBc1BhcnRpY2lwYW50RGF0YQQUTm9uY2UBOAAEARRub25jZTgBFE5vbmNlAACRBQxEaW5kaXZfcGFsbGV0X2dhbWUkZXh0ZW5zaW9uNEdhbWVBc0ludml0ZWQEBFQAAAQAlQUBcE9wdGlvbjxHYW1lQXNJbnZpdGVkRGF0YTxUPj4AAJUFBBhPcHRpb24EBFQBmQUBCBBOb25lAAAAEFNvbWUEAJkFAAABAACZBQxEaW5kaXZfcGFsbGV0X2dhbWUkZXh0ZW5zaW9uREdhbWVBc0ludml0ZWREYXRhBARUAAAQARRub25jZTgBIFQ6Ok5vbmNlAAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAABGHRpY2tldAQBLFRpY2tldE9mPFQ+AAEkc2lnbmF0dXJl2QMBSFQ6OlRpY2tldFNpZ25hdHVyZQAAnQUMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZSRleHRlbnNpb244UGVvcGxlTGl0ZUF1dGgEBFQAAAQAoQUBfE9wdGlvbjxQZW9wbGVMaXRlQXV0aERhdGFPZjxUPj4AAKEFBBhPcHRpb24EBFQBpQUBCBBOb25lAAAAEFNvbWUEAKUFAAABAAClBQxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlJGV4dGVuc2lvbkhQZW9wbGVMaXRlQXV0aERhdGEIFE5vbmNlATgUUHJvb2YBfQMBEDBBc0xpdGVQZXJzb24EADgBFE5vbmNlAAAAWEFzTGl0ZUFsaWFzV2l0aEFjY291bnQEADgBFE5vbmNlAAEAUEFzTGl0ZUFsaWFzV2l0aFByb29mEAB9AwEUUHJvb2YAADgBJFJpbmdJbmRleAAAOAE0UmV2aXNpb25JbmRleAAACAEcQ29udGV4dAACAHRBc0xpdGVBbGlhc1dpdGhBY2NvdW50UmV2aXNlZBQAOAEUTm9uY2UAAH0DARRQcm9vZgAAOAEkUmluZ0luZGV4AAA4ATRSZXZpc2lvbkluZGV4AAAIARxDb250ZXh0AAMAAKkFDFBpbmRpdl9wYWxsZXRfbWVtYmVycyRleHRlbnNpb24gQXNNZW1iZXIEBFQAAAQArQUBXE9wdGlvbjxBc01lbWJlckluZm88VD4+AACtBQQYT3B0aW9uBARUAbEFAQgQTm9uZQAAABBTb21lBACxBQAAAQAAsQUMUGluZGl2X3BhbGxldF9tZW1iZXJzJGV4dGVuc2lvbjBBc01lbWJlckluZm8EBFQAAQQsU2VsZkluY2x1ZGUEANEDAThTaWduYXR1cmVPZjxUPgAAAAC1BQxQaW5kaXZfcGFsbGV0X2NvaW5hZ2UkZXh0ZW5zaW9uJEFzQ29pbmFnZQQEVAAABAC5BQFgT3B0aW9uPEFzQ29pbmFnZUluZm88VD4+AAC5BQQYT3B0aW9uBARUAb0FAQgQTm9uZQAAABBTb21lBAC9BQAAAQAAvQUMUGluZGl2X3BhbGxldF9jb2luYWdlJGV4dGVuc2lvbjRBc0NvaW5hZ2VJbmZvBARUAAEYGEFzQ29pbgAAAExBc1VubG9hZFRva2VuUGVvcGxlEAEUcHJvb2bBBQGwPFQ6Ok1lbWJlcnNoaXBQcm9vZiBhcyBWYWxpZGF0ZVByb29mPjo6UHJvb2YAARhwZXJpb2Q4ARhQZXJpb2QAARxjb3VudGVyOAEMdTMyAAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4AAQBcQXNVbmxvYWRUb2tlbkxpdGVQZW9wbGUQARRwcm9vZsEFAbA8VDo6TWVtYmVyc2hpcFByb29mIGFzIFZhbGlkYXRlUHJvb2Y+OjpQcm9vZgABGHBlcmlvZDgBGFBlcmlvZAABHGNvdW50ZXI4AQx1MzIAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgACAERBc1VubG9hZFRva2VuUGFpZBQBFHByb29mfQMBKFByb29mT2Y8VD4AARhwZXJpb2Q4ARhQZXJpb2QAAVRwYWlkX3Rva2VuX3JpbmdfaW5kZXg4AQx1MzIAAWBwYWlkX3Rva2VuX3JpbmdfcmV2aXNpb244AQx1MzIAATBhbGlhc19wcm9vZnN5AwGsQm91bmRlZFZlYzxQcm9vZk9mPFQ+LCBUOjpNYXhDb25zb2xpZGF0aW9uPgADAFxBc1VubG9hZFRva2VuRnJvbU91dHB1dBQBSGZlZV9yZWN5Y2xlcl92YWx1ZXUDATBEZW5vbWluYXRpb24AAUhmZWVfcmVjeWNsZXJfaW5kZXg4ASRSaW5nSW5kZXgAAVRmZWVfcmVjeWNsZXJfcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAE0cmV0cnlfY291bnRlcgwBCHU4AAEwYWxpYXNfcHJvb2ZzeQMBrEJvdW5kZWRWZWM8UHJvb2ZPZjxUPiwgVDo6TWF4Q29uc29saWRhdGlvbj4ABABYSW5mYWxsaWJsZVVucGFpZFNpZ25lZAQBFG5vbmNlOAEgVDo6Tm9uY2UABQAAwQUMTGluZGl2X3BhbGxldF9wZW9wbGUUdHlwZXM8TWVtYmVyc2hpcFByb29mBARUAAAMARRwcm9vZn0DAShQcm9vZk9mPFQ+AAEQcmluZzgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAAAxQUMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMkZXh0ZW5zaW9uLEFzUmVzb3VyY2VzBARUAAAEAMkFAWhPcHRpb248QXNSZXNvdXJjZXNJbmZvPFQ+PgAAyQUEGE9wdGlvbgQEVAHNBQEIEE5vbmUAAAAQU29tZQQAzQUAAAEAAM0FDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzJGV4dGVuc2lvbjxBc1Jlc291cmNlc0luZm8EBFQAARB0UmVnaXN0ZXJOb3RpZmljYXRpb25XaXRoUHJvb2YMAH0DAShQcm9vZk9mPFQ+AAA4ASRSaW5nSW5kZXgAADgBNFJldmlzaW9uSW5kZXgAAACEUmVnaXN0ZXJOb3RpZmljYXRpb25Gb3JDb2xsZWN0aW9uEAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AAA4ATRSZXZpc2lvbkluZGV4AABhAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24AAQB8UmVnaXN0ZXJTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZRAAfQMBKFByb29mT2Y8VD4AADgBJFJpbmdJbmRleAAAOAE0UmV2aXNpb25JbmRleAAAYQMBUE1lbWJlcnNoaXBDb2xsZWN0aW9uAAIAUENsYWltTG9uZ1Rlcm1TdG9yYWdlEAB9AwEoUHJvb2ZPZjxUPgAAOAEkUmluZ0luZGV4AAA4ATRSZXZpc2lvbkluZGV4AABhAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24AAwAA0QUMTGluZGl2X3BhbGxldF9ob25vdXIkZXh0ZW5zaW9uJFZvdGVyQXV0aAQEVAAABADVBQFgT3B0aW9uPFZvdGVyQXV0aERhdGE8VD4+AADVBQQYT3B0aW9uBARUAdkFAQgQTm9uZQAAABBTb21lBADZBQAAAQAA2QUMTGluZGl2X3BhbGxldF9ob25vdXIkZXh0ZW5zaW9uNFZvdGVyQXV0aERhdGEEBFQAAAwBFHByb29mfQMBOFJpbmdQcm9vZk9mPFQ+AAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABIHJldmlzaW9uOAE0UmV2aXNpb25JbmRleAAA3QUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zOGF1dGhvcml6ZV9jYWxsNEF1dGhvcml6ZUNhbGwEBFQAAAAA4QUIfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb244UmVzdHJpY3RPcmlnaW4EBFQAAAQAyAEQYm9vbAAA5QUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zVGNoZWNrX25vbl96ZXJvX3NlbmRlckhDaGVja05vblplcm9TZW5kZXIEBFQAAAAA6QUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zSGNoZWNrX3NwZWNfdmVyc2lvbkBDaGVja1NwZWNWZXJzaW9uBARUAAAAAO0FEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0BjaGVja190eF92ZXJzaW9uOENoZWNrVHhWZXJzaW9uBARUAAAAAPEFEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczRjaGVja19nZW5lc2lzMENoZWNrR2VuZXNpcwQEVAAAAAD1BRAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM8Y2hlY2tfbW9ydGFsaXR5OENoZWNrTW9ydGFsaXR5BARUAAAEAPkFAQxFcmEAAPkFEChzcF9ydW50aW1lHGdlbmVyaWMMZXJhDEVyYQABAQQgSW1tb3J0YWwAAAAcTW9ydGFsMQQADAAAAQAcTW9ydGFsMgQADAAAAgAcTW9ydGFsMwQADAAAAwAcTW9ydGFsNAQADAAABAAcTW9ydGFsNQQADAAABQAcTW9ydGFsNgQADAAABgAcTW9ydGFsNwQADAAABwAcTW9ydGFsOAQADAAACAAcTW9ydGFsOQQADAAACQAgTW9ydGFsMTAEAAwAAAoAIE1vcnRhbDExBAAMAAALACBNb3J0YWwxMgQADAAADAAgTW9ydGFsMTMEAAwAAA0AIE1vcnRhbDE0BAAMAAAOACBNb3J0YWwxNQQADAAADwAgTW9ydGFsMTYEAAwAABAAIE1vcnRhbDE3BAAMAAARACBNb3J0YWwxOAQADAAAEgAgTW9ydGFsMTkEAAwAABMAIE1vcnRhbDIwBAAMAAAUACBNb3J0YWwyMQQADAAAFQAgTW9ydGFsMjIEAAwAABYAIE1vcnRhbDIzBAAMAAAXACBNb3J0YWwyNAQADAAAGAAgTW9ydGFsMjUEAAwAABkAIE1vcnRhbDI2BAAMAAAaACBNb3J0YWwyNwQADAAAGwAgTW9ydGFsMjgEAAwAABwAIE1vcnRhbDI5BAAMAAAdACBNb3J0YWwzMAQADAAAHgAgTW9ydGFsMzEEAAwAAB8AIE1vcnRhbDMyBAAMAAAgACBNb3J0YWwzMwQADAAAIQAgTW9ydGFsMzQEAAwAACIAIE1vcnRhbDM1BAAMAAAjACBNb3J0YWwzNgQADAAAJAAgTW9ydGFsMzcEAAwAACUAIE1vcnRhbDM4BAAMAAAmACBNb3J0YWwzOQQADAAAJwAgTW9ydGFsNDAEAAwAACgAIE1vcnRhbDQxBAAMAAApACBNb3J0YWw0MgQADAAAKgAgTW9ydGFsNDMEAAwAACsAIE1vcnRhbDQ0BAAMAAAsACBNb3J0YWw0NQQADAAALQAgTW9ydGFsNDYEAAwAAC4AIE1vcnRhbDQ3BAAMAAAvACBNb3J0YWw0OAQADAAAMAAgTW9ydGFsNDkEAAwAADEAIE1vcnRhbDUwBAAMAAAyACBNb3J0YWw1MQQADAAAMwAgTW9ydGFsNTIEAAwAADQAIE1vcnRhbDUzBAAMAAA1ACBNb3J0YWw1NAQADAAANgAgTW9ydGFsNTUEAAwAADcAIE1vcnRhbDU2BAAMAAA4ACBNb3J0YWw1NwQADAAAOQAgTW9ydGFsNTgEAAwAADoAIE1vcnRhbDU5BAAMAAA7ACBNb3J0YWw2MAQADAAAPAAgTW9ydGFsNjEEAAwAAD0AIE1vcnRhbDYyBAAMAAA+ACBNb3J0YWw2MwQADAAAPwAgTW9ydGFsNjQEAAwAAEAAIE1vcnRhbDY1BAAMAABBACBNb3J0YWw2NgQADAAAQgAgTW9ydGFsNjcEAAwAAEMAIE1vcnRhbDY4BAAMAABEACBNb3J0YWw2OQQADAAARQAgTW9ydGFsNzAEAAwAAEYAIE1vcnRhbDcxBAAMAABHACBNb3J0YWw3MgQADAAASAAgTW9ydGFsNzMEAAwAAEkAIE1vcnRhbDc0BAAMAABKACBNb3J0YWw3NQQADAAASwAgTW9ydGFsNzYEAAwAAEwAIE1vcnRhbDc3BAAMAABNACBNb3J0YWw3OAQADAAATgAgTW9ydGFsNzkEAAwAAE8AIE1vcnRhbDgwBAAMAABQACBNb3J0YWw4MQQADAAAUQAgTW9ydGFsODIEAAwAAFIAIE1vcnRhbDgzBAAMAABTACBNb3J0YWw4NAQADAAAVAAgTW9ydGFsODUEAAwAAFUAIE1vcnRhbDg2BAAMAABWACBNb3J0YWw4NwQADAAAVwAgTW9ydGFsODgEAAwAAFgAIE1vcnRhbDg5BAAMAABZACBNb3J0YWw5MAQADAAAWgAgTW9ydGFsOTEEAAwAAFsAIE1vcnRhbDkyBAAMAABcACBNb3J0YWw5MwQADAAAXQAgTW9ydGFsOTQEAAwAAF4AIE1vcnRhbDk1BAAMAABfACBNb3J0YWw5NgQADAAAYAAgTW9ydGFsOTcEAAwAAGEAIE1vcnRhbDk4BAAMAABiACBNb3J0YWw5OQQADAAAYwAkTW9ydGFsMTAwBAAMAABkACRNb3J0YWwxMDEEAAwAAGUAJE1vcnRhbDEwMgQADAAAZgAkTW9ydGFsMTAzBAAMAABnACRNb3J0YWwxMDQEAAwAAGgAJE1vcnRhbDEwNQQADAAAaQAkTW9ydGFsMTA2BAAMAABqACRNb3J0YWwxMDcEAAwAAGsAJE1vcnRhbDEwOAQADAAAbAAkTW9ydGFsMTA5BAAMAABtACRNb3J0YWwxMTAEAAwAAG4AJE1vcnRhbDExMQQADAAAbwAkTW9ydGFsMTEyBAAMAABwACRNb3J0YWwxMTMEAAwAAHEAJE1vcnRhbDExNAQADAAAcgAkTW9ydGFsMTE1BAAMAABzACRNb3J0YWwxMTYEAAwAAHQAJE1vcnRhbDExNwQADAAAdQAkTW9ydGFsMTE4BAAMAAB2ACRNb3J0YWwxMTkEAAwAAHcAJE1vcnRhbDEyMAQADAAAeAAkTW9ydGFsMTIxBAAMAAB5ACRNb3J0YWwxMjIEAAwAAHoAJE1vcnRhbDEyMwQADAAAewAkTW9ydGFsMTI0BAAMAAB8ACRNb3J0YWwxMjUEAAwAAH0AJE1vcnRhbDEyNgQADAAAfgAkTW9ydGFsMTI3BAAMAAB/ACRNb3J0YWwxMjgEAAwAAIAAJE1vcnRhbDEyOQQADAAAgQAkTW9ydGFsMTMwBAAMAACCACRNb3J0YWwxMzEEAAwAAIMAJE1vcnRhbDEzMgQADAAAhAAkTW9ydGFsMTMzBAAMAACFACRNb3J0YWwxMzQEAAwAAIYAJE1vcnRhbDEzNQQADAAAhwAkTW9ydGFsMTM2BAAMAACIACRNb3J0YWwxMzcEAAwAAIkAJE1vcnRhbDEzOAQADAAAigAkTW9ydGFsMTM5BAAMAACLACRNb3J0YWwxNDAEAAwAAIwAJE1vcnRhbDE0MQQADAAAjQAkTW9ydGFsMTQyBAAMAACOACRNb3J0YWwxNDMEAAwAAI8AJE1vcnRhbDE0NAQADAAAkAAkTW9ydGFsMTQ1BAAMAACRACRNb3J0YWwxNDYEAAwAAJIAJE1vcnRhbDE0NwQADAAAkwAkTW9ydGFsMTQ4BAAMAACUACRNb3J0YWwxNDkEAAwAAJUAJE1vcnRhbDE1MAQADAAAlgAkTW9ydGFsMTUxBAAMAACXACRNb3J0YWwxNTIEAAwAAJgAJE1vcnRhbDE1MwQADAAAmQAkTW9ydGFsMTU0BAAMAACaACRNb3J0YWwxNTUEAAwAAJsAJE1vcnRhbDE1NgQADAAAnAAkTW9ydGFsMTU3BAAMAACdACRNb3J0YWwxNTgEAAwAAJ4AJE1vcnRhbDE1OQQADAAAnwAkTW9ydGFsMTYwBAAMAACgACRNb3J0YWwxNjEEAAwAAKEAJE1vcnRhbDE2MgQADAAAogAkTW9ydGFsMTYzBAAMAACjACRNb3J0YWwxNjQEAAwAAKQAJE1vcnRhbDE2NQQADAAApQAkTW9ydGFsMTY2BAAMAACmACRNb3J0YWwxNjcEAAwAAKcAJE1vcnRhbDE2OAQADAAAqAAkTW9ydGFsMTY5BAAMAACpACRNb3J0YWwxNzAEAAwAAKoAJE1vcnRhbDE3MQQADAAAqwAkTW9ydGFsMTcyBAAMAACsACRNb3J0YWwxNzMEAAwAAK0AJE1vcnRhbDE3NAQADAAArgAkTW9ydGFsMTc1BAAMAACvACRNb3J0YWwxNzYEAAwAALAAJE1vcnRhbDE3NwQADAAAsQAkTW9ydGFsMTc4BAAMAACyACRNb3J0YWwxNzkEAAwAALMAJE1vcnRhbDE4MAQADAAAtAAkTW9ydGFsMTgxBAAMAAC1ACRNb3J0YWwxODIEAAwAALYAJE1vcnRhbDE4MwQADAAAtwAkTW9ydGFsMTg0BAAMAAC4ACRNb3J0YWwxODUEAAwAALkAJE1vcnRhbDE4NgQADAAAugAkTW9ydGFsMTg3BAAMAAC7ACRNb3J0YWwxODgEAAwAALwAJE1vcnRhbDE4OQQADAAAvQAkTW9ydGFsMTkwBAAMAAC+ACRNb3J0YWwxOTEEAAwAAL8AJE1vcnRhbDE5MgQADAAAwAAkTW9ydGFsMTkzBAAMAADBACRNb3J0YWwxOTQEAAwAAMIAJE1vcnRhbDE5NQQADAAAwwAkTW9ydGFsMTk2BAAMAADEACRNb3J0YWwxOTcEAAwAAMUAJE1vcnRhbDE5OAQADAAAxgAkTW9ydGFsMTk5BAAMAADHACRNb3J0YWwyMDAEAAwAAMgAJE1vcnRhbDIwMQQADAAAyQAkTW9ydGFsMjAyBAAMAADKACRNb3J0YWwyMDMEAAwAAMsAJE1vcnRhbDIwNAQADAAAzAAkTW9ydGFsMjA1BAAMAADNACRNb3J0YWwyMDYEAAwAAM4AJE1vcnRhbDIwNwQADAAAzwAkTW9ydGFsMjA4BAAMAADQACRNb3J0YWwyMDkEAAwAANEAJE1vcnRhbDIxMAQADAAA0gAkTW9ydGFsMjExBAAMAADTACRNb3J0YWwyMTIEAAwAANQAJE1vcnRhbDIxMwQADAAA1QAkTW9ydGFsMjE0BAAMAADWACRNb3J0YWwyMTUEAAwAANcAJE1vcnRhbDIxNgQADAAA2AAkTW9ydGFsMjE3BAAMAADZACRNb3J0YWwyMTgEAAwAANoAJE1vcnRhbDIxOQQADAAA2wAkTW9ydGFsMjIwBAAMAADcACRNb3J0YWwyMjEEAAwAAN0AJE1vcnRhbDIyMgQADAAA3gAkTW9ydGFsMjIzBAAMAADfACRNb3J0YWwyMjQEAAwAAOAAJE1vcnRhbDIyNQQADAAA4QAkTW9ydGFsMjI2BAAMAADiACRNb3J0YWwyMjcEAAwAAOMAJE1vcnRhbDIyOAQADAAA5AAkTW9ydGFsMjI5BAAMAADlACRNb3J0YWwyMzAEAAwAAOYAJE1vcnRhbDIzMQQADAAA5wAkTW9ydGFsMjMyBAAMAADoACRNb3J0YWwyMzMEAAwAAOkAJE1vcnRhbDIzNAQADAAA6gAkTW9ydGFsMjM1BAAMAADrACRNb3J0YWwyMzYEAAwAAOwAJE1vcnRhbDIzNwQADAAA7QAkTW9ydGFsMjM4BAAMAADuACRNb3J0YWwyMzkEAAwAAO8AJE1vcnRhbDI0MAQADAAA8AAkTW9ydGFsMjQxBAAMAADxACRNb3J0YWwyNDIEAAwAAPIAJE1vcnRhbDI0MwQADAAA8wAkTW9ydGFsMjQ0BAAMAAD0ACRNb3J0YWwyNDUEAAwAAPUAJE1vcnRhbDI0NgQADAAA9gAkTW9ydGFsMjQ3BAAMAAD3ACRNb3J0YWwyNDgEAAwAAPgAJE1vcnRhbDI0OQQADAAA+QAkTW9ydGFsMjUwBAAMAAD6ACRNb3J0YWwyNTEEAAwAAPsAJE1vcnRhbDI1MgQADAAA/AAkTW9ydGFsMjUzBAAMAAD9ACRNb3J0YWwyNTQEAAwAAP4AJE1vcnRhbDI1NQQADAAA/wAA/QUQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zLGNoZWNrX25vbmNlKENoZWNrTm9uY2UEBFQAAAQAYAEgVDo6Tm9uY2UAAAEGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczBjaGVja193ZWlnaHQsQ2hlY2tXZWlnaHQEBFQAAAAABQYIXHBhbGxldF9hc3NldF90eF9wYXltZW50UENoYXJnZUFzc2V0VHhQYXltZW50BARUAAAIAQx0aXDAATBCYWxhbmNlT2Y8VD4AASBhc3NldF9pZKECAWhPcHRpb248Q2hhcmdlQXNzZXRJZE9mPFQ+PgAACQYIMGZyYW1lX3N5c3RlbSxBY2NvdW50SW5mbwgUTm9uY2UBOCxBY2NvdW50RGF0YQENBgAUARRub25jZTgBFE5vbmNlAAEkY29uc3VtZXJzOAEgUmVmQ291bnQAASRwcm92aWRlcnM4ASBSZWZDb3VudAABLHN1ZmZpY2llbnRzOAEgUmVmQ291bnQAARBkYXRhDQYBLEFjY291bnREYXRhAAANBgw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEFjY291bnREYXRhBBxCYWxhbmNlAcQAEAEQZnJlZcQBHEJhbGFuY2UAASByZXNlcnZlZMQBHEJhbGFuY2UAARhmcm96ZW7EARxCYWxhbmNlAAEUZmxhZ3MRBgEoRXh0cmFGbGFncwAAEQYMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyhFeHRyYUZsYWdzAAAEAMQBEHUxMjgAABUGDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQB1QEADAEYbm9ybWFs1QEBBFQAASxvcGVyYXRpb25hbNUBAQRUAAEkbWFuZGF0b3J51QEBBFQAABkGAAACHQYAHQYIMGZyYW1lX3N5c3RlbSxFdmVudFJlY29yZAgERQEhBgRUATwADAEUcGhhc2VBBwEUUGhhc2UAARRldmVudCEGAQRFAAEYdG9waWNzRQcBGFZlYzxUPgAAIQYIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWUwUnVudGltZUV2ZW50AAGUGFN5c3RlbQQAJQYBcGZyYW1lX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AAAA8UGFyYWNoYWluU3lzdGVtBABNBgG8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AAQAgQmFsYW5jZXMEAFEGAXxwYWxsZXRfYmFsYW5jZXM6OkV2ZW50PFJ1bnRpbWU+AAoASFRyYW5zYWN0aW9uUGF5bWVudAQAhQYBqHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50OjpFdmVudDxSdW50aW1lPgALAEhTa2lwRmVlbGVzc1BheW1lbnQEAIkGAaxwYWxsZXRfc2tpcF9mZWVsZXNzX3BheW1lbnQ6OkV2ZW50PFJ1bnRpbWU+AAwARE9yaWdpblJlc3RyaWN0aW9uBACNBgG8aW5kaXZfcGFsbGV0X29yaWdpbl9yZXN0cmljdGlvbjo6RXZlbnQ8UnVudGltZT4ADQAYQXNzZXRzBACRBgF0cGFsbGV0X2Fzc2V0czo6RXZlbnQ8UnVudGltZT4ADgAwQXNzZXRzSG9sZGVyBACVBgGQcGFsbGV0X2Fzc2V0c19ob2xkZXI6OkV2ZW50PFJ1bnRpbWU+AA8AJEFzc2V0UmF0ZQQAmQYBhHBhbGxldF9hc3NldF9yYXRlOjpFdmVudDxSdW50aW1lPgAQADhBc3NldFR4UGF5bWVudAQAnQYBnHBhbGxldF9hc3NldF90eF9wYXltZW50OjpFdmVudDxSdW50aW1lPgARAERDb2xsYXRvclNlbGVjdGlvbgQAoQYBpHBhbGxldF9jb2xsYXRvcl9zZWxlY3Rpb246OkV2ZW50PFJ1bnRpbWU+ABUAHFNlc3Npb24EAKUGAXhwYWxsZXRfc2Vzc2lvbjo6RXZlbnQ8UnVudGltZT4AFgAkWGNtcFF1ZXVlBACpBgGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AHgAsUG9sa2Fkb3RYY20EAK0GAWhwYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgAfAChDdW11bHVzWGNtBAC9BgGIY3VtdWx1c19wYWxsZXRfeGNtOjpFdmVudDxSdW50aW1lPgAgADBNZXNzYWdlUXVldWUEAMEGAZBwYWxsZXRfbWVzc2FnZV9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AIgAcVXRpbGl0eQQAyQYBVHBhbGxldF91dGlsaXR5OjpFdmVudAAoACBNdWx0aXNpZwQA0QYBfHBhbGxldF9tdWx0aXNpZzo6RXZlbnQ8UnVudGltZT4AKQAQU3VkbwQA1QYBbHBhbGxldF9zdWRvOjpFdmVudDxSdW50aW1lPgAqABRQcm94eQQA3QYBcHBhbGxldF9wcm94eTo6RXZlbnQ8UnVudGltZT4ALAAYUGVvcGxlBADlBgGMaW5kaXZfcGFsbGV0X3Blb3BsZTo6RXZlbnQ8UnVudGltZT4AMwAcTW9iUnVsZQQA6QYBlGluZGl2X3BhbGxldF9tb2JfcnVsZTo6RXZlbnQ8UnVudGltZT4ANAAoUHJvb2ZPZkluawQA8QYBpGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbms6OkV2ZW50PFJ1bnRpbWU+ADUAEEdhbWUEAPUGAYRpbmRpdl9wYWxsZXRfZ2FtZTo6RXZlbnQ8UnVudGltZT4ANwAUU2NvcmUEAPkGAYhpbmRpdl9wYWxsZXRfc2NvcmU6OkV2ZW50PFJ1bnRpbWU+ADgAKE5mdENyZWRpdHMEAP0GAaBpbmRpdl9wYWxsZXRfbmZ0X2NyZWRpdHM6OkV2ZW50PFJ1bnRpbWU+ADkAIER1bW15RGltBAAJBwGYaW5kaXZfcGFsbGV0X2R1bW15X2RpbTo6RXZlbnQ8UnVudGltZT4AOwAoUGVvcGxlTGl0ZQQADQcBoGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZTo6RXZlbnQ8UnVudGltZT4APgAkUmVzb3VyY2VzBAARBwGYaW5kaXZfcGFsbGV0X3Jlc291cmNlczo6RXZlbnQ8UnVudGltZT4APwA0Q2h1bmtzTWFuYWdlcgQAFQcBrGluZGl2X3BhbGxldF9jaHVua3NfbWFuYWdlcjo6RXZlbnQ8UnVudGltZT4AQAAcTWVtYmVycwQAGQcBkGluZGl2X3BhbGxldF9tZW1iZXJzOjpFdmVudDxSdW50aW1lPgBDABxDb2luYWdlBAAdBwGQaW5kaXZfcGFsbGV0X2NvaW5hZ2U6OkV2ZW50PFJ1bnRpbWU+AEQAPE1lbWJlcnNOb3RpZmllcgQAIQcBtGluZGl2X3BhbGxldF9tZW1iZXJzX25vdGlmaWVyOjpFdmVudDxSdW50aW1lPgBFABxBaXJkcm9wBAAlBwGQaW5kaXZfcGFsbGV0X2FpcmRyb3A6OkV2ZW50PFJ1bnRpbWU+AEYAGEhvbm91cgQAMQcBjGluZGl2X3BhbGxldF9ob25vdXI6OkV2ZW50PFJ1bnRpbWU+AEcAVFN0b3JhZ2VJbml0aWFsaXphdGlvbgQAOQcBzGluZGl2X3BhbGxldF9zdG9yYWdlX2luaXRpYWxpemF0aW9uOjpFdmVudDxSdW50aW1lPgA8AFBNdWx0aUJsb2NrTWlncmF0aW9ucwQAPQcBhHBhbGxldF9taWdyYXRpb25zOjpFdmVudDxSdW50aW1lPgBiAAAlBgwwZnJhbWVfc3lzdGVtGHBhbGxldBRFdmVudAQEVAABIEBFeHRyaW5zaWNTdWNjZXNzBAE0ZGlzcGF0Y2hfaW5mbykGAUREaXNwYXRjaEV2ZW50SW5mbwAABJBBbiBleHRyaW5zaWMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS48RXh0cmluc2ljRmFpbGVkCAE4ZGlzcGF0Y2hfZXJyb3I1BgE0RGlzcGF0Y2hFcnJvcgABNGRpc3BhdGNoX2luZm8pBgFERGlzcGF0Y2hFdmVudEluZm8AAQRQQW4gZXh0cmluc2ljIGZhaWxlZC4sQ29kZVVwZGF0ZWQEARBoYXNoPAEcVDo6SGFzaAACBNBgOmNvZGVgIHdhcyB1cGRhdGVkIHRvIHRoZSBjb2RlIHdpdGggdGhlIGdpdmVuIGhhc2guKE5ld0FjY291bnQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAMEaEEgbmV3IGFjY291bnQgd2FzIGNyZWF0ZWQuNEtpbGxlZEFjY291bnQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAQEWEFuIGFjY291bnQgd2FzIHJlYXBlZC4gUmVtYXJrZWQIARhzZW5kZXIEATBUOjpBY2NvdW50SWQAARBoYXNoPAEcVDo6SGFzaAAFBHBPbiBvbi1jaGFpbiByZW1hcmsgaGFwcGVuZWQuRFVwZ3JhZGVBdXRob3JpemVkCAEkY29kZV9oYXNoPAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb27IARBib29sAAYEaEFuIHVwZ3JhZGUgd2FzIGF1dGhvcml6ZWQugFJlamVjdGVkSW52YWxpZEF1dGhvcml6ZWRVcGdyYWRlCAEkY29kZV9oYXNoPAEcVDo6SGFzaAABFGVycm9yNQYBNERpc3BhdGNoRXJyb3IABwQRAUFuIGludmFsaWQgYXV0aG9yaXplZCB1cGdyYWRlIHdhcyByZWplY3RlZCB3aGlsZSB0cnlpbmcgdG8gYXBwbHkgaXQuBHBFdmVudCBmb3IgdGhlIFN5c3RlbSBwYWxsZXQuKQYIMGZyYW1lX3N5c3RlbUREaXNwYXRjaEV2ZW50SW5mbwAADAEYd2VpZ2h01QEBGFdlaWdodAABFGNsYXNzLQYBNERpc3BhdGNoQ2xhc3MAASBwYXlzX2ZlZTEGARBQYXlzAAAtBgw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDREaXNwYXRjaENsYXNzAAEMGE5vcm1hbAAAACxPcGVyYXRpb25hbAABACRNYW5kYXRvcnkAAgAAMQYMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gQUGF5cwABCAxZZXMAAAAITm8AAQAANQYIKHNwX3J1bnRpbWU0RGlzcGF0Y2hFcnJvcgABPBRPdGhlcgAAADBDYW5ub3RMb29rdXAAAQAkQmFkT3JpZ2luAAIAGE1vZHVsZQQAOQYBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EAD0GAShUb2tlbkVycm9yAAcAKEFyaXRobWV0aWMEAEEGATxBcml0aG1ldGljRXJyb3IACAA0VHJhbnNhY3Rpb25hbAQARQYBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMADhSb290Tm90QWxsb3dlZAANABBUcmllBABJBgEkVHJpZUVycm9yAA4AADkGCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleAwBCHU4AAEUZXJyb3JwAYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAPQYIKHNwX3J1bnRpbWUoVG9rZW5FcnJvcgABKEBGdW5kc1VuYXZhaWxhYmxlAAAAME9ubHlQcm92aWRlcgABADBCZWxvd01pbmltdW0AAgAwQ2Fubm90Q3JlYXRlAAMAMFVua25vd25Bc3NldAAEABhGcm96ZW4ABQAsVW5zdXBwb3J0ZWQABgBAQ2Fubm90Q3JlYXRlSG9sZAAHADROb3RFeHBlbmRhYmxlAAgAHEJsb2NrZWQACQAAQQYINHNwX2FyaXRobWV0aWM8QXJpdGhtZXRpY0Vycm9yAAEMJFVuZGVyZmxvdwAAACBPdmVyZmxvdwABADhEaXZpc2lvbkJ5WmVybwACAABFBggoc3BfcnVudGltZUhUcmFuc2FjdGlvbmFsRXJyb3IAAQgwTGltaXRSZWFjaGVkAAAAHE5vTGF5ZXIAAQAASQYMKHNwX3J1bnRpbWUwcHJvdmluZ190cmllJFRyaWVFcnJvcgABOEBJbnZhbGlkU3RhdGVSb290AAAASEluY29tcGxldGVEYXRhYmFzZQABAFBWYWx1ZUF0SW5jb21wbGV0ZUtleQACADBEZWNvZGVyRXJyb3IAAwAsSW52YWxpZEhhc2gABAAwRHVwbGljYXRlS2V5AAUAOEV4dHJhbmVvdXNOb2RlAAYAPEV4dHJhbmVvdXNWYWx1ZQAHAFxFeHRyYW5lb3VzSGFzaFJlZmVyZW5jZQAIAFRJbnZhbGlkQ2hpbGRSZWZlcmVuY2UACQA0VmFsdWVNaXNtYXRjaAAKADxJbmNvbXBsZXRlUHJvb2YACwAwUm9vdE1pc21hdGNoAAwALERlY29kZUVycm9yAA0AAE0GDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFdmVudAQEVAABGGBWYWxpZGF0aW9uRnVuY3Rpb25TdG9yZWQAAATQVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGFwcGx5LmRWYWxpZGF0aW9uRnVuY3Rpb25BcHBsaWVkBAFUcmVsYXlfY2hhaW5fYmxvY2tfbnVtOAFUUmVsYXlDaGFpbkJsb2NrTnVtYmVyAAEERQFUaGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3YXMgYXBwbGllZCBhcyBvZiB0aGUgY29udGFpbmVkIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlci5sVmFsaWRhdGlvbkZ1bmN0aW9uRGlzY2FyZGVkAAIEsFRoZSByZWxheS1jaGFpbiBhYm9ydGVkIHRoZSB1cGdyYWRlIHByb2Nlc3MuYERvd253YXJkTWVzc2FnZXNSZWNlaXZlZAQBFGNvdW50OAEMdTMyAAMEAQFTb21lIGRvd253YXJkIG1lc3NhZ2VzIGhhdmUgYmVlbiByZWNlaXZlZCBhbmQgd2lsbCBiZSBwcm9jZXNzZWQuZERvd253YXJkTWVzc2FnZXNQcm9jZXNzZWQIASx3ZWlnaHRfdXNlZNUBARhXZWlnaHQAASBkbXFfaGVhZDwBRHJlbGF5X2NoYWluOjpIYXNoAAQE4ERvd253YXJkIG1lc3NhZ2VzIHdlcmUgcHJvY2Vzc2VkIHVzaW5nIHRoZSBnaXZlbiB3ZWlnaHQuRFVwd2FyZE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNowQQBPE9wdGlvbjxYY21IYXNoPgAFBLhBbiB1cHdhcmQgbWVzc2FnZSB3YXMgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0UQYMPHBhbGxldF9iYWxhbmNlcxhwYWxsZXQURXZlbnQIBFQABEkAAXgcRW5kb3dlZAgBHGFjY291bnQEATBUOjpBY2NvdW50SWQAATBmcmVlX2JhbGFuY2XEAShUOjpCYWxhbmNlAAAEuEFuIGFjY291bnQgd2FzIGNyZWF0ZWQgd2l0aCBzb21lIGZyZWUgYmFsYW5jZS4gRHVzdExvc3QIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQABCD0BQW4gYWNjb3VudCB3YXMgcmVtb3ZlZCB3aG9zZSBiYWxhbmNlIHdhcyBub24temVybyBidXQgYmVsb3cgRXhpc3RlbnRpYWxEZXBvc2l0LHhyZXN1bHRpbmcgaW4gYW4gb3V0cmlnaHQgbG9zcy4gVHJhbnNmZXIMARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAIETFRyYW5zZmVyIHN1Y2NlZWRlZC4oQmFsYW5jZVNldAgBDHdobwQBMFQ6OkFjY291bnRJZAABEGZyZWXEAShUOjpCYWxhbmNlAAMEaEEgYmFsYW5jZSB3YXMgc2V0IGJ5IHJvb3QuIFJlc2VydmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAEBOBTb21lIGJhbGFuY2Ugd2FzIHJlc2VydmVkIChtb3ZlZCBmcm9tIGZyZWUgdG8gcmVzZXJ2ZWQpLihVbnJlc2VydmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAFBOhTb21lIGJhbGFuY2Ugd2FzIHVucmVzZXJ2ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG8gZnJlZSkuSFJlc2VydmVSZXBhdHJpYXRlZBABEGZyb20EATBUOjpBY2NvdW50SWQAAQh0bwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAAUhkZXN0aW5hdGlvbl9zdGF0dXNVBgEYU3RhdHVzAAYITQFTb21lIGJhbGFuY2Ugd2FzIG1vdmVkIGZyb20gdGhlIHJlc2VydmUgb2YgdGhlIGZpcnN0IGFjY291bnQgdG8gdGhlIHNlY29uZCBhY2NvdW50LthGaW5hbCBhcmd1bWVudCBpbmRpY2F0ZXMgdGhlIGRlc3RpbmF0aW9uIGJhbGFuY2UgdHlwZS4cRGVwb3NpdAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UABwTYU29tZSBhbW91bnQgd2FzIGRlcG9zaXRlZCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuIFdpdGhkcmF3CAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAIBB0BU29tZSBhbW91bnQgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS4cU2xhc2hlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UACQQBAVNvbWUgYW1vdW50IHdhcyByZW1vdmVkIGZyb20gdGhlIGFjY291bnQgKGUuZy4gZm9yIG1pc2JlaGF2aW9yKS4YTWludGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAKBJxTb21lIGFtb3VudCB3YXMgbWludGVkIGludG8gYW4gYWNjb3VudC4wTWludGVkQ3JlZGl0BAEYYW1vdW50xAEoVDo6QmFsYW5jZQALBOBTb21lIGNyZWRpdCB3YXMgYmFsYW5jZWQgYW5kIGFkZGVkIHRvIHRoZSBUb3RhbElzc3VhbmNlLhhCdXJuZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAwEnFNvbWUgYW1vdW50IHdhcyBidXJuZWQgZnJvbSBhbiBhY2NvdW50LihCdXJuZWREZWJ0BAEYYW1vdW50xAEoVDo6QmFsYW5jZQANBMxTb21lIGRlYnQgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZSBUb3RhbCBJc3N1YW5jZS4kU3VzcGVuZGVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAOBBUBU29tZSBhbW91bnQgd2FzIHN1c3BlbmRlZCBmcm9tIGFuIGFjY291bnQgKGl0IGNhbiBiZSByZXN0b3JlZCBsYXRlcikuIFJlc3RvcmVkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAPBKRTb21lIGFtb3VudCB3YXMgcmVzdG9yZWQgaW50byBhbiBhY2NvdW50LiBVcGdyYWRlZAQBDHdobwQBMFQ6OkFjY291bnRJZAAQBGBBbiBhY2NvdW50IHdhcyB1cGdyYWRlZC4YSXNzdWVkBAEYYW1vdW50xAEoVDo6QmFsYW5jZQARBC0BVG90YWwgaXNzdWFuY2Ugd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YCwgY3JlYXRpbmcgYSBjcmVkaXQgdG8gYmUgYmFsYW5jZWQuJFJlc2NpbmRlZAQBGGFtb3VudMQBKFQ6OkJhbGFuY2UAEgQlAVRvdGFsIGlzc3VhbmNlIHdhcyBkZWNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgZGVidCB0byBiZSBiYWxhbmNlZC4YTG9ja2VkCAEMd2hvBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQATBGBTb21lIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQIAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABQEaFNvbWUgYmFsYW5jZSB3YXMgdW5sb2NrZWQuGEZyb3plbggBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAFQRgU29tZSBiYWxhbmNlIHdhcyBmcm96ZW4uGFRoYXdlZAgBDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAFgRgU29tZSBiYWxhbmNlIHdhcyB0aGF3ZWQuTFRvdGFsSXNzdWFuY2VGb3JjZWQIAQxvbGTEAShUOjpCYWxhbmNlAAEMbmV3xAEoVDo6QmFsYW5jZQAXBKxUaGUgYFRvdGFsSXNzdWFuY2VgIHdhcyBmb3JjZWZ1bGx5IGNoYW5nZWQuEEhlbGQMARhyZWFzb25ZBgFQVDo6UnVudGltZUhvbGRSZWFzb24AAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABgEgFNvbWUgYmFsYW5jZSB3YXMgcGxhY2VkIG9uIGhvbGQuKEJ1cm5lZEhlbGQMARhyZWFzb25ZBgFQVDo6UnVudGltZUhvbGRSZWFzb24AAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABkEoEhlbGQgYmFsYW5jZSB3YXMgYnVybmVkIGZyb20gYW4gYWNjb3VudC44VHJhbnNmZXJPbkhvbGQQARhyZWFzb25ZBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhzb3VyY2UEATBUOjpBY2NvdW50SWQAARBkZXN0BAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAaBBUBQSB0cmFuc2ZlciBvZiBgYW1vdW50YCBvbiBob2xkIGZyb20gYHNvdXJjZWAgdG8gYGRlc3RgIHdhcyBpbml0aWF0ZWQuPFRyYW5zZmVyQW5kSG9sZBABGHJlYXNvblkGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAABEGRlc3QEATBUOjpBY2NvdW50SWQAASx0cmFuc2ZlcnJlZMQBKFQ6OkJhbGFuY2UAGwQJAVRoZSBgdHJhbnNmZXJyZWRgIGJhbGFuY2UgaXMgcGxhY2VkIG9uIGhvbGQgYXQgdGhlIGBkZXN0YCBhY2NvdW50LiBSZWxlYXNlZAwBGHJlYXNvblkGAVBUOjpSdW50aW1lSG9sZFJlYXNvbgABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAHASQU29tZSBiYWxhbmNlIHdhcyByZWxlYXNlZCBmcm9tIGhvbGQuKFVuZXhwZWN0ZWQEAIEGAThVbmV4cGVjdGVkS2luZAAdBLBBbiB1bmV4cGVjdGVkL2RlZmVuc2l2ZSBldmVudCB3YXMgdHJpZ2dlcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFUGFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYzRCYWxhbmNlU3RhdHVzAAEIEEZyZWUAAAAgUmVzZXJ2ZWQAAQAAWQYIZG5leHRfcGVvcGxlX3Bhc2VvX3J1bnRpbWVEUnVudGltZUhvbGRSZWFzb24AASQcU2Vzc2lvbgQAXQYBaHBhbGxldF9zZXNzaW9uOjpIb2xkUmVhc29uABYALFBvbGthZG90WGNtBABhBgFYcGFsbGV0X3hjbTo6SG9sZFJlYXNvbgAfABxNb2JSdWxlBABlBgGEaW5kaXZfcGFsbGV0X21vYl9ydWxlOjpIb2xkUmVhc29uADQAKFByb29mT2ZJbmsEAGkGAZRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rOjpIb2xkUmVhc29uADUAEEdhbWUEAG0GAXRpbmRpdl9wYWxsZXRfZ2FtZTo6SG9sZFJlYXNvbgA3ABRTY29yZQQAcQYBeGluZGl2X3BhbGxldF9zY29yZTo6SG9sZFJlYXNvbgA4AChOZnRDcmVkaXRzBAB1BgGQaW5kaXZfcGFsbGV0X25mdF9jcmVkaXRzOjpIb2xkUmVhc29uADkAHENvaW5hZ2UEAHkGAYBpbmRpdl9wYWxsZXRfY29pbmFnZTo6SG9sZFJlYXNvbgBEABxBaXJkcm9wBAB9BgGAaW5kaXZfcGFsbGV0X2FpcmRyb3A6OkhvbGRSZWFzb24ARgAAXQYMOHBhbGxldF9zZXNzaW9uGHBhbGxldChIb2xkUmVhc29uAAEEEEtleXMAAAAAYQYMKHBhbGxldF94Y20YcGFsbGV0KEhvbGRSZWFzb24AAQQ4QXV0aG9yaXplQWxpYXMAAAAAZQYMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQoSG9sZFJlYXNvbgABCBhQYXlvdXQAAAAYQ3JlZGl0AAEAAGkGDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldChIb2xkUmVhc29uAAEEKFByb29mT2ZJbmsAAAAAbQYMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldChIb2xkUmVhc29uAAEELFBsYXlEZXBvc2l0AAAAAHEGDEhpbmRpdl9wYWxsZXRfc2NvcmUYcGFsbGV0KEhvbGRSZWFzb24AAQgYUGF5b3V0AAAAGENyZWRpdAABAAB1BgxgaW5kaXZfcGFsbGV0X25mdF9jcmVkaXRzGHBhbGxldChIb2xkUmVhc29uAAEELFBsYXlEZXBvc2l0AAAAAHkGDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoSG9sZFJlYXNvbgABBBxXcmFwcGVkAAAAAH0GDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBhwYWxsZXQoSG9sZFJlYXNvbgABBBxBaXJkcm9wAAAAAIEGDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0OFVuZXhwZWN0ZWRLaW5kAAEIOEJhbGFuY2VVcGRhdGVkAAAAVEZhaWxlZFRvTXV0YXRlQWNjb3VudAABAACFBgxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEESFRyYW5zYWN0aW9uRmVlUGFpZAwBDHdobwQBMFQ6OkFjY291bnRJZAABKGFjdHVhbF9mZWXEATBCYWxhbmNlT2Y8VD4AAQx0aXDEATBCYWxhbmNlT2Y8VD4AAAhZAUEgdHJhbnNhY3Rpb24gZmVlIGBhY3R1YWxfZmVlYCwgb2Ygd2hpY2ggYHRpcGAgd2FzIGFkZGVkIHRvIHRoZSBtaW5pbXVtIGluY2x1c2lvbiBmZWUsXGhhcyBiZWVuIHBhaWQgYnkgYHdob2AuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0iQYMbHBhbGxldF9za2lwX2ZlZWxlc3NfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAAQQoRmVlU2tpcHBlZAQBGG9yaWdpbjEDAcA8VDo6UnVudGltZU9yaWdpbiBhcyBPcmlnaW5UcmFpdD46OlBhbGxldHNPcmlnaW4AAAR4QSB0cmFuc2FjdGlvbiBmZWUgd2FzIHNraXBwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0jQYMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FEV2ZW50BARUAAEEMFVzYWdlQ2xlYW5lZAQBGGVudGl0edgBTFQ6OlJlc3RyaWN0ZWRFbnRpdHkAAAR8VXNhZ2UgZm9yIGFuIGVudGl0eSBpcyBjbGVhbmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJEGDDRwYWxsZXRfYXNzZXRzGHBhbGxldBRFdmVudAgEVAAESQABgBxDcmVhdGVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEcY3JlYXRvcgQBMFQ6OkFjY291bnRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAAEdFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGNyZWF0ZWQuGElzc3VlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQABBGBTb21lIGFzc2V0cyB3ZXJlIGlzc3VlZC4sVHJhbnNmZXJyZWQQASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARBmcm9tBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAAIEdFNvbWUgYXNzZXRzIHdlcmUgdHJhbnNmZXJyZWQuGEJ1cm5lZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEcYmFsYW5jZcQBKFQ6OkJhbGFuY2UAAwRsU29tZSBhc3NldHMgd2VyZSBkZXN0cm95ZWQuLFRlYW1DaGFuZ2VkEAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYaXNzdWVyBAEwVDo6QWNjb3VudElkAAEUYWRtaW4EATBUOjpBY2NvdW50SWQAARxmcmVlemVyBAEwVDo6QWNjb3VudElkAAQEcFRoZSBtYW5hZ2VtZW50IHRlYW0gY2hhbmdlZC4wT3duZXJDaGFuZ2VkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEUb3duZXIEATBUOjpBY2NvdW50SWQABQRIVGhlIG93bmVyIGNoYW5nZWQuGEZyb3plbggBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAGBHhTb21lIGFjY291bnQgYHdob2Agd2FzIGZyb3plbi4YVGhhd2VkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAcEeFNvbWUgYWNjb3VudCBgd2hvYCB3YXMgdGhhd2VkLixBc3NldEZyb3plbgQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAIBIRTb21lIGFzc2V0IGBhc3NldF9pZGAgd2FzIGZyb3plbi4sQXNzZXRUaGF3ZWQEASBhc3NldF9pZOABKFQ6OkFzc2V0SWQACQSEU29tZSBhc3NldCBgYXNzZXRfaWRgIHdhcyB0aGF3ZWQuREFjY291bnRzRGVzdHJveWVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAFIYWNjb3VudHNfZGVzdHJveWVkOAEMdTMyAAFIYWNjb3VudHNfcmVtYWluaW5nOAEMdTMyAAoEoEFjY291bnRzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IQXBwcm92YWxzRGVzdHJveWVkDAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAFMYXBwcm92YWxzX2Rlc3Ryb3llZDgBDHUzMgABTGFwcHJvdmFsc19yZW1haW5pbmc4AQx1MzIACwSkQXBwcm92YWxzIHdlcmUgZGVzdHJveWVkIGZvciBnaXZlbiBhc3NldC5IRGVzdHJ1Y3Rpb25TdGFydGVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAwE0EFuIGFzc2V0IGNsYXNzIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRlc3Ryb3llZC4kRGVzdHJveWVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkAA0EdEFuIGFzc2V0IGNsYXNzIHdhcyBkZXN0cm95ZWQuMEZvcmNlQ3JlYXRlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAA4EjFNvbWUgYXNzZXQgY2xhc3Mgd2FzIGZvcmNlLWNyZWF0ZWQuLE1ldGFkYXRhU2V0FAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEQbmFtZRgBHFZlYzx1OD4AARhzeW1ib2wYARxWZWM8dTg+AAEgZGVjaW1hbHMMAQh1OAABJGlzX2Zyb3plbsgBEGJvb2wADwScTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gYXNzZXQuPE1ldGFkYXRhQ2xlYXJlZAQBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAAQBJxNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBhc3NldC5AQXBwcm92ZWRUcmFuc2ZlchABIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGHNvdXJjZQQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQARBDEBKEFkZGl0aW9uYWwpIGZ1bmRzIGhhdmUgYmVlbiBhcHByb3ZlZCBmb3IgdHJhbnNmZXIgdG8gYSBkZXN0aW5hdGlvbiBhY2NvdW50LkRBcHByb3ZhbENhbmNlbGxlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABFG93bmVyBAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUEATBUOjpBY2NvdW50SWQAEgTwQW4gYXBwcm92YWwgZm9yIGFjY291bnQgYGRlbGVnYXRlYCB3YXMgY2FuY2VsbGVkIGJ5IGBvd25lcmAuTFRyYW5zZmVycmVkQXBwcm92ZWQUASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARRvd25lcgQBMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlBAEwVDo6QWNjb3VudElkAAEsZGVzdGluYXRpb24EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABMIMQFBbiBgYW1vdW50YCB3YXMgdHJhbnNmZXJyZWQgaW4gaXRzIGVudGlyZXR5IGZyb20gYG93bmVyYCB0byBgZGVzdGluYXRpb25gIGJ5YHRoZSBhcHByb3ZlZCBgZGVsZWdhdGVgLkhBc3NldFN0YXR1c0NoYW5nZWQEASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAFAT4QW4gYXNzZXQgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5YQXNzZXRNaW5CYWxhbmNlQ2hhbmdlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABPG5ld19taW5fYmFsYW5jZcQBKFQ6OkJhbGFuY2UAFQQBAVRoZSBtaW5fYmFsYW5jZSBvZiBhbiBhc3NldCBoYXMgYmVlbiB1cGRhdGVkIGJ5IHRoZSBhc3NldCBvd25lci4cVG91Y2hlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABJGRlcG9zaXRvcgQBMFQ6OkFjY291bnRJZAAWBPxTb21lIGFjY291bnQgYHdob2Agd2FzIGNyZWF0ZWQgd2l0aCBhIGRlcG9zaXQgZnJvbSBgZGVwb3NpdG9yYC4cQmxvY2tlZAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAAXBHxTb21lIGFjY291bnQgYHdob2Agd2FzIGJsb2NrZWQuJERlcG9zaXRlZAwBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABDHdobwQBMFQ6OkFjY291bnRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAGATcU29tZSBhc3NldHMgd2VyZSBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiRXaXRoZHJhd24MASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAAQx3aG8EATBUOjpBY2NvdW50SWQAARhhbW91bnTEAShUOjpCYWxhbmNlABkEIQFTb21lIGFzc2V0cyB3ZXJlIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciB0cmFuc2FjdGlvbiBmZWVzKS48UmVzZXJ2ZXNVcGRhdGVkCAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEgcmVzZXJ2ZXMlAQFMVmVjPFQ6OlJlc2VydmVEYXRhPgAaBNhSZXNlcnZlIGluZm9ybWF0aW9uIHdhcyBzZXQgb3IgdXBkYXRlZCBmb3IgYGFzc2V0X2lkYC48UmVzZXJ2ZXNSZW1vdmVkBAEgYXNzZXRfaWTgAShUOjpBc3NldElkABsEvFJlc2VydmUgaW5mb3JtYXRpb24gd2FzIHJlbW92ZWQgZm9yIGBhc3NldF9pZGAuMElzc3VlZENyZWRpdAgBIGFzc2V0X2lk4AEoVDo6QXNzZXRJZAABGGFtb3VudMQBKFQ6OkJhbGFuY2UAHATEU29tZSBhc3NldHMgd2VyZSBpc3N1ZWQgYXMgQ3JlZGl0IChubyBvd25lciB5ZXQpLjBCdXJuZWRDcmVkaXQIASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhhbW91bnTEAShUOjpCYWxhbmNlAB0EhFNvbWUgYXNzZXRzIENyZWRpdCB3YXMgZGVzdHJveWVkLihJc3N1ZWREZWJ0CAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAeBLxTb21lIGFzc2V0cyB3ZXJlIGJ1cm5lZCBhbmQgYSBEZWJ0IHdhcyBjcmVhdGVkLihCdXJuZWREZWJ0CAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYYW1vdW50xAEoVDo6QmFsYW5jZQAfBMxTb21lIGFzc2V0cyBEZWJ0IHdhcyBkZXN0cm95ZWQgKGFuZCBhc3NldHMgaXNzdWVkKS4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSVBgxQcGFsbGV0X2Fzc2V0c19ob2xkZXIYcGFsbGV0FEV2ZW50CARUAARJAAEMEEhlbGQQAQx3aG8EATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhyZWFzb25ZBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhhbW91bnTEAShUOjpCYWxhbmNlAAAExGB3aG9gcyBiYWxhbmNlIG9uIGhvbGQgd2FzIGluY3JlYXNlZCBieSBgYW1vdW50YC4gUmVsZWFzZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABKFQ6OkFzc2V0SWQAARhyZWFzb25ZBgFQVDo6UnVudGltZUhvbGRSZWFzb24AARhhbW91bnTEAShUOjpCYWxhbmNlAAEExGB3aG9gcyBiYWxhbmNlIG9uIGhvbGQgd2FzIGRlY3JlYXNlZCBieSBgYW1vdW50YC4YQnVybmVkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWTgAShUOjpBc3NldElkAAEYcmVhc29uWQYBUFQ6OlJ1bnRpbWVIb2xkUmVhc29uAAEYYW1vdW50xAEoVDo6QmFsYW5jZQACBLhgd2hvYHMgYmFsYW5jZSBvbiBob2xkIHdhcyBidXJuZWQgYnkgYGFtb3VudGAuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0mQYMRHBhbGxldF9hc3NldF9yYXRlGHBhbGxldBRFdmVudAQEVAABDEBBc3NldFJhdGVDcmVhdGVkCAEoYXNzZXRfa2luZOABMFQ6OkFzc2V0S2luZAABEHJhdGUtAQEkRml4ZWRVMTI4AAAAQEFzc2V0UmF0ZVJlbW92ZWQEAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEAQEFzc2V0UmF0ZVVwZGF0ZWQMAShhc3NldF9raW5k4AEwVDo6QXNzZXRLaW5kAAEMb2xkLQEBJEZpeGVkVTEyOAABDG5ldy0BASRGaXhlZFUxMjgAAgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSdBgxccGFsbGV0X2Fzc2V0X3R4X3BheW1lbnQYcGFsbGV0FEV2ZW50BARUAAEEOEFzc2V0VHhGZWVQYWlkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEoYWN0dWFsX2ZlZcQBREFzc2V0QmFsYW5jZU9mPFQ+AAEMdGlwxAFEQXNzZXRCYWxhbmNlT2Y8VD4AASBhc3NldF9pZKECAWhPcHRpb248Q2hhcmdlQXNzZXRJZE9mPFQ+PgAACFkBQSB0cmFuc2FjdGlvbiBmZWUgYGFjdHVhbF9mZWVgLCBvZiB3aGljaCBgdGlwYCB3YXMgYWRkZWQgdG8gdGhlIG1pbmltdW0gaW5jbHVzaW9uIGZlZSy4aGFzIGJlZW4gcGFpZCBieSBgd2hvYCBpbiBhbiBhc3NldCBgYXNzZXRfaWRgLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKEGDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFdmVudAQEVAABKEBOZXdJbnZ1bG5lcmFibGVzBAE0aW52dWxuZXJhYmxlc8wBRFZlYzxUOjpBY2NvdW50SWQ+AAAEbE5ldyBJbnZ1bG5lcmFibGVzIHdlcmUgc2V0LkRJbnZ1bG5lcmFibGVBZGRlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAAQR0QSBuZXcgSW52dWxuZXJhYmxlIHdhcyBhZGRlZC5MSW52dWxuZXJhYmxlUmVtb3ZlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAAgRwQW4gSW52dWxuZXJhYmxlIHdhcyByZW1vdmVkLlBOZXdEZXNpcmVkQ2FuZGlkYXRlcwQBSGRlc2lyZWRfY2FuZGlkYXRlczgBDHUzMgADBKRUaGUgbnVtYmVyIG9mIGRlc2lyZWQgY2FuZGlkYXRlcyB3YXMgc2V0LkBOZXdDYW5kaWRhY3lCb25kBAEsYm9uZF9hbW91bnTEATBCYWxhbmNlT2Y8VD4ABARsVGhlIGNhbmRpZGFjeSBib25kIHdhcyBzZXQuOENhbmRpZGF0ZUFkZGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ABQRcQSBuZXcgY2FuZGlkYXRlIGpvaW5lZC5QQ2FuZGlkYXRlQm9uZFVwZGF0ZWQIAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAGBHBCb25kIG9mIGEgY2FuZGlkYXRlIHVwZGF0ZWQuQENhbmRpZGF0ZVJlbW92ZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAcEYEEgY2FuZGlkYXRlIHdhcyByZW1vdmVkLkRDYW5kaWRhdGVSZXBsYWNlZAwBDG9sZAQBMFQ6OkFjY291bnRJZAABDG5ldwQBMFQ6OkFjY291bnRJZAABHGRlcG9zaXTEATBCYWxhbmNlT2Y8VD4ACAT0QW4gYWNjb3VudCB3YXMgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGJ5IGFub3RoZXIgb25lLmhJbnZhbGlkSW52dWxuZXJhYmxlU2tpcHBlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACQhVAUFuIGFjY291bnQgd2FzIHVuYWJsZSB0byBiZSBhZGRlZCB0byB0aGUgSW52dWxuZXJhYmxlcyBiZWNhdXNlIHRoZXkgZGlkIG5vdCBoYXZlIGtleXPIcmVnaXN0ZXJlZC4gT3RoZXIgSW52dWxuZXJhYmxlcyBtYXkgaGF2ZSBiZWVuIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSlBgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50BARUAAEQKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4OAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuJE5ld1F1ZXVlZAABCEkBVGhlIGBOZXdTZXNzaW9uYCBldmVudCBpbiB0aGUgY3VycmVudCBibG9jayBhbHNvIGltcGxpZXMgYSBuZXcgdmFsaWRhdG9yIHNldCB0byBiZRxxdWV1ZWQuRFZhbGlkYXRvckRpc2FibGVkBAEkdmFsaWRhdG9yBAE4VDo6VmFsaWRhdG9ySWQAAgRwVmFsaWRhdG9yIGhhcyBiZWVuIGRpc2FibGVkLkhWYWxpZGF0b3JSZWVuYWJsZWQEASR2YWxpZGF0b3IEAThUOjpWYWxpZGF0b3JJZAADBHhWYWxpZGF0b3IgaGFzIGJlZW4gcmUtZW5hYmxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSpBgxkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAAQQ8WGNtcE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNoCAEcWGNtSGFzaAAABMBBbiBIUk1QIG1lc3NhZ2Ugd2FzIHNlbnQgdG8gYSBzaWJsaW5nIHBhcmFjaGFpbi4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXStBgwocGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAXQkQXR0ZW1wdGVkBAEcb3V0Y29tZbEGAVB4Y206OmxhdGVzdDo6T3V0Y29tZQAABKhFeGVjdXRpb24gb2YgYW4gWENNIG1lc3NhZ2Ugd2FzIGF0dGVtcHRlZC4QU2VudBABGG9yaWdpbuABIExvY2F0aW9uAAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABHG1lc3NhZ2VdAgEcWGNtPCgpPgABKG1lc3NhZ2VfaWQIARxYY21IYXNoAAEEYEFuIFhDTSBtZXNzYWdlIHdhcyBzZW50LihTZW5kRmFpbGVkEAEYb3JpZ2lu4AEgTG9jYXRpb24AASxkZXN0aW5hdGlvbuABIExvY2F0aW9uAAEUZXJyb3K5BgEkU2VuZEVycm9yAAEobWVzc2FnZV9pZAgBHFhjbUhhc2gAAgR4QW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHNlbmQuPFByb2Nlc3NYY21FcnJvcgwBGG9yaWdpbuABIExvY2F0aW9uAAEUZXJyb3KNAgEgWGNtRXJyb3IAAShtZXNzYWdlX2lkCAEcWGNtSGFzaAADBIRBbiBYQ00gbWVzc2FnZSBmYWlsZWQgdG8gcHJvY2Vzcy5IVW5leHBlY3RlZFJlc3BvbnNlCAEYb3JpZ2lu4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQABAxZAVF1ZXJ5IHJlc3BvbnNlIHJlY2VpdmVkIHdoaWNoIGRvZXMgbm90IG1hdGNoIGEgcmVnaXN0ZXJlZCBxdWVyeS4gVGhpcyBtYXkgYmUgYmVjYXVzZSBhVQFtYXRjaGluZyBxdWVyeSB3YXMgbmV2ZXIgcmVnaXN0ZXJlZCwgaXQgbWF5IGJlIGJlY2F1c2UgaXQgaXMgYSBkdXBsaWNhdGUgcmVzcG9uc2UsIG9ycGJlY2F1c2UgdGhlIHF1ZXJ5IHRpbWVkIG91dC40UmVzcG9uc2VSZWFkeQgBIHF1ZXJ5X2lkKAEcUXVlcnlJZAABIHJlc3BvbnNlgQIBIFJlc3BvbnNlAAUIXQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgaXMgcmVhZHkgZm9yIHRha2luZyB3aXRoIGB0YWtlX3Jlc3BvbnNlYC4gVGhlcmUgaXOAbm8gcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gY2FsbC4gTm90aWZpZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAGCFkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvbiBoYXOoYmVlbiBkaXNwYXRjaGVkIGFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkuQE5vdGlmeU92ZXJ3ZWlnaHQUASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAABNGFjdHVhbF93ZWlnaHTVAQEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodNUBARhXZWlnaHQABwxJAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb25ZAWNvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGJlY2F1c2UgdGhlIGRpc3BhdGNoIHdlaWdodCBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gd2VpZ2h05G9yaWdpbmFsbHkgYnVkZ2V0ZWQgYnkgdGhpcyBydW50aW1lIGZvciB0aGUgcXVlcnkgcmVzdWx0LkxOb3RpZnlEaXNwYXRjaEVycm9yDAEgcXVlcnlfaWQoARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgACAhVAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGVyZSB3YXMgYSBnZW5lcmFsIGVycm9yIHdpdGiIZGlzcGF0Y2hpbmcgdGhlIG5vdGlmaWNhdGlvbiBjYWxsLkhOb3RpZnlEZWNvZGVGYWlsZWQMASBxdWVyeV9pZCgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgMAQh1OAABKGNhbGxfaW5kZXgMAQh1OAAJDFEBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSBkaXNwYXRjaCB3YXMgdW5hYmxlIHRvIGJlWQFkZWNvZGVkIGludG8gYSBgQ2FsbGA7IHRoaXMgbWlnaHQgYmUgZHVlIHRvIGRpc3BhdGNoIGZ1bmN0aW9uIGhhdmluZyBhIHNpZ25hdHVyZSB3aGljaJRpcyBub3QgYChvcmlnaW4sIFF1ZXJ5SWQsIFJlc3BvbnNlKWAuQEludmFsaWRSZXNwb25kZXIMARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAABRGV4cGVjdGVkX2xvY2F0aW9uoQIBQE9wdGlvbjxMb2NhdGlvbj4ACgxZAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgb3JpZ2luIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzVQFub3QgbWF0Y2ggdGhhdCBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlxJbnZhbGlkUmVzcG9uZGVyVmVyc2lvbggBGG9yaWdpbuABIExvY2F0aW9uAAEgcXVlcnlfaWQoARxRdWVyeUlkAAscUQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIG9yaWdpbiBsb2NhdGlvbiBwbGFjZWQgaW5NAXN0b3JhZ2UgYnkgdGhpcyBydW50aW1lIHByZXZpb3VzbHkgY2Fubm90IGJlIGRlY29kZWQuIFRoZSBxdWVyeSByZW1haW5zIHJlZ2lzdGVyZWQuAEEBVGhpcyBpcyB1bmV4cGVjdGVkIChzaW5jZSBhIGxvY2F0aW9uIHBsYWNlZCBpbiBzdG9yYWdlIGluIGEgcHJldmlvdXNseSBleGVjdXRpbmdNAXJ1bnRpbWUgc2hvdWxkIGJlIHJlYWRhYmxlIHByaW9yIHRvIHF1ZXJ5IHRpbWVvdXQpIGFuZCBkYW5nZXJvdXMgc2luY2UgdGhlIHBvc3NpYmx5WQF2YWxpZCByZXNwb25zZSB3aWxsIGJlIGRyb3BwZWQuIE1hbnVhbCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyBwcm9iYWJseSBnb2luZyB0byBiZRxuZWVkZWQuNFJlc3BvbnNlVGFrZW4EASBxdWVyeV9pZCgBHFF1ZXJ5SWQADATIUmVjZWl2ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVhZCBhbmQgcmVtb3ZlZC40QXNzZXRzVHJhcHBlZAwBEGhhc2g8ARBIMjU2AAEYb3JpZ2lu4AEgTG9jYXRpb24AARhhc3NldHPZAgE8VmVyc2lvbmVkQXNzZXRzAA0EuFNvbWUgYXNzZXRzIGhhdmUgYmVlbiBwbGFjZWQgaW4gYW4gYXNzZXQgdHJhcC5UVmVyc2lvbkNoYW5nZU5vdGlmaWVkEAEsZGVzdGluYXRpb27gASBMb2NhdGlvbgABGHJlc3VsdDgBKFhjbVZlcnNpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoAA4MJQFBbiBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9uIG1lc3NhZ2UgaGFzIGJlZW4gYXR0ZW1wdGVkIHRvIGJlIHNlbnQuAOBUaGUgY29zdCBvZiBzZW5kaW5nIGl0IChib3JuZSBieSB0aGUgY2hhaW4pIGlzIGluY2x1ZGVkLlxTdXBwb3J0ZWRWZXJzaW9uQ2hhbmdlZAgBIGxvY2F0aW9u4AEgTG9jYXRpb24AARx2ZXJzaW9uOAEoWGNtVmVyc2lvbgAPCDkBVGhlIHN1cHBvcnRlZCB2ZXJzaW9uIG9mIGEgbG9jYXRpb24gaGFzIGJlZW4gY2hhbmdlZC4gVGhpcyBtaWdodCBiZSB0aHJvdWdoIGFuwGF1dG9tYXRpYyBub3RpZmljYXRpb24gb3IgYSBtYW51YWwgaW50ZXJ2ZW50aW9uLlBOb3RpZnlUYXJnZXRTZW5kRmFpbAwBIGxvY2F0aW9u4AEgTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAARRlcnJvco0CASBYY21FcnJvcgAQCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3J8c2VuZGluZyB0aGUgbm90aWZpY2F0aW9uIHRvIGl0LmROb3RpZnlUYXJnZXRNaWdyYXRpb25GYWlsCAEgbG9jYXRpb25JAQFEVmVyc2lvbmVkTG9jYXRpb24AASBxdWVyeV9pZCgBHFF1ZXJ5SWQAEQhZAUEgZ2l2ZW4gbG9jYXRpb24gd2hpY2ggaGFkIGEgdmVyc2lvbiBjaGFuZ2Ugc3Vic2NyaXB0aW9uIHdhcyBkcm9wcGVkIG93aW5nIHRvIGFuIGVycm9ytG1pZ3JhdGluZyB0aGUgbG9jYXRpb24gdG8gb3VyIG5ldyBYQ00gZm9ybWF0LlRJbnZhbGlkUXVlcmllclZlcnNpb24IARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAASHFUBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBleHBlY3RlZCBxdWVyaWVyIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC44SW52YWxpZFF1ZXJpZXIQARhvcmlnaW7gASBMb2NhdGlvbgABIHF1ZXJ5X2lkKAEcUXVlcnlJZAABQGV4cGVjdGVkX3F1ZXJpZXLgASBMb2NhdGlvbgABUG1heWJlX2FjdHVhbF9xdWVyaWVyoQIBQE9wdGlvbjxMb2NhdGlvbj4AEwxdAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgcXVlcmllciBsb2NhdGlvbiBvZiB0aGUgcmVzcG9uc2UgZG9lc1EBbm90IG1hdGNoIHRoZSBleHBlY3RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZCBmb3IgYSBsYXRlciwgdmFsaWQsIHJlc3BvbnNlIHRvbGJlIHJlY2VpdmVkIGFuZCBhY3RlZCB1cG9uLlBWZXJzaW9uTm90aWZ5U3RhcnRlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABQIWQFBIHJlbW90ZSBoYXMgcmVxdWVzdGVkIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gZnJvbSB1cyBhbmQgd2UgaGF2ZSBob25vcmVkIGl0Lh0BQSB2ZXJzaW9uIGluZm9ybWF0aW9uIG1lc3NhZ2UgaXMgc2VudCB0byB0aGVtIGFuZCBpdHMgY29zdCBpcyBpbmNsdWRlZC5YVmVyc2lvbk5vdGlmeVJlcXVlc3RlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABUEPQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHNlbmQgdXMgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbnMuYFZlcnNpb25Ob3RpZnlVbnJlcXVlc3RlZAwBLGRlc3RpbmF0aW9u4AEgTG9jYXRpb24AARBjb3N0aQIBGEFzc2V0cwABKG1lc3NhZ2VfaWQIARxYY21IYXNoABYIJQFXZSBoYXZlIHJlcXVlc3RlZCB0aGF0IGEgcmVtb3RlIGNoYWluIHN0b3BzIHNlbmRpbmcgdXMgWENNIHZlcnNpb24gY2hhbmdlOG5vdGlmaWNhdGlvbnMuIEZlZXNQYWlkCAEYcGF5aW5n4AEgTG9jYXRpb24AARBmZWVzaQIBGEFzc2V0cwAXBDEBRmVlcyB3ZXJlIHBhaWQgZnJvbSBhIGxvY2F0aW9uIGZvciBhbiBvcGVyYXRpb24gKG9mdGVuIGZvciB1c2luZyBgU2VuZFhjbWApLjRBc3NldHNDbGFpbWVkDAEQaGFzaDwBEEgyNTYAARhvcmlnaW7gASBMb2NhdGlvbgABGGFzc2V0c9kCATxWZXJzaW9uZWRBc3NldHMAGATAU29tZSBhc3NldHMgaGF2ZSBiZWVuIGNsYWltZWQgZnJvbSBhbiBhc3NldCB0cmFwYFZlcnNpb25NaWdyYXRpb25GaW5pc2hlZAQBHHZlcnNpb244AShYY21WZXJzaW9uABkEhEEgWENNIHZlcnNpb24gbWlncmF0aW9uIGZpbmlzaGVkLjxBbGlhc0F1dGhvcml6ZWQMARxhbGlhc2Vy4AEgTG9jYXRpb24AARh0YXJnZXTgASBMb2NhdGlvbgABGGV4cGlyeRUDASxPcHRpb248dTY0PgAaCF0BQW4gYGFsaWFzZXJgIGxvY2F0aW9uIHdhcyBhdXRob3JpemVkIGJ5IGB0YXJnZXRgIHRvIGFsaWFzIGl0LCBhdXRob3JpemF0aW9uIHZhbGlkIHVudGlsWGBleHBpcnlgIGJsb2NrIG51bWJlci5kQWxpYXNBdXRob3JpemF0aW9uUmVtb3ZlZAgBHGFsaWFzZXLgASBMb2NhdGlvbgABGHRhcmdldOABIExvY2F0aW9uABsEzGB0YXJnZXRgIHJlbW92ZWQgYWxpYXMgYXV0aG9yaXphdGlvbiBmb3IgYGFsaWFzZXJgLnBBbGlhc2VzQXV0aG9yaXphdGlvbnNSZW1vdmVkBAEYdGFyZ2V04AEgTG9jYXRpb24AHASoYHRhcmdldGAgcmVtb3ZlZCBhbGwgYWxpYXMgYXV0aG9yaXphdGlvbnMuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0sQYQLHN0YWdpbmdfeGNtCHY1GHRyYWl0cxxPdXRjb21lAAEMIENvbXBsZXRlBAEQdXNlZNUBARhXZWlnaHQAAAAoSW5jb21wbGV0ZQgBEHVzZWTVAQEYV2VpZ2h0AAEUZXJyb3K1BgFASW5zdHJ1Y3Rpb25FcnJvcgABABRFcnJvcgQAtQYBQEluc3RydWN0aW9uRXJyb3IAAgAAtQYQLHN0YWdpbmdfeGNtCHY1GHRyYWl0c0BJbnN0cnVjdGlvbkVycm9yAAAIARRpbmRleAwBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvco0CARRFcnJvcgAAuQYQDHhjbQh2Mxh0cmFpdHMkU2VuZEVycm9yAAEcNE5vdEFwcGxpY2FibGUAAAAkVHJhbnNwb3J0AAEAKFVucm91dGFibGUAAgBYRGVzdGluYXRpb25VbnN1cHBvcnRlZAADAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUABAA8TWlzc2luZ0FyZ3VtZW50AAUAEEZlZXMABgAAvQYMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAQw0SW52YWxpZEZvcm1hdAQACAEgW3U4OyAzMl0AAAiARG93bndhcmQgbWVzc2FnZSBpcyBpbnZhbGlkIFhDTS4gXFsgaWQgXF1IVW5zdXBwb3J0ZWRWZXJzaW9uBAAIASBbdTg7IDMyXQABCLxEb3dud2FyZCBtZXNzYWdlIGlzIHVuc3VwcG9ydGVkIHZlcnNpb24gb2YgWENNLiBcWyBpZCBcXUBFeGVjdXRlZERvd253YXJkCAAIASBbdTg7IDMyXQAAsQYBHE91dGNvbWUAAgjERG93bndhcmQgbWVzc2FnZSBleGVjdXRlZCB3aXRoIHRoZSBnaXZlbiBvdXRjb21lLkRcWyBpZCwgb3V0Y29tZSBcXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldMEGDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAARBAUHJvY2Vzc2luZ0ZhaWxlZAwBCGlkPAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEUZXJyb3LFBgFMUHJvY2Vzc01lc3NhZ2VFcnJvchBgVGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuAEkBVGhpcyBlcnJvciBpcyBwcmV0dHkgb3BhcXVlLiBNb3JlIGZpbmUtZ3JhaW5lZCBlcnJvcnMgbmVlZCB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgAEVQFNZXNzYWdlIGRpc2NhcmRlZCBkdWUgdG8gYW4gZXJyb3IgaW4gdGhlIGBNZXNzYWdlUHJvY2Vzc29yYCAodXN1YWxseSBhIGZvcm1hdCBlcnJvcikuJFByb2Nlc3NlZBABCGlkPAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2luIQMBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEsd2VpZ2h0X3VzZWTVAQEYV2VpZ2h0BMBIb3cgbXVjaCB3ZWlnaHQgd2FzIHVzZWQgdG8gcHJvY2VzcyB0aGUgbWVzc2FnZS4BHHN1Y2Nlc3PIARBib29sGIhXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuAEkBTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB1bmRlcmx5aW5nIGBNZXNzYWdlUHJvY2Vzc29yYCB3YXMgaW50ZXJuYWxseTUBc3VjY2Vzc2Z1bC4gSXQgKnNvbGVseSogbWVhbnMgdGhhdCB0aGUgTVEgcGFsbGV0IHdpbGwgdHJlYXQgdGhpcyBhcyBhIHN1Y2Nlc3NNAWNvbmRpdGlvbiBhbmQgZGlzY2FyZCB0aGUgbWVzc2FnZS4gQW55IGludGVybmFsIGVycm9yIG5lZWRzIHRvIGJlIGVtaXR0ZWQgYXMgZXZlbnRzaGJ5IHRoZSBgTWVzc2FnZVByb2Nlc3NvcmAuAQRUTWVzc2FnZSBpcyBwcm9jZXNzZWQuSE92ZXJ3ZWlnaHRFbnF1ZXVlZBABCGlkCAEgW3U4OyAzMl0ElFRoZSBgYmxha2UyXzI1NmAgaGFzaCBvZiB0aGUgbWVzc2FnZS4BGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EZFRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZS4BKHBhZ2VfaW5kZXg4ASRQYWdlSW5kZXgEYFRoZSBwYWdlIG9mIHRoZSBtZXNzYWdlLgE0bWVzc2FnZV9pbmRleDgBHFQ6OlNpemUEpFRoZSBpbmRleCBvZiB0aGUgbWVzc2FnZSB3aXRoaW4gdGhlIHBhZ2UuAgSMTWVzc2FnZSBwbGFjZWQgaW4gb3ZlcndlaWdodCBxdWV1ZS4oUGFnZVJlYXBlZAgBGG9yaWdpbiEDAUhNZXNzYWdlT3JpZ2luT2Y8VD4EWFRoZSBxdWV1ZSBvZiB0aGUgcGFnZS4BFGluZGV4OAEkUGFnZUluZGV4BFhUaGUgaW5kZXggb2YgdGhlIHBhZ2UuAwRUVGhpcyBwYWdlIHdhcyByZWFwZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0xQYQNGZyYW1lX3N1cHBvcnQYdHJhaXRzIG1lc3NhZ2VzTFByb2Nlc3NNZXNzYWdlRXJyb3IAARgkQmFkRm9ybWF0AAAAHENvcnJ1cHQAAQAsVW5zdXBwb3J0ZWQAAgAoT3ZlcndlaWdodAQA1QEBGFdlaWdodAADABRZaWVsZAAEAERTdGFja0xpbWl0UmVhY2hlZAAFAADJBgw4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEgQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleDgBDHUzMgABFGVycm9yNQYBNERpc3BhdGNoRXJyb3IAAAhVAUJhdGNoIG9mIGRpc3BhdGNoZXMgZGlkIG5vdCBjb21wbGV0ZSBmdWxseS4gSW5kZXggb2YgZmlyc3QgZmFpbGluZyBkaXNwYXRjaCBnaXZlbiwgYXNId2VsbCBhcyB0aGUgZXJyb3IuOEJhdGNoQ29tcGxldGVkAAEEyEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGZ1bGx5IHdpdGggbm8gZXJyb3IuYEJhdGNoQ29tcGxldGVkV2l0aEVycm9ycwACBLRCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBidXQgaGFzIGVycm9ycy40SXRlbUNvbXBsZXRlZAADBB0BQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBubyBlcnJvci4oSXRlbUZhaWxlZAQBFGVycm9yNQYBNERpc3BhdGNoRXJyb3IABAQRAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggZXJyb3IuMERpc3BhdGNoZWRBcwQBGHJlc3VsdM0GAThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuRElmRWxzZU1haW5TdWNjZXNzAAYEZE1haW4gY2FsbCB3YXMgZGlzcGF0Y2hlZC5QSWZFbHNlRmFsbGJhY2tDYWxsZWQEAShtYWluX2Vycm9yNQYBNERpc3BhdGNoRXJyb3IABwSEVGhlIGZhbGxiYWNrIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0zQYEGFJlc3VsdAgEVAEQBEUBNQYBCAhPawQAEAAAAAAMRXJyBAA1BgAAAQAA0QYMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXZlbnQEBFQAARQsTmV3TXVsdGlzaWcMASRhcHByb3ZpbmcEATBUOjpBY2NvdW50SWQAASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAAEjEEgbmV3IG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVndW4uQE11bHRpc2lnQXBwcm92YWwQASRhcHByb3ZpbmcEATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnSZAwFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAAQTIQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQgYnkgc29tZW9uZS5ATXVsdGlzaWdFeGVjdXRlZBQBJGFwcHJvdmluZwQBMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludJkDAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gIASBDYWxsSGFzaAABGHJlc3VsdM0GAThEaXNwYXRjaFJlc3VsdAACBJxBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBleGVjdXRlZC5ETXVsdGlzaWdDYW5jZWxsZWQQAShjYW5jZWxsaW5nBAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW50mQMBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwQBMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAgBIENhbGxIYXNoAAMEoEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZC4wRGVwb3NpdFBva2VkEAEMd2hvBAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoCAEgQ2FsbEhhc2gAASxvbGRfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgABLG5ld19kZXBvc2l0xAEwQmFsYW5jZU9mPFQ+AAQE8FRoZSBkZXBvc2l0IGZvciBhIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiB1cGRhdGVkL3Bva2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUGDCxwYWxsZXRfc3VkbxhwYWxsZXQURXZlbnQEBFQAARAUU3VkaWQEASxzdWRvX3Jlc3VsdM0GAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAARwQSBzdWRvIGNhbGwganVzdCB0b29rIHBsYWNlLihLZXlDaGFuZ2VkCAEMb2xk2QYBUE9wdGlvbjxUOjpBY2NvdW50SWQ+BLRUaGUgb2xkIHN1ZG8ga2V5IChpZiBvbmUgd2FzIHByZXZpb3VzbHkgc2V0KS4BDG5ldwQBMFQ6OkFjY291bnRJZASIVGhlIG5ldyBzdWRvIGtleSAoaWYgb25lIHdhcyBzZXQpLgEEeFRoZSBzdWRvIGtleSBoYXMgYmVlbiB1cGRhdGVkLihLZXlSZW1vdmVkAAIEgFRoZSBrZXkgd2FzIHBlcm1hbmVudGx5IHJlbW92ZWQuKFN1ZG9Bc0RvbmUEASxzdWRvX3Jlc3VsdM0GAThEaXNwYXRjaFJlc3VsdAS0VGhlIHJlc3VsdCBvZiB0aGUgY2FsbCBtYWRlIGJ5IHRoZSBzdWRvIHVzZXIuAwTIQSBbc3Vkb19hc10oUGFsbGV0OjpzdWRvX2FzKSBjYWxsIGp1c3QgdG9vayBwbGFjZS4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTZBgQYT3B0aW9uBARUAQQBCBBOb25lAAAAEFNvbWUEAAQAAAEAAN0GDDBwYWxsZXRfcHJveHkYcGFsbGV0FEV2ZW50BARUAAEcNFByb3h5RXhlY3V0ZWQEARhyZXN1bHTNBgE4RGlzcGF0Y2hSZXN1bHQAAAS8QSBwcm94eSB3YXMgZXhlY3V0ZWQgY29ycmVjdGx5LCB3aXRoIHRoZSBnaXZlbi4sUHVyZUNyZWF0ZWQYARBwdXJlBAEwVDo6QWNjb3VudElkAAEMd2hvBAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZakDATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleC0DAQx1MTYAAQhhdDgBREJsb2NrTnVtYmVyRm9yPFQ+AAE8ZXh0cmluc2ljX2luZGV4OAEMdTMyAAEI3EEgcHVyZSBhY2NvdW50IGhhcyBiZWVuIGNyZWF0ZWQgYnkgbmV3IHByb3h5IHdpdGggZ2l2ZW6QZGlzYW1iaWd1YXRpb24gaW5kZXggYW5kIHByb3h5IHR5cGUuKFB1cmVLaWxsZWQQARBwdXJlBAEwVDo6QWNjb3VudElkAAEcc3Bhd25lcgQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXgtAwEMdTE2AAIEnEEgcHVyZSBwcm94eSB3YXMga2lsbGVkIGJ5IGl0cyBzcGF3bmVyLiRBbm5vdW5jZWQMARByZWFsBAEwVDo6QWNjb3VudElkAAEUcHJveHkEATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2g8ATRDYWxsSGFzaE9mPFQ+AAME4EFuIGFubm91bmNlbWVudCB3YXMgcGxhY2VkIHRvIG1ha2UgYSBjYWxsIGluIHRoZSBmdXR1cmUuKFByb3h5QWRkZWQQASRkZWxlZ2F0b3IEATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUEATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBlqQMBMFQ6OlByb3h5VHlwZQABFGRlbGF5OAFEQmxvY2tOdW1iZXJGb3I8VD4ABARIQSBwcm94eSB3YXMgYWRkZWQuMFByb3h5UmVtb3ZlZBABJGRlbGVnYXRvcgQBMFQ6OkFjY291bnRJZAABJGRlbGVnYXRlZQQBMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGWpAwEwVDo6UHJveHlUeXBlAAEUZGVsYXk4AURCbG9ja051bWJlckZvcjxUPgAFBFBBIHByb3h5IHdhcyByZW1vdmVkLjBEZXBvc2l0UG9rZWQQAQx3aG8EATBUOjpBY2NvdW50SWQAARBraW5k4QYBLERlcG9zaXRLaW5kAAEsb2xkX2RlcG9zaXTEATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdMQBMEJhbGFuY2VPZjxUPgAGBAkBQSBkZXBvc2l0IHN0b3JlZCBmb3IgcHJveGllcyBvciBhbm5vdW5jZW1lbnRzIHdhcyBwb2tlZCAvIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV04QYIMHBhbGxldF9wcm94eSxEZXBvc2l0S2luZAABCBxQcm94aWVzAAAANEFubm91bmNlbWVudHMAAQAA5QYMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0FEV2ZW50BARUAAEoUFBlcnNvbmhvb2RSZWNvZ25pemVkCAEMd2hvKAEoUGVyc29uYWxJZAABDGtleQgBLE1lbWJlck9mPFQ+AAAE+EFuIGluZGl2aWR1YWwgaGFzIGhhZCB0aGVpciBwZXJzb25ob29kIHJlY29nbmlzZWQgYW5kIGluZGV4ZWQuQFBlcnNvbk9uYm9hcmRpbmcIAQx3aG8oAShQZXJzb25hbElkAAEMa2V5CAEsTWVtYmVyT2Y8VD4AAQQRAUFuIGluZGl2aWR1YWwgaGFzIGhhZCB0aGVpciBwZXJzb25ob29kIHJlY29nbmlzZWQgYWdhaW4gYW5kIGluZGV4ZWQuPEFsaWFzRGlzcGF0Y2hlZAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQAAgSUQSBjYWxsIHdhcyBkaXNwYXRjaGVkIHVuZGVyIGFuIGFsaWFzLjxBbGlhc0FjY291bnRTZXQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAMEvEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgc2V0IG9yIHVwZGF0ZWQuREFsaWFzQWNjb3VudFVuc2V0CAEUYWxpYXNJAwE8Q29udGV4dHVhbEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAEBKBBbiBhbGlhcy10by1hY2NvdW50IG1hcHBpbmcgd2FzIHJlbW92ZWQuUFBlcnNvbmFsSWRBY2NvdW50U2V0CAEMd2hvKAEoUGVyc29uYWxJZAABHGFjY291bnQEATBUOjpBY2NvdW50SWQABQTQQSBwZXJzb25hbCBJRC10by1hY2NvdW50IG1hcHBpbmcgd2FzIHNldCBvciB1cGRhdGVkLlhQZXJzb25hbElkQWNjb3VudFVuc2V0CAEMd2hvKAEoUGVyc29uYWxJZAABHGFjY291bnQEATBUOjpBY2NvdW50SWQABgS0QSBwZXJzb25hbCBJRC10by1hY2NvdW50IG1hcHBpbmcgd2FzIHJlbW92ZWQuRENvbGxlY3Rpb25DcmVhdGVkAAcEiFRoZSBwZW9wbGUgY29sbGVjdGlvbiB3YXMgY3JlYXRlZC5kRm9yY2VQZXJzb25ob29kUmVjb2duaXplZAQBGHBlb3BsZbEDAUBWZWM8TWVtYmVyT2Y8VD4+AAgEtFBlcnNvbmhvb2Qgd2FzIGZvcmNlZnVsbHkgcmVjb2duaXplZCBieSByb290LjhBbGlhc0NsZWFuZWRVcAgBFGFsaWFzSQMBPENvbnRleHR1YWxBbGlhcwABHGFjY291bnQEATBUOjpBY2NvdW50SWQACQSsQW4gYWxpYXMtdG8tYWNjb3VudCBtYXBwaW5nIHdhcyBjbGVhbmVkIHVwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOkGDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0FEV2ZW50BARUAAFELENhc2VDcmVhdGVkBAEoY2FzZV9pbmRleDgBJENhc2VJbmRleASAVGhlIGNhc2UgaW5kZXggdGhhdCB3YXMgY3JlYXRlZC4ABGBBIGNhc2UgaGFzIGJlZW4gY3JlYXRlZC4gQ2FsbGJhY2sEARhyZXN1bHTNBgE4RGlzcGF0Y2hSZXN1bHQEbFRoZSByZXN1bHQgb2YgdGhlIGNhbGxiYWNrLgEEnEEgY2FsbGJhY2sgd2FzIHRyaWdnZXJlZCBmcm9tIG1vYi1ydWxlLjRDYWxsYmFja0Vycm9yCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleASkVGhlIGNhc2Ugd2hvc2UgY2FsbGJhY2sgZmFpbGVkIHRvIGRlY29kZS4BHHRyaWdnZXLtBgE8Q2FsbGJhY2tUcmlnZ2VyBBEBVGhlIG1vYi1ydWxlIGV4dHJpbnNpYyBjYWxsIHdoaWNoIGF0dGVtcHRlZCB0byB0cmlnZ2VyIHRoZSBjYWxsYmFjay4CBAEBVGhlcmUgd2FzIGEgY29kZWMgZXJyb3Igd2hlbiB0cnlpbmcgdG8gZGVjb2RlIHRoZSBjYWxsYmFjayBjYWxsLihDYXNlQ2xvc2VkCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleAR8VGhlIGNhc2UgaW5kZXggdGhhdCB3YXMgY2xvc2VkLgEcdmVyZGljdMEDASRKdWRnZW1lbnQEfFRoZSB2ZXJkaWN0IG9mIHRoZSBjbG9zZWQgY2FzZS4DBMxUaGUgY2FzZSBoYXMgYmVlbiBjbG9zZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdC4UVm90ZWQMAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BEhUaGUgY2FzZSB2b3RlZCBvbi4BFHZvdGVyCAEUQWxpYXMEVFRoZSBhbGlhcyB0aGF0IHZvdGVkLgEcb3BpbmlvbsEDASRKdWRnZW1lbnQEZFRoZSBvcGluaW9uIG9mIHRoZSB2b3Rlci4EBIRBIHZvdGUgaGFzIGJlZW4gcGxhY2VkIG9uIGEgY2FzZS4sVm90ZUNsZWFuZWQIAShjYXNlX2luZGV4OAEkQ2FzZUluZGV4BEhUaGUgY2FzZSB2b3RlZCBvbi4BFHZvdGVyCAEUQWxpYXMEVFRoZSBhbGlhcyB0aGF0IHZvdGVkLgUEYEEgdm90ZSBoYXMgYmVlbiBjbGVhbmVkLixDYXNlUmVtb3ZlZAQBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgESFRoZSBjYXNlIHZvdGVkIG9uLgYEYEEgY2FzZSBoYXMgYmVlbiByZW1vdmVkLjhDYXNlSW50ZXJ2ZW5lZAgBKGNhc2VfaW5kZXg4ASRDYXNlSW5kZXgEiFRoZSBjYXNlIHRoYXQgaGFzIGJlZW4gaW50ZXJ2ZW5lZC4BHHZlcmRpY3TBAwEkSnVkZ2VtZW50BIBUaGUgdmVyZGljdCBhcHBsaWVkIHRvIHRoZSBjYXNlLgcEbEEgY2FzZSBoYXMgYmVlbiBpbnRlcnZlbmVkLjBWb3Rlc0NsYWltZWQIARR2b3RlcggBFEFsaWFzBFRUaGUgYWxpYXMgdGhhdCB2b3RlZC4BMGNhc2VfaW5kaWNlc8kDAThWZWM8Q2FzZUluZGV4PgSIVGhlIGNhc2UgdGhhdCBoYXMgYmVlbiBpbnRlcnZlbmVkLggEkENyZWRpdHMgZm9yIHZvdGVzIGhhdmUgYmVlbiBjbGFpbWVkLjBSZXdhcmRQYXlvdXQMARR2b3RlcggBFEFsaWFzBHxUaGUgYWxpYXMgdGhhdCBlYXJuZWQgYSByZXdhcmQuASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAScVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSBwYXlvdXQuARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EnFRoZSBwYXlvdXQgYW1vdW50IHRoYXQgd2FzIHRyYW5zZmVycmVkLgkEgEEgcmV3YXJkIHRoYXQgaGFzIGJlZW4gcGFpZCBvdXQuSFBheW91dFJvdW5kU3RhcnRlZAwBFHJvdW5kOAEoUm91bmRJbmRleASIVGhlIGluZGV4IG9mIHRoZSBuZXcgcGF5b3V0IHJvdW5kLgE8aW5pdGlhbF9iYWxhbmNlxAEwQmFsYW5jZU9mPFQ+BLBUaGUgaW5pdGlhbCBiYWxhbmNlIGFsbG9jYXRlZCBmb3IgdGhlIHJvdW5kLgEwdG90YWxfcG9pbnRzKAEkVm90ZUNvdW50BMRUb3RhbCBhY2N1bXVsYXRlZCBwb2ludHMgY2xhaW1hYmxlIGluIHRoaXMgcm91bmQuCgSQQSBuZXcgcGF5b3V0IHJvdW5kIGhhcyBiZWVuIHN0YXJ0ZWQuVFBheW91dFJvdW5kc1NjaGVkdWxlZAwBGGFtb3VudMQBMEJhbGFuY2VPZjxUPgR4VGhlIGFtb3VudCBvZiBmdW5kcyBwZXIgcm91bmQuARRjb3VudDgBDHUzMgR8VGhlIG51bWJlciBvZiByb3VuZHMgc2NoZWR1bGVkLgEYcGVyaW9kOAFEQmxvY2tOdW1iZXJGb3I8VD4EuFRoZSBtaW5pbXVtIHBlcmlvZCAoaW4gYmxvY2tzKSBiZXR3ZWVuIHJvdW5kcy4LBIhQYXlvdXQgcm91bmRzIGhhdmUgYmVlbiBzY2hlZHVsZWQuVFBheW91dFNjaGVkdWxlUmVtb3ZlZAQBFGluZGV4OAEMdTMyBIhUaGUgaW5kZXggb2YgdGhlIHJlbW92ZWQgc2NoZWR1bGUuDASMQSBwYXlvdXQgc2NoZWR1bGUgaGFzIGJlZW4gcmVtb3ZlZC40Q3JlZGl0Q2xhaW1lZAgBFHZvdGVyCAEUQWxpYXMEjFRoZSBhbGlhcyBvZiB0aGUgdm90ZXIgd2hvIGNsYWltZWQuARhhbW91bnTEATBCYWxhbmNlT2Y8VD4EdFRoZSBhbW91bnQgb2YgY3JlZGl0IGNsYWltZWQuDQTUQ3JlZGl0IGhhcyBiZWVuIGNsYWltZWQgZnJvbSB0aGUgcGF5b3V0IGRpc3RyaWJ1dGlvbi40UG9pbnRzQ2xlYW5lZAgBFHJvdW5kOAEoUm91bmRJbmRleAS8VGhlIHJvdW5kIGluZGV4IGZyb20gd2hpY2ggcG9pbnRzIHdlcmUgcmVtb3ZlZC4BFHZvdGVyCAEUQWxpYXMEkFRoZSBhbGlhcyB3aG9zZSBwb2ludHMgd2VyZSByZW1vdmVkLg4EmFN0YWxlIHZvdGluZyBwb2ludHMgaGF2ZSBiZWVuIGNsZWFuZWQuLENhc2VUb3VjaGVkCAEoY2FzZV9pbmRleDgBJENhc2VJbmRleARoVGhlIGNhc2UgdGhhdCB3YXMgdG91Y2hlZC4BHHJpcGVuZWTIARBib29sBKRXaGV0aGVyIHRoZSBjYXNlIHdhcyByaXBlbmVkIGFzIGEgcmVzdWx0Lg8EnEEgY2FzZSBoYXMgYmVlbiB0b3VjaGVkIChyZS1ldmFsdWF0ZWQpLlBWb3RpbmdQZW5hbHR5Q2xlYXJlZAQBDHdobwgBFEFsaWFzBJBUaGUgYWxpYXMgd2hvc2UgcGVuYWx0eSB3YXMgY2xlYXJlZC4QBIhBIHZvdGluZyBwZW5hbHR5IGhhcyBiZWVuIGNsZWFyZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV07QYMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQ8Q2FsbGJhY2tUcmlnZ2VyAAEIJENsb3NlQ2FzZQAAACRJbnRlcnZlbmUAAQAA8QYMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0FEV2ZW50BARUAAFcQENhbmRpZGF0ZUFwcGxpZWQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAAEjENhbmRpZGF0ZSBhcHBsaWVkIGZvciB2ZXJpZmljYXRpb24uSEp1ZGdlbWVudFJlcXVlc3RlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAAQQFAUNhbmRpZGF0ZSBvcGVuZWQgYSBNb2IgUnVsZSBjYXNlIGZvciB0aGVpciB2ZXJpZmljYXRpb24gZXZpZGVuY2UuREp1ZGdlbWVudFByb3ZpZGVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABJGp1ZGdlbWVudMEDASRKdWRnZW1lbnQAAgTYT3JhY2xlIGhhcyBwcm92aWRlZCB0aGUganVkZ2VtZW50IGZvciBhIE1vYiBSdWxlIGNhc2UuMFJldHJ5R3JhbnRlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASBmYWlsdXJlczgBDHUzMgADCEUBQSBjYW5kaWRhdGUgaGFzIGJlZW4gZ3JhbnRlZCBhIGZyZWUgcmV0cnkgYXR0ZW1wdCBhZnRlciBhIGZhaWx1cmUgdG8gdmVyaWZ5IHRoZWlyJGV2aWRlbmNlLkBQZXJzb25SZWdpc3RlcmVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABLHBlcnNvbmFsX2lkKAEoUGVyc29uYWxJZAAEBIBSZWdpc3RlciBhbiBhY2NvdW50IGFzIGEgcGVyc29uLkRDYW5kaWRhdGVSZWZlcnJlZAgBIHJlZmVycmVyKAEoUGVyc29uYWxJZAABIHJlZmVycmVkBAEwVDo6QWNjb3VudElkAAUEbFBlcnNvbiByZWZlcnJlZCBhbiBhY2NvdW50LiBSZXJvbGxlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQABgS0RW50cm9weSBmb3IgYSBjYW5kaWRhdGUgY2hhbmdlZCBhZnRlciBleHBpcnkuPERlc2lnbkNvbW1pdHRlZAgBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQAASxyZXNlcnZlZF9pZCgBKFBlcnNvbmFsSWQABwSUQ2FuZGlkYXRlIGNvbW1pdHRlZCB0byBhbiBpbmsgZGVzaWduLjhGdWxseUFsbG9jYXRlZAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACAS8U3RvcmFnZSBmdWxseSBhbGxvY2F0ZWQgZm9yIGEgY29tbWl0dGVkIGRlc2lnbi4gVGltZWRPdXQEAShhY2NvdW50X2lkBAEwVDo6QWNjb3VudElkAAkEgENhbmRpZGF0ZSByZW1vdmVkIGFmdGVyIHRpbWVvdXQuJEZsYWtlZE91dAQBKGFjY291bnRfaWQEATBUOjpBY2NvdW50SWQACgR4VW5jb21taXR0ZWQgY2FuZGlkYXRlIHJlbW92ZWQuOFRpY2tldFJlZmVycmVkCAEgcmVmZXJyZXIoAShQZXJzb25hbElkAAEYdGlja2V0BAEkVDo6VGlja2V0AAsE7FJlZmVycmFsIHRpY2tldCBjcmVhdGVkIGJ5IHN0b3JpbmcgdGhlIHB1YmxpYyBrZXkgb24gY2hhaW4uPFRpY2tldENhbmNlbGxlZAgBIHJlZmVycmVyKAEoUGVyc29uYWxJZAABGHRpY2tldAQBJFQ6OlRpY2tldAAMBBkBUmVmZXJyYWwgdGlja2V0IHJlbW92ZWQgYnkgcmVtb3ZpbmcgdGhlIHB1YmxpYyBrZXkgZnJvbSBjaGFpbiBzdG9yYWdlLjRUaWNrZXRBcHBsaWVkCAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABIHJlZmVycmVyKAEoUGVyc29uYWxJZAANBKhDYW5kaWRhdGUgYXBwbGllZCB1c2luZyBhIHJlZmVycmFsIHRpY2tldC4sRmFtaWx5QWRkZWQMARRpbmRleC0DASxGYW1pbHlJbmRleAABEGtpbmThAwEoRmFtaWx5S2luZAABCGlkCAEgRmFtaWx5SWQADgRQRGVzaWduIGZhbWlseSBhZGRlZC5EQWxsSW52aXRlc1JlbW92ZWQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAA8EuEFsbCBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlci5IU29tZUludml0ZXNSZW1vdmVkBAEcaW52aXRlcgQBMFQ6OkFjY291bnRJZAAQBA0BU29tZSBpbnZpdGVzIGhhdmUgYmVlbiByZW1vdmVkIGZvciB0aGUgaW52aXRlciwgc29tZSBhcmUgcmVtYWluaW5nLlxJbnZpdGVkQ2FuZGlkYXRlQXBwbGllZAgBDHdobwQBMFQ6OkFjY291bnRJZAABHGludml0ZXIEATBUOjpBY2NvdW50SWQAEQSYQ2FuZGlkYXRlIGFwcGxpZWQgdXNpbmcgYW4gaW52aXRhdGlvbi5kUmVmZXJyYWxWb3VjaGVyUmVnaXN0ZXJlZAQBIHJlZmVycmVyKAEoUGVyc29uYWxJZAASBMBBIHJlZmVycmVyJ3MgcmV3YXJkIHZvdWNoZXIgaGFzIGJlZW4gcmVnaXN0ZXJlZC44SW52aXRlc0dyYW50ZWQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEUY291bnQ4AQx1MzIAEwSgSW52aXRlcyBoYXZlIGJlZW4gZ3JhbnRlZCB0byBhbiBhY2NvdW50LjxJbnZpdGVUaWNrZXRTZXQIARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAEYdGlja2V0BAEkVDo6VGlja2V0ABQEeEFuIGludml0ZSB0aWNrZXQgaGFzIGJlZW4gc2V0LlRJbnZpdGVUaWNrZXRDYW5jZWxsZWQIARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAEYdGlja2V0BAEkVDo6VGlja2V0ABUEkEFuIGludml0ZSB0aWNrZXQgaGFzIGJlZW4gY2FuY2VsbGVkLkBDb25maWd1cmF0aW9uU2V0BAEYY29uZmln5QMBfENvbmZpZ1JlY29yZDxCbG9ja051bWJlckZvcjxUPj4AFgSoVGhlIHBhbGxldCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV09QYMRGluZGl2X3BhbGxldF9nYW1lGHBhbGxldBRFdmVudAQEVAABUBxOZXdHYW1lDAFEcmVnaXN0cmF0aW9uX2VuZHM4AQx1MzIAASRnYW1lX2RhdGU4AQx1MzIAASxyZXBvcnRfZW5kczgBDHUzMgAABFxBIG5ldyBnYW1lIGlzIHN0YXJ0aW5nLiRHYW1lRW5kZWQEARRpbmRleDgBHEdhbWVJZHgAAQSgVGhlIGdhbWUgYW5kIGl0cyBwb3N0LXByb2Nlc3MgaGFzIGVuZGVkLjRHYW1lUGhhc2VzU2V0BAEYcGhhc2VzQQQBTFBoYXNlRHVyYXRpb25WYWx1ZXMAAgQZAVRoZSBnYW1lIHBoYXNlIGR1cmF0aW9ucyB3ZXJlIG92ZXJyaWRkZW4gYnkgW2BDb25maWc6Ok1hbmFnZXJPcmlnaW5gXS4gU2lnbmVkVXAEAQx3aG9xBAF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4AAwSAQSBwbGF5ZXIgc2lnbmVkIHVwIGZvciB0aGUgZ2FtZS48UmVwb3J0U3VibWl0dGVkCAEMd2hvcQQBdEFjY291bnRPclBlcnNvbjxUOjpBY2NvdW50SWQ+AAEoZ2FtZV9pbmRleDgBHEdhbWVJZHgABASAQSBwbGF5ZXIgc3VibWl0dGVkIHRoZWlyIHJlcG9ydC4oT2ZmYm9hcmRlZAQBDHdob3EEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgAFBIhBIHBsYXllciBvZmZib2FyZGVkIGZyb20gdGhlIGdhbWUuJEtpY2tlZE91dAQBGHBsYXllcnEEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgAGBIhBbiBhcmNoaXZlZCBwbGF5ZXIgd2FzIGtpY2tlZCBvdXQuOEludml0ZXNHcmFudGVkCAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABFGNvdW50OAEMdTMyAAcEjEludml0ZXMgd2VyZSBncmFudGVkIHRvIGFuIGFjY291bnQuPEludml0ZVRpY2tldFNldAQBHGludml0ZXIEATBUOjpBY2NvdW50SWQACARkQW4gaW52aXRlIHRpY2tldCB3YXMgc2V0LlRJbnZpdGVUaWNrZXRDYW5jZWxsZWQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAAkEfEFuIGludml0ZSB0aWNrZXQgd2FzIGNhbmNlbGxlZC4sTGl0ZUludml0ZWQEARhwbGF5ZXIEATBUOjpBY2NvdW50SWQACghJAUEgbGl0ZSBwZXJzb24gaW52aXRlZCB0aGUgYWNjb3VudCBgcGxheWVyYCB0byBwbGF5IG9uIHRoZWlyIGJlaGFsZiwgd2hpY2ggaXMgbm93IGGMcGxheWVyIHdpdGggYW4gaW52aXRlZCBjcmVkaWJpbGl0eS44R2FtZXNTY2hlZHVsZWQEARRjb3VudDgBDHUzMgALBFRHYW1lcyB3ZXJlIHNjaGVkdWxlZC5QU2NoZWR1bGVkR2FtZVJlbW92ZWQEAThnYW1lX3BsYXlfdGltZTgBDHUzMgAMBHRBIHNjaGVkdWxlZCBnYW1lIHdhcyByZW1vdmVkLkBTdG10VXNhZ2VSZW1vdmVkBAEMd2hvCAEgW3U4OyAzMl0ADQS4U3RhdGVtZW50IHN0b3JlIHVzYWdlIHJlbW92ZWQgZm9yIHRoZSBhY2NvdW50LkRBbGxJbnZpdGVzUmVtb3ZlZAQBHGludml0ZXIEATBUOjpBY2NvdW50SWQADgS4QWxsIGludml0ZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZm9yIHRoZSBpbnZpdGVyLkhTb21lSW52aXRlc1JlbW92ZWQEARxpbnZpdGVyBAEwVDo6QWNjb3VudElkAA8EDQFTb21lIGludml0ZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZm9yIHRoZSBpbnZpdGVyLCBzb21lIGFyZSByZW1haW5pbmcuOFBsYXlEZXBvc2l0U2V0BAEYYW1vdW50xAFITmF0aXZlQmFsYW5jZU9mPFQ+ABAEoFRoZSBjb25maWd1cmVkIHBsYXkgZGVwb3NpdCB3YXMgdXBkYXRlZC5AQWlyZHJvcFNjaGVkdWxlZAwBKGdhbWVfaW5kZXg4ARxHYW1lSWR4AAE0YWlyZHJvcF9pbmRleAwBCHU4AAEgZXZlbnRfaWQIAThBaXJkcm9wRXZlbnRJZAARBNBBbiBhaXJkcm9wIGV2ZW50IHdhcyBzY2hlZHVsZWQgZm9yIHRoZSBjdXJyZW50IGdhbWUuVEFpcmRyb3BTY2hlZHVsZUZhaWxlZAwBKGdhbWVfaW5kZXg4ARxHYW1lSWR4AAE0YWlyZHJvcF9pbmRleAwBCHU4AAEUZXJyb3I1BgE0RGlzcGF0Y2hFcnJvcgASBORBbiBhaXJkcm9wIGV2ZW50IGZvciB0aGUgY3VycmVudCBnYW1lIGZhaWxlZCB0byBzY2hlZHVsZS40R2FtZUNhbmNlbGxlZAQBKGdhbWVfaW5kZXg4ARxHYW1lSWR4ABMEgEdhbWUgYGdhbWVfaW5kZXhgIHdhcyBjYW5jZWxsZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0+QYMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQURXZlbnQEBFQAASQ0Q3JlZGl0Q2xhaW1lZAwBDHdob3EEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgR4VGhlIHBlcnNvbiB3aG8gY2xhaW1lZCBjcmVkaXQuASxkZXN0aW5hdGlvbgQBMFQ6OkFjY291bnRJZAS8RGVzdGluYXRpb24gYWNjb3VudCB0aGF0IHJlY2VpdmVkIHRoZSB0cmFuc2Zlci4BGGFtb3VudMQBMEJhbGFuY2VPZjxUPgRMQW1vdW50IHRyYW5zZmVycmVkLgAEcEEgcGVyc29uIGhhcyBjbGFpbWVkIGNyZWRpdC5QUGVyc29uaG9vZFJlY29nbml6ZWQIAQx3aG9xBAF0QWNjb3VudE9yUGVyc29uPFQ6OkFjY291bnRJZD4EsFRoZSBhY2NvdW50IHdob3NlIHBlcnNvbmhvb2Qgd2FzIHJlY29nbml6ZWQuARxyZXN1bWVkyAEQYm9vbAQRAVdoZXRoZXIgdGhpcyB3YXMgcmVzdW1pbmcgZnJvbSBzdXNwZW5zaW9uIG9yIGZpcnN0LXRpbWUgcmVjb2duaXRpb24uAQSkUGVyc29uaG9vZCB3YXMgcmVjb2duaXplZCBmb3IgYW4gYWNjb3VudC5UUGF5b3V0Um91bmRzU2NoZWR1bGVkDAEYYW1vdW50xAEwQmFsYW5jZU9mPFQ+BFRUaGUgYW1vdW50IHBlciByb3VuZC4BFGNvdW50OAEMdTMyBFRUaGUgbnVtYmVyIG9mIHJvdW5kcy4BIGR1cmF0aW9uOAFEQmxvY2tOdW1iZXJGb3I8VD4EhFRoZSBkdXJhdGlvbiBwZXIgcm91bmQgaW4gYmxvY2tzLgIEiFBheW91dCByb3VuZHMgaGF2ZSBiZWVuIHNjaGVkdWxlZC5UUGF5b3V0U2NoZWR1bGVSZW1vdmVkBAEUaW5kZXg4AQx1MzIEiFRoZSBpbmRleCBvZiB0aGUgcmVtb3ZlZCBzY2hlZHVsZS4DBIxBIHBheW91dCBzY2hlZHVsZSBoYXMgYmVlbiByZW1vdmVkLkRSb3VuZFRyYW5zaXRpb25lZAQBLHJvdW5kX2luZGV4OAEoUm91bmRJbmRleASYVGhlIHJvdW5kIGluZGV4IHRoYXQgd2FzIHRyYW5zaXRpb25lZC4EBHhBIHJvdW5kIGhhcyBiZWVuIHRyYW5zaXRpb25lZC5MUGF5b3V0Um91bmRPcGVyYXRlZAQBLHJvdW5kX2luZGV4OAEoUm91bmRJbmRleASIVGhlIHJvdW5kIGluZGV4IHRoYXQgd2FzIG9wZXJhdGVkLgUEGQFBIHBheW91dCByb3VuZCBoYXMgYmVlbiBvcGVyYXRlZCAoY3JlZGl0IGRpc3RyaWJ1dGVkIHRvIHBhcnRpY2lwYW50cykuJENhc2hlZE91dAQBDHdob3EEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgR8VGhlIHBhcnRpY2lwYW50IHdobyBjYXNoZWQgb3V0LgYEuEEgcGFydGljaXBhbnQgaGFzIGNhc2hlZCBvdXQgc2NvcmUgZm9yIHBvaW50cy54UGVyc29uaG9vZFRocmVzaG9sZFNjaGVkdWxlU2V0AAcEvFRoZSBwZXJzb25ob29kLXRocmVzaG9sZCBzY2hlZHVsZSBoYXMgYmVlbiBzZXQuXEFic2VuY2VHcmFjZVNjaGVkdWxlU2V0AAgEoFRoZSBhYnNlbmNlLWdyYWNlIHNjaGVkdWxlIGhhcyBiZWVuIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXT9BgxgaW5kaXZfcGFsbGV0X25mdF9jcmVkaXRzGHBhbGxldBRFdmVudAQEVAABHFROZnRDbGFpbUNyZWRpdEF3YXJkZWQMASBjbGFpbWFudHEEAXRBY2NvdW50T3JQZXJzb248VDo6QWNjb3VudElkPgABGGNyZWRpdAgBOE5mdENsYWltQ3JlZGl0AAEobGVhZl9pbmRleDgBDHUzMgAAHFkBQW4gTkZUIGNsYWltIGNyZWRpdCB3YXMgYXdhcmRlZCB0byBgY2xhaW1hbnRgIGFuZCByZWNvcmRlZCBhcyBsZWFmIGBsZWFmX2luZGV4YCBvZiB0aGVUY3VycmVudCBibG9jaydzIHRyZWUuAFUBT25lIGV2ZW50IHBlciBhd2FyZGVkIGNyZWRpdCwgaW4gbGVhZiBvcmRlciwgaXMgd2hhdCBsZXRzIGFuIGluY2x1c2lvbiBwcm9vZiBzdGlsbCBiZexidWlsdCBvbmNlIHRoZSBibG9jaydzIGF3YXJkcyBoYXZlIGJlZW4gcHJ1bmVkOiB0aGUgbGVhZiBpc1UBYGJsYWtlMl8yNTYoY2xhaW1hbnQgKysgY3JlZGl0KWAgYW5kIHRoZSBibG9jaydzIGxlYWYgc2V0IGlzIHRoZSBgbGVhZl9pbmRleGAtb3JkZXJlZNxzZXF1ZW5jZSBvZiB0aGVzZSBldmVudHMsIHNvIG5vIGJsb2NrIHJlcGxheSBpcyBuZWVkZWQuaE5mdENsYWltQ3JlZGl0Um9vdFJlY29yZGVkCAEUYmxvY2s4AURCbG9ja051bWJlckZvcjxUPgABLGNyZWRpdF9yb290AQcBSE5mdENsYWltQ3JlZGl0VHJlZQABCFEBVGhlIGNyZWRpdHMgYXdhcmRlZCBpbiBibG9jayBgYmxvY2tgIGNhbiBiZSBtaW50ZWQgZnJvbSBub3cgb246IGBjcmVkaXRfcm9vdGAncyByb290PQFpcyB3aGF0IGFuIGluY2x1c2lvbiBwcm9vZiBmb3IgYW55IG9mIHRoZW0gdmVyaWZpZXMgYWdhaW5zdCwgYW5kIG5ldmVyIGNoYW5nZXMuPENyZWRpdFRyZWVzU2VudAQBFHRyZWVzbQQBzEJvdW5kZWRWZWM8QXdhcmRCbG9jaywgVDo6TWF4Q3JlZGl0VHJlZXNQZXJNZXNzYWdlPhgxAVRoZSBhd2FyZCBibG9jayBvZiBldmVyeSB0cmVlIHRoZSBtZXNzYWdlIGNhcnJpZXMsIGluIHRoZSBvcmRlciB0aGV5IGdvIG91dC45AUVtcHR5IG1lYW5zIGV2ZXJ5IHRyZWUgb2YgdGhpcyBtZXNzYWdlIGhhZCBsb3N0IGl0cyByb290LCBzbyBub3RoaW5nIHdhcyBzZW50LgA1AVRoZSBzZXF1ZW5jZSBlYWNoIGJsb2NrIHRyYXZlbHMgdW5kZXIgaXMgbm90IHNwZWxsZWQgb3V0OiB0aGUgbWVzc2FnZSB0YWtlcyBhTQFjb250aWd1b3VzIHJ1biBvZiBzZXF1ZW5jZXMgb2ZmIHRoZSBxdWV1ZSwgc3RhcnRpbmcgYXQgdGhlIGNhbGwncyBgZmlyc3Rfc2VxdWVuY2VgLB0BbWludXMgdGhlIG9uZXMgdGhpcyBibG9jaydzIFtgRXZlbnQ6OkNyZWRpdFRyZWVEZWxpdmVyeVNraXBwZWRgXSBuYW1lcy4CBEEBQ3JlZGl0IHRyZWVzIHdlcmUgaGFuZGVkIHRvIHRoZSBYQ00gcm91dGVyIGZvciBkZWxpdmVyeSB0byB0aGUgTkZUIGNsYWltcyBjaGFpbi5kQ3JlZGl0VHJlZURlbGl2ZXJ5U2tpcHBlZAgBIHNlcXVlbmNlKAEwVHJlZVNlcXVlbmNlAAEUYmxvY2s4AURCbG9ja051bWJlckZvcjxUPgADECUBQSBxdWV1ZWQgY3JlZGl0IHRyZWUgd2FzIG5vdCBzZW50IGJlY2F1c2UgaXRzIHJvb3QgaXMgbm8gbG9uZ2VyIHJlY29yZGVkLgBZAUl0cyBzZXF1ZW5jZSBpcyBzcGVudCB3aXRob3V0IGEgdHJlZSBldmVyIGFycml2aW5nLCBzbyB0aGUgY2xhaW1zIGNoYWluIHJlcG9ydHMgYSBnYXAuXQFObyBbYFBhbGxldDo6cmVwbGF5X2NyZWRpdF90cmVlc2BdIGNhbiBmaWxsIGl0OiB0aGUgcm9vdCBwcm9vZnMgdmVyaWZ5IGFnYWluc3QgaXMgZ29uZS5QQ3JlZGl0VHJlZVNlbmRGYWlsZWQABAhVAURlbGl2ZXJpbmcgY3JlZGl0IHRyZWVzIHRvIHRoZSBORlQgY2xhaW1zIGNoYWluIGZhaWxlZC4gVGhlIHRyZWVzIHN0YXkgcXVldWVkIGFuZCB0aGWgbmV4dCBvZmZjaGFpbiB3b3JrZXIgY3ljbGUgcmV0cmllcyB0aGVtLkxDcmVkaXRUcmVlc1JlcGxheWVkBAEUY291bnQ4AQx1MzIABQT0Q3JlZGl0IHRyZWVzIHdlcmUgcmVzZW50IHRvIHRoZSBORlQgY2xhaW1zIGNoYWluIG91dCBvZiBiYW5kLmRDcmVkaXRUcmVlRGVsaXZlcnlEcm9wcGVkBAEUYmxvY2s4AURCbG9ja051bWJlckZvcjxUPgAGEBEBQSBmcmVzaGx5IGJ1aWx0IGNyZWRpdCB0cmVlIGNvdWxkIG5vdCBiZSBxdWV1ZWQgZm9yIGRlbGl2ZXJ5IGJlY2F1c2UxAWBDcmVkaXRUcmVlRGVsaXZlcnlRdWV1ZWAgaXMgZnVsbCwgd2hpY2ggbWVhbnMgZGVsaXZlcnkgaGFzIGJlZW4gZmFpbGluZyBmb3IFAWBNYXhRdWV1ZWRDcmVkaXRUcmVlc2AgdHJlZXMuIEl0cyBjcmVkaXRzIHN0YXkgdW5taW50YWJsZSB1bnRpbCBhuFtgUGFsbGV0OjpyZXBsYXlfY3JlZGl0X3RyZWVzYF0gbmFtZXMgYGJsb2NrYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQBBww0aW5kaXZfc3VwcG9ydDBjcmVkaXRfdHJlZXNITmZ0Q2xhaW1DcmVkaXRUcmVlAAAQAShnYW1lX2luZGV4OAEMdTMyAAEQcm9vdAUHATxDcmVkaXRQcm9vZk5vZGUAAShsZWFmX2NvdW50OAEMdTMyAAEkdGltZXN0YW1wOAEMdTMyAAAFBww0aW5kaXZfc3VwcG9ydDBjcmVkaXRfdHJlZXM8Q3JlZGl0UHJvb2ZOb2RlAAAEAAgBIFt1ODsgMzJdAAAJBwxYaW5kaXZfcGFsbGV0X2R1bW15X2RpbRhwYWxsZXQURXZlbnQEBFQAASAsSWRzUmVzZXJ2ZWQEARRjb3VudDgBDHUzMgAABHRBIG51bWJlciBvZiBJRHMgd2FzIHJlc2VydmVkLiRJZFJlbmV3ZWQEAQhpZCgBKFBlcnNvbmFsSWQAAQRIQW4gSUQgd2FzIHJlbmV3ZWQuMElkVW5yZXNlcnZlZAQBCGlkKAEoUGVyc29uYWxJZAACBGhBIHJlc2VydmVkIElEIHdhcyByZW1vdmVkLkBQZW9wbGVSZWdpc3RlcmVkBAEUY291bnQ4AQx1MzIAAwRkUmVnaXN0ZXIgbXVsdGlwbGUgcGVvcGxlLjxQZW9wbGVTdXNwZW5kZWQEARRjb3VudDgBDHUzMgAEBGxTdXNwZW5kIGEgbnVtYmVyIG9mIHBlb3BsZS5EUGVyc29uaG9vZFJlc3VtZWQEAQhpZCgBKFBlcnNvbmFsSWQABQSEU29tZW9uZSdzIHBlcnNvbmhvb2Qgd2FzIHJlc3VtZWQuSFN1c3BlbnNpb25zU3RhcnRlZAAGBHxUaGUgcGFsbGV0IGVuYWJsZWQgc3VzcGVuc2lvbnMuQFN1c3BlbnNpb25zRW5kZWQABwSAVGhlIHBhbGxldCBkaXNhYmxlZCBzdXNwZW5zaW9ucy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQNBwxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlGHBhbGxldBRFdmVudAQEVAABGHhBbGxBdHRlc3RhdGlvbkFsbG93YW5jZUNsZWFyZWQEASB2ZXJpZmllcgQBMFQ6OkFjY291bnRJZAAABPBBbGwgYXR0ZXN0YXRpb24gYWxsb3dhbmNlIGhhcyBiZWVuIHJlbW92ZWQgZm9yIHRoZSB2ZXJpZmllci50QXR0ZXN0YXRpb25BbGxvd2FuY2VJbmNyZWFzZWQIARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEUY291bnQ4AQx1MzIAAQQtAUF0dGVzdGF0aW9uIGFsbG93YW5jZSB3YXMgaW5jcmVhc2VkIGZvciBhbiBhY2NvdW50IGJ5IGBjb3VudGAgYXR0ZXN0YXRpb25zLjhQZXJzb25BdHRlc3RlZAgBJGNhbmRpZGF0ZQQBMFQ6OkFjY291bnRJZAABIHZlcmlmaWVyBAEwVDo6QWNjb3VudElkAAIE1EEgbmV3IGxpdGUgcGVyc29uIHdhcyByZWdpc3RlcmVkIHRocm91Z2ggYXR0ZXN0YXRpb24uSENvbnN1bWVyUmVnaXN0ZXJlZAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAwSsQSBsaXRlIHBlcnNvbiB3YXMgcmVnaXN0ZXJlZCBhcyBhIGNvbnN1bWVyLjxBbGlhc0FjY291bnRTZXQIARRhbGlhc0kDATxDb250ZXh0dWFsQWxpYXMAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAQEvEFuIGFsaWFzLXRvLWFjY291bnQgbWFwcGluZyB3YXMgc2V0IG9yIHVwZGF0ZWQuREFsaWFzQWNjb3VudFVuc2V0CAEUYWxpYXNJAwE8Q29udGV4dHVhbEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAFBKBBbiBhbGlhcy10by1hY2NvdW50IG1hcHBpbmcgd2FzIHJlbW92ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0EQcMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMYcGFsbGV0FEV2ZW50BARUAAE4QFBlcnNvblJlZ2lzdGVyZWQIARRhbGlhcwgBFEFsaWFzAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAABJhBIHBlcnNvbiBoYXMgcmVnaXN0ZXJlZCBhcyBhIGNvbnN1bWVyLlBMaXRlUGVyc29uUmVnaXN0ZXJlZAQBHGFjY291bnQEATBUOjpBY2NvdW50SWQAAQSsQSBsaXRlIHBlcnNvbiBoYXMgcmVnaXN0ZXJlZCBhcyBhIGNvbnN1bWVyLmBOb3RpZmljYXRpb25TdG10VXNhZ2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAIE+E5vdGlmaWNhdGlvbiBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gYXNzaWduZWQgZm9yIGEgc2VxdWVuY2UucE5vdGlmaWNhdGlvblN0bXRVc2FnZVJlbW92ZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAMEuE5vdGlmaWNhdGlvbiBzdGF0ZW1lbnQgdXNhZ2UgaGFzIGJlZW4gcmVtb3ZlZC5oUGVyc29uQXV0aG9yaXphdGlvblRvdWNoZWQEARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAQElEEgcGVyc29uJ3MgYXV0aG9yaXphdGlvbiB3YXMgdG91Y2hlZC6ERXhwaXJlZFVzZXJuYW1lUmVzZXJ2YXRpb25SZW1vdmVkCAEgdXNlcm5hbWWZBAEgVXNlcm5hbWUAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAUEsEFuIGV4cGlyZWQgdXNlcm5hbWUgcmVzZXJ2YXRpb24gd2FzIHJlbW92ZWQuUElkZW50aWZpZXJLZXlVcGRhdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAGBKBBIGNvbnN1bWVyJ3MgaWRlbnRpZmllciBrZXkgd2FzIHVwZGF0ZWQueFVzZXJuYW1lUmVzZXJ2YXRpb25EdXJhdGlvblNldAQBIGR1cmF0aW9uKAEMdTY0AAcEqFRoZSB1c2VybmFtZSByZXNlcnZhdGlvbiBkdXJhdGlvbiB3YXMgc2V0LlRTdG10U3RvcmVBbGxvd2FuY2VTZXQQARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEMc2VxOAEMdTMyAAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAIBMxBbiBhbm9ueW1vdXMgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZSB3YXMgZ3JhbnRlZC5oU3RtdFN0b3JlQWxsb3dhbmNlc0NsZWFyZWQMARhwZXJpb2Q4AQx1MzIAASRmaXJzdF9rZXkIARRBbGlhcwABFGNvdW50OAEMdTMyAAkEzEV4cGlyZWQgc3RhdGVtZW50IHN0b3JlIGFsbG93YW5jZXMgd2VyZSBjbGVhbmVkIHVwLjRQZXJzb25EZW1vdGVkBAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAAKBNxBIGZ1bGwgcGVyc29uIHdhcyBkZW1vdGVkIGR1ZSB0byBleHBpcmVkIGF1dGhvcml6YXRpb24uWExvbmdUZXJtU3RvcmFnZUNsYWltZWQUARRhbGlhcwgBFEFsaWFzAAEYcGVyaW9kOAEMdTMyAAEcY291bnRlcgwBCHU4AAEcYWNjb3VudAQBMFQ6OkFjY291bnRJZAABKGNvbGxlY3Rpb25hAwFQTWVtYmVyc2hpcENvbGxlY3Rpb24ACwTITG9uZy10ZXJtIHN0b3JhZ2UgaGFzIGJlZW4gY2xhaW1lZCBmb3IgYW4gYWNjb3VudC58TG9uZ1Rlcm1TdG9yYWdlQWxsb2NhdGlvbkZhaWxlZBQBFGFsaWFzCAEUQWxpYXMAARhwZXJpb2Q4AQx1MzIAARxjb3VudGVyDAEIdTgAARxhY2NvdW50BAEwVDo6QWNjb3VudElkAAEoY29sbGVjdGlvbmEDAVBNZW1iZXJzaGlwQ29sbGVjdGlvbgAMCFkBQSBsb25nLXRlcm0gc3RvcmFnZSBjbGFpbSB3YXMgYWNjZXB0ZWQgYnV0IHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24gZmFpbGVkLiBUaGUgYWxpYXOUaXMgc3RpbGwgbWFya2VkIHNwZW50IGZvciB0aGUgcGVyaW9kLnRMb25nVGVybVN0b3JhZ2VBbGlhc2VzQ2xlYXJlZAgBGHBlcmlvZDgBDHUzMgABFGNvdW50OAEMdTMyAA0EBQFFeHBpcmVkIGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgaGF2ZSBiZWVuIGNsZWFyZWQgZm9yIGEgcGVyaW9kLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldBUHDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0FEV2ZW50BARUAAEIaENodW5rUGFnZUhhc2hlc0luaXRpYWxpemVkCAE0cmluZ19leHBvbmVudLEEATBSaW5nRXhwb25lbnQAASx0b3RhbF9wYWdlczgBDHUzMgAABBkBQSBuZXcgY2h1bmsgcGFnZSBoYXNoIHNldCBoYXMgYmVlbiBpbml0aWFsaXplZCAoZS5nLiwgZHVyaW5nIGdlbmVzaXMpLixDaHVua3NBZGRlZAwBNHJpbmdfZXhwb25lbnSxBAEwUmluZ0V4cG9uZW50AAEsc3RhcnRfaW5kZXg4AQx1MzIAARRjb3VudDgBDHUzMgABBCEBTmV3IGNodW5rcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFkZGVkIHRvIGFuIGV4aXN0aW5nIG9yIG5ldyBjaHVuayBzZXQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0GQcMUGluZGl2X3BhbGxldF9tZW1iZXJzGHBhbGxldBRFdmVudAQEVAABKCxNZW1iZXJBZGRlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAAE6EFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmVjb2duaXNlZCBhbmQgaW5kZXhlZC40TWVtYmVyUmVtb3ZlZAQBDGtleQgBLE1lbWJlck9mPFQ+AAEErEFuIGVudGl0eSBoYXMgaGFkIHRoZWlyIG1lbWJlcnNoaXAgcmV2b2tlZC5sQ29sbGVjdGlvbk1hcmtlZEZvckRlbGV0aW9uBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAgSoQSBjb2xsZWN0aW9uIGhhcyBiZWVuIG1hcmtlZCBmb3IgZGVsZXRpb24uRENvbGxlY3Rpb25EZWxldGVkBAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAAwSQQSBjb2xsZWN0aW9uIGhhcyBiZWVuIGZ1bGx5IGRlbGV0ZWQuJFJpbmdCdWlsdAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAAEBFhBIHJpbmcgcm9vdCB3YXMgYnVpbHQuQE1lbWJlcnNPbmJvYXJkZWQEAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgAFBFxNZW1iZXJzIHdlcmUgb25ib2FyZGVkLixSaW5nc01lcmdlZAwBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8YmFzZV9yaW5nX2luZGV4OAEkUmluZ0luZGV4AAFEdGFyZ2V0X3JpbmdfaW5kZXg4ASRSaW5nSW5kZXgABgRYVHdvIHJpbmdzIHdlcmUgbWVyZ2VkLkRPbmJvYXJkaW5nU2l6ZVNldAgBKGlkZW50aWZpZXIIAShJZGVudGlmaWVyAAE8b25ib2FyZGluZ19zaXplOAEMdTMyAAcEtFRoZSBvbmJvYXJkaW5nIHNpemUgd2FzIHNldCBmb3IgYSBjb2xsZWN0aW9uLkhNZW1iZXJTZWxmSW5jbHVkZWQIAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABDGtleQgBLE1lbWJlck9mPFQ+AAgEjEEgbWVtYmVyIHNlbGYtaW5jbHVkZWQgaW50byBhIHJpbmcuQE9sZFJvb3RDbGVhbmVkVXAMAShpZGVudGlmaWVyCAEoSWRlbnRpZmllcgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAASByZXZpc2lvbjgBDHUzMgAJBKRBbiBvbGQgcm9vdCByZXZpc2lvbiBoYXMgYmVlbiBjbGVhbmVkIHVwLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldB0HDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQURXZlbnQEBFQAAWwkQ29pblNwbGl0BAEwb3V0cHV0X2NvdW50OAEMdTMyAAAAPENvaW5UcmFuc2ZlcnJlZAwBCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAAEcbmV3X2FnZS0DAQx1MTYAAQBYUmVjeWNsZXJMb2FkZWRXaXRoQ29pbgQBFHZhbHVldQMBMERlbm9taW5hdGlvbgACAHxSZWN5Y2xlckxvYWRlZFdpdGhFeHRlcm5hbEFzc2V0DAEMd2hvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAAEYYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAMAYFJlY3ljbGVyVW5sb2FkZWRJbnRvQ29pbhABCHRvBAEwVDo6QWNjb3VudElkAAEsaW5wdXRfdmFsdWV1AwEwRGVub21pbmF0aW9uAAEwb3V0cHV0X3ZhbHVldQMBMERlbm9taW5hdGlvbgABLGlucHV0X2NvdW50OAEMdTMyAAQAhFJlY3ljbGVyVW5sb2FkZWRJbnRvRXh0ZXJuYWxBc3NldBABCHRvBAEwVDo6QWNjb3VudElkAAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAAEsaW5wdXRfY291bnQ4AQx1MzIAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ABQC8UmVjeWNsZXJVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0QW5kTG9hZGVkQ29pbnMUAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBMERlbm9taW5hdGlvbgABLGlucHV0X2NvdW50OAEMdTMyAAFUZXh0ZXJuYWxfYXNzZXRfYW1vdW50xAFURnVuZ2libGVzQmFsYW5jZU9mPFQ+AAFEbG9hZGVkX2NvaW5fY291bnQ4AQx1MzIABgBUUmVjeWNsZXJBbGlhc1VubG9hZGVkDAEUdmFsdWV1AwEwRGVub21pbmF0aW9uAAEocmluZ19pbmRleDgBJFJpbmdJbmRleAABFGFsaWFzCAEUQWxpYXMAByAZAUFuIGFsaWFzIHdhcyBwZXJtYW5lbnRseSBtYXJrZWQgYXMgdW5sb2FkZWQgZnJvbSBhIGxpdmUgcmVjeWNsZXIgcmluZy4ALQFFbWl0dGVkIG9uY2UgcGVyIGFsaWFzIG9uIGV2ZXJ5IHVubG9hZCBmcm9tIGEgbGl2ZSAobm90IHlldCBhcmNoaXZlZCkgcmluZzuUcmVjb3ZlcmllcyBmcm9tIGFuIGFyY2hpdmVkIHJpbmcgZW1pdFEBW2BFdmVudDo6QXJjaGl2ZWRSZWN5Y2xlclVubG9hZGVkSW50b0V4dGVybmFsQXNzZXRgXSBpbnN0ZWFkLiBUb2dldGhlciwgdGhlc2UgZXZlbnRzNQFsZXQgYW4gb2ZmY2hhaW4gc2VydmljZSByZWNvbnN0cnVjdCB0aGUgdW5sb2FkZWQtYWxpYXNlcyB0cmllIGNvbW1pdHRlZCB0byBieQUBW2BFdmVudDo6UmVjeWNsZXJBcmNoaXZlZGBdLCBhbmQgaGVuY2UgYnVpbGQgdGhlIHByb29mcyBuZWVkZWQgYnnkW2BQYWxsZXQ6OnVubG9hZF9hcmNoaXZlZF9yZWN5Y2xlcl9pbnRvX2V4dGVybmFsX2Fzc2V0YF0uhFBhaWRVbmxvYWRUb2tlblJlZ2lzdGVyZWRXaXRoQ29pbggBDGZlZcQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgABJGRlc3Ryb3llZMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgAIAIxQYWlkVW5sb2FkVG9rZW5SZWdpc3RlcmVkV2l0aE5hdGl2ZQgBDHdobwQBMFQ6OkFjY291bnRJZAABDGZlZcQBSE5hdGl2ZUJhbGFuY2VPZjxUPgAJAKhQYWlkVW5sb2FkVG9rZW5SZWdpc3RlcmVkV2l0aEV4dGVybmFsQXNzZXQIAQx3aG8EATBUOjpBY2NvdW50SWQAAQxmZWXEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4ACgB0UGVvcGxlRnJlZVVubG9hZFRva2VuQ29uc3VtZWQEARhwZXJpb2Q4ARhQZXJpb2QACwCETGl0ZVBlb3BsZUZyZWVVbmxvYWRUb2tlbkNvbnN1bWVkBAEYcGVyaW9kOAEYUGVyaW9kAAwAZFJlY3ljbGVyc1VubG9hZGVkSW50b0NvaW4MAQh0bwQBMFQ6OkFjY291bnRJZAABMG91dHB1dF92YWx1ZXUDATBEZW5vbWluYXRpb24AASxpbnB1dF9jb3VudDgBDHUzMgANAIhSZWN5Y2xlcnNVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0DAEIdG8EATBUOjpBY2NvdW50SWQAASxpbnB1dF9jb3VudDgBDHUzMgABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgAOALhSZWN5Y2xlcnNVbmxvYWRlZEludG9FeHRlcm5hbEFzc2V0Tm9uQW5vbnltb3VzFAEMd2hvBAEwVDo6QWNjb3VudElkAAEIdG8EATBUOjpBY2NvdW50SWQAASxpbnB1dF9jb3VudDgBDHUzMgABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgABMGZlZV9jdXJyZW5jef0EASxGZWVDdXJyZW5jeQAPAGRSZWN5Y2xlclVubG9hZGVkSW50b0NvaW5zBAEwb3V0cHV0X2NvdW50OAEMdTMyABAAfENvaW5PZmZib2FyZGVkSW50b0V4dGVybmFsQXNzZXQMAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBMERlbm9taW5hdGlvbgABGGFtb3VudMQBVEZ1bmdpYmxlc0JhbGFuY2VPZjxUPgARADxSZWN5Y2xlckNsZWFuZWQIARR2YWx1ZXUDATBEZW5vbWluYXRpb24AATxyZW1haW5pbmdfY29pbnM4AQx1MzIAEgxdAUEgcmVjeWNsZXIgcmluZyB3YXMgY2xlYW5lZC4gYHJlbWFpbmluZ19jb2luc2AgaXMgdGhlIG51bWJlciBvZiBub3QteWV0LXVubG9hZGVkIGNvaW5zO1EBd2hlbiBub24temVybyB0aGUgcmluZyBpcyBhcmNoaXZlZCAoc2VlIFtFdmVudDo6UmVjeWNsZXJBcmNoaXZlZF0pIGFuZCB0aGF0IHZhbHVlIGlzsHJldGFpbmVkIGZvciByZWNvdmVyeSByYXRoZXIgdGhhbiBkZXN0cm95ZWQuQFJlY3ljbGVyQXJjaGl2ZWQMARR2YWx1ZXUDATBEZW5vbWluYXRpb24AAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAE0cmVjeWNsZXJfcm9vdAUFATBNZW1iZXJzT2Y8VD4AExxRAUEgY2xlYW5lZCByZWN5Y2xlciByaW5nIHdpdGggcmVjb3ZlcmFibGUgY29pbnMgd2FzIGFyY2hpdmVkOiBpdHMgYXJjaGl2YWwgY29tbWl0bWVudAUBKHNlZSBbYGFyY2hpdmVfY29tbWl0bWVudGBdKSB3YXMgcmVjb3JkZWQgaW4gW1JlY3ljbGVyc0FyY2hpdmVzXS4AVQFUaGUgcmluZy1WUkYgYHJlY3ljbGVyX3Jvb3RgIGlzIGVtaXR0ZWQgaGVyZSBiZWNhdXNlIHRoZSByaW5nIGlzIHJlbW92ZWQgZnJvbSBzdG9yYWdlQQFpbiB0aGUgc2FtZSBvcGVyYXRpb246IHRoaXMgZXZlbnQgaXMgdGhlIGxhc3Qgb24tY2hhaW4gc291cmNlIG9mIHRoZSByb290LCB3aGljaPhvZmZjaGFpbiBzZXJ2aWNlcyBtdXN0IHJldGFpbiB0byBidWlsZCB0aGUgcmVjb3ZlcnkgcHJvb2ZzIGZvcuRbYFBhbGxldDo6dW5sb2FkX2FyY2hpdmVkX3JlY3ljbGVyX2ludG9fZXh0ZXJuYWxfYXNzZXRgXS6kQXJjaGl2ZWRSZWN5Y2xlclVubG9hZGVkSW50b0V4dGVybmFsQXNzZXQcAQx3aG8EATBUOjpBY2NvdW50SWQAAQh0bwQBMFQ6OkFjY291bnRJZAABFHZhbHVldQMBMERlbm9taW5hdGlvbgABKHJpbmdfaW5kZXg4ASRSaW5nSW5kZXgAARhhbW91bnTEAVRGdW5naWJsZXNCYWxhbmNlT2Y8VD4AATBmZWVfY3VycmVuY3n9BAEsRmVlQ3VycmVuY3kAARRhbGlhcwgBFEFsaWFzABQEMQFBIGNvaW4gd2FzIHJlY292ZXJlZCBmcm9tIGFuIGFyY2hpdmVkIHJlY3ljbGVyIHJpbmcgaW50byB0aGUgZXh0ZXJuYWwgYXNzZXQuZENvbnN1bWVkRnJlZVRva2Vuc0NsZWFuZWQEARhwZXJpb2Q4ARhQZXJpb2QAFQBoUGFpZFVubG9hZFRva2VuUmluZ0NsZWFuZWQIARhwZXJpb2Q4ARhQZXJpb2QAAShyaW5nX2luZGV4OAEkUmluZ0luZGV4ABYATFJlY3ljbGVyRHVzdENsZWFuZWQAFwBoUGFpZFVubG9hZFRva2VuRHVzdENsZWFuZWQAGACcRXhwaXJlZFBhaWRVbmxvYWRUb2tlbkNvbGxlY3Rpb25EZWxldGVkBAEYcGVyaW9kOAEYUGVyaW9kABkAUFVuZGVybHlpbmdBc3NldElkU2V0BAEgYXNzZXRfaWTgAVRGdW5naWJsZXNBc3NldElkT2Y8VD4AGgAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQhBwx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIYcGFsbGV0FEV2ZW50BARUAAEYKFN1YnNjcmliZWQEARxwYXJhX2lknAEYUGFyYUlkAAAEXEEgcGFyYWNoYWluIHN1YnNjcmliZWQuMFVuc3Vic2NyaWJlZAQBHHBhcmFfaWScARhQYXJhSWQAAQRkQSBwYXJhY2hhaW4gdW5zdWJzY3JpYmVkLixVcGRhdGVzU2VudAgBHHBhcmFfaWScARhQYXJhSWQAATB1cGRhdGVfY291bnQ4AQx1MzIAAgSAVXBkYXRlIGJhdGNoIHNlbnQgdG8gc3Vic2NyaWJlci5AVXBkYXRlU2VuZEZhaWxlZAQBHHBhcmFfaWScARhQYXJhSWQAAwTEU2VuZGluZyByaW5nIHJvb3QgdXBkYXRlcyB0byBhIHN1YnNjcmliZXIgZmFpbGVkLjxSZXBsYXlSZXF1ZXN0ZWQMARxwYXJhX2lknAEYUGFyYUlkAAEoaWRlbnRpZmllcggBKElkZW50aWZpZXIAATRpbmRpY2VzX2NvdW50OAEMdTMyAAQEvFJlcGxheSBvZiByaW5nIHJvb3RzIHJlcXVlc3RlZCBieSBhIHN1YnNjcmliZXIuOEJhdGNoQWJhbmRvbmVkBAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgAFBMxBIHN0dWNrIGJhdGNoIHdhcyBhYmFuZG9uZWQgYnkgdGhlIG9mZmNoYWluIHdvcmtlci4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQlBwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AYcGFsbGV0FEV2ZW50BARUAAFEOEV2ZW50U2NoZWR1bGVkBAEgZXZlbnRfaWQIARxFdmVudElkAAAAVFNjaGVkdWxlZEV2ZW50UmVtb3ZlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAABADhFdmVudENhbmNlbGxlZAQBIGV2ZW50X2lkCAEcRXZlbnRJZAACAExSZWdpc3RyYXRpb25TdGFydGVkBAEgZXZlbnRfaWQIARxFdmVudElkAAMAPEFsaWFzUmVnaXN0ZXJlZAwBIGV2ZW50X2lkCAEcRXZlbnRJZAABEHNsb3QpBwE0QmlnRW5kaWFuVTI1NgABSHBhcnRpY2lwYW50X29yaWdpbi0HAVhSZWdpc3RyYXRpb25FbnRyeU9mPFQ+AAQAREFjY291bnRSZWdpc3RlcmVkDAEgZXZlbnRfaWQIARxFdmVudElkAAEQc2xvdCkHATRCaWdFbmRpYW5VMjU2AAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAAFAEhSZWdpc3RyYXRpb25DbG9zZWQIASBldmVudF9pZAgBHEV2ZW50SWQAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgAGADhEcmF3aW5nV2lubmVycwgBIGV2ZW50X2lkCAEcRXZlbnRJZAABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAcAPENsYWltaW5nU3RhcnRlZAgBIGV2ZW50X2lkCAEcRXZlbnRJZAABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAgANEV2ZW50Q2FuY2VsZWQEASBldmVudF9pZAgBHEV2ZW50SWQACQAwUHJpemVDbGFpbWVkFAEgZXZlbnRfaWQIARxFdmVudElkAAEQc2xvdCkHATRCaWdFbmRpYW5VMjU2AAEsYmVuZWZpY2lhcnkEATBUOjpBY2NvdW50SWQAASBhc3NldF9pZOABMEFzc2V0SWRPZjxUPgABGGFtb3VudMQBREFzc2V0QmFsYW5jZU9mPFQ+AAoAVENsZWFyaW5nUmVnaXN0cmF0aW9ucwgBIGV2ZW50X2lkCAEcRXZlbnRJZAABJHVuY2xhaW1lZDgBDHUzMgALADxDbGVhcmluZ1dpbm5lcnMEASBldmVudF9pZAgBHEV2ZW50SWQADAA8RmluYWxpemluZ0V2ZW50BAEgZXZlbnRfaWQIARxFdmVudElkAA0AOEV2ZW50Q29tcGxldGVkBAEgZXZlbnRfaWQIARxFdmVudElkAA4AMEFzc2V0RW5hYmxlZAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEYZnVuZGVkxAFEQXNzZXRCYWxhbmNlT2Y8VD4ADwA0QXNzZXREaXNhYmxlZAgBIGFzc2V0X2lk4AEwQXNzZXRJZE9mPFQ+AAEgcmVmdW5kZWTEAURBc3NldEJhbGFuY2VPZjxUPgAQAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldCkHDDRpbmRpdl9zdXBwb3J0FHV0aWxzNEJpZ0VuZGlhblUyNTYAAyAAAAAMBB0BQSBVMjU2IGVuY29kZWQgaW4gYmlnLWVuZGlhbiBmb3JtYXQgZm9yIGNvcnJlY3QgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZy4tBwxQaW5kaXZfcGFsbGV0X2FpcmRyb3AUdHlwZXNEUmVnaXN0cmF0aW9uRW50cnkEJEFjY291bnRJZAEEAQgUQWxpYXMEARRhbGlhcwgBFEFsaWFzAAAAHEFjY291bnQEAShhY2NvdW50X2lkBAEkQWNjb3VudElkAAEAADEHDExpbmRpdl9wYWxsZXRfaG9ub3VyGHBhbGxldBRFdmVudAQEVAABDCBWb3RlQ2FzdAgBHHN1YmplY3QIASRTdWJqZWN0SWQEeFRoZSBzdWJqZWN0IHRoYXQgd2FzIHZvdGVkIG9uLgEkZGlyZWN0aW9uPQUBJERpcmVjdGlvbgRoVGhlIGRpcmVjdGlvbiBvZiB0aGUgdm90ZS4ABNhBIHN1YmplY3Qgd2FzIHZvdGVkIG9uIHdpdGggYSBwcmV2aW91c2x5IHVudXNlZCBwb2ludC4oVm90ZVJldXNlZBABLG9sZF9zdWJqZWN0CAEkU3ViamVjdElkBNhUaGUgc3ViamVjdCB0aGF0IHByZXZpb3VzbHkgaGVsZCB0aGUgcmVkaXJlY3RlZCBwb2ludC4BNG9sZF9kaXJlY3Rpb249BQEkRGlyZWN0aW9uBJBUaGUgcHJldmlvdXMgZGlyZWN0aW9uIG9mIHRoZSBwb2ludC4BLG5ld19zdWJqZWN0CAEkU3ViamVjdElkBMBUaGUgc3ViamVjdCB0aGF0IG5vdyBob2xkcyB0aGUgcmVkaXJlY3RlZCBwb2ludC4BNG5ld19kaXJlY3Rpb249BQEkRGlyZWN0aW9uBHhUaGUgbmV3IGRpcmVjdGlvbiBvZiB0aGUgdm90ZS4BBMxBIHBvaW50IHdhcyByZWRpcmVjdGVkIGZyb20gb25lIHN1YmplY3QgdG8gYW5vdGhlci40SG9ub3VyQ2hhbmdlZAwBHHN1YmplY3QIASRTdWJqZWN0SWQEnFRoZSBzdWJqZWN0IHdob3NlIGhvbm91ciBzY29yZSBjaGFuZ2VkLgEkb2xkX3ZhbHVlNQcBGEhvbm91cgSMVGhlIGhvbm91ciB2YWx1ZSBiZWZvcmUgdGhlIHVwZGF0ZS4BJG5ld192YWx1ZTUHARhIb25vdXIEiFRoZSBob25vdXIgdmFsdWUgYWZ0ZXIgdGhlIHVwZGF0ZS4CBKhUaGUgaG9ub3VyIHNjb3JlIG9mIGEgc3ViamVjdCBoYXMgY2hhbmdlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ1BwAABQsAOQcMjGluZGl2X3BhbGxldF9zdG9yYWdlX2luaXRpYWxpemF0aW9uGHBhbGxldBRFdmVudAQEVAABRDBBc3NldENyZWF0ZWQAAATQVGhlIGZvcmVpZ24gYXNzZXQgd2FzIGNyZWF0ZWQgYW5kIHJlc2VydmVzIHdlcmUgc2V0LlBYY21GdW5kc1RyYW5zZmVyU2VudAABBLBBbiBYQ00gZnVuZHMgdHJhbnNmZXIgd2FzIHNlbnQgdG8gQXNzZXQgSHViLmBYY21GdW5kc1RyYW5zZmVyVGltZWRPdXQAAgS8VGhlIFhDTSB0cmFuc2ZlciB0aW1lZCBvdXQgYW5kIHdpbGwgYmUgcmV0cmllZC40RnVuZHNWZXJpZmllZAADBJRUcmFuc2ZlcnJlZCBmdW5kcyBoYXZlIGJlZW4gdmVyaWZpZWQuKFBvdHNGdW5kZWQABARoQWxsIHBvdHMgaGF2ZSBiZWVuIGZ1bmRlZC6IUGVvcGxlTGl0ZUF0dGVzdGF0aW9uQWxsb3dhbmNlc1NldAAFBMRQZW9wbGUgTGl0ZSBhdHRlc3RhdGlvbiBhbGxvd2FuY2VzIGhhdmUgYmVlbiBzZXQuXE1vYlJ1bGVQYXlvdXRzU2NoZWR1bGVkAAYEmE1vYiBSdWxlIHBheW91dCBzY2hlZHVsZSBoYXMgYmVlbiBzZXQuVFNjb3JlUGF5b3V0c1NjaGVkdWxlZAAHBIxTY29yZSBwYXlvdXQgc2NoZWR1bGUgaGFzIGJlZW4gc2V0LnRPblBvbGxJbml0aWFsaXphdGlvbkNvbXBsZXRlZAAIBMhUaGUgb25lLXRpbWUgb25fcG9sbCBpbml0aWFsaXphdGlvbiBoYXMgY29tcGxldGVkLmRNaWdyYXRpb25QZW9wbGVSZWNvZ25pemVkAAkEvE1pZ3JhdGlvbjogaW5pdGlhbCBwZW9wbGUgaGF2ZSBiZWVuIHJlY29nbml6ZWQuaE1pZ3JhdGlvbk9uYm9hcmRpbmdTaXplU2V0AAoEoE1pZ3JhdGlvbjogb25ib2FyZGluZyBzaXplIGhhcyBiZWVuIHNldC54TWlncmF0aW9uUHJvb2ZPZklua0luaXRpYWxpemVkAAsE0E1pZ3JhdGlvbjogUHJvb2Ytb2YtSW5rIHBhbGxldCBoYXMgYmVlbiBpbml0aWFsaXplZC5cTWlncmF0aW9uR2FtZXNTY2hlZHVsZWQADASUTWlncmF0aW9uOiBnYW1lcyBoYXZlIGJlZW4gc2NoZWR1bGVkLlxNaWdyYXRpb25JbnZpdGVzR3JhbnRlZAANBJRNaWdyYXRpb246IGludml0ZXMgaGF2ZSBiZWVuIGdyYW50ZWQufE1pZ3JhdGlvblJlaW1idXJzZW1lbnRWYWx1ZXNTZXQADgTsTWlncmF0aW9uOiBQcm9vZi1vZi1JbmsgcmVpbWJ1cnNlbWVudCB2YWx1ZXMgaGF2ZSBiZWVuIHNldC6ETWlncmF0aW9uQXR0ZXN0YXRpb25BbGxvd2FuY2VzU2V0AA8E8E1pZ3JhdGlvbjogUGVvcGxlIExpdGUgYXR0ZXN0YXRpb24gYWxsb3dhbmNlcyBoYXZlIGJlZW4gc2V0LkhNaWdyYXRpb25Db21wbGV0ZWQAEAQZAU1pZ3JhdGlvbiBoYXMgY29tcGxldGVkIGFuZCBvbl9wb2xsIGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIHRyaWdnZXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ9BwxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0FEV2ZW50BARUAAEgOFVwZ3JhZGVTdGFydGVkBAEobWlncmF0aW9uczgBDHUzMhDQVGhlIG51bWJlciBvZiBtaWdyYXRpb25zIHRoYXQgdGhpcyB1cGdyYWRlIGNvbnRhaW5zLgBBAVRoaXMgY2FuIGJlIHVzZWQgdG8gZGVzaWduIGEgcHJvZ3Jlc3MgaW5kaWNhdG9yIGluIGNvbWJpbmF0aW9uIHdpdGggY291bnRpbmcgdGhlzGBNaWdyYXRpb25Db21wbGV0ZWRgIGFuZCBgTWlncmF0aW9uU2tpcHBlZGAgZXZlbnRzLgAMaEEgUnVudGltZSB1cGdyYWRlIHN0YXJ0ZWQuAPhJdHMgZW5kIGlzIGluZGljYXRlZCBieSBgVXBncmFkZUNvbXBsZXRlZGAgb3IgYFVwZ3JhZGVGYWlsZWRgLkBVcGdyYWRlQ29tcGxldGVkAAEMmFRoZSBjdXJyZW50IHJ1bnRpbWUgdXBncmFkZSBjb21wbGV0ZWQuAB0BVGhpcyBpbXBsaWVzIHRoYXQgYWxsIG9mIGl0cyBtaWdyYXRpb25zIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYXMgd2VsbC40VXBncmFkZUZhaWxlZAACDFxSdW50aW1lIHVwZ3JhZGUgZmFpbGVkLgDoVGhpcyBpcyB2ZXJ5IGJhZCBhbmQgd2lsbCByZXF1aXJlIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uLkBNaWdyYXRpb25Ta2lwcGVkBAEUaW5kZXg4AQx1MzIEKQFUaGUgaW5kZXggb2YgdGhlIHNraXBwZWQgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgMECQFBIG1pZ3JhdGlvbiB3YXMgc2tpcHBlZCBzaW5jZSBpdCB3YXMgYWxyZWFkeSBleGVjdXRlZCBpbiB0aGUgcGFzdC5ETWlncmF0aW9uQWR2YW5jZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgQEXEEgbWlncmF0aW9uIHByb2dyZXNzZWQuSE1pZ3JhdGlvbkNvbXBsZXRlZAgBFGluZGV4OAEMdTMyBAkBVGhlIGluZGV4IG9mIHRoZSBtaWdyYXRpb24gd2l0aGluIHRoZSBbYENvbmZpZzo6TWlncmF0aW9uc2BdIGxpc3QuARB0b29rOAFEQmxvY2tOdW1iZXJGb3I8VD4E1FRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgdGhpcyBtaWdyYXRpb24gdG9vayBzbyBmYXIuBQRYQSBNaWdyYXRpb24gY29tcGxldGVkLjxNaWdyYXRpb25GYWlsZWQIARRpbmRleDgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vazgBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgYMTEEgTWlncmF0aW9uIGZhaWxlZC4ATQFUaGlzIGltcGxpZXMgdGhhdCB0aGUgd2hvbGUgdXBncmFkZSBmYWlsZWQgYW5kIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLjxIaXN0b3JpY0NsZWFyZWQEASxuZXh0X2N1cnNvcmUFATxPcHRpb248VmVjPHU4Pj4E6FNob3VsZCBiZSBwYXNzZWQgdG8gYGNsZWFyX2hpc3RvcmljYCBpbiBhIHN1Y2Nlc3NpdmUgY2FsbC4HBMhUaGUgc2V0IG9mIGhpc3RvcmljYWwgbWlncmF0aW9ucyBoYXMgYmVlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEEHCDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEADgBDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAARQcAAAI8AEkHAAACTQcATQcAAAQIODgAUQcIMGZyYW1lX3N5c3RlbVhMYXN0UnVudGltZVVwZ3JhZGVJbmZvAAAIATBzcGVjX3ZlcnNpb25gAUxjb2RlYzo6Q29tcGFjdDx1MzI+AAEkc3BlY19uYW1lVQcBRENvdzwnc3RhdGljLCBzdHI+AABVBwQMQ293BARUAVkHAAQAWQcAAABZBwAABQIAXQcIMGZyYW1lX3N5c3RlbWBDb2RlVXBncmFkZUF1dGhvcml6YXRpb24EBFQAAAgBJGNvZGVfaGFzaDwBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uyAEQYm9vbAAAYQcMMGZyYW1lX3N5c3RlbRhsaW1pdHMwQmxvY2tXZWlnaHRzAAAMAShiYXNlX2Jsb2Nr1QEBGFdlaWdodAABJG1heF9ibG9ja9UBARhXZWlnaHQAASRwZXJfY2xhc3NlBwGEUGVyRGlzcGF0Y2hDbGFzczxXZWlnaHRzUGVyQ2xhc3M+AABlBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAWkHAAwBGG5vcm1hbGkHAQRUAAEsb3BlcmF0aW9uYWxpBwEEVAABJG1hbmRhdG9yeWkHAQRUAABpBwwwZnJhbWVfc3lzdGVtGGxpbWl0czxXZWlnaHRzUGVyQ2xhc3MAABABOGJhc2VfZXh0cmluc2lj1QEBGFdlaWdodAABNG1heF9leHRyaW5zaWOlAgE4T3B0aW9uPFdlaWdodD4AASRtYXhfdG90YWylAgE4T3B0aW9uPFdlaWdodD4AASByZXNlcnZlZKUCAThPcHRpb248V2VpZ2h0PgAAbQcMMGZyYW1lX3N5c3RlbRhsaW1pdHMsQmxvY2tMZW5ndGgAAAgBDG1heHEHAVRQZXJEaXNwYXRjaENsYXNzPHUzMj4AATxtYXhfaGVhZGVyX3NpemUJAwEsT3B0aW9uPHUzMj4AAHEHDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoQFBlckRpc3BhdGNoQ2xhc3MEBFQBOAAMARhub3JtYWw4AQRUAAEsb3BlcmF0aW9uYWw4AQRUAAEkbWFuZGF0b3J5OAEEVAAAdQcIKHNwX3dlaWdodHM8UnVudGltZURiV2VpZ2h0AAAIARByZWFkKAEMdTY0AAEUd3JpdGUoAQx1NjQAAHkHCChzcF92ZXJzaW9uOFJ1bnRpbWVWZXJzaW9uAAAgASRzcGVjX25hbWVVBwFEQ293PCdzdGF0aWMsIHN0cj4AASRpbXBsX25hbWVVBwFEQ293PCdzdGF0aWMsIHN0cj4AAURhdXRob3JpbmdfdmVyc2lvbjgBDHUzMgABMHNwZWNfdmVyc2lvbjgBDHUzMgABMGltcGxfdmVyc2lvbjgBDHUzMgABEGFwaXN9BwEcQXBpc1ZlYwABTHRyYW5zYWN0aW9uX3ZlcnNpb244AQx1MzIAAThzeXN0ZW1fdmVyc2lvbgwBCHU4AAB9BwQMQ293BARUAYEHAAQAgQcAAACBBwAAAoUHAIUHAAAECL0BOACJBwwwZnJhbWVfc3lzdGVtGHBhbGxldBRFcnJvcgQEVAABJDxJbnZhbGlkU3BlY05hbWUAAAgRAVRoZSBuYW1lIG9mIHNwZWNpZmljYXRpb24gZG9lcyBub3QgbWF0Y2ggYmV0d2VlbiB0aGUgY3VycmVudCBydW50aW1lUGFuZCB0aGUgbmV3IHJ1bnRpbWUuaFNwZWNWZXJzaW9uTmVlZHNUb0luY3JlYXNlAAEIQQFUaGUgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIGlzIG5vdCBhbGxvd2VkIHRvIGRlY3JlYXNlIGJldHdlZW4gdGhlIGN1cnJlbnQgcnVudGltZVBhbmQgdGhlIG5ldyBydW50aW1lLnRGYWlsZWRUb0V4dHJhY3RSdW50aW1lVmVyc2lvbgACDOxGYWlsZWQgdG8gZXh0cmFjdCB0aGUgcnVudGltZSB2ZXJzaW9uIGZyb20gdGhlIG5ldyBydW50aW1lLgAJAUVpdGhlciBjYWxsaW5nIGBDb3JlX3ZlcnNpb25gIG9yIGRlY29kaW5nIGBSdW50aW1lVmVyc2lvbmAgZmFpbGVkLkxOb25EZWZhdWx0Q29tcG9zaXRlAAME/FN1aWNpZGUgY2FsbGVkIHdoZW4gdGhlIGFjY291bnQgaGFzIG5vbi1kZWZhdWx0IGNvbXBvc2l0ZSBkYXRhLjxOb25aZXJvUmVmQ291bnQABAQ1AVRoZXJlIGlzIGEgbm9uLXplcm8gcmVmZXJlbmNlIGNvdW50IHByZXZlbnRpbmcgdGhlIGFjY291bnQgZnJvbSBiZWluZyBwdXJnZWQuMENhbGxGaWx0ZXJlZAAFBNBUaGUgb3JpZ2luIGZpbHRlciBwcmV2ZW50IHRoZSBjYWxsIHRvIGJlIGRpc3BhdGNoZWQubE11bHRpQmxvY2tNaWdyYXRpb25zT25nb2luZwAGBFUBQSBtdWx0aS1ibG9jayBtaWdyYXRpb24gaXMgb25nb2luZyBhbmQgcHJldmVudHMgdGhlIGN1cnJlbnQgY29kZSBmcm9tIGJlaW5nIHJlcGxhY2VkLkROb3RoaW5nQXV0aG9yaXplZAAHBFhObyB1cGdyYWRlIGF1dGhvcml6ZWQuMFVuYXV0aG9yaXplZAAIBJRUaGUgc3VibWl0dGVkIGNvZGUgaXMgbm90IGF1dGhvcml6ZWQuBGxFcnJvciBmb3IgdGhlIFN5c3RlbSBwYWxsZXSNBwwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAAkQcQKHNwX3J1bnRpbWUcZ2VuZXJpYxRibG9jaxRCbG9jawgYSGVhZGVyAVwkRXh0cmluc2ljAZUHAAgBGGhlYWRlclwBGEhlYWRlcgABKGV4dHJpbnNpY3OlBwE4VmVjPEV4dHJpbnNpYz4AAJUHEChzcF9ydW50aW1lHGdlbmVyaWNMdW5jaGVja2VkX2V4dHJpbnNpY0hVbmNoZWNrZWRFeHRyaW5zaWMQHEFkZHJlc3MBABBDYWxsASAkU2lnbmF0dXJlAdkDFEV4dHJhAZkHAAQAGAAAAJkHCHRjdW11bHVzX3BhbGxldF93ZWlnaHRfcmVjbGFpbVBTdG9yYWdlV2VpZ2h0UmVjbGFpbQgEVAAEUwGdBwAEAJ0HAQRTAACdBwAABCihB+EF5QXpBe0F8QX1Bf0FAQYFBgChBwAABDAQaQVtBXkFhQWRBZ0FqQW1BcUF0QXdBQClBwAAApUHAKkHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtMGJsb2NrX3dlaWdodDxCbG9ja1dlaWdodE1vZGUEBFQAAQwgRnVsbENvcmUEARxjb250ZXh0OAFEQmxvY2tOdW1iZXJGb3I8VD4AAABEUG90ZW50aWFsRnVsbENvcmUMARxjb250ZXh0OAFEQmxvY2tOdW1iZXJGb3I8VD4AAVxmaXJzdF90cmFuc2FjdGlvbl9pbmRleAkDASxPcHRpb248dTMyPgABNHRhcmdldF93ZWlnaHTVAQEYV2VpZ2h0AAEAOEZyYWN0aW9uT2ZDb3JlCAEcY29udGV4dDgBREJsb2NrTnVtYmVyRm9yPFQ+AAFcZmlyc3RfdHJhbnNhY3Rpb25faW5kZXgJAwEsT3B0aW9uPHUzMj4AAgAArQcAAAYtAwCxBwAAArUHALUHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudCBBbmNlc3RvcgQESAE8AAwBOHVzZWRfYmFuZHdpZHRouQcBNFVzZWRCYW5kd2lkdGgAAThwYXJhX2hlYWRfaGFzaM0HASRPcHRpb248SD4AAWBjb25zdW1lZF9nb19haGVhZF9zaWduYWzRBwGMT3B0aW9uPHJlbGF5X2NoYWluOjpVcGdyYWRlR29BaGVhZD4AALkHDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDRVc2VkQmFuZHdpZHRoAAAMATR1bXBfbXNnX2NvdW50OAEMdTMyAAE8dW1wX3RvdGFsX2J5dGVzOAEMdTMyAAE0aHJtcF9vdXRnb2luZ70HAYxCVHJlZU1hcDxQYXJhSWQsIEhybXBDaGFubmVsVXBkYXRlPgAAvQcEIEJUcmVlTWFwCARLAZwEVgHBBwAEAMUHAAAAwQcMfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1IdW5pbmNsdWRlZF9zZWdtZW50REhybXBDaGFubmVsVXBkYXRlAAAIASRtc2dfY291bnQ4AQx1MzIAASx0b3RhbF9ieXRlczgBDHUzMgAAxQcAAALJBwDJBwAABAicwQcAzQcEGE9wdGlvbgQEVAE8AQgQTm9uZQAAABBTb21lBAA8AAABAADRBwQYT3B0aW9uBARUAdUHAQgQTm9uZQAAABBTb21lBADVBwAAAQAA1QcMTHBvbGthZG90X3ByaW1pdGl2ZXMIdjk4VXBncmFkZUdvQWhlYWQAAQgUQWJvcnQAAAAcR29BaGVhZAABAADZBwx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ4U2VnbWVudFRyYWNrZXIEBEgBPAAMATh1c2VkX2JhbmR3aWR0aLkHATRVc2VkQmFuZHdpZHRoAAE4aHJtcF93YXRlcm1hcmsJAwGAT3B0aW9uPHJlbGF5X2NoYWluOjpCbG9ja051bWJlcj4AAWBjb25zdW1lZF9nb19haGVhZF9zaWduYWzRBwGMT3B0aW9uPHJlbGF5X2NoYWluOjpVcGdyYWRlR29BaGVhZD4AAN0HBBhPcHRpb24EBFQB4QcBCBBOb25lAAAAEFNvbWUEAOEHAAABAADhBwxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OUhVcGdyYWRlUmVzdHJpY3Rpb24AAQQcUHJlc2VudAAAAADlBwx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbVByZWxheV9zdGF0ZV9zbmFwc2hvdFhNZXNzYWdpbmdTdGF0ZVNuYXBzaG90AAAQATBkbXFfbXFjX2hlYWQ8AURyZWxheV9jaGFpbjo6SGFzaAABnHJlbGF5X2Rpc3BhdGNoX3F1ZXVlX3JlbWFpbmluZ19jYXBhY2l0eekHAYxSZWxheURpc3BhdGNoUXVldWVSZW1haW5pbmdDYXBhY2l0eQABQGluZ3Jlc3NfY2hhbm5lbHPtBwGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgABPGVncmVzc19jaGFubmVsc+0HAYhWZWM8KFBhcmFJZCwgQWJyaWRnZWRIcm1wQ2hhbm5lbCk+AADpBwx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbVByZWxheV9zdGF0ZV9zbmFwc2hvdIxSZWxheURpc3BhdGNoUXVldWVSZW1haW5pbmdDYXBhY2l0eQAACAE8cmVtYWluaW5nX2NvdW50OAEMdTMyAAE4cmVtYWluaW5nX3NpemU4AQx1MzIAAO0HAAAC8QcA8QcAAAQInPUHAPUHDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5TEFicmlkZ2VkSHJtcENoYW5uZWwAABgBMG1heF9jYXBhY2l0eTgBDHUzMgABOG1heF90b3RhbF9zaXplOAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZTgBDHUzMgABJG1zZ19jb3VudDgBDHUzMgABKHRvdGFsX3NpemU4AQx1MzIAASBtcWNfaGVhZM0HATBPcHRpb248SGFzaD4AAPkHDExwb2xrYWRvdF9wcmltaXRpdmVzCHY5ZEFicmlkZ2VkSG9zdENvbmZpZ3VyYXRpb24AACgBNG1heF9jb2RlX3NpemU4AQx1MzIAAUhtYXhfaGVhZF9kYXRhX3NpemU4AQx1MzIAAVhtYXhfdXB3YXJkX3F1ZXVlX2NvdW50OAEMdTMyAAFUbWF4X3Vwd2FyZF9xdWV1ZV9zaXplOAEMdTMyAAFcbWF4X3Vwd2FyZF9tZXNzYWdlX3NpemU4AQx1MzIAAZBtYXhfdXB3YXJkX21lc3NhZ2VfbnVtX3Blcl9jYW5kaWRhdGU4AQx1MzIAAYhocm1wX21heF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlOAEMdTMyAAFsdmFsaWRhdGlvbl91cGdyYWRlX2Nvb2xkb3duOAEsQmxvY2tOdW1iZXIAAWB2YWxpZGF0aW9uX3VwZ3JhZGVfZGVsYXk4ASxCbG9ja051bWJlcgABUGFzeW5jX2JhY2tpbmdfcGFyYW1z/QcBSEFzeW5jQmFja2luZ1BhcmFtcwAA/QcQTHBvbGthZG90X3ByaW1pdGl2ZXMIdjk0YXN5bmNfYmFja2luZ0hBc3luY0JhY2tpbmdQYXJhbXMAAAgBTG1heF9jYW5kaWRhdGVfZGVwdGg4AQx1MzIAAVBhbGxvd2VkX2FuY2VzdHJ5X2xlbjgBDHUzMgAAAQgIlGN1bXVsdXNfcHJpbWl0aXZlc19wYXJhY2hhaW5faW5oZXJlbnRETWVzc2FnZVF1ZXVlQ2hhaW4AAAQAPAEkUmVsYXlIYXNoAAAFCAQgQlRyZWVNYXAIBEsBnARWAQEIAAQACQgAAAAJCAAAAg0IAA0IAAAECJwBCAARCAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUhwYXJhY2hhaW5faW5oZXJlbnRASW5ib3VuZE1lc3NhZ2VJZAAACAEcc2VudF9hdDgBLEJsb2NrTnVtYmVyAAEscmV2ZXJzZV9pZHg4AQx1MzIAABUIAAACGQgAGQgIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc0xPdXRib3VuZEhybXBNZXNzYWdlBAhJZAGcAAgBJHJlY2lwaWVudJwBCElkAAEQZGF0YRgBTGFsbG9jOjp2ZWM6OlZlYzx1OD4AAB0ICHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtLFBvVk1lc3NhZ2VzAAAYAWhyZWxheV9zdG9yYWdlX3Jvb3Rfb3JfaGFzaDwBRHJlbGF5X2NoYWluOjpIYXNoAAE0Y29yZV9zZWxlY3RvcgwBCHU4AAEwYnVuZGxlX2luZGV4DAEIdTgAATR1bXBfbXNnX2NvdW50OAEMdTMyAAFMaHJtcF9vdXRib3VuZF9jb3VudDgBDHUzMgABYGhybXBfb3V0Ym91bmRfcmVjaXBpZW50cyEIASxWZWM8UGFyYUlkPgAAIQgAAAKcACUIDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBRFcnJvcgQEVAABGExPdmVybGFwcGluZ1VwZ3JhZGVzAAAEGQFBdHRlbXB0IHRvIHVwZ3JhZGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB3aGlsZSBleGlzdGluZyB1cGdyYWRlIHBlbmRpbmcuUFByb2hpYml0ZWRCeVBvbGthZG90AAEETQFQb2xrYWRvdCBjdXJyZW50bHkgcHJvaGliaXRzIHRoaXMgcGFyYWNoYWluIGZyb20gdXBncmFkaW5nIGl0cyB2YWxpZGF0aW9uIGZ1bmN0aW9uLhhUb29CaWcAAghFAVRoZSBzdXBwbGllZCB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyBjb21waWxlZCBpbnRvIGEgYmxvYiBsYXJnZXIgdGhhbiBQb2xrYWRvdCBpczx3aWxsaW5nIHRvIHJ1bi5oVmFsaWRhdGlvbkRhdGFOb3RBdmFpbGFibGUAAwQdAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgdmFsaWRhdGlvbiBkYXRhIGRpZCBub3QgcnVuIHRoaXMgYmxvY2sudEhvc3RDb25maWd1cmF0aW9uTm90QXZhaWxhYmxlAAQEKQFUaGUgaW5oZXJlbnQgd2hpY2ggc3VwcGxpZXMgdGhlIGhvc3QgY29uZmlndXJhdGlvbiBkaWQgbm90IHJ1biB0aGlzIGJsb2NrLjBOb3RTY2hlZHVsZWQABQTYTm8gdmFsaWRhdGlvbiBmdW5jdGlvbiB1cGdyYWRlIGlzIGN1cnJlbnRseSBzY2hlZHVsZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikICHRpbmRpdl9wYWxsZXRfcmVsYXlfcmFuZG9tbmVzc0BSYW5kb21uZXNzVmFsdWVzAAAIARRibG9jay0IAVxPcHRpb248UmFuZG9tbmVzc0VudHJ5PgABNG9uZV9lcG9jaF9hZ28tCAFcT3B0aW9uPFJhbmRvbW5lc3NFbnRyeT4AAC0IBBhPcHRpb24EBFQBMQgBCBBOb25lAAAAEFNvbWUEADEIAAABAAAxCAh0aW5kaXZfcGFsbGV0X3JlbGF5X3JhbmRvbW5lc3M8UmFuZG9tbmVzc0VudHJ5AAAIAShyYW5kb21uZXNzCAEgW3U4OyAzMl0AARhtb21lbnQ4AWByZWxheV9jaGFpbjo6QmxvY2tOdW1iZXIAADUIDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBOQgEUwAABABBCAEYVmVjPFQ+AAA5CAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLEJhbGFuY2VMb2NrBBxCYWxhbmNlAcQADAEIaWS9AQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnTEARxCYWxhbmNlAAEccmVhc29ucz0IARxSZWFzb25zAAA9CAw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzHFJlYXNvbnMAAQwMRmVlAAAAEE1pc2MAAQAMQWxsAAIAAEEIAAACOQgARQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFJCARTAAAEAE0IARhWZWM8VD4AAEkIDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsUmVzZXJ2ZURhdGEIRFJlc2VydmVJZGVudGlmaWVyAb0BHEJhbGFuY2UBxAAIAQhpZL0BAURSZXNlcnZlSWRlbnRpZmllcgABGGFtb3VudMQBHEJhbGFuY2UAAE0IAAACSQgAUQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAFVCARTAAAEAFkIARhWZWM8VD4AAFUIFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYyBJZEFtb3VudAgISWQBWQYcQmFsYW5jZQHEAAgBCGlkWQYBCElkAAEYYW1vdW50xAEcQmFsYW5jZQAAWQgAAAJVCABdCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAWEIBFMAAAQAZQgBGFZlYzxUPgAAYQgUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAEQHEJhbGFuY2UBxAAIAQhpZBABCElkAAEYYW1vdW50xAEcQmFsYW5jZQAAZQgAAAJhCABpCAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABMDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgE+E51bWJlciBvZiBob2xkcyBleGNlZWQgYFZhcmlhbnRDb3VudE9mPFQ6OlJ1bnRpbWVIb2xkUmVhc29uPmAuOFRvb01hbnlGcmVlemVzAAkEmE51bWJlciBvZiBmcmVlemVzIGV4Y2VlZCBgTWF4RnJlZXplc2AuTElzc3VhbmNlRGVhY3RpdmF0ZWQACgQBAVRoZSBpc3N1YW5jZSBjYW5ub3QgYmUgbW9kaWZpZWQgc2luY2UgaXQgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZC4kRGVsdGFaZXJvAAsEZFRoZSBkZWx0YSBjYW5ub3QgYmUgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQubQgIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50IFJlbGVhc2VzAAEIJFYxQW5jaWVudAAAAAhWMgABAABxCBA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMcc3RvcmFnZRhOb0Ryb3AEBFQBdQgABAB1CAEEVAAAdQgYNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucyBmdW5naWJsZSRpbWJhbGFuY2UkSW1iYWxhbmNlDARCAcQYT25Ecm9wADhPcHBvc2l0ZU9uRHJvcAAABAEYYW1vdW50xAEEQgAAeQgMfGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb24YcGFsbGV0FFVzYWdlCBxCYWxhbmNlAcQsQmxvY2tOdW1iZXIBOAAIARB1c2VkxAEcQmFsYW5jZQABIGF0X2Jsb2NrOAEsQmxvY2tOdW1iZXIAAH0IDHxpbmRpdl9wYWxsZXRfb3JpZ2luX3Jlc3RyaWN0aW9uGHBhbGxldBRFcnJvcgQEVAABCBxOb1VzYWdlAAAEgFRoZSBvcmlnaW4gaGFzIG5vIHVzYWdlIHRyYWNrZWQuHE5vdFplcm8AAQRYVGhlIHVzYWdlIGlzIG5vdCB6ZXJvLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6BCAw0cGFsbGV0X2Fzc2V0cxR0eXBlczBBc3NldERldGFpbHMMHEJhbGFuY2UBxCRBY2NvdW50SWQBBDhEZXBvc2l0QmFsYW5jZQHEADABFG93bmVyBAEkQWNjb3VudElkAAEYaXNzdWVyBAEkQWNjb3VudElkAAEUYWRtaW4EASRBY2NvdW50SWQAARxmcmVlemVyBAEkQWNjb3VudElkAAEYc3VwcGx5xAEcQmFsYW5jZQABHGRlcG9zaXTEAThEZXBvc2l0QmFsYW5jZQABLG1pbl9iYWxhbmNlxAEcQmFsYW5jZQABNGlzX3N1ZmZpY2llbnTIARBib29sAAEgYWNjb3VudHM4AQx1MzIAASxzdWZmaWNpZW50czgBDHUzMgABJGFwcHJvdmFsczgBDHUzMgABGHN0YXR1c4UIASxBc3NldFN0YXR1cwAAhQgMNHBhbGxldF9hc3NldHMUdHlwZXMsQXNzZXRTdGF0dXMAAQwQTGl2ZQAAABhGcm96ZW4AAQAoRGVzdHJveWluZwACAACJCAAABAjgBACNCAw0cGFsbGV0X2Fzc2V0cxR0eXBlczBBc3NldEFjY291bnQQHEJhbGFuY2UBxDhEZXBvc2l0QmFsYW5jZQHEFEV4dHJhARAkQWNjb3VudElkAQQAEAEcYmFsYW5jZcQBHEJhbGFuY2UAARhzdGF0dXORCAE0QWNjb3VudFN0YXR1cwABGHJlYXNvbpUIAahFeGlzdGVuY2VSZWFzb248RGVwb3NpdEJhbGFuY2UsIEFjY291bnRJZD4AARRleHRyYRABFEV4dHJhAACRCAw0cGFsbGV0X2Fzc2V0cxR0eXBlczRBY2NvdW50U3RhdHVzAAEMGExpcXVpZAAAABhGcm96ZW4AAQAcQmxvY2tlZAACAACVCAw0cGFsbGV0X2Fzc2V0cxR0eXBlczxFeGlzdGVuY2VSZWFzb24IHEJhbGFuY2UBxCRBY2NvdW50SWQBBAEUIENvbnN1bWVyAAAAKFN1ZmZpY2llbnQAAQAsRGVwb3NpdEhlbGQEAMQBHEJhbGFuY2UAAgA8RGVwb3NpdFJlZnVuZGVkAAMALERlcG9zaXRGcm9tCAAEASRBY2NvdW50SWQAAMQBHEJhbGFuY2UABAAAmQgAAAQM4AQEAJ0IDDRwYWxsZXRfYXNzZXRzFHR5cGVzIEFwcHJvdmFsCBxCYWxhbmNlAcQ4RGVwb3NpdEJhbGFuY2UBxAAIARhhbW91bnTEARxCYWxhbmNlAAEcZGVwb3NpdMQBOERlcG9zaXRCYWxhbmNlAAChCAw0cGFsbGV0X2Fzc2V0cxR0eXBlczRBc3NldE1ldGFkYXRhCDhEZXBvc2l0QmFsYW5jZQHENEJvdW5kZWRTdHJpbmcBpQgAFAEcZGVwb3NpdMQBOERlcG9zaXRCYWxhbmNlAAEQbmFtZaUIATRCb3VuZGVkU3RyaW5nAAEYc3ltYm9spQgBNEJvdW5kZWRTdHJpbmcAASBkZWNpbWFscwwBCHU4AAEkaXNfZnJvemVuyAEQYm9vbAAApQgMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AACpCAw0cGFsbGV0X2Fzc2V0cxhwYWxsZXQURXJyb3IIBFQABEkAAWAoQmFsYW5jZUxvdwAABBUBQWNjb3VudCBiYWxhbmNlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0cmFuc2ZlciBhbW91bnQuJE5vQWNjb3VudAABBJBUaGUgYWNjb3VudCB0byBhbHRlciBkb2VzIG5vdCBleGlzdC4wTm9QZXJtaXNzaW9uAAIE6FRoZSBzaWduaW5nIGFjY291bnQgaGFzIG5vIHBlcm1pc3Npb24gdG8gZG8gdGhlIG9wZXJhdGlvbi4cVW5rbm93bgADBHhUaGUgZ2l2ZW4gYXNzZXQgSUQgaXMgdW5rbm93bi4YRnJvemVuAAQEdFRoZSBvcmlnaW4gYWNjb3VudCBpcyBmcm96ZW4uFEluVXNlAAUEeFRoZSBhc3NldCBJRCBpcyBhbHJlYWR5IHRha2VuLihCYWRXaXRuZXNzAAYEbEludmFsaWQgd2l0bmVzcyBkYXRhIGdpdmVuLjhNaW5CYWxhbmNlWmVybwAHBIxNaW5pbXVtIGJhbGFuY2Ugc2hvdWxkIGJlIG5vbi16ZXJvLkxVbmF2YWlsYWJsZUNvbnN1bWVyAAgMWQFVbmFibGUgdG8gaW5jcmVtZW50IHRoZSBjb25zdW1lciByZWZlcmVuY2UgY291bnRlcnMgb24gdGhlIGFjY291bnQuIEVpdGhlciBubyBwcm92aWRlck0BcmVmZXJlbmNlIGV4aXN0cyB0byBhbGxvdyBhIG5vbi16ZXJvIGJhbGFuY2Ugb2YgYSBub24tc2VsZi1zdWZmaWNpZW50IGFzc2V0LCBvciBvbmXwZmV3ZXIgdGhlbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY29uc3VtZXJzIGhhcyBiZWVuIHJlYWNoZWQuLEJhZE1ldGFkYXRhAAkEXEludmFsaWQgbWV0YWRhdGEgZ2l2ZW4uKFVuYXBwcm92ZWQACgTETm8gYXBwcm92YWwgZXhpc3RzIHRoYXQgd291bGQgYWxsb3cgdGhlIHRyYW5zZmVyLiBXb3VsZERpZQALBDUBVGhlIHNvdXJjZSBhY2NvdW50IHdvdWxkIG5vdCBzdXJ2aXZlIHRoZSB0cmFuc2ZlciBhbmQgaXQgbmVlZHMgdG8gc3RheSBhbGl2ZS40QWxyZWFkeUV4aXN0cwAMBIRUaGUgYXNzZXQtYWNjb3VudCBhbHJlYWR5IGV4aXN0cy4kTm9EZXBvc2l0AA0E1FRoZSBhc3NldC1hY2NvdW50IGRvZXNuJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIGRlcG9zaXQuJFdvdWxkQnVybgAOBMRUaGUgb3BlcmF0aW9uIHdvdWxkIHJlc3VsdCBpbiBmdW5kcyBiZWluZyBidXJuZWQuJExpdmVBc3NldAAPCFkBVGhlIGFzc2V0IGlzIGEgbGl2ZSBhc3NldCBhbmQgaXMgYWN0aXZlbHkgYmVpbmcgdXNlZC4gVXN1YWxseSBlbWl0IGZvciBvcGVyYXRpb25zIHN1Y2gdAWFzIGBzdGFydF9kZXN0cm95YCB3aGljaCByZXF1aXJlIHRoZSBhc3NldCB0byBiZSBpbiBhIGRlc3Ryb3lpbmcgc3RhdGUuMEFzc2V0Tm90TGl2ZQAQBMhUaGUgYXNzZXQgaXMgbm90IGxpdmUsIGFuZCBsaWtlbHkgYmVpbmcgZGVzdHJveWVkLjxJbmNvcnJlY3RTdGF0dXMAEQSwVGhlIGFzc2V0IHN0YXR1cyBpcyBub3QgdGhlIGV4cGVjdGVkIHN0YXR1cy4kTm90RnJvemVuABIE2FRoZSBhc3NldCBzaG91bGQgYmUgZnJvemVuIGJlZm9yZSB0aGUgZ2l2ZW4gb3BlcmF0aW9uLjhDYWxsYmFja0ZhaWxlZAATBIRDYWxsYmFjayBhY3Rpb24gcmVzdWx0ZWQgaW4gZXJyb3IoQmFkQXNzZXRJZAAUBMhUaGUgYXNzZXQgSUQgbXVzdCBiZSBlcXVhbCB0byB0aGUgW2BOZXh0QXNzZXRJZGBdLjxDb250YWluc0ZyZWV6ZXMAFQRNAVRoZSBhc3NldCBjYW5ub3QgYmUgZGVzdHJveWVkIGJlY2F1c2Ugc29tZSBhY2NvdW50cyBmb3IgdGhpcyBhc3NldCBjb250YWluIGZyZWV6ZXMuNENvbnRhaW5zSG9sZHMAFgRFAVRoZSBhc3NldCBjYW5ub3QgYmUgZGVzdHJveWVkIGJlY2F1c2Ugc29tZSBhY2NvdW50cyBmb3IgdGhpcyBhc3NldCBjb250YWluIGhvbGRzLjxUb29NYW55UmVzZXJ2ZXMAFwSAVHJpZWQgc2V0dGluZyB0b28gbWFueSByZXNlcnZlcy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQurQgEGE9wdGlvbgQEVAGBCAEIEE5vbmUAAAAQU29tZQQAgQgAAAEAALEIBBhPcHRpb24EBFQBxAEIEE5vbmUAAAAQU29tZQQAxAAAAQAAtQgEGE9wdGlvbgQEVAGhCAEIEE5vbmUAAAAQU29tZQQAoQgAAAEAALkIDFBwYWxsZXRfYXNzZXRzX2hvbGRlchhwYWxsZXQURXJyb3IIBFQABEkAAQQwVG9vTWFueUhvbGRzAAAEMQFOdW1iZXIgb2YgaG9sZHMgb24gYW4gYWNjb3VudCB3b3VsZCBleGNlZWQgdGhlIGNvdW50IG9mIGBSdW50aW1lSG9sZFJlYXNvbmAuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lr0IDERwYWxsZXRfYXNzZXRfcmF0ZRhwYWxsZXQURXJyb3IEBFQAAQxAVW5rbm93bkFzc2V0S2luZAAABHhUaGUgZ2l2ZW4gYXNzZXQgSUQgaXMgdW5rbm93bi40QWxyZWFkeUV4aXN0cwABBFEBVGhlIGdpdmVuIGFzc2V0IElEIGFscmVhZHkgaGFzIGFuIGFzc2lnbmVkIGNvbnZlcnNpb24gcmF0ZSBhbmQgY2Fubm90IGJlIHJlLWNyZWF0ZWQuIE92ZXJmbG93AAIEzE92ZXJmbG93IG9jdXJyZWQgd2hlbiBjYWxjdWxhdGluZyB0aGUgaW52ZXJzZSByYXRlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7BCAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQQEUwAABADMARhWZWM8VD4AAMUIDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQByQgEUwAABADNCAEYVmVjPFQ+AADJCAxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQ0Q2FuZGlkYXRlSW5mbwgkQWNjb3VudElkAQQcQmFsYW5jZQHEAAgBDHdobwQBJEFjY291bnRJZAABHGRlcG9zaXTEARxCYWxhbmNlAADNCAAAAskIANEICDRmcmFtZV9zdXBwb3J0IFBhbGxldElkAAAEAL0BARxbdTg7IDhdAADVCAxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQURXJyb3IEBFQAAUREVG9vTWFueUNhbmRpZGF0ZXMAAASMVGhlIHBhbGxldCBoYXMgdG9vIG1hbnkgY2FuZGlkYXRlcy5cVG9vRmV3RWxpZ2libGVDb2xsYXRvcnMAAQSsTGVhdmluZyB3b3VsZCByZXN1bHQgaW4gdG9vIGZldyBjYW5kaWRhdGVzLkBBbHJlYWR5Q2FuZGlkYXRlAAIEfEFjY291bnQgaXMgYWxyZWFkeSBhIGNhbmRpZGF0ZS4wTm90Q2FuZGlkYXRlAAMEbEFjY291bnQgaXMgbm90IGEgY2FuZGlkYXRlLlBUb29NYW55SW52dWxuZXJhYmxlcwAEBIRUaGVyZSBhcmUgdG9vIG1hbnkgSW52dWxuZXJhYmxlcy5MQWxyZWFkeUludnVsbmVyYWJsZQAFBIxBY2NvdW50IGlzIGFscmVhZHkgYW4gSW52dWxuZXJhYmxlLjxOb3RJbnZ1bG5lcmFibGUABgR8QWNjb3VudCBpcyBub3QgYW4gSW52dWxuZXJhYmxlLlxOb0Fzc29jaWF0ZWRWYWxpZGF0b3JJZAAHBJxBY2NvdW50IGhhcyBubyBhc3NvY2lhdGVkIHZhbGlkYXRvciBJRC5YVmFsaWRhdG9yTm90UmVnaXN0ZXJlZAAIBIxWYWxpZGF0b3IgSUQgaXMgbm90IHlldCByZWdpc3RlcmVkLmxJbnNlcnRUb0NhbmRpZGF0ZUxpc3RGYWlsZWQACQScQ291bGQgbm90IGluc2VydCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QudFJlbW92ZUZyb21DYW5kaWRhdGVMaXN0RmFpbGVkAAoEpENvdWxkIG5vdCByZW1vdmUgZnJvbSB0aGUgY2FuZGlkYXRlIGxpc3QuNERlcG9zaXRUb29Mb3cACwT0TmV3IGRlcG9zaXQgYW1vdW50IHdvdWxkIGJlIGJlbG93IHRoZSBtaW5pbXVtIGNhbmRpZGFjeSBib25kLmRVcGRhdGVDYW5kaWRhdGVMaXN0RmFpbGVkAAwEkENvdWxkIG5vdCB1cGRhdGUgdGhlIGNhbmRpZGF0ZSBsaXN0LkBJbnN1ZmZpY2llbnRCb25kAA0EKQFEZXBvc2l0IGFtb3VudCBpcyB0b28gbG93IHRvIHRha2UgdGhlIHRhcmdldCdzIHNsb3QgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0LlBUYXJnZXRJc05vdENhbmRpZGF0ZQAOBC0BVGhlIHRhcmdldCBhY2NvdW50IHRvIGJlIHJlcGxhY2VkIGluIHRoZSBjYW5kaWRhdGUgbGlzdCBpcyBub3QgYSBjYW5kaWRhdGUuQElkZW50aWNhbERlcG9zaXQADwQNAVRoZSB1cGRhdGVkIGRlcG9zaXQgYW1vdW50IGlzIGVxdWFsIHRvIHRoZSBhbW91bnQgYWxyZWFkeSByZXNlcnZlZC5ASW52YWxpZFVucmVzZXJ2ZQAQBD0BQ2Fubm90IGxvd2VyIGNhbmRpZGFjeSBib25kIHdoaWxlIG9jY3VweWluZyBhIGZ1dHVyZSBjb2xsYXRvciBzbG90IGluIHRoZSBsaXN0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7ZCAAAAt0IAN0IAAAECAQ5AQDhCAAAAuUIAOUIAAAECDjpCADpCAwoc3Bfc3Rha2luZxxvZmZlbmNlPE9mZmVuY2VTZXZlcml0eQAABADtCAEcUGVyYmlsbAAA7QgMNHNwX2FyaXRobWV0aWMocGVyX3RoaW5ncxxQZXJiaWxsAAAEADgBDHUzMgAA8QgAAAQI9QgYAPUIDBxzcF9jb3JlGGNyeXB0byRLZXlUeXBlSWQAAAQAcAEcW3U4OyA0XQAA+QgMOHBhbGxldF9zZXNzaW9uGHBhbGxldBRFcnJvcgQEVAABFDBJbnZhbGlkUHJvb2YAAARgSW52YWxpZCBvd25lcnNoaXAgcHJvb2YuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAEEnE5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElEIGZvciBhY2NvdW50LjREdXBsaWNhdGVkS2V5AAIEZFJlZ2lzdGVyZWQgZHVwbGljYXRlIGtleS4YTm9LZXlzAAMEpE5vIGtleXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjY291bnQuJE5vQWNjb3VudAAEBBkBS2V5IHNldHRpbmcgYWNjb3VudCBpcyBub3QgbGl2ZSwgc28gaXQncyBpbXBvc3NpYmxlIHRvIGFzc29jaWF0ZSBrZXlzLgR0RXJyb3IgZm9yIHRoZSBzZXNzaW9uIHBhbGxldC79CAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAT0BBFMAAAQAAQkBGFZlYzxUPgAAAQkAAAI9AQAFCQhIc3BfY29uc2Vuc3VzX3Nsb3RzEFNsb3QAAAQAKAEMdTY0AAAJCQAABAgFCTgADQkMTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAZwEUwAABAARCQEsQlRyZWVTZXQ8VD4AABEJBCBCVHJlZVNldAQEVAGcAAQAIQgAAAAVCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARkJBFMAAAQAJQkBGFZlYzxUPgAAGQkIZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWVYT3V0Ym91bmRDaGFubmVsRGV0YWlscwAAGAEkcmVjaXBpZW50nAEYUGFyYUlkAAEUc3RhdGUdCQE0T3V0Ym91bmRTdGF0ZQABNHNpZ25hbHNfZXhpc3TIARBib29sAAEsZmlyc3RfaW5kZXgtAwEMdTE2AAEobGFzdF9pbmRleC0DAQx1MTYAARRmbGFncyEJAVBPdXRib3VuZENoYW5uZWxGbGFncwAAHQkIZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAAIQkIZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWVQT3V0Ym91bmRDaGFubmVsRmxhZ3MAAAQBEGJpdHM4AQx1MzIAACUJAAACGQkAKQkAAAQInC0DAC0JDExib3VuZGVkX2NvbGxlY3Rpb25zQHdlYWtfYm91bmRlZF92ZWM4V2Vha0JvdW5kZWRWZWMIBFQBDARTAAAEABgBGFZlYzxUPgAAMQkIZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU8UXVldWVDb25maWdEYXRhAAAMAURzdXNwZW5kX3RocmVzaG9sZDgBDHUzMgABOGRyb3BfdGhyZXNob2xkOAEMdTMyAAFAcmVzdW1lX3RocmVzaG9sZDgBDHUzMgAANQkMZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWUYcGFsbGV0FEVycm9yBARUAAEUOEJhZFF1ZXVlQ29uZmlnAAAEEQFTZXR0aW5nIHRoZSBxdWV1ZSBjb25maWcgZmFpbGVkIHNpbmNlIG9uZSBvZiBpdHMgdmFsdWVzIHdhcyBpbnZhbGlkLkBBbHJlYWR5U3VzcGVuZGVkAAEEjFRoZSBleGVjdXRpb24gaXMgYWxyZWFkeSBzdXNwZW5kZWQuOEFscmVhZHlSZXN1bWVkAAIEhFRoZSBleGVjdXRpb24gaXMgYWxyZWFkeSByZXN1bWVkLnRUb29NYW55QWN0aXZlT3V0Ym91bmRDaGFubmVscwADBLBUaGVyZSBhcmUgdG9vIG1hbnkgYWN0aXZlIG91dGJvdW5kIGNoYW5uZWxzLhhUb29CaWcABARcVGhlIG1lc3NhZ2UgaXMgdG9vIGJpZy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuOQkMKHBhbGxldF94Y20YcGFsbGV0LFF1ZXJ5U3RhdHVzBCxCbG9ja051bWJlcgE4AQwcUGVuZGluZxABJHJlc3BvbmRlckkBAURWZXJzaW9uZWRMb2NhdGlvbgABTG1heWJlX21hdGNoX3F1ZXJpZXI9CQFkT3B0aW9uPFZlcnNpb25lZExvY2F0aW9uPgABMG1heWJlX25vdGlmeUEJAUBPcHRpb248KHU4LCB1OCk+AAEcdGltZW91dDgBLEJsb2NrTnVtYmVyAAAAPFZlcnNpb25Ob3RpZmllcggBGG9yaWdpbkkBAURWZXJzaW9uZWRMb2NhdGlvbgABJGlzX2FjdGl2ZcgBEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZUkJAURWZXJzaW9uZWRSZXNwb25zZQABCGF0OAEsQmxvY2tOdW1iZXIAAgAAPQkEGE9wdGlvbgQEVAFJAQEIEE5vbmUAAAAQU29tZQQASQEAAAEAAEEJBBhPcHRpb24EBFQBRQkBCBBOb25lAAAAEFNvbWUEAEUJAAABAABFCQAABAgMDABJCQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYzBADFAQEwdjM6OlJlc3BvbnNlAAMACFY0BAA1AgEwdjQ6OlJlc3BvbnNlAAQACFY1BACBAgEwdjU6OlJlc3BvbnNlAAUAAE0JAAAECDhJAQBRCQAABAwo1QE4AFUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBWQkEUwAABABdCQEYVmVjPFQ+AABZCQAABAhJATgAXQkAAAJZCQBhCQwocGFsbGV0X3hjbRhwYWxsZXRUVmVyc2lvbk1pZ3JhdGlvblN0YWdlAAEQXE1pZ3JhdGVTdXBwb3J0ZWRWZXJzaW9uAAAAXE1pZ3JhdGVWZXJzaW9uTm90aWZpZXJzAAEAUE5vdGlmeUN1cnJlbnRUYXJnZXRzBABlBQE8T3B0aW9uPFZlYzx1OD4+AAIAaE1pZ3JhdGVBbmROb3RpZnlPbGRUYXJnZXRzAAMAAGUJAAAEDDgEEQMAaQkMKHBhbGxldF94Y20YcGFsbGV0aFJlbW90ZUxvY2tlZEZ1bmdpYmxlUmVjb3JkCEhDb25zdW1lcklkZW50aWZpZXIBEDBNYXhDb25zdW1lcnMAABABGGFtb3VudMQBEHUxMjgAARRvd25lckkBAURWZXJzaW9uZWRMb2NhdGlvbgABGGxvY2tlckkBAURWZXJzaW9uZWRMb2NhdGlvbgABJGNvbnN1bWVyc20JAdBCb3VuZGVkVmVjPChDb25zdW1lcklkZW50aWZpZXIsIHUxMjgpLCBNYXhDb25zdW1lcnM+AABtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAXEJBFMAAAQAdQkBGFZlYzxUPgAAcQkAAAQIEMQAdQkAAAJxCQB5CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0JBFMAAAQAgQkBGFZlYzxUPgAAfQkAAAQIxEkBAIEJAAACfQkAhQkIKHBhbGxldF94Y21YQXV0aG9yaXplZEFsaWFzZXNFbnRyeQgYVGlja2V0AYkJDE1BWAGNCQAIASBhbGlhc2Vyc5EJAXhCb3VuZGVkVmVjPE9yaWdpbkFsaWFzZXIsIE1BWD4AARh0aWNrZXSJCQEYVGlja2V0AACJCRA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMcc3RvcmFnZSBEaXNhYmxlZAAAAACNCQwocGFsbGV0X3hjbRhwYWxsZXRQTWF4QXV0aG9yaXplZEFsaWFzZXMAAAAAkQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVCQRTAAAEAJkJARhWZWM8VD4AAJUJDEB4Y21fcnVudGltZV9hcGlzSGF1dGhvcml6ZWRfYWxpYXNlczRPcmlnaW5BbGlhc2VyAAAIASBsb2NhdGlvbkkBAURWZXJzaW9uZWRMb2NhdGlvbgABGGV4cGlyeRUDASxPcHRpb248dTY0PgAAmQkAAAKVCQCdCQwocGFsbGV0X3hjbRhwYWxsZXQURXJyb3IEBFQAAXAsVW5yZWFjaGFibGUAAAhdAVRoZSBkZXNpcmVkIGRlc3RpbmF0aW9uIHdhcyB1bnJlYWNoYWJsZSwgZ2VuZXJhbGx5IGJlY2F1c2UgdGhlcmUgaXMgYSBubyB3YXkgb2Ygcm91dGluZxh0byBpdC4sU2VuZEZhaWx1cmUAAQhBAVRoZXJlIHdhcyBzb21lIG90aGVyIGlzc3VlIChpLmUuIG5vdCB0byBkbyB3aXRoIHJvdXRpbmcpIGluIHNlbmRpbmcgdGhlIG1lc3NhZ2UuyFBlcmhhcHMgYSBsYWNrIG9mIHNwYWNlIGZvciBidWZmZXJpbmcgdGhlIG1lc3NhZ2UuIEZpbHRlcmVkAAIEnFRoZSBtZXNzYWdlIGV4ZWN1dGlvbiBmYWlscyB0aGUgZmlsdGVyLkhVbndlaWdoYWJsZU1lc3NhZ2UAAwS0VGhlIG1lc3NhZ2UncyB3ZWlnaHQgY291bGQgbm90IGJlIGRldGVybWluZWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAEBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuFEVtcHR5AAUEgFRoZSBhc3NldHMgdG8gYmUgc2VudCBhcmUgZW1wdHkuOENhbm5vdFJlYW5jaG9yAAYENQFDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlIGRlc3RpbmF0aW9uIGNoYWluLjRUb29NYW55QXNzZXRzAAcExFRvbyBtYW55IGFzc2V0cyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci40SW52YWxpZE9yaWdpbgAIBHhPcmlnaW4gaXMgaW52YWxpZCBmb3Igc2VuZGluZy4oQmFkVmVyc2lvbgAJBCEBVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUgaW50ZXJwcmV0ZWQuLEJhZExvY2F0aW9uAAoIQQFUaGUgZ2l2ZW4gbG9jYXRpb24gY291bGQgbm90IGJlIHVzZWQgKGUuZy4gYmVjYXVzZSBpdCBjYW5ub3QgYmUgZXhwcmVzc2VkIGluIHRoZWBkZXNpcmVkIHZlcnNpb24gb2YgWENNKS44Tm9TdWJzY3JpcHRpb24ACwS8VGhlIHJlZmVyZW5jZWQgc3Vic2NyaXB0aW9uIGNvdWxkIG5vdCBiZSBmb3VuZC5EQWxyZWFkeVN1YnNjcmliZWQADAQRAVRoZSBsb2NhdGlvbiBpcyBpbnZhbGlkIHNpbmNlIGl0IGFscmVhZHkgaGFzIGEgc3Vic2NyaXB0aW9uIGZyb20gdXMuWENhbm5vdENoZWNrT3V0VGVsZXBvcnQADQQpAUNvdWxkIG5vdCBjaGVjay1vdXQgdGhlIGFzc2V0cyBmb3IgdGVsZXBvcnRhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4uKExvd0JhbGFuY2UADgRBAVRoZSBvd25lciBkb2VzIG5vdCBvd24gKGFsbCkgb2YgdGhlIGFzc2V0IHRoYXQgdGhleSB3aXNoIHRvIGRvIHRoZSBvcGVyYXRpb24gb24uMFRvb01hbnlMb2NrcwAPBMBUaGUgYXNzZXQgb3duZXIgaGFzIHRvbyBtYW55IGxvY2tzIG9uIHRoZSBhc3NldC5MQWNjb3VudE5vdFNvdmVyZWlnbgAQBDEBVGhlIGdpdmVuIGFjY291bnQgaXMgbm90IGFuIGlkZW50aWZpYWJsZSBzb3ZlcmVpZ24gYWNjb3VudCBmb3IgYW55IGxvY2F0aW9uLihGZWVzTm90TWV0ABEEKQFUaGUgb3BlcmF0aW9uIHJlcXVpcmVkIGZlZXMgdG8gYmUgcGFpZCB3aGljaCB0aGUgaW5pdGlhdG9yIGNvdWxkIG5vdCBtZWV0LjBMb2NrTm90Rm91bmQAEgT0QSByZW1vdGUgbG9jayB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGRhdGEgY291bGQgbm90IGJlIGZvdW5kLhRJblVzZQATBEkBVGhlIHVubG9jayBvcGVyYXRpb24gY2Fubm90IHN1Y2NlZWQgYmVjYXVzZSB0aGVyZSBhcmUgc3RpbGwgY29uc3VtZXJzIG9mIHRoZSBsb2NrLmhJbnZhbGlkQXNzZXRVbmtub3duUmVzZXJ2ZQAVBPBJbnZhbGlkIGFzc2V0LCByZXNlcnZlIGNoYWluIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkIGZvciBpdC54SW52YWxpZEFzc2V0VW5zdXBwb3J0ZWRSZXNlcnZlABYERQFJbnZhbGlkIGFzc2V0LCBkbyBub3Qgc3VwcG9ydCByZW1vdGUgYXNzZXQgcmVzZXJ2ZXMgd2l0aCBkaWZmZXJlbnQgZmVlcyByZXNlcnZlcy48VG9vTWFueVJlc2VydmVzABcESQFUb28gbWFueSBhc3NldHMgd2l0aCBkaWZmZXJlbnQgcmVzZXJ2ZSBsb2NhdGlvbnMgaGF2ZSBiZWVuIGF0dGVtcHRlZCBmb3IgdHJhbnNmZXIuYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZQAYBHxMb2NhbCBYQ00gZXhlY3V0aW9uIGluY29tcGxldGUuYFRvb01hbnlBdXRob3JpemVkQWxpYXNlcwAZBLhUb28gbWFueSBsb2NhdGlvbnMgYXV0aG9yaXplZCB0byBhbGlhcyBvcmlnaW4uNEV4cGlyZXNJblBhc3QAGgSMRXhwaXJ5IGJsb2NrIG51bWJlciBpcyBpbiB0aGUgcGFzdC40QWxpYXNOb3RGb3VuZAAbBNBUaGUgYWxpYXMgdG8gcmVtb3ZlIGF1dGhvcml6YXRpb24gZm9yIHdhcyBub3QgZm91bmQuhExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZVdpdGhFcnJvcggBFGluZGV4DAFASW5zdHJ1Y3Rpb25JbmRleAABFGVycm9yoQkBOEV4ZWN1dGlvbkVycm9yABwINQFMb2NhbCBYQ00gZXhlY3V0aW9uIGluY29tcGxldGUgd2l0aCB0aGUgYWN0dWFsIFhDTSBlcnJvciBhbmQgdGhlIGluZGV4IG9mIHRoZYhpbnN0cnVjdGlvbiB0aGF0IGNhdXNlZCB0aGUgZXJyb3IuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqEJDChwYWxsZXRfeGNtGGVycm9yczhFeGVjdXRpb25FcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIANFRvb01hbnlBc3NldHMAIwBMVW5oYW5kbGVkWGNtVmVyc2lvbgAkAEhXZWlnaHRMaW1pdFJlYWNoZWQAJQAcQmFycmllcgAmAExXZWlnaHROb3RDb21wdXRhYmxlACcAREV4Y2VlZHNTdGFja0xpbWl0ACgAAKUJCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BIQMAGAEUYmVnaW44ASRQYWdlSW5kZXgAAQxlbmQ4ASRQYWdlSW5kZXgAARRjb3VudDgBJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnOpCQGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudCgBDHU2NAABEHNpemUoAQx1NjQAAKkJBBhPcHRpb24EBFQBrQkBCBBOb25lAAAAEFNvbWUEAK0JAAABAACtCQhQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgEhAwAIARBwcmV2IQMBNE1lc3NhZ2VPcmlnaW4AARBuZXh0IQMBNE1lc3NhZ2VPcmlnaW4AALEJAAAECCEDOAC1CQhQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQE4IEhlYXBTaXplAAAYASRyZW1haW5pbmc4ARBTaXplAAE4cmVtYWluaW5nX3NpemU4ARBTaXplAAEsZmlyc3RfaW5kZXg4ARBTaXplAAEUZmlyc3Q4ARBTaXplAAEQbGFzdDgBEFNpemUAARBoZWFwuQkBnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAAuQkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEMBFMAAAQAGAEYVmVjPFQ+AAC9CQxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsEJDDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQURXJyb3IEBFQAAQQwVG9vTWFueUNhbGxzAAAEXFRvbyBtYW55IGNhbGxzIGJhdGNoZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LsUJAAAECAQIAMkJCDxwYWxsZXRfbXVsdGlzaWcgTXVsdGlzaWcQLEJsb2NrTnVtYmVyATgcQmFsYW5jZQHEJEFjY291bnRJZAEEME1heEFwcHJvdmFscwAAEAEQd2hlbpkDAVhUaW1lcG9pbnQ8QmxvY2tOdW1iZXI+AAEcZGVwb3NpdMQBHEJhbGFuY2UAASRkZXBvc2l0b3IEASRBY2NvdW50SWQAASRhcHByb3ZhbHPNCQGMQm91bmRlZFZlYzxBY2NvdW50SWQsIE1heEFwcHJvdmFscz4AAM0JDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAMwBGFZlYzxUPgAA0QkMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwSgTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCBpbiBzdG9yYWdlLiBOb3RPd25lcgAICFEBT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQgb3IgdXBkYXRlNGl0cyBkZXBvc2l0cy4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7VCQwscGFsbGV0X3N1ZG8YcGFsbGV0FEVycm9yBARUAAEELFJlcXVpcmVTdWRvAAAEgFNlbmRlciBtdXN0IGJlIHRoZSBTdWRvIGFjY291bnQuBGhFcnJvciBmb3IgdGhlIFN1ZG8gcGFsbGV0LtkJAAAECN0JxADdCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeEJBFMAAAQA5QkBGFZlYzxUPgAA4QkIMHBhbGxldF9wcm94eTxQcm94eURlZmluaXRpb24MJEFjY291bnRJZAEEJFByb3h5VHlwZQGpAyxCbG9ja051bWJlcgE4AAwBIGRlbGVnYXRlBAEkQWNjb3VudElkAAEocHJveHlfdHlwZakDASRQcm94eVR5cGUAARRkZWxheTgBLEJsb2NrTnVtYmVyAADlCQAAAuEJAOkJAAAECO0JxADtCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfEJBFMAAAQA9QkBGFZlYzxUPgAA8QkIMHBhbGxldF9wcm94eTBBbm5vdW5jZW1lbnQMJEFjY291bnRJZAEEEEhhc2gBPCxCbG9ja051bWJlcgE4AAwBEHJlYWwEASRBY2NvdW50SWQAASRjYWxsX2hhc2g8ARBIYXNoAAEYaGVpZ2h0OAEsQmxvY2tOdW1iZXIAAPUJAAAC8QkA+QkMMHBhbGxldF9wcm94eRhwYWxsZXQURXJyb3IEBFQAASAcVG9vTWFueQAABCEBVGhlcmUgYXJlIHRvbyBtYW55IHByb3hpZXMgcmVnaXN0ZXJlZCBvciB0b28gbWFueSBhbm5vdW5jZW1lbnRzIHBlbmRpbmcuIE5vdEZvdW5kAAEEdFByb3h5IHJlZ2lzdHJhdGlvbiBub3QgZm91bmQuIE5vdFByb3h5AAIEzFNlbmRlciBpcyBub3QgYSBwcm94eSBvZiB0aGUgYWNjb3VudCB0byBiZSBwcm94aWVkLixVbnByb3h5YWJsZQADBCEBQSBjYWxsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBwcm94eSB0eXBlJ3MgZmlsdGVyIHdhcyBhdHRlbXB0ZWQuJER1cGxpY2F0ZQAEBGxBY2NvdW50IGlzIGFscmVhZHkgYSBwcm94eS4wTm9QZXJtaXNzaW9uAAUEFQFDYWxsIG1heSBub3QgYmUgbWFkZSBieSBwcm94eSBiZWNhdXNlIGl0IG1heSBlc2NhbGF0ZSBpdHMgcHJpdmlsZWdlcy4sVW5hbm5vdW5jZWQABgTQQW5ub3VuY2VtZW50LCBpZiBtYWRlIGF0IGFsbCwgd2FzIG1hZGUgdG9vIHJlY2VudGx5LixOb1NlbGZQcm94eQAHBGRDYW5ub3QgYWRkIHNlbGYgYXMgcHJveHkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lv0JDExpbmRpdl9wYWxsZXRfcGVvcGxlFHR5cGVzMFBlcnNvblJlY29yZAgYTWVtYmVyAQgkQWNjb3VudElkAQQACAEMa2V5CAEYTWVtYmVyAAEcYWNjb3VudNkGAURPcHRpb248QWNjb3VudElkPgAAAQoMTGluZGl2X3BhbGxldF9wZW9wbGUYcGFsbGV0FEVycm9yBARUAAGUJE5vdFBlcnNvbgAABNBUaGUgc3VwcGxpZWQgaWRlbnRpZmllciBkb2VzIG5vdCByZXByZXNlbnQgYSBwZXJzb24uFE5vS2V5AAEEnFRoZSBnaXZlbiBwZXJzb24gaGFzIG5vIGFzc29jaWF0ZWQga2V5LjhJbnZhbGlkQ29udGV4dAACBCkBVGhlIGNvbnRleHQgaXMgbm90IGEgbWVtYmVyIG9mIHRob3NlIGFsbG93ZWQgdG8gaGF2ZSBhY2NvdW50IGFsaWFzZXMgaGVsZC44SW52YWxpZEFjY291bnQAAwRkVGhlIGFjY291bnQgaXMgbm90IGtub3duLjBBY2NvdW50SW5Vc2UABATIVGhlIGFjY291bnQgaXMgYWxyZWFkeSBpbiB1c2UgdW5kZXIgYW5vdGhlciBhbGlhcy4wSW52YWxpZFByb29mAAUEVFRoZSBwcm9vZiBpcyBpbnZhbGlkLkBJbnZhbGlkU2lnbmF0dXJlAAYEZFRoZSBzaWduYXR1cmUgaXMgaW52YWxpZC4kTm9NZW1iZXJzAAcE0FRoZXJlIGFyZSBub3QgeWV0IGFueSBtZW1iZXJzIG9mIG91ciBwZXJzb25ob29kIHNldC4oSW5jb21wbGV0ZQAIBAUBVGhlIHJvb3QgY2Fubm90IGJlIGZpbmFsaXplZCBhcyB0aGVyZSBhcmUgc3RpbGwgdW5wdXNoZWQgbWVtYmVycy4oU3RpbGxGcmVzaAAJBGBUaGUgcm9vdCBpcyBzdGlsbCBmcmVzaC44VG9vTWFueU1lbWJlcnMACgSIVG9vIG1hbnkgbWVtYmVycyBoYXZlIGJlZW4gcHVzaGVkLjxLZXlBbHJlYWR5SW5Vc2UACwSUS2V5IGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgcGVyc29uLixLZXlOb3RGb3VuZAAMBKBUaGUgb2xkIGtleSB3YXMgbm90IGZvdW5kIHdoZW4gZXhwZWN0ZWQuMENvdWxkTm90UHVzaAANBJBDb3VsZCBub3QgcHVzaCBtZW1iZXIgaW50byB0aGUgcmluZy4cU2FtZUtleQAOBJRUaGUgcmVjb3JkIGlzIGFscmVhZHkgdXNpbmcgdGhpcyBrZXkuVFBlcnNvbmFsSWROb3RSZXNlcnZlZAAPBHRQZXJzb25hbCBJZCB3YXMgbm90IHJlc2VydmVkLoBQZXJzb25hbElkUmVzZXJ2YXRpb25DYW5ub3RSZW5ldwAQBJBQZXJzb25hbCBJZCBoYXMgbmV2ZXIgYmVlbiByZXNlcnZlZC6QUGVyc29uYWxJZE5vdFJlc2VydmVkT3JOb3RSZWNvZ25pemVkABEE3FBlcnNvbmFsIElkIHdhcyBub3QgcmVzZXJ2ZWQgb3Igbm90IGFscmVhZHkgcmVjb2duaXplZC4sSW52YWxpZFJpbmcAEgSsUmluZyBjYW5ub3QgYmUgbWVyZ2VkIGlmIGl0J3MgdGhlIHRvcCByaW5nLkhTdXNwZW5zaW9uc1BlbmRpbmcAEwTkUmluZyBjYW5ub3QgYmUgYnVpbHQgd2hpbGUgdGhlcmUgYXJlIHN1c3BlbnNpb25zIHBlbmRpbmcuXFJpbmdBYm92ZU1lcmdlVGhyZXNob2xkABQE1FJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIG5vdCBiZWxvdyAxLzIgY2FwYWNpdHkuSEludmFsaWRTdXNwZW5zaW9ucwAVBKBTdXNwZW5zaW9uIGluZGljZXMgcHJvdmlkZWQgYXJlIGludmFsaWQuRE5vTXV0YXRpb25TZXNzaW9uABYENQFBbiBtdXRhdGluZyBhY3Rpb24gd2FzIHF1ZXVlZCB3aGVuIHRoZXJlIHdhcyBubyBtdXRhdGlvbiBzZXNzaW9uIGluIHByb2dyZXNzLnBDb3VsZE5vdFN0YXJ0TXV0YXRpb25TZXNzaW9uABcEpEFuIG11dGF0aW5nIHNlc3Npb24gY291bGQgbm90IGJlIHN0YXJ0ZWQubFN1c3BlbnNpb25TZXNzaW9uSW5Qcm9ncmVzcwAYBPRDYW5ub3QgbWVyZ2UgcmluZ3Mgd2hpbGUgYSBzdXNwZW5zaW9uIHNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MuNEFsaWFzTm90U3RhbGUAGQR8VGhlIGFsaWFzIG1hcHBpbmcgaXMgbm90IHN0YWxlLjhUaW1lT3V0T2ZSYW5nZQAaBHhDYWxsIGlzIHRvbyBsYXRlIG9yIHRvbyBlYXJseS5YQWxpYXNBY2NvdW50QWxyZWFkeVNldAAbBMBBbGlhcyA8LT4gQWNjb3VudCBpcyBhbHJlYWR5IHNldCBhbmQgdXAgdG8gZGF0ZS4wTm90U3VzcGVuZGVkABwE0FBlcnNvbmhvb2QgY2Fubm90IGJlIHJlc3VtZWQgaWYgaXQgaXMgbm90IHN1c3BlbmRlZC4kU3VzcGVuZGVkAB0EYFBlcnNvbmhvb2QgaXMgc3VzcGVuZGVkLkxJbnZhbGlkS2V5TWlncmF0aW9uAB4EqEludmFsaWQgc3RhdGUgZm9yIGF0dGVtcHRlZCBrZXkgbWlncmF0aW9uLkxLZXlBbHJlYWR5U3VzcGVuZGVkAB8IVQFJbnZhbGlkIHN1c3BlbnNpb24gb2YgYSBrZXkgYmVsb25naW5nIHRvIGEgcGVyc29uIHdob3NlIGluZGV4IGluIHRoZSByaW5nIGhhcyBhbHJlYWR5uGJlZW4gaW5jbHVkZWQgaW4gdGhlIHBlbmRpbmcgc3VzcGVuc2lvbnMgbGlzdC5USW52YWxpZE9uYm9hcmRpbmdTaXplACAE6FRoZSBvbmJvYXJkaW5nIHNpemUgbXVzdCBub3QgZXhjZWVkIHRoZSBtYXhpbXVtIHJpbmcgc2l6ZS5ASW52YWxpZE1lbWJlcktleQAhBKxUaGUgbWVtYmVyIGtleSBpcyBub3QgdmFsaWQgZm9yIHRoZSBjcnlwdG8udFBlb3BsZUNvbGxlY3Rpb25BbHJlYWR5RXhpc3RzACIEvFRoZSBwZW9wbGUgY29sbGVjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQuNEFsaWFzTWlzbWF0Y2gAIwQZAVRoZSBwcm92aWRlZCBhbGlhcyBkb2VzIG5vdCBtYXRjaCB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYWxpYXMgbWFwcGluZy44Tm9TdGFsZUFsaWFzZXMAJASgTm9uZSBvZiB0aGUgc3VwcGxpZWQgYWxpYXNlcyB3ZXJlIHN0YWxlLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4FCgxUaW5kaXZfcGFsbGV0X21vYl9ydWxlGHBhbGxldCRNb2JDcmVkaXQEHEJhbGFuY2UBxAAQARR2b3RlZDgBDHUzMgABHGNsZWFuZWQ4AQx1MzIAARxjb3JyZWN0OAEMdTMyAAEYY3JlZGl0xAEcQmFsYW5jZQAACQoAAAQIOAgADQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXQgT3BlbkNhc2UELFJ1bnRpbWVDYWxsASAADAEUc2luY2UoAUBTZWNzU2luY2VHZW5lc2lzAAEcZGV0YWlscxEKAWBDYXNlRGV0YWlsczxSdW50aW1lQ2FsbD4AARR0YWxseSUKASRWb3RlVGFsbHkAABEKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0LENhc2VEZXRhaWxzBCxSdW50aW1lQ2FsbAEgAAwBJHN0YXRlbWVudBUKASRTdGF0ZW1lbnQAARxjb250ZXh0eAFASnVkZ2VtZW50Q29udGV4dAABIGNhbGxiYWNrIQoB/ENhbGxiYWNrPChDYXNlSW5kZXgsIEp1ZGdlbWVudENvbnRleHQsIEp1ZGdlbWVudCksIFJ1bnRpbWVDYWxsPgAAFQoQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkkU3RhdGVtZW50AAEMKFByb29mT2ZJbmsMARhkZXNpZ24ZCgFUcHJvb2Zfb2ZfaW5rOjpJbmtTcGVjAAEgZXZpZGVuY2UIATBFdmlkZW5jZUhhc2gAAUxwcm9iYWJsZV9hY2NlcHRhYmxlyAEQYm9vbAAAAEhJZGVudGl0eUNyZWRlbnRpYWwIASBwbGF0Zm9ybR0KAUBpZGVudGl0eTo6U29jaWFsAAEgZXZpZGVuY2WZBAE4aWRlbnRpdHk6OkRhdGEAAQA0VXNlcm5hbWVWYWxpZAQBIHVzZXJuYW1lmQQBOGlkZW50aXR5OjpEYXRhAAIAABkKFDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5MHByb29mX29mX2luaxxJbmtTcGVjAAEQQERlc2lnbmVkRWxlY3RpdmUIAC0DASxGYW1pbHlJbmRleAAALQMBLERlc2lnbkluZGV4AAAARFByb2NlZHVyYWxBY2NvdW50CAAtAwEsRmFtaWx5SW5kZXgAAAgBJEFjY291bnRJZAABAEhQcm9jZWR1cmFsUGVyc29uYWwIAC0DASxGYW1pbHlJbmRleAAAKAEoUGVyc29uYWxJZAACAChQcm9jZWR1cmFsCAAtAwEsRmFtaWx5SW5kZXgAAHABOFByb2NlZHVyYWxTZWVkAAMAAB0KFDRpbmRpdl9zdXBwb3J0GHRyYWl0cxxyZWFsaXR5IGlkZW50aXR5GFNvY2lhbAABDBxUd2l0dGVyBAEgdXNlcm5hbWWZBAEQRGF0YQAAABhHaXRodWIEASB1c2VybmFtZZkEARBEYXRhAAEAHERpc2NvcmQEATxkaXNwbGF5X2FuZF90YWeZBAEQRGF0YQACAAAhChA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eSBDYWxsYmFjawgYUGFyYW1zACxSdW50aW1lQ2FsbAAACAEwcGFsbGV0X2luZGV4DAEIdTgAAShjYWxsX2luZGV4DAEIdTgAACUKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0JFZvdGVUYWxseQAADAEMYXllOAEMdTMyAAEMbmF5OAEMdTMyAAEgY29udGVtcHQ4AQx1MzIAACkKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0IFJpcGVDYXNlBCxSdW50aW1lQ2FsbAEgAAgBHGRldGFpbHMRCgFgQ2FzZURldGFpbHM8UnVudGltZUNhbGw+AAEcdmVyZGljdMEDASRKdWRnZW1lbnQAAC0KDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0IERvbmVDYXNlAAAIARRzaW5jZSgBQFNlY3NTaW5jZUdlbmVzaXMAARx2ZXJkaWN0wQMBJEp1ZGdlbWVudAAAMQoMVGluZGl2X3BhbGxldF9tb2JfcnVsZRhwYWxsZXRIQ3JlZGl0RGlzdHJpYnV0aW9uCBxCYWxhbmNlAcQsQmxvY2tOdW1iZXIBOAAUARRyb3VuZDgBKFJvdW5kSW5kZXgAATxpbml0aWFsX2JhbGFuY2XEARxCYWxhbmNlAAFEcmVtYWluaW5nX2JhbGFuY2XEARxCYWxhbmNlAAEwdG90YWxfcG9pbnRzKAEkVm90ZUNvdW50AAEUc3RhcnQ4ASxCbG9ja051bWJlcgAANQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAE5CgRTAAAEAD0KARhWZWM8VD4AADkKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0OFBheW91dFNjaGVkdWxlCBxCYWxhbmNlAcQsQmxvY2tOdW1iZXIBOAAMASRyZW1haW5pbmc4AShSb3VuZEluZGV4AAFAYW1vdW50X3Blcl9yb3VuZMQBHEJhbGFuY2UAARhwZXJpb2Q4ASxCbG9ja051bWJlcgAAPQoAAAI5CgBBCgw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmNlbnQAAAQADAEIdTgAAEUKDFRpbmRpdl9wYWxsZXRfbW9iX3J1bGUYcGFsbGV0FEVycm9yBARUAAFUKE5vU3VjaENhc2UAAARgVGhlIGNhc2UgZG9lcyBub3QgZXhpc3QuKE5vU3VjaFZvdGUAAQRgVGhlIHZvdGUgZG9lcyBub3QgZXhpc3QuHE5vdE9wZW4AAgRUVGhlIGNhc2UgaXMgbm90IG9wZW4uHE5vdFJpcGUAAwRUVGhlIGNhc2UgaXMgbm90IHJpcGUuHE5vdERvbmUABARkVGhlIGNhc2UgaXMgbm90IHlldCBkb25lLihDb2RlY0Vycm9yAAUEVQFUaGUgZGVjb2RlIG9mIHRoZSBjYWxsIGZhaWxlZC4gTWF5YmUgdGhlcmUgd2FzIGEgYnJlYWtpbmcgcnVudGltZSB1cGdyYWRlIGluIGJldHdlZW4/NERpc3BhdGNoRXJyb3IABgRNAVRoZSBjYWxsIGZhaWxlZCB0byBkaXNwYXRjaC4gTWF5YmUgdGhlcmUgd2FzIGEgYnJlYWtpbmcgcnVudGltZSB1cGdyYWRlIGluIGJldHdlZW4/GFJlY2VudAAHBJBUaGUgY2FzZSBpcyB0b28gcmVjZW50IHRvIGJlIHJlYXBlZC4gTm9DcmVkaXQACASgTm90IGVub3VnaCBjcmVkaXQgdG8gcGF5b3V0IHRoZSByZXdhcmRzLiBOb1Jld2FyZAAJBNRObyBtb2IgY3JlZGl0IGRpc3RyaWJ1dGlvbiBpbiBwbGFjZSB0byByZXdhcmQgdm90ZXJzLiBOb1BvaW50cwAKBKBObyBwb2ludHMgdG8gYmUgY29udmVydGVkIHRvIG1vYiBjcmVkaXQuNFRvb01hbnlDbGFpbXMACwRUVG9vIG1hbnkgdm90ZSBjbGFpbXMuIE5vUGF5b3V0AAwEWE5vIHBheW91dCBpbiBwcm9ncmVzcy5IQXJpdGhtZXRpY092ZXJmbG93AA0EtFRoZSBwb2ludCBhbmQvb3IgY3JlZGl0IGFyaXRobWV0aWMgb3ZlcmZsb3dzLkBUb29NYW55U2NoZWR1bGVzAA4EgFRvbyBtYW55IHBheW91dCByb3VuZCBzY2hlZHVsZXMuKE5vU2NoZWR1bGUADwR8Tm8gcGF5b3V0IHJvdW5kIHNjaGVkdWxlIGZvdW5kLiROb1BlbmFsdHkAEARYTm8gdm90ZSBwZW5hbHR5IGZvdW5kLhRFYXJseQARBJRUaGUgdm90ZSBwZW5hbHR5IGhhcyBub3QgZXhwaXJlZCB5ZXQuMFVuZGVyUGVuYWx0eQASBOhUaGUgdm90ZSBjYW5ub3QgYmUgY2FzdCBkdWUgdG8gYSB2b3RpbmcgcGVuYWx0eSBpbiBlZmZlY3QuWENhc2VFeHBpcmF0aW9uRGlzYWJsZWQAEwQdAVRoZSBvcGVuIGNhc2UgZXhwaXJhdGlvbiBpcyBkaXNhYmxlZCBkdWUgdG8gaW5zdWZmaWNpZW50IGFjdGl2ZSB2b3RlcnMuUENhbGxiYWNrV2VpZ2h0VG9vTG93ABQIRQFUaGUgZGlzcGF0Y2hlZCBjYWxsYmFjaydzIHdlaWdodCBleGNlZWRzIHRoZSBkZWNsYXJlZCBgbWF4X2NhbGxiYWNrX3dlaWdodGAgdXBwZXIYYm91bmQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldCRDYW5kaWRhdGUQLEp1ZGdlbWVudElkATgcRGVwb3NpdAFNCixCbG9ja051bWJlcgE4JEFjY291bnRJZAEEAQwcQXBwbGllZAwBEGNyZWRRCgGsQ3JlZGliaWxpdHk8RGVwb3NpdCwgUGVyc29uYWxJZCwgQWNjb3VudElkPgABHGVudHJvcHkIARxFbnRyb3B5AAE0ZW50cm9weV9zaW5jZTgBLEJsb2NrTnVtYmVyAAAAIFNlbGVjdGVkIAEUc2luY2U4ASxCbG9ja051bWJlcgABEGNyZWRRCgGsQ3JlZGliaWxpdHk8RGVwb3NpdCwgUGVyc29uYWxJZCwgQWNjb3VudElkPgABIHJlc2VydmVkKAEoUGVyc29uYWxJZAABHGVudHJvcHkIARxFbnRyb3B5AAEYZGVzaWduGQoBHElua1NwZWMAAShhbGxvY2F0aW9uVQoBKEFsbG9jYXRpb24AARxqdWRnaW5nCQMBTE9wdGlvbjxKdWRnZW1lbnRJZD4AARhmYWlsZWQ4ARxDb3VudGVyAAEAGFByb3ZlbhABGGRlc2lnbhkKARxJbmtTcGVjAAEgcmVzZXJ2ZWQoAShQZXJzb25hbElkAAEwd2FzX3JlZmVycmVkyAEQYm9vbAABLHdhc19pbnZpdGVkyAEQYm9vbAACAABNChQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zIGZ1bmdpYmxlREhvbGRDb25zaWRlcmF0aW9uFARBAARGAARSAAREAAhGcAAABADEAShGOjpCYWxhbmNlAABRCgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQsQ3JlZGliaWxpdHkMHERlcG9zaXQBTQooUGVyc29uYWxJZAEoJEFjY291bnRJZAEEAQwgUmVmZXJyZWQEACgBKFBlcnNvbmFsSWQAAAAcRGVwb3NpdAQATQoBHERlcG9zaXQAAQAcSW52aXRlZAQABAEkQWNjb3VudElkAAIAAFUKDGRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rGHBhbGxldChBbGxvY2F0aW9uAAEMHEluaXRpYWwAAAAgSW5pdERvbmUAAQAQRnVsbAACAABZCgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQYUGVyc29uBDxCb3VuZGVkQWNjb3VudHMBXQoAJAEYZGVzaWduYQoBPE9wdGlvbjxJbmtTcGVjPgABQGFjdGl2ZV9yZWZlcnJhbHNdCgE8Qm91bmRlZEFjY291bnRzAAFgYWxsb3dlZF9yZWZlcnJhbF90aWNrZXRzOAEcQ291bnRlcgABNGJhZF9yZWZlcnJhbHM4ARxDb3VudGVyAAFQc3VjY2Vzc2Z1bF9yZWZlcnJhbHM4ARxDb3VudGVyAAEkcmVmZXJyYWxzOAEcQ291bnRlcgABLGRlcml2YXRpdmVzOAEcQ291bnRlcgABGGJhbm5lZMgBEGJvb2wAAWBwZW5kaW5nX3JlZmVycmFsX3Jld2FyZHM4ARxDb3VudGVyAABdCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQQEUwAABADMARhWZWM8VD4AAGEKBBhPcHRpb24EBFQBGQoBCBBOb25lAAAAEFNvbWUEABkKAAABAABlCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAWkKBFMAAAQAbQoBGFZlYzxUPgAAaQoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0OFJlZmVycmFsVGlja2V0BBhUaWNrZXQBBAAEARh0aWNrZXQEARhUaWNrZXQAAG0KAAACaQoAcQoMZGluZGl2X3BhbGxldF9wcm9vZl9vZl9pbmsYcGFsbGV0GEZhbWlseQAACAEQa2luZOEDAShGYW1pbHlLaW5kAAEIaWQIASBGYW1pbHlJZAAAdQoAAAQILQMtAwB5CgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQwRGVzaWduU3RhdHVzAAEIIFJlc2VydmVkAAAAJENvbW1pdHRlZAABAAB9CgAABAgEBACBCgxkaW5kaXZfcGFsbGV0X3Byb29mX29mX2luaxhwYWxsZXQURXJyb3IEBFQAAaAoSW5Qcm9ncmVzcwAABMxBY2NvdW50IGlzIGFscmVhZHkgYXBwbHlpbmcgdG8gbWFrZSBhIHByb29mLW9mLWluay4oTm9SZWZlcnJhbAABBHhBY2NvdW50IGhhcyBub3QgYmVlbiByZWZlcnJlZC4oQmFkQ29udGV4dAACBOhUaGUgY2FsbGJhY2sgY29udGV4dCBpcyBpbnZhbGlkOyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4uTFVuZXhwZWN0ZWRKdWRnZW1lbnQAAwQhAVRoZSBpbmNvbWluZyBqdWRnZW1lbnQgSUQgaXMgbm90IHdoYXQgd2Ugd2VyZSBleHBlY3RpbmcgZm9yIHRoZSBhY2NvdW50LhhOb0FyZ3MABAS4Tm8gYXJndW1lbnRzIHdlcmUgc3VwcGxpZWQgd2l0aCB0aGUganVkZ2VtZW50LihOb3RBcHBsaWVkAAUEzFRoZSBhY2NvdW50IGhhcyBub3QgYXBwbGllZCB0byBtYWtlIGEgcHJvb2Ytb2YtaW5rLixOb3RTZWxlY3RlZAAGBLBUaGUgY2FuZGlkYXRlIGhhcyBub3QgY29tbWl0dGVkIHRvIGEgZGVzaWduLiROb3RQcm92ZW4ABwSsVGhlIGNhbmRpZGF0ZSBkaWQgbm90IHByb3ZlIHRoZW1zZWx2ZXMgeWV0LjhBbHJlYWR5U3RhcnRlZAAIBMhUaGUgY2FuZGlkYXRlIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgdGhlaXIganVkZ2VtZW50LihPdXRPZlJhbmdlAAkEgFRoZSBwZXJzb25hbCBJRCBpcyBub3QgaW4gcmFuZ2UuMEFscmVhZHlUYWtlbgAKBJxUaGUgcGVyc29uYWwgSUQgaGFzIGFscmVhZHkgYmVlbiB0YWtlbi48Tm9Nb3JlUmVmZXJyYWxzAAsEuFRoZSBwZXJzb24gaGFzIG5vIG1vcmUgcmVmZXJyYWxzIGxlZnQgdG8gZ2l2ZS4gVG9vRWFybHkADARgVGhlIHJlcm9sbCBpcyB0b28gZWFybHkuNERlc2lnbkludmFsaWQADQSgVGhlIHJlZmVycmVyJ3MgZGVzaWduIGlzIG5vdCBwcm9jZWR1cmFsLixEZXNpZ25UYWtlbgAOBJxUaGUgcmVmZXJyZXIncyBkZXNpZ24gaXMgYWxyZWFkeSB0YWtlbi4kQmFkUGFyZW50AA8EFQFUaGUgcmVmZXJyZXIgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSBwZXJzb24uIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4kQmFkRmFtaWx5ABAEgFRoZSBkZXNpZ24gZmFtaWx5IGRvZXNuJ3QgZXhpc3QuLFdyb25nRmFtaWx5ABEEtFRoZSBkZXNpZ24gZmFtaWx5IGlzIGludmFsaWQgZm9yIHRoaXMgY2hvaWNlLixJbmRleFRvb0JpZwASBEEBVGhlIGluZGV4IG9mIHRoZSBkZXNpZ24gb3IgdmFyaWFudCBpcyBiZXlvbmQgdGhlIGFsbG93ZWQgbWF4aW11bSBmb3IgdGhlIGZhbWlseS4QQnVzeQATBPhUaGUgc3lzdGVtIGlzIGJ1c3kgd2l0aCB0b28gbWFueSBjb21taXRtZW50czsgdHJ5IGFnYWluIGxhdGVyLhhCYW5uZWQAFASoVGhlIHBlcnNvbiBoYXMgYmVlbiBiYW5uZWQgZnJvbSByZWZlcnJpbmcuKEltcHJvYmFibGUAFQQlAVRoZSBjYW5kaWRhdGUgaGFzIG5vdCBkZW1vbnN0cmF0ZWQgcHJvYmFibHkgdGhyb3VnaCB0aGUgaW5pdGlhbCBldmlkZW5jZS4oSWRSZXNlcnZlZAAWBMBUaGUgcGVyc29uYWwgaWRlbnRpdHkgaGFzIGFscmVhZHkgYmVlbiByZXNlcnZlZC4YSWRVc2VkABcE6FRoZSBwZXJzb25hbCBpZGVudGl0eSBpcyBhbHJlYWR5IHRha2VuIGJ5IGEgcHJvdmVuIHBlcnNvbi40SW52YWxpZFRpY2tldAAYBHxUaGUgdGlja2V0IHByb3ZpZGVkIGlzIGludmFsaWQuIE5vVGlja2V0ABkE8FRoZSBjYWxsZXIgaGFzIG5vdCBwcm92aWRlZCBhIHJlZmVycmFsIG9yIGludml0YXRpb24gdGlja2V0LjROb3RBdXRob3JpemVkABoEpFRoZSBhY2NvdW50IGlzIG5vdCBhdXRob3JpemVkIHRvIGRvIHRoaXMuJE5vdFBlcnNvbgAbBJBUaGUgcGVyc29uYWwgaWRlbnRpdHkgZG9lc24ndCBleGlzdC5EUmVmZXJyZWRDYW5kaWRhdGUAHARdAVRoZSBjYW5kaWRhdGUgaXMgcmVmZXJyZWQuIEJ1dCB0aGUgb3BlcmF0aW9uIHJlcXVpcmVzIHRoZSBjYW5kaWRhdGUgdG8gbm90IGJlIHJlZmVycmVkLlBOb3RSZWZlcnJlZENhbmRpZGF0ZQAdBF0BVGhlIGNhbmRpZGF0ZSBpcyBub3QgcmVmZXJyZWQuIEJ1dCB0aGUgb3BlcmF0aW9uIHJlcXVpcmVzIHRoZSBjYW5kaWRhdGUgdG8gYmUgcmVmZXJyZWQuSE5vUmV3YXJkVG9SZWdpc3RlcgAeBKBUaGVyZSBpcyBubyByZWZlcnJhbCByZXdhcmQgdG8gcmVnaXN0ZXIuQFJld2FyZFRvUmVnaXN0ZXIAHwQFAVRoZXJlIGlzIGEgcGVuZGluZyByZWZlcnJhbCByZXdhcmQgdGhhdCBtdXN0IGJlIHJlZ2lzdGVyZWQgZmlyc3QuJE5vSW52aXRlcgAgBERObyBpbnZpdGVyIGZvdW5kLkBJbnZhbGlkU2lnbmF0dXJlACEESEludmFsaWQgc2lnbmF0dXJlLiROb0ludml0ZXMAIgRQTm8gaW52aXRlIGF2YWlsYWJsZS44QWxyZWFkeUludml0ZWQAIwRYSW52aXRlIGlzIGFscmVhZHkgc2V0LihOb1JlZmVycmVyACQEdFRoZSByZWZlcnJlciBpcyBub3QgYSBwZXJzb24uME5vdFBvaVBlcnNvbgAlBOhUaGUgaW5kaXZpZHVhbCBpcyBub3QgYSBwZXJzb24gcmVjb2duaXplZCBieSBwcm9vZiBvZiBpbmsuXEludmFsaWRQcm9vZk9mT3duZXJzaGlwACYEiFRoZSBwcm9vZiBvZiBvd25lcnNoaXAgaXMgaW52YWxpZC5oSW52YWxpZFJlaW1idXJzZW1lbnRWYWx1ZXMAJwSUVGhlIHJlaW1idXJzZW1lbnQgdmFsdWVzIGFyZSBpbnZhbGlkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6FCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXM4QXJjaGl2ZWRQbGF5ZXIELEJsb2NrTnVtYmVyATgBCCBLaWNrYWJsZQgBKGZpcnN0X2dhbWU4ARxHYW1lSWR4AAE4YXJjaGl2ZWRfc2luY2U4ASxCbG9ja051bWJlcgAAAChVbmtpY2thYmxlBAEoZmlyc3RfZ2FtZTgBHEdhbWVJZHgAAQAAiQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzGFBsYXllcgQsUGxheURlcG9zaXQBjQoAJAEoZmlyc3RfZ2FtZTgBHEdhbWVJZHgAAShyZWdpc3RlcmVkyAEQYm9vbAABLHNlbnRfcmVwb3J0yAEQYm9vbAABaGVhcmx5X2F0dGVuZGFuY2VfZW5hY3RtZW50kQoBgE9wdGlvbjxFYXJseUF0dGVuZGFuY2VFbmFjdG1lbnQ+AAEoeWVzX3BlcnNvbgwBCHU4AAE0bm9fbm90X3BlcnNvbgwBCHU4AAFgZXhwZWN0ZWRfbWF4X3ZvdGVfd2VpZ2h0LQMBDHUxNgABLHZvdGVfd2VpZ2h0DAEIdTgAASxjcmVkaWJpbGl0eZ0KAXhQbGF5ZXJDcmVkaWJpbGl0eTxQbGF5RGVwb3NpdD4AAI0KFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAMQBKEY6OkJhbGFuY2UAAJEKBBhPcHRpb24EBFQBlQoBCBBOb25lAAAAEFNvbWUEAJUKAAABAACVCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNgRWFybHlBdHRlbmRhbmNlRW5hY3RtZW50AAAIAShhdHRlbmRhbmNlyAEQYm9vbAABLGRpc3Bvc2l0aW9umQoBRFBsYXllckRpc3Bvc2l0aW9uAACZCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXNEUGxheWVyRGlzcG9zaXRpb24AAQwQS2VlcAAAADxBcmNoaXZlS2lja2FibGUAAQBEQXJjaGl2ZVVua2lja2FibGUAAgAAnQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzRFBsYXllckNyZWRpYmlsaXR5BCxQbGF5RGVwb3NpdAGNCgEMHEludml0ZWQAAAAoUmVjb2duaXplZAABABxEZXBvc2l0BACNCgEsUGxheURlcG9zaXQAAgAAoQoMRGluZGl2X3BhbGxldF9nYW1lFHR5cGVzIEdhbWVJbmZvBCRBY2NvdW50SWQBBAAoARRpbmRleDgBHEdhbWVJZHgAAURyZWdpc3RyYXRpb25fZW5kczgBDHUzMgABQHNodWZmbGVfZGVhZGxpbmU4AQx1MzIAASRnYW1lX2RhdGU4AQx1MzIAASxyZXBvcnRfZW5kczgBDHUzMgABFHN0YXRlpQoBUEdhbWVTdGF0ZTxBY2NvdW50SWQ+AAE4bWF4X2dyb3VwX3NpemU4AQx1MzIAARhyb3VuZHMMAQh1OAABSHBlbmRpbmdfYXR0ZW5kYW5jZTgBDHUzMgABSGFpcmRyb3BzX3NjaGVkdWxlZAwBCHU4AAClCgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXMkR2FtZVN0YXRlBCRBY2NvdW50SWQBBAEUMFJlZ2lzdHJhdGlvbgQBRG5leHRfcGxheWVyX2luZGV4OAEsUGxheWVySW5kZXgAAAAcU2h1ZmZsZQQBEHN0ZXCpCgFYU2h1ZmZsZVN0ZXA8QWNjb3VudElkPgABACRSZXBvcnRpbmcEATBwbGF5ZXJfY291bnQ4AQx1MzIAAgA0UGxheWVyUHJvY2VzcwQBEHN0ZXC1CgFwUGxheWVyUHJvY2Vzc1N0ZXA8QWNjb3VudElkPgADAChDYW5jZWxsaW5nBAEQc3RlcLkKAWRDYW5jZWxsaW5nU3RlcDxBY2NvdW50SWQ+AAQAAKkKDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlcyxTaHVmZmxlU3RlcAQkQWNjb3VudElkAQQBECxTdGVwMUluc2VydAQBOGxhc3RfaXRlcmF0aW9urQoBiE9wdGlvbjxBY2NvdW50T3JQZXJzb248QWNjb3VudElkPj4AAAA0U3RlcDJSZXRyaWV2ZQgBRG5leHRfcGxheWVyX2luZGV4OAEsUGxheWVySW5kZXgAARRwaGFzZbEKAVBTaHVmZmxlUmV0cmlldmVQaGFzZQABAExTdGVwM0NvbXB1dGVXZWlnaHRzDAE4bGFzdF9pdGVyYXRpb26tCgGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgABMHBsYXllcl9jb3VudDgBDHUzMgABQHJlY29nbml6ZWRfY291bnQ4AQx1MzIAAgBEU3RlcDRBd2FpdFNlc3Npb24EATBwbGF5ZXJfY291bnQ4AQx1MzIAAwAArQoEGE9wdGlvbgQEVAFxBAEIEE5vbmUAAAAQU29tZQQAcQQAAAEAALEKDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlc1BTaHVmZmxlUmV0cmlldmVQaGFzZQABCChSZWNvZ25pemVkAAAANE5vdFJlY29nbml6ZWQEAUByZWNvZ25pemVkX2NvdW50OAEMdTMyAAEAALUKDERpbmRpdl9wYWxsZXRfZ2FtZRR0eXBlc0RQbGF5ZXJQcm9jZXNzU3RlcAQkQWNjb3VudElkAQQBCExTdGVwMVByb2Nlc3NQbGF5ZXJzCAE4bGFzdF9pdGVyYXRpb26tCgGIT3B0aW9uPEFjY291bnRPclBlcnNvbjxBY2NvdW50SWQ+PgABMHBsYXllcl9jb3VudDgBDHUzMgAAAERTdGVwMkNsZWFySW5kaWNlcwABAAC5CgxEaW5kaXZfcGFsbGV0X2dhbWUUdHlwZXM4Q2FuY2VsbGluZ1N0ZXAEJEFjY291bnRJZAEEAQhEU3RlcDFEcmFpblNodWZmbGUAAABEU3RlcDJEcmFpblBsYXllcnMEAThsYXN0X2l0ZXJhdGlvbq0KAYhPcHRpb248QWNjb3VudE9yUGVyc29uPEFjY291bnRJZD4+AAEAAL0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AAMEKAAAECAw4AMUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AAMkKAAAECAwIAM0KDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKQQEUwAABAAlBAEYVmVjPFQ+AADRCgAAAxsAAAAMANUKDERpbmRpdl9wYWxsZXRfZ2FtZRhwYWxsZXQURXJyb3IEBFQAAYQsR2FtZU9uZ29pbmcAAAQ0R2FtZSBvbmdvaW5nLjhOb1JlZ2lzdHJhdGlvbgABBHhObyByZWdpc3RyYXRpb24gcGhhc2Ugb25nb2luZy5ET3V0ZGF0ZWRHYW1lU2V0dXAAAgRYVGhlIHNldHVwIGlzIG91dGRhdGVkLkBJbnZhbGlkR2FtZVNldHVwAAMEOEludmFsaWQgc2V0dXAuNEludmFsaWRSZXBvcnQABAQ8SW52YWxpZCByZXBvcnQuGE5vR2FtZQAFBEBObyBnYW1lIG9uZ29pbmcuLE5vUmVwb3J0aW5nAAYEYE5vIHJlcG9ydCBwaGFzZSBvbmdvaW5nLjROb3RSZWdpc3RlcmVkAAcEPE5vdCByZWdpc3RlcmVkLkRBbHJlYWR5UmVnaXN0ZXJlZAAIBGhQbGF5ZXIgYWxyZWFkeSByZWdpc3RlcmVkLkRSZXBvcnRBbHJlYWR5U2VudAAJBFBSZXBvcnQgYWxyZWFkeSBzZW50LhRFYXJseQAKBGxPcGVyYXRpb24gaXMgbm90IHZhbGlkIHlldC5ETm90S2lja2FibGVQbGF5ZXIACwSYVGhlIG9wZXJhdGlvbiBleHBlY3QgYSBwbGF5ZXIgYWNjb3VudC5ATm9BcmNoaXZlZFBsYXllcgAMBGRObyBhcmNoaXZlZCBwbGF5ZXIgZm91bmQuIE5vVGlja2V0AA0EQE5vIHRpY2tldCBmb3VuZC4kTm9JbnZpdGVzAA4EUE5vIGludml0ZSBhdmFpbGFibGUuOEFscmVhZHlJbnZpdGVkAA8EWEludml0ZSBpcyBhbHJlYWR5IHNldC5ATm90QWNjb3VudFBsYXllcgAQBPhOb3QgYW4gYWNjb3VudCBiYXNlZCBwbGF5ZXIsIGV4cGVjdGVkIGFuIGFjY291bnQgYmFzZWQgcGxheWVyLmhVc2VJbnZpdGVCdXRBbHJlYWR5UGxheWluZwARBMhUaGUgcGxheWVyIGNhbid0IHVzZSBhbiBpbnZpdGUgaWYgYWxyZWFkeSBwbGF5aW5nLlRBbm90aGVyQWNjb3VudEludml0ZWQAEgRNAVRoZSBsaXRlIHBlcnNvbiBhbHJlYWR5IGludml0ZWQgYW5vdGhlciBhY2NvdW50LCBhbmQgaW52aXRlcyBvbmx5IG9uZSBhY2NvdW50IGV2ZXIuUFRvb01hbnlHYW1lU2NoZWR1bGVzABMEQQFUaGUgbnVtYmVyIG9mIGV4aXN0aW5nIHNjaGVkdWxlcyBhbmQgbmV3IHNjaGVkdWxlcyBleGNlZWRzIHRoZSBjb25maWd1cmVkIGxpbWl0LkxOb1N1Y2hHYW1lU2NoZWR1bGVkABQEKQFUaGUgZ2FtZSB0aGF0IHdhcyBzdXBwb3NlZCB0byBiZSByZW1vdmVkIHdhcyBub3QgZm91bmQgaW4gc2NoZWR1bGVkIGdhbWVzLoBJbnZhbGlkU3RhdGVtZW50QWNjb3VudFNpZ25hdHVyZQAVBKxUaGUgc3RhdGVtZW50IGFjY291bnQgc2lnbmF0dXJlIGlzIGludmFsaWQucFN0YXRlbWVudEFjY291bnRBbHJlYWR5SW5Vc2UAFgTsVGhlIHN0YXRlbWVudCBhY2NvdW50IGlzIGFscmVhZHkgaW4gdXNlZCBieSBhbm90aGVyIHBsYXllci5kSW50ZXJuYWxFcnJvckludmFsaWRTdGF0ZQAXBHRJbnRlcm5hbCBlcnJvciBpbnZhbGlkIHN0YXRlLkBJbnZhbGlkR2FtZVN0YXRlABgE8FRoZSBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBpbiB0aGUgY3VycmVudCBnYW1lIHN0YXRlLiBOb1BsYXllcgAZBEBObyBwbGF5ZXIgZm91bmQukENhbm5vdE9mZmJvYXJkV2hpbGVSZWdpc3RlcmVkRm9yR2FtZQAaBNxUaGUgcGxheWVyIGNhbm5vdCBvZmZib2FyZCB3aGlsZSByZWdpc3RlcmVkIGZvciBhIGdhbWUuMEludmFsaWRTdGF0ZQAbBDRJbnZhbGlkIHN0YXRlSEludmFsaWRQbGF5RGVwb3NpdAAcBORgc2V0X3BsYXlfZGVwb3NpdGA6IHRoZSBzdXBwbGllZCBhbW91bnQgbXVzdCBiZSBub24temVyby6ISW52YWxpZEFpcmRyb3BWcmZWYXJpYW50Rm9yQWNjb3VudAAdAJhJbnZhbGlkQWlyZHJvcFZyZlZhcmlhbnRGb3JSZWNvZ25pdGlvbgAeAFhJbnZhbGlkQWlyZHJvcFZyZkNvdW50AB8IRQFUaGUgbnVtYmVyIG9mIHN1cHBsaWVkIGFpcmRyb3AgVlJGIGVudHJpZXMgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzY2hlZHVsZWQ8YWlyZHJvcCBldmVudHMuVE5vdEVsaWdpYmxlRm9yQWlyZHJvcAAgCFUBYGNsYWltX2FpcmRyb3BgOiB0aGUgY2xhaW1hbnQgaXMgbm90IHJlY29nbml6ZWQgaW4gcGFsbGV0LXNjb3JlLCBvciB0aGVpciBtb3N0IHJlY2VudPRhdHRlbmRlZCBnYW1lIGRvZXMgbm90IG1hdGNoIHRoZSBgZ2FtZV9pbmRleGAgb2YgdGhlIGFpcmRyb3AuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUGFydGljaXBhbnQEHEJhbGFuY2UBxAAkARRzY29yZQwBCHU4AAEYc3RyZWFr3QoBGFN0cmVhawABSGF0dGVuZGFuY2VfaGlzdG9yeeEKAURBdHRlbmRhbmNlSGlzdG9yeQABGGNyZWRpdMQBHEJhbGFuY2UAAShjYXNoZWRfb3V0yAEQYm9vbAABSHJlYWNoZWRfcGVyc29uaG9vZMgBEGJvb2wAAWxoYXNfZXZlcl9yZWFjaGVkX3BlcnNvbmhvb2TIARBib29sAAEscmVjb2duaXRpb27lCgEsUmVjb2duaXRpb24AAUhsYXN0X2F0dGVuZGVkX2dhbWUJAwEsT3B0aW9uPHUzMj4AAN0KDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMYU3RyZWFrAAEIIEF0dGVuZGVkBAAMAQh1OAAAABhBYnNlbnQEAAwBCHU4AAEAAOEKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXNEQXR0ZW5kYW5jZUhpc3RvcnkAAAQADAEIdTgAAOUKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMsUmVjb2duaXRpb24AARBQRXh0ZXJuYWxseVJlY29nbml6ZWQAAAA0Tm90UmVjb2duaXplZAABACRTdXNwZW5kZWQEACgBKFBlcnNvbmFsSWQAAgAoUmVjb2duaXplZAQAKAEoUGVyc29uYWxJZAADAADpCgAABAg4cQQA7QoMSGluZGl2X3BhbGxldF9zY29yZRR0eXBlcyxSb3VuZFBheW91dAQcQmFsYW5jZQHEABABRHJlbWFpbmluZ19iYWxhbmNlxAEcQmFsYW5jZQABLHBvaW50X3ByaWNlxAEcQmFsYW5jZQABJHJlbWFpbmRlcsQBHEJhbGFuY2UAATB0b3RhbF9wb2ludHM4AQx1MzIAAPEKDEhpbmRpdl9wYWxsZXRfc2NvcmUUdHlwZXMkUm91bmRJbmZvCCxCbG9ja051bWJlcgE4HEJhbGFuY2UBxAAIASRmaW5pc2hfYXQ4ASxCbG9ja051bWJlcgABGGNyZWRpdMQBHEJhbGFuY2UAAPUKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB+QoEUwAABAD9CgEYVmVjPFQ+AAD5CgxIaW5kaXZfcGFsbGV0X3Njb3JlFHR5cGVzOFBheW91dFNjaGVkdWxlCBxCYWxhbmNlAcQsQmxvY2tOdW1iZXIBOAAMASRyZW1haW5pbmc4AQx1MzIAAUBhbW91bnRfcGVyX3JvdW5kxAEcQmFsYW5jZQABIGR1cmF0aW9uOAEsQmxvY2tOdW1iZXIAAP0KAAAC+QoAAQsMSGluZGl2X3BhbGxldF9zY29yZRhwYWxsZXQURXJyb3IEBFQAAWwkTm90UGVyc29uAAAEjFRoZSBjYWxsaW5nIG9yaWdpbiBpcyBub3QgYSBwZXJzb24uXEhhc05vdFJlYWNoZWRQZXJzb25ob29kAAEEjFRoZSBwZXJzb24gZGlkbid0IHJlYWNoIHBlcnNvbmhvb2QuIE5vUmV3YXJkAAIEUE5vIHJld2FyZCBhdmFpbGFibGUuHE5vU2NvcmUAAwSMVGhlIHBlcnNvbiBoYXMgbm8gYXNzb2NpYXRlZCBzY29yZS4oTm9TY2hlZHVsZQAEBHRObyBwYXlvdXQgc2NoZWR1bGUgYXZhaWxhYmxlLkBUb29NYW55U2NoZWR1bGVzAAUEtFRvbyBtYW55IHBheW91dCBzY2hlZHVsZXMgYWxyZWFkeSByZWdpc3RlcmVkLihSZWNvZ25pemVkAAYEBQFUaGUgcGFydGljaXBhbnQgaXMgcmVjb2duaXplZCBvciBoYXMgYmVlbiByZWNvZ25pemVkIGFzIGEgcGVyc29uLjxDYXNoT3V0Q29vbGRvd24ABwTMVGhlIHBhcnRpY2lwYW50IGhhcyBhbHJlYWR5IGNhc2hlZCBvdXQgaW4gdGhpcyBlcmEuYFJvdW5kT25Hb2luZ09yTm9TY2hlZHVsZQAIBJRUaGUgcm91bmQgaXMgb24gZ29pbmcgb3Igbm8gc2NoZWR1bGUuHE5vUm91bmQACQSEVGhlIHBheW91dCByb3VuZCBoYXMgbm90IHN0YXJ0ZWQubEJhZE9yaWdpbk5vdFBlcnNvbk5vdFNpZ25lZAAKBNBUaGUgb3JpZ2luIGlzIG5laXRoZXIgYSBwZXJzb24gbm9yIGEgc2lnbmVkIGFjY291bnQuwEJhZE9yaWdpbk5vdFBlcnNvbk5vdFNpZ25lZE5vdEFjY291bnRQYXJ0aWNpcGFudAALBD0BVGhlIG9yaWdpbiBpcyBuZWl0aGVyIGEgcGVyc29uIG5vciBhIHNpZ25lZCBhY2NvdW50IG5vciBhbiBhY2NvdW50IHBhcnRpY2lwYW50LpxCYWRPcmlnaW5Ob3RTaWduZWROb3RBY2NvdW50UGFydGljaXBhbnQADAQJAVRoZSBvcmlnaW4gaXMgbmVpdGhlciBhIHNpZ25lZCBhY2NvdW50IG5vciBhbiBhY2NvdW50IHBhcnRpY2lwYW50LlBBbHJlYWR5UGFydGljaXBhdGluZwANBKRUaGUgcGFydGljaXBhbnQgaXMgYWxyZWFkeSBwYXJ0aWNpcGF0aW5nLkRLZXlNdXN0QmVQcm92aWRlZAAOBGRUaGUga2V5IG11c3QgYmUgcHJvdmlkZWQuUEtleU11c3ROb3RCZVByb3ZpZGVkAA8EdFRoZSBrZXkgbXVzdCBub3QgYmUgcHJvdmlkZWQuUEhhc1JlYWNoZWRQZXJzb25ob29kABAEjEhhcyByZWFjaGVkIHBlcnNvbmhvb2QgaW4gdGhlIHBhc3QuXEludmFsaWRQcm9vZk9mT3duZXJzaGlwABEEiFRoZSBwcm9vZiBvZiBvd25lcnNoaXAgaXMgaW52YWxpZC44V2luZG93VG9vTGFyZ2UAEgQ9AUFuIGFic2VuY2UgZ3JhY2UgdGllciBoYXMgYSB3aW5kb3cgZXhjZWVkaW5nIHRoZSBtYXhpbXVtIHRyYWNrYWJsZSBoaXN0b3J5ICg4KS5UQWxsb3dlZE1pc3Nlc1Rvb0xhcmdlABMEIQFUaGUgYWxsb3dlZCBtaXNzZXMgbXVzdCBiZSBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIHdpbmRvdyAob3IgYm90aCB6ZXJvKS5gQWJzZW5jZVNjaGVkdWxlTm90U29ydGVkABQEMQFBYnNlbmNlLWdyYWNlIHRpZXJzIG11c3QgYmUgc29ydGVkIGJ5IGFzY2VuZGluZyBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuXFBlcnNvbmhvb2RTY2hlZHVsZUVtcHR5ABUEBQFUaGUgcGVyc29uaG9vZC10aHJlc2hvbGQgc2NoZWR1bGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSB0aWVyLnBQZXJzb25ob29kU2NvcmVUaHJlc2hvbGRaZXJvABYE3EEgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllciBoYXMgYHNjb3JlX3RocmVzaG9sZCA9PSAwYC6AUGVyc29uaG9vZFNjb3JlVGhyZXNob2xkVG9vTGFyZ2UAFwT8QSBwZXJzb25ob29kLXRocmVzaG9sZCB0aWVyIGV4Y2VlZHMgYE1BWF9QRVJTT05IT09EX1RIUkVTSE9MRGAubFBlcnNvbmhvb2RTY2hlZHVsZU5vdFNvcnRlZAAYCNhQZXJzb25ob29kLXRocmVzaG9sZCB0aWVycyBtdXN0IGJlIHNvcnRlZCBieSBhc2NlbmRpbmdwYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGRgLnhQZXJzb25ob29kU2NoZWR1bGVOb3RNb25vdG9uaWMAGQgRAVBlcnNvbmhvb2QtdGhyZXNob2xkIGBzY29yZV90aHJlc2hvbGRgIHZhbHVlcyBtdXN0IGJlIG5vbi1kZWNyZWFzaW5n9GFjcm9zcyB0aWVycyAoYSBsYXJnZXIgcG9wdWxhdGlvbiBtdXN0IG5vdCBoYXZlIGEgbG93ZXIgYmFyKS5oUGVyc29uaG9vZFNjaGVkdWxlTm90VG90YWwAGgj0VGhlIGxhc3QgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllciBtdXN0IGNvdmVyIGFsbCBwb3B1bGF0aW9uc6goYHBvcHVsYXRpb25fc2l6ZV90aHJlc2hvbGQgPT0gdTMyOjpNQVhgKS4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuBQsMYGluZGl2X3BhbGxldF9uZnRfY3JlZGl0cxR0eXBlczhBd2FyZGVkQ3JlZGl0cwAABADEARB1MTI4AAAJCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQ0LBFMAAAQAEQsBGFZlYzxUPgAADQsMYGluZGl2X3BhbGxldF9uZnRfY3JlZGl0cxR0eXBlc0xOZnRDbGFpbUNyZWRpdEF3YXJkBCRBY2NvdW50SWQBBAAIASBjbGFpbWFudHEEAWhBY2NvdW50T3JQZXJzb248QWNjb3VudElkPgABGGNyZWRpdAgBOE5mdENsYWltQ3JlZGl0AAARCwAAAg0LABULDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBOARTAAAEAMkDARhWZWM8VD4AABkLDGBpbmRpdl9wYWxsZXRfbmZ0X2NyZWRpdHMUdHlwZXNYTmZ0Q2xhaW1DcmVkaXRSb290SW5mbwAACAEoZ2FtZV9pbmRleDgBHEdhbWVJZHgAASR0aW1lc3RhbXA4AQx1MzIAAB0LDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBIQsEUwAABAAlCwEYVmVjPFQ+AAAhCwAABAgoOAAlCwAAAiELACkLDGBpbmRpdl9wYWxsZXRfbmZ0X2NyZWRpdHMYcGFsbGV0FEVycm9yBARUAAEcQE5vQmxvY2tzVG9SZXBsYXkAAAT8QSBjcmVkaXQgdHJlZSByZXBsYXkgd2FzIHJlcXVlc3RlZCBmb3IgYW4gZW1wdHkgbGlzdCBvZiBibG9ja3MuUFVuc29ydGVkUmVwbGF5QmxvY2tzAAEE5FRoZSBibG9ja3MgdG8gcmVwbGF5IGFyZSBub3QgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLlBOb0NyZWRpdFRyZWVGb3JCbG9jawACBLxOb25lIG9mIHRoZSBibG9ja3MgdG8gcmVwbGF5IGhhcyBhIGNyZWRpdCB0cmVlLnBFeGNlZWRzQ2xhaW1zQ2hhbm5lbENhcGFjaXR5AAMISQFUaGUgcmVwbGF5IGRvZXMgbm90IGZpdCB3aGF0IHRoZSBIUk1QIGNoYW5uZWwgdG8gdGhlIE5GVCBjbGFpbXMgY2hhaW4gY2FuIGNhcnJ5IGluMG9uZSBtZXNzYWdlLkxDcmVkaXRUcmVlWGNtRmFpbGVkAAQEBQFTZW5kaW5nIHRoZSBjcmVkaXQgdHJlZXMgdG8gdGhlIE5GVCBjbGFpbXMgY2hhaW4gb3ZlciBYQ00gZmFpbGVkLlRDcmVkaXRTbG90T3V0T2ZCb3VuZHMABQhVAVRoZSByb3VuZCBpcyBub3QgYmVsb3cgYE1heFJvdW5kc2AsIG9yIHRoZSBhdHRlc3RlciBzbG90IGlzIG5vdCBiZWxvdyBgTWF4R3JvdXBTaXplYCy4c28gdGhlIHR3byBuYW1lIGEgY3JlZGl0IHNsb3Qgbm8gZ2FtZSBjYW4gdXNlLkBDcmVkaXROb3RBd2FyZGVkAAYIVQFObyBjcmVkaXQgd2FzIGF3YXJkZWQ6IHRoZSBjbGFpbWFudCBhbHJlYWR5IGhvbGRzIHRoZSBzbG90J3MgY3JlZGl0IGZvciB0aGF0IGdhbWUsIG9yoHRoZSBibG9jayBoYXMgbm8gcm9vbSBmb3IgYW5vdGhlciBhd2FyZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQsMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0GFJlY29yZAQMS2V5AQgACAEMa2V5CAEMS2V5AAEkc3VzcGVuZGVkyAEQYm9vbAAAMQsMWGluZGl2X3BhbGxldF9kdW1teV9kaW0YcGFsbGV0FEVycm9yBARUAAEQJE5vdFBlcnNvbgAABNxUaGUgcGVyc29uYWwgSUQgZG9lcyBub3QgYmVsb25nIHRvIGEgcmVjb2duaXplZCBwZXJzb24uME5vdFN1c3BlbmRlZAABBNhUaGUgcGVyc29uYWwgSUQgZG9lcyBub3QgYmVsb25nIHRvIGEgc3VzcGVuZGVkIHBlcnNvbi4sTm90UmVzZXJ2ZWQAAgTkVGhlIHBlcnNvbmFsIElEIGlzIG5vdCByZXNlcnZlZCBhbmQgYXdhaXRpbmcgcmVjb2duaXRpb24uNFRvb01hbnlQZW9wbGUAAwTAVGhlIG9wZXJhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgbWFueSBwZW9wbGUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LjULDGBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGUUdHlwZXM4TGl0ZVBlcnNvbkluZm8IGE1lbWJlcgEIGE1ldGhvZAE5CwAIATByaW5nX3ZyZl9rZXkIARhNZW1iZXIAARhtZXRob2Q5CwEYTWV0aG9kAAA5CwxgaW5kaXZfcGFsbGV0X3Blb3BsZV9saXRlFHR5cGVzRFJlY29nbml0aW9uTWV0aG9kBBxBY2NvdW50AQQBBDBVbmlxdWVEZXZpY2UEAAQBHEFjY291bnQAAAAAPQsMYGluZGl2X3BhbGxldF9wZW9wbGVfbGl0ZRhwYWxsZXQURXJyb3IEBFQAASxYTm9BdHRlc3RhdGlvbkFsbG93YW5jZQAABGRObyBhdHRlc3RhdGlvbiBhbGxvd2FuY2UubEludmFsaWRBdHRlc3RhdGlvblNpZ25hdHVyZQABBPBUaGUgc2lnbmF0dXJlIGNyZWF0ZWQgYnkgdGhlIGNhbmRpZGF0ZSdzIGFjY291bnQgaXMgaW52YWxpZC5cSW52YWxpZFByb29mT2ZPd25lcnNoaXAAAgQFAVRoZSBzaWduYXR1cmUgY3JlYXRlZCBieSB0aGUgY2FuZGlkYXRlJ3MgcmluZyB2cmYga2V5IGlzIGludmFsaWQuREFscmVhZHlSZWdpc3RlcmVkAAMEkFRoZSBjYW5kaWRhdGUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLjxLZXlBbHJlYWR5SW5Vc2UABATwVGhlIHJpbmcgVlJGIGtleSBpcyBhbHJlYWR5IGVucm9sbGVkIGJ5IGFub3RoZXIgbGl0ZSBwZXJzb24uMEFjY291bnRJblVzZQAFBHhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGluIHVzZS5YQWxpYXNBY2NvdW50QWxyZWFkeVNldAAGBORUaGUgYWxpYXMgPC0+IGFjY291bnQgbWFwcGluZyBpcyBhbHJlYWR5IHNldCBhbmQgY3VycmVudC5IQWxpYXNBY2NvdW50Tm90U2V0AAcEpFRoZSBhbGlhcyA8LT4gYWNjb3VudCBtYXBwaW5nIGlzIG5vdCBzZXQuTENhbGxCbG9ja091dE9mUmFuZ2UACAQhAVRoZSByZXF1ZXN0ZWQgYWxpYXMgc2V0dXAgYmxvY2sgd2luZG93IGlzIGludmFsaWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLkxJbnZhbGlkQWxpYXNDb250ZXh0AAkEdFRoZSBhbGlhcyBjb250ZXh0IGlzIGludmFsaWQueExpdGVQZW9wbGVDb2xsZWN0aW9uTm90Q3JlYXRlZAAKBPxUaGUgbGl0ZSBwZW9wbGUgbWVtYmVyIGNvbGxlY3Rpb24gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuQQsMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXMwQ29uc3VtZXJJbmZvAAAQAThpZGVudGlmaWVyX2tled0DAVxDb21tdW5pY2F0aW9uSWRlbnRpZmllcgABNGZ1bGxfdXNlcm5hbWWdBAFAT3B0aW9uPFVzZXJuYW1lPgABNGxpdGVfdXNlcm5hbWWZBAEgVXNlcm5hbWUAASxjcmVkaWJpbGl0eUULASxDcmVkaWJpbGl0eQAARQsMWGluZGl2X3BhbGxldF9yZXNvdXJjZXMUdHlwZXMsQ3JlZGliaWxpdHkAAQgQTGl0ZQAAABhQZXJzb24MARRhbGlhcwgBFEFsaWFzAAEsbGFzdF91cGRhdGUoAQx1NjQAARxkZW1vdGVkyAEQYm9vbAABAABJCwAABAhNCwgATQsMNGluZGl2X3N1cHBvcnQUdXRpbHMwQmlnRW5kaWFuVTMyAAMEAAAADAQZAUEgdTMyIGVuY29kZWQgaW4gYmlnLWVuZGlhbiBmb3JtYXQgZm9yIGNvcnJlY3QgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZy5RCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1xTdG10U3RvcmVBbGxvd2FuY2VFbnRyeQQEVAAADAEoYWNjb3VudF9pZAQBMFQ6OkFjY291bnRJZAABDHNlcTgBDHUzMgABFHNpbmNlKAEMdTY0AABVCwAABAgEWQsAWQsAAAQMTQs4CABdCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc2BOb3RpZmljYXRpb25SZWdpc3RyYXRpb24EHEFjY291bnQBBAAIAShhY2NvdW50X2lkBAEcQWNjb3VudAABJHJlZmVyZW5jZakEAVROb3RpZmljYXRpb25SZWZlcmVuY2UAAGELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBZQsEUwAABABpCwEYVmVjPFQ+AABlCwxYaW5kaXZfcGFsbGV0X3Jlc291cmNlcxR0eXBlc1RSZXNlcnZhdGlvblF1ZXVlRW50cnkEHEFjY291bnQBBAAIARxhY2NvdW50BAEcQWNjb3VudAABJGpvaW5lZF9hdCgBDHU2NAAAaQsAAAJlCwBtCwhIc3Bfc3RhdGVtZW50X3N0b3JlSFN0YXRlbWVudEFsbG93YW5jZQAACAEkbWF4X2NvdW50OAEMdTMyAAEgbWF4X3NpemU4AQx1MzIAAHELDFhpbmRpdl9wYWxsZXRfcmVzb3VyY2VzGHBhbGxldBRFcnJvcgQEVAABYDxJbnZhbGlkVXNlcm5hbWUAAAScVXNlcm5hbWUgZG9lcyBub3QgZml0IHRoZSByZXF1aXJlbWVudHMuNFVzZXJuYW1lVGFrZW4AAQRoVXNlcm5hbWUgaXMgYWxyZWFkeSB0YWtlbi5EQWxyZWFkeVJlZ2lzdGVyZWQAAgR8Q29uc3VtZXIgaXMgYWxyZWFkeSByZWdpc3RlcmVkLlxJbnZhbGlkUHJvb2ZPZk93bmVyc2hpcAADBJxQcm92aWRlZCBwcm9vZiBvZiBvd25lcnNoaXAgaXMgaW52YWxpZC40Tm90UmVnaXN0ZXJlZAAEBJxQZXJzb24gaXMgbm90IHJlZ2lzdGVyZWQgYXMgYSBjb25zdW1lci40Tm90RnVsbFBlcnNvbgAFBHhDb25zdW1lciBpcyBub3QgYSBmdWxsIHBlcnNvbi40VG91Y2hOb3RSZWFkeQAGBMxBdHRlbXB0ZWQgdG8gdXBkYXRlIHBlcnNvbiBhdXRob3JpemF0aW9uIHRvbyBlYXJseS40Tm9SZXNlcnZhdGlvbgAHBGhSZXNlcnZhdGlvbiBpcyBub3QgYWN0aXZlLlBOb3RSZXNlcnZhdGlvbkhvbGRlcgAIBBUBVGhlIGxpbmtlZCBsaXRlIGlkZW50aXR5IGlzIG5vdCB0aGUgYWN0aXZlIGhvbGRlciBvZiB0aGUgcmVzZXJ2YXRpb24uYFVzZXJuYW1lUmVzZXJ2YXRpb25UYWtlbgAJBORUaGUgdXNlcm5hbWUgaW4gdGhlIHJlc2VydmF0aW9uIHJlcXVlc3QgaXMgYWxyZWFkeSB0YWtlbi5AUmVzZXJ2YXRpb25GcmVzaAAKBIBUaGUgcmVzZXJ2YXRpb24gaGFzIG5vdCBleHBpcmVkLkBOb0xpbmtlZElkZW50aXR5AAsEnFRoZXJlIGlzIG5vIGxpdGUgY29uc3VtZXIgdG8gYmUgbGlua2VkLjRBbHJlYWR5TGlua2VkAAwE+FRoZSBsaXRlIGNvbnN1bWVyIGlzIGFscmVhZHkgbGlua2VkIHRvIGEgZnVsbCBwZXJzb24gY29uc3VtZXIuUFBlcnNvbkF1dGhOb3RFeHBpcmVkAA0EvFRoZSBwZXJzb24ncyBhdXRob3JpemF0aW9uIGhhcyBub3QgZXhwaXJlZCB5ZXQuOEFscmVhZHlEZW1vdGVkAA4EkFRoZSBwZXJzb24gaGFzIGFscmVhZHkgYmVlbiBkZW1vdGVkLiRRdWV1ZUZ1bGwADwSAUXVldWUgZm9yIHRoaXMgdXNlcm5hbWUgaXMgZnVsbC4oTm90SW5RdWV1ZQAQBLhBY2NvdW50IGlzIG5vdCBpbiB0aGUgcXVldWUgZm9yIHRoaXMgdXNlcm5hbWUuVEFscmVhZHlIYXNSZXNlcnZhdGlvbgARBNxBY2NvdW50IGFscmVhZHkgaGFzIGEgcmVzZXJ2YXRpb24gZm9yIGFub3RoZXIgdXNlcm5hbWUubEludmFsaWROb3RpZmljYXRpb25TZXF1ZW5jZQASBMhOb3RpZmljYXRpb24gc2VxdWVuY2UgaXMgaW52YWxpZCBmb3IgdGhlIGNvbnN1bWVyLmRJbnZhbGlkTm90aWZpY2F0aW9uUGVyaW9kABME5E5vdGlmaWNhdGlvbiBwZXJpb2QgaXMgb3V0c2lkZSB0aGUgYWNjZXB0ZWQgY2xhaW0gd2luZG93LohOb3RpZmljYXRpb25SZWdpc3RyYXRpb25Ob3RFeHBpcmVkABQEtE5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24gaXMgbm90IGV4cGlyZWQgeWV0LpROb3RpZmljYXRpb25SZWdpc3RyYXRpb25BbHJlYWR5RXhpc3RzABUE/E5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24gYWxyZWFkeSBleGlzdHMgZm9yIHRoZSBhbGlhcy9jb250ZXh0LnBTdG10U3RvcmVSZXBsYWNlbWVudFRvb0Vhcmx5ABYEGQFUaGUgcmVwbGFjZW1lbnQgY29vbGRvd24gaGFzIG5vdCBlbGFwc2VkIHNpbmNlIHRoZSBlbnRyeSB3YXMgbGFzdCBzZXQujExvbmdUZXJtU3RvcmFnZUNsZWFudXBMaW1pdEV4Y2VlZGVkABcE7FRoZSBwcm92aWRlZCBgbGltaXRgIGV4Y2VlZHMgYExvbmdUZXJtU3RvcmFnZUNsZWFudXBMaW1pdGAuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnULAAAECLEEOAB5CwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0LBFMAAAQAhQsBGFZlYzxUPgAAfQsMbGluZGl2X3BhbGxldF9jaHVua3NfbWFuYWdlchhwYWxsZXQ4VW5jaGVja2VkQ2h1bmsEBFQAAAQAgQsBIFQ6OkNodW5rAACBCwwodmVyaWZpYWJsZRByaW5nLFN0YXRpY0NodW5rAANgAAAADACFCwAAAn0LAIkLDGxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXIYcGFsbGV0FEVycm9yBARUAAEMNENodW5rTm90Rm91bmQAAASgVGhlIHJlcXVlc3RlZCBjaHVuayBpbmRleCBkb2Vzbid0IGV4aXN0LjRJbnZhbGlkQ2h1bmtzAAEEsFRoZSBwcm92aWRlZCBjaHVuayBkYXRhIGNvdWxkbid0IGJlIGRlY29kZWQuREludmFsaWRDaHVua1JhbmdlAAIE3FRoZSBzdGFydCBpbmRleCBpc24ndCBzdHJpY3RseSBsZXNzIHRoYW4gdGhlIGVuZCBpbmRleC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQujQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzOENvbGxlY3Rpb25JbmZvCBxBY2NvdW50AQQgTG9jYXRpb24B4AAQARRvd25lcpELAYhDb2xsZWN0aW9uT3duZXI8QWNjb3VudCwgTG9jYXRpb24+AAEQbW9kZZULASBSaW5nTW9kZQABJHJpbmdfc2l6ZbEEATBSaW5nRXhwb25lbnQAAVBzZWxmX2luY2x1c2lvbl9kZWxheRUDASxPcHRpb248dTY0PgAAkQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzPENvbGxlY3Rpb25Pd25lcggcQWNjb3VudAEEIExvY2F0aW9uAeABCCBFeHRlcm5hbAQA4AEgTG9jYXRpb24AAAAUTG9jYWwEAAQBHEFjY291bnQAAQAAlQsQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHkgUmluZ01vZGUAAQgoQXBwZW5kT25seQAAACBGbGV4aWJsZQABAACZCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AACdCwAABAgIOAChCwxQaW5kaXZfcGFsbGV0X21lbWJlcnMUdHlwZXMgUmluZ1Jvb3QEBFQAAAwBEHJvb3QFBQEwTWVtYmVyc09mPFQ+AAEgcmV2aXNpb244ATRSZXZpc2lvbkluZGV4AAEwaW50ZXJtZWRpYXRlpQsBREludGVybWVkaWF0ZU9mPFQ+AAClCwwodmVyaWZpYWJsZRByaW5nKE1lbWJlcnNTZXQAA1ADAAAMAKkLAAAEDAg4TQsArQsMUGluZGl2X3BhbGxldF9tZW1iZXJzFHR5cGVzHE9sZFJvb3QEBFQAAAgBEHJvb3QFBQEwTWVtYmVyc09mPFQ+AAEsYXJjaGl2ZWRfYXQoAQx1NjQAALELAAAEDAg4OAC1CwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABACxAwEYVmVjPFQ+AAC5CxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eShSaW5nU3RhdHVzAAAMARR0b3RhbDgBDHUzMgABIGluY2x1ZGVkOAEMdTMyAAE8aW1tdXRhYmxlX3NpbmNlFQMBLE9wdGlvbjx1NjQ+AAC9CwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATgEUwAABADJAwEYVmVjPFQ+AADBCwAABAgICADFCxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eTBSaW5nUG9zaXRpb24AAQwoT25ib2FyZGluZwgBKHF1ZXVlX3BhZ2U4ASRQYWdlSW5kZXgAASRxdWV1ZWRfYXQoAQx1NjQAAAAgSW5jbHVkZWQMAShyaW5nX2luZGV4OAEkUmluZ0luZGV4AAEkcmluZ19wYWdlOAEkUGFnZUluZGV4AAE0cmluZ19wb3NpdGlvbjgBDHUzMgABACRTdXNwZW5kZWQAAgAAyQsQNGluZGl2X3N1cHBvcnQYdHJhaXRzHHJlYWxpdHlAUmluZ01lbWJlcnNTdGF0ZQAABAEQbW9kZc0LAUBSaW5nTXV0YXRpb25Nb2RlAADNCxA0aW5kaXZfc3VwcG9ydBh0cmFpdHMccmVhbGl0eUBSaW5nTXV0YXRpb25Nb2RlAAEIKEFwcGVuZE9ubHkAAAAgTXV0YXRpbmcEAAwBCHU4AAEAANELDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEALEDARhWZWM8VD4AANULDFBpbmRpdl9wYWxsZXRfbWVtYmVycxhwYWxsZXQURXJyb3IEBFQAAXAkTm90TWVtYmVyAAAE0FRoZSBzdXBwbGllZCBpZGVudGlmaWVyIGRvZXMgbm90IHJlcHJlc2VudCBhIG1lbWJlci4YTm9Sb290AAEERFJpbmcgaGFzIG5vIHJvb3QuMEludmFsaWRQcm9vZgACBFRUaGUgcHJvb2YgaXMgaW52YWxpZC4oSW5jb21wbGV0ZQADBAUBVGhlIHJvb3QgY2Fubm90IGJlIGZpbmFsaXplZCBhcyB0aGVyZSBhcmUgc3RpbGwgdW5wdXNoZWQgbWVtYmVycy44VG9vTWFueU1lbWJlcnMABASIVG9vIG1hbnkgbWVtYmVycyBoYXZlIGJlZW4gcHVzaGVkLjxLZXlBbHJlYWR5SW5Vc2UABQSUS2V5IGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgbWVtYmVyLixLZXlOb3RGb3VuZAAGBKBUaGUgb2xkIGtleSB3YXMgbm90IGZvdW5kIHdoZW4gZXhwZWN0ZWQuMENvdWxkTm90UHVzaAAHBJBDb3VsZCBub3QgcHVzaCBtZW1iZXIgaW50byB0aGUgcmluZy4sSW52YWxpZFJpbmcACASsUmluZyBjYW5ub3QgYmUgbWVyZ2VkIGlmIGl0J3MgdGhlIHRvcCByaW5nLkhTdXNwZW5zaW9uc1BlbmRpbmcACQTkUmluZyBjYW5ub3QgYmUgYnVpbHQgd2hpbGUgdGhlcmUgYXJlIHN1c3BlbnNpb25zIHBlbmRpbmcuXFJpbmdBYm92ZU1lcmdlVGhyZXNob2xkAAoE1FJpbmcgY2Fubm90IGJlIG1lcmdlZCBpZiBpdCdzIG5vdCBiZWxvdyAxLzIgY2FwYWNpdHkuSEludmFsaWRTdXNwZW5zaW9ucwALBKBTdXNwZW5zaW9uIGluZGljZXMgcHJvdmlkZWQgYXJlIGludmFsaWQuQE5vUmVtb3ZhbFNlc3Npb24ADAQtAUEgbXV0YXRpbmcgYWN0aW9uIHdhcyBxdWV1ZWQgd2hlbiB0aGVyZSB3YXMgbm8gcmVtb3ZhbCBzZXNzaW9uIGluIHByb2dyZXNzLmxDb3VsZE5vdFN0YXJ0UmVtb3ZhbFNlc3Npb24ADQScQSByZW1vdmFsIHNlc3Npb24gY291bGQgbm90IGJlIHN0YXJ0ZWQuYFJlbW92YWxTZXNzaW9uSW5Qcm9ncmVzcwAOBOhDYW5ub3QgbWVyZ2UgcmluZ3Mgd2hpbGUgYSByZW1vdmFsIHNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MuTEtleUFscmVhZHlTdXNwZW5kZWQADwhVAUludmFsaWQgc3VzcGVuc2lvbiBvZiBhIGtleSBiZWxvbmdpbmcgdG8gYSBtZW1iZXIgd2hvc2UgaW5kZXggaW4gdGhlIHJpbmcgaGFzIGFscmVhZHm4YmVlbiBpbmNsdWRlZCBpbiB0aGUgcGVuZGluZyBzdXNwZW5zaW9ucyBsaXN0LlRJbnZhbGlkT25ib2FyZGluZ1NpemUAEAToVGhlIG9uYm9hcmRpbmcgc2l6ZSBtdXN0IG5vdCBleGNlZWQgdGhlIG1heGltdW0gcmluZyBzaXplLkBJbnZhbGlkTWVtYmVyS2V5ABEErFRoZSBtZW1iZXIga2V5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIGNyeXB0by5IQ29sbGVjdGlvbk5vdEZvdW5kABIEeFRoZSBjb2xsZWN0aW9uIGRvZXMgbm90IGV4aXN0LlxDb2xsZWN0aW9uQWxyZWFkeUV4aXN0cwATBHhUaGUgY29sbGVjdGlvbiBhbHJlYWR5IGV4aXN0cy5IVG9vTWFueUNvbGxlY3Rpb25zABQEkFRvbyBtYW55IGNvbGxlY3Rpb25zIGZvciB0aGlzIG93bmVyLmhJbnZhbGlkUmluZ1NpemVGb3JGbGV4aWJsZQAVBBEBRmxleGlibGUgY29sbGVjdGlvbnMgbXVzdCB1c2UgdGhlIE1heEZsZXhpYmxlUmluZ0V4cG9uZW50IHJpbmcgc2l6ZS5MSW52YWxpZFJpbmdFeHBvbmVudAAWBIxUaGUgcmluZyBleHBvbmVudCBpcyBub3Qgc3VwcG9ydGVkLkxQcmVtYXR1cmVPbmJvYXJkaW5nABcEtEluc3VmZmljaWVudCBtZW1iZXJzIGluIHRoZSBxdWV1ZSB0byBvbmJvYXJkLmxDb2xsZWN0aW9uTWFya2VkRm9yRGVsZXRpb24AGAT0VGhlIGNvbGxlY3Rpb24gaXMgbWFya2VkIGZvciBkZWxldGlvbiBhbmQgY2Fubm90IGJlIG1vZGlmaWVkLkhOb3RDb2xsZWN0aW9uT3duZXIAGQS4VGhlIGNhbGxlciBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSBjb2xsZWN0aW9uLjROb3RPbmJvYXJkaW5nABoEqFRoZSBtZW1iZXIgaXMgbm90IGluIHRoZSBvbmJvYXJkaW5nIHF1ZXVlLjhOb3RoaW5nVG9CdWlsZAAbBHxUaGVyZSBpcyBubyByaW5nIHJvb3QgdG8gYnVpbGQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LtkLDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQgTG9ja0luZm8AAAgBGHJlYXNvbt0LAShMb2NrUmVhc29uAAEUdW50aWwoAQx1NjQAAN0LDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoTG9ja1JlYXNvbgABBDhGYWlsZWREaXNwYXRjaAQBHHJldHJpZXMMAQh1OAAAAADhCwAABAx1AzgIAOULDFBpbmRpdl9wYWxsZXRfY29pbmFnZRhwYWxsZXQoQWxpYXNTdGF0ZQABCBhMb2NrZWQEANkLASBMb2NrSW5mbwAAACBVbmxvYWRlZAABAADpCwAABAh1AzgA7QsMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldEBBcmNoaXZlZFJlY3ljbGVyAAAIAShjb21taXRtZW50PAEQSDI1NgABJHJlbWFpbmluZzgBDHUzMgAA8QsMUGluZGl2X3BhbGxldF9jb2luYWdlGHBhbGxldBRFcnJvcgQEVAABlFBNZW1iZXJLZXlBbHJlYWR5VXNlZAAAAEBJbnZhbGlkTWVtYmVyS2V5AAEANEludGVybmFsRXJyb3IAAgBcUmVjeWNsZXJBbHJlYWR5VW5sb2FkZWQAAwBQSW52YWxpZENvbnNvbGlkYXRpb24ABABMQ29uc29saWRhdGlvblRvb0JpZwAFAEhEZW5vbWluYXRpb25Ub29CaWcABgBQRGVub21pbmF0aW9uVG9vU21hbGwABwBIQ29pbkFtb3VudEJlbG93RmVlAAgAWERlbm9taW5hdGlvbk91dE9mQm91bmQACQBsTG9zc3lEZW5vbWluYXRpb25Db252ZXJzaW9uAAoIKQFUaGUgZGVub21pbmF0aW9uIGNhbm5vdCBiZSBsb3NzbGVzc2x5IGNvbnZlcnRlZCB0byBhbiBhc3NldCBhbW91bnQgYmVjYXVzZfRgVW5kZXJseWluZ0Fzc2V0VW5pdGAgaXMgbm90IGV2ZW5seSBkaXZpc2libGUgYnkgYDJefHZhbHVlfGAuREludmFsaWRBbGlhc1Byb29mAAsATE5vVW5sb2FkaW5nUmVjeWNsZXIADABUUHJvb2ZBbmRBbGlhc01pc21hdGNoAA0AOE5vdGhpbmdUb0J1aWxkAA4AMFRvb01hbnlSaW5ncwAPAFRBZGRyZXNzQWxyZWFkeUhhc0NvaW4AEABcSW52YWxpZFByb29mT2ZPd25lcnNoaXAAEQAsRW1wdHlJbnB1dHMAEgBAUmVjeWNsZXJNaXNtYXRjaAATBAkBVGhlIGZlZSByZWN5Y2xlciBpbiB0aGUgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSBjYWxsJ3MgcmVjeWNsZXIuYEluc3VmZmljaWVudFVubG9hZEZvckZlZQAUBLxUaGUgdG90YWwgdW5sb2FkZWQgYW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgZmVlLkRBbGlhc05vdFByZW1hcmtlZAAVBDkBVGhlIGZpcnN0IGFsaWFzIHdhcyBub3QgcHJlLW1hcmtlZCBieSBleHRlbnNpb24gKHJlcXVpcmVkIGZvciBGcm9tT3V0cHV0IGZlZSkuXEludmFsaWRSZWN5Y2xlclJldmlzaW9uABYESQFUaGUgcmVjeWNsZXIgcmV2aXNpb24gZG9lcyBub3QgbWF0Y2ggKHJlY3ljbGVyIG1heSBub3QgZXhpc3Qgb3IgaGFzIGJlZW4gcmVidWlsdCkuMEludmFsaWRTcGxpdAAXAGhDYW5ub3RDb252ZXJ0TmF0aXZlVG9Bc3NldAAYAFhBbGlhc1RlbXBvcmFyaWx5TG9ja2VkABkAaE1heEZlZU5vdEFsbG93ZWRGb3JQcmVwYWlkABoEvFdoZW4gdXNpbmcgUHJlcGFpZCBmZWUgbW9kZSwgbWF4X2ZlZSBtdXN0IGJlIDAuSE1heEZlZUV4Y2VlZHNJbnB1dAAbBKhUaGUgbWF4X2ZlZSBleGNlZWRzIHRoZSB0b3RhbCBpbnB1dCB2YWx1ZS40SW52YWxpZE1heEZlZQAcBNhUaGUgbWF4IGZlZSBhcmd1bWVudCBkb2Vzbid0IHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cy54Q2Fubm90Q3JlYXRlUmVjeWNsZXJDb2xsZWN0aW9uAB0EKQFUaGUgcmVjeWNsZXIgY29sbGVjdGlvbiBkb2VzIG5vdCBleGlzdCBhbmQgY291bGQgbm90IGJlIGNyZWF0ZWQgb24tZGVtYW5kLjRBc3NldElkTm90U2V0AB4EtFRoZSB1bmRlcmx5aW5nIGFzc2V0IGlkIGhhcyBub3QgYmVlbiBzZXQgeWV0LkRBc3NldElkQWxyZWFkeVNldAAfBA0BVGhlIHVuZGVybHlpbmcgYXNzZXQgaWQgaGFzIGFscmVhZHkgYmVlbiBzZXQgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkLjBVbmtub3duQXNzZXQAIAQlAVRoZSBwcm9wb3NlZCB1bmRlcmx5aW5nIGFzc2V0IGlkIGRvZXMgbm90IGV4aXN0IGluIFtgQ29uZmlnOjpGdW5naWJsZXNgXS5gQXJjaGl2ZWRSZWN5Y2xlck5vdEZvdW5kACEEHQFObyBhcmNoaXZlZCByZWN5Y2xlciBleGlzdHMgZm9yIHRoZSBnaXZlbiBgKGRlbm9taW5hdGlvbiwgcmluZyBpbmRleClgLlBJbnZhbGlkQXJjaGl2ZWRSb290cwAiCDUBVGhlIHN1cHBsaWVkIGByZWN5Y2xlcl9yb290YC9gdW5sb2FkZWRfcm9vdGAgZG8gbm90IG1hdGNoIHRoZSBzdG9yZWQgYXJjaGl2YWwsY29tbWl0bWVudC5MSW52YWxpZFJpbmdFeHBvbmVudAAjBB0BVGhlIHJlY3ljbGVyIHJpbmcgZXhwb25lbnQgY291bGQgbm90IGJlIGNvbnZlcnRlZCB0byB0aGUgY3J5cHRvIGNvbmZpZy54QWxpYXNXYXNVbmxvYWRlZE9ySW52YWxpZFByb29mACQEPQFUaGUgYWxpYXMgd2FzIGFscmVhZHkgdW5sb2FkZWQsIG9yIHRoZSBzdXBwbGllZCBub24taW5jbHVzaW9uIHByb29mIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvULAAAECAkDCQMA+QsEGE9wdGlvbgQEVAG5CwEIEE5vbmUAAAAQU29tZQQAuQsAAAEAAP0LBBhPcHRpb24EBFQBcQMBCBBOb25lAAAAEFNvbWUEAHEDAAABAAABDAQYT3B0aW9uBARUAXUDAQgQTm9uZQAAABBTb21lBAB1AwAAAQAABQwEGE9wdGlvbgQEVAEFBQEIEE5vbmUAAAAQU29tZQQABQUAAAEAAAkMDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlczhTdWJzY3JpYmVySW5mbwQEVAAADAEsY29sbGVjdGlvbnMZBQEZAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlcj4AAUhsYXN0X2luaXRfc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABMHBhbGxldF9pbmRleAwBCHU4AAANDAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIUdHlwZXMsUGFnaW5nU3RhdGUELEJsb2NrTnVtYmVyATgADAEod3JpdGVfcGFnZS0DAQx1MTYAASRzZW5kX3BhZ2UtAwEMdTE2AAFEbGFzdF91cGRhdGVfYmxvY2s4ASxCbG9ja051bWJlcgAAEQwAAAQMLQMIOAAVDAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIUdHlwZXNAUGVuZGluZ0luaXRTdGF0ZQQEVAAAGAEsY29sbGVjdGlvbnMZBQEZAUJvdW5kZWRWZWM8KElkZW50aWZpZXIsIFJpbmdFeHBvbmVudCksIFQ6Ok1heENvbGxlY3Rpb25zUGVyU3Vic2NyaWJlcj4AAWBjdXJyZW50X2NvbGxlY3Rpb25faW5kZXg4AQx1MzIAAUBhZnRlcl9yaW5nX2luZGV4CQMBRE9wdGlvbjxSaW5nSW5kZXg+AAEgc2VxdWVuY2UoAThTZXF1ZW5jZU51bWJlcgABLHNvdXJjZV90aW1lKAEMdTY0AAEwcGFsbGV0X2luZGV4DAEIdTgAABkMDHRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllchR0eXBlc1hCYXRjaERpc3RyaWJ1dGlvblN0YXRlBCxCbG9ja051bWJlcgE4ABABIHNlcXVlbmNlKAE4U2VxdWVuY2VOdW1iZXIAASxzb3VyY2VfdGltZSgBDHU2NAABJHNlYWxlZF9hdDgBLEJsb2NrTnVtYmVyAAFUcmVtYWluaW5nX3N1YnNjcmliZXJzOAEMdTMyAAAdDAAABAicCAAhDAx0aW5kaXZfcGFsbGV0X21lbWJlcnNfbm90aWZpZXIYcGFsbGV0FEVycm9yBARUAAE0SFN1YnNjcmliZXJOb3RGb3VuZAAABFRTdWJzY3JpYmVyIG5vdCBmb3VuZC5EQWxyZWFkeVN1YnNjcmliZWQAAQRoU3Vic2NyaWJlciBhbHJlYWR5IGV4aXN0cy5IVG9vTWFueVN1YnNjcmliZXJzAAIEcE1heGltdW0gc3Vic2NyaWJlcnMgcmVhY2hlZC5YSW52YWxpZENvbGxlY3Rpb25zTGlzdAADBD0BQ29sbGVjdGlvbnMgbGlzdCBtdXN0IGJlIHNvcnRlZCBpbiBzdHJpY3RseSBhc2NlbmRpbmcgb3JkZXIgd2l0aCBubyBkdXBsaWNhdGVzLjhUb29NYW55VXBkYXRlcwAEBNBUb28gbWFueSByaW5nIHJvb3QgdXBkYXRlcyB0byBmaXQgaW4gYSBzaW5nbGUgYmF0Y2guNFhjbVNlbmRGYWlsZWQABQRAWENNIHNlbmQgZmFpbGVkLmROb3RTdWJzY3JpYmVkVG9Db2xsZWN0aW9uAAYE5FN1YnNjcmliZXIgaXMgbm90IHN1YnNjcmliZWQgdG8gdGhlIHJlcXVlc3RlZCBjb2xsZWN0aW9uLkBJbnZhbGlkUmluZ0luZGV4AAcEgFJpbmcgcm9vdCBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuWEV4Y2VlZHNDaGFubmVsQ2FwYWNpdHkACAQBAVJlcXVlc3RlZCB1cGRhdGVzIGV4Y2VlZCB0aGUgc3Vic2NyaWJlcidzIEhSTVAgY2hhbm5lbCBjYXBhY2l0eS40Tm9CYXRjaEFjdGl2ZQAJBFxObyBhY3RpdmUgYmF0Y2ggZXhpc3RzLjROb1BlbmRpbmdJbml0AAoEuE5vIHBlbmRpbmcgaW5pdGlhbGl6YXRpb24gZm9yIHRoaXMgc3Vic2NyaWJlci5QUmVwbGF5Q29vbGRvd25BY3RpdmUACwQNAVJlcGxheSBjb29sZG93biBoYXMgbm90IGVsYXBzZWQgZm9yIHRoaXMgc3Vic2NyaWJlciBhbmQgY29sbGVjdGlvbi5ARW1wdHlSaW5nSW5kaWNlcwAMBORSZXBsYXkgcmVxdWVzdGVkIHdpdGggYW4gZW1wdHkgbGlzdCBvZiByaW5nIHJvb3QgaW5kaWNlcy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQwMUGluZGl2X3BhbGxldF9haXJkcm9wFHR5cGVzLEFjdGl2ZUV2ZW50DCRBY2NvdW50SWQBBBxBc3NldElkAeAwQXNzZXRCYWxhbmNlAcQAEAEIaWQIARxFdmVudElkAAEQaW5mbzEFAYBFdmVudEluZm88QXNzZXRJZCwgQXNzZXRCYWxhbmNlPgABGHN0YXR1cykMARhTdGF0dXMAARhzb3VyY2XZBgFET3B0aW9uPEFjY291bnRJZD4AACkMDFBpbmRpdl9wYWxsZXRfYWlyZHJvcBR0eXBlcxhTdGF0dXMAASAkU2NoZWR1bGVkAAAALFJlZ2lzdGVyaW5nBAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAEAPEF3YWl0aW5nRW50cm9weQwBSHRvdGFsX3BhcnRpY2lwYW50czgBDHUzMgABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAEsbGFzdF9tb21lbnQ4AQx1MzIAAgAsRHJhd1dpbm5lcnMQAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABNHdpbm5lcnNfYWRkZWQ4AQx1MzIAATxmcm9tX3dpbm5lcl9rZXkpBwE0QmlnRW5kaWFuVTI1NgADACBDbGFpbWluZwwBSHRvdGFsX3BhcnRpY2lwYW50czgBDHUzMgABRGVmZmVjdGl2ZV93aW5uZXJzOAEMdTMyAAEcY2xhaW1lZDgBDHUzMgAEAFRDbGVhcmluZ1JlZ2lzdHJhdGlvbnMQAUh0b3RhbF9wYXJ0aWNpcGFudHM4AQx1MzIAAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABHGNsYWltZWQ4AQx1MzIAAVRjbGVhbmVkX3JlZ2lzdHJhdGlvbnM4AQx1MzIABQA8Q2xlYXJpbmdXaW5uZXJzEAFIdG90YWxfcGFydGljaXBhbnRzOAEMdTMyAAFEZWZmZWN0aXZlX3dpbm5lcnM4AQx1MzIAARxjbGFpbWVkOAEMdTMyAAE8Y2xlYW5lZF93aW5uZXJzOAEMdTMyAAYAKEZpbmFsaXppbmcIAURlZmZlY3RpdmVfd2lubmVyczgBDHUzMgABHGNsYWltZWQ4AQx1MzIABwAALQwAAAQIMQwIADEMDDRpbmRpdl9zdXBwb3J0FHV0aWxzMEJpZ0VuZGlhblU2NAADCAAAAAwEGQFBIHU2NCBlbmNvZGVkIGluIGJpZy1lbmRpYW4gZm9ybWF0IGZvciBjb3JyZWN0IGxleGljb2dyYXBoaWMgb3JkZXJpbmcuNQwAAAQICCkHADkMAAAECAgtBwA9DAxQaW5kaXZfcGFsbGV0X2FpcmRyb3AYcGFsbGV0FEVycm9yBARUAAFUUFByaXplQmVsb3dNaW5CYWxhbmNlAAAATE5vV2lubmVyc0NvbmZpZ3VyZWQAAQA4VG9vTWFueVdpbm5lcnMAAgBESW52YWxpZEV2ZW50VGltZXMAAwBARHVwbGljYXRlRXZlbnRJZAAEAEBOb1NjaGVkdWxlZEV2ZW50AAUAMFVua25vd25FdmVudAAGACxXcm9uZ1N0YXR1cwAHBOBPcGVyYXRpb24gcmVxdWlyZXMgYSBzcGVjaWZpYyBzdGF0dXMgdGhlIGV2ZW50IGlzbid0IGluLmROb3RBY2NlcHRpbmdSZWdpc3RyYXRpb25zAAgALE5vdENsYWltaW5nAAkAUENsYWltaW5nV2luZG93Q2xvc2VkAAoEtENsYWltIGF0dGVtcHRlZCBhZnRlciB0aGUgZXZlbnQncyBgZW5kX3RpbWVgLkBFbnRyb3B5U2xvdFRha2VuAAsAPEludmFsaWRWcmZQcm9vZgAMAFRVbnN1cHBvcnRlZEFjY291bnRLZXkADQQJAVN1cHBsaWVkIGFjY291bnQgaWQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbnkgc3IyNTUxOSBwdWJsaWMga2V5LlhJbnZhbGlkTWVtYmVyc2hpcFByb29mAA4AME5vU3VjaFdpbm5lcgAPAExQYXJ0aWNpcGFudE92ZXJmbG93ABAAXFByaXplQWxsb2NhdGlvbk92ZXJmbG93ABEAPEFzc2V0Tm90RW5hYmxlZAASBOBUaGUgcHJpemUgYXNzZXQgaGFzIG5vdCBiZWVuIGVuYWJsZWQgdmlhIGBlbmFibGVfYXNzZXRgLkxBc3NldEFscmVhZHlFbmFibGVkABME/GBlbmFibGVfYXNzZXRgIHdhcyBjYWxsZWQgZm9yIGFuIGFzc2V0IHRoYXQgaXMgYWxyZWFkeSBlbmFibGVkLjxFbnRyb3B5Tm90UmVhZHkAFAQJAU5vIHJhbmRvbW5lc3MgcHJvZHVjZWQgYWZ0ZXIgcmVnaXN0cmF0aW9uIGNsb3NlZCBpcyBhdmFpbGFibGUgeWV0LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5BDAxMaW5kaXZfcGFsbGV0X2hvbm91chR0eXBlcyRQb2ludEluZm8AABABHHN1YmplY3QIASRTdWJqZWN0SWQAATRzdWJqZWN0X2FsaWFzCAEwU3ViamVjdEFsaWFzAAEkZGlyZWN0aW9uPQUBJERpcmVjdGlvbgABMGxhc3RfdXNlZF9hdCgBHFNlY29uZHMAAEUMDExpbmRpdl9wYWxsZXRfaG9ub3VyGHBhbGxldBRFcnJvcgQEVAABDChBcml0aG1ldGljAAAECQFBcml0aG1ldGljIGVycm9yIGxpa2Ugb3Zlci91bmRlcmZsb3csIGRpdmlzaW9uIGJ5IHplcm8gb3Igc2ltaWxhci5MU3ViamVjdEFscmVhZHlWb3RlZAABBPxUaGVyZSBpcyBhbHJlYWR5IGEgdm90ZSBieSB0aGUgc2FtZSB2b3RlciBmb3IgdGhlIHNhbWUgc3ViamVjdC4wSW52YWxpZFByb29mAAIEsFRoZSBwcm92aWRlZCByaW5nIHByb29mIGZhaWxlZCB2ZXJpZmljYXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkkMDIxpbmRpdl9wYWxsZXRfc3RvcmFnZV9pbml0aWFsaXphdGlvbhhwYWxsZXQsT25Qb2xsU3RhdGUAASQgSW5hY3RpdmUAAAA0Q3JlYXRpbmdBc3NldAABAEBYY21GdW5kc1RyYW5zZmVyAAIAOFZlcmlmeWluZ0Z1bmRzAAMALEZ1bmRpbmdQb3RzAAQAmFNldHRpbmdQZW9wbGVMaXRlQXR0ZXN0YXRpb25BbGxvd2FuY2VzAAUAYFNjaGVkdWxpbmdNb2JSdWxlUGF5b3V0cwAGAFhTY2hlZHVsaW5nU2NvcmVQYXlvdXRzAAcAEERvbmUACAAATQwMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBRFcnJvcgQEVAABBBxPbmdvaW5nAAAE6FRoZSBvcGVyYXRpb24gY2Fubm90IGNvbXBsZXRlIHNpbmNlIHNvbWUgTUJNcyBhcmUgb25nb2luZy4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuUQwIRHBhbGxldF9taWdyYXRpb25zME1ibUlzT25nb2luZwABDAxZZXMAAAAITm8AAQAUU3R1Y2sAAgAAVQwEGE9wdGlvbgQEVAFZDAEIEE5vbmUAAAAQU29tZQQAWQwAAAEAAFkMCERwYWxsZXRfbWlncmF0aW9ucyxNYm1Qcm9ncmVzcwAAEAFEY3VycmVudF9taWdyYXRpb244AQx1MzIAAUB0b3RhbF9taWdyYXRpb25zOAEMdTMyAAFcY3VycmVudF9taWdyYXRpb25fc3RlcHM4AQx1MzIAAWxjdXJyZW50X21pZ3JhdGlvbl9tYXhfc3RlcHMJAwEsT3B0aW9uPHUzMj4AAF0MCERwYWxsZXRfbWlncmF0aW9ucyRNYm1TdGF0dXMAAAwBHG9uZ29pbmdRDAEwTWJtSXNPbmdvaW5nAAEgcHJvZ3Jlc3NVDAFMT3B0aW9uPE1ibVByb2dyZXNzPgABIHByZWZpeGVzNAEwVmVjPFZlYzx1OD4+AABhDAhIc3BfY29uc2Vuc3VzX3Nsb3RzMFNsb3REdXJhdGlvbgAABAAoAQx1NjQAAGUMEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2skTGF6eUJsb2NrCBhIZWFkZXIBXCRFeHRyaW5zaWMBlQcACAEYaGVhZGVyXAEYSGVhZGVyAAEoZXh0cmluc2ljc2kMAVBWZWM8T3BhcXVlRXh0cmluc2ljPgAAaQwAAAJtDABtDAgoc3BfcnVudGltZTxPcGFxdWVFeHRyaW5zaWMAAAQAGAEcVmVjPHU4PgAAcQwIKHNwX3J1bnRpbWVYRXh0cmluc2ljSW5jbHVzaW9uTW9kZQABCDRBbGxFeHRyaW5zaWNzAAAANE9ubHlJbmhlcmVudHMAAQAAdQwIHHNwX2NvcmU4T3BhcXVlTWV0YWRhdGEAAAQAGAEcVmVjPHU4PgAAeQwEGE9wdGlvbgQEVAF1DAEIEE5vbmUAAAAQU29tZQQAdQwAAAEAAH0MDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zOFZpZXdGdW5jdGlvbklkAAAIARhwcmVmaXjBAQEgW3U4OyAxNl0AARhzdWZmaXjBAQEgW3U4OyAxNl0AAIEMBBhSZXN1bHQIBFQBGARFAYUMAQgIT2sEABgAAAAADEVycgQAhQwAAAEAAIUMDDRmcmFtZV9zdXBwb3J0OHZpZXdfZnVuY3Rpb25zZFZpZXdGdW5jdGlvbkRpc3BhdGNoRXJyb3IAAQw4Tm90SW1wbGVtZW50ZWQAAAAgTm90Rm91bmQEAH0MAThWaWV3RnVuY3Rpb25JZAABABRDb2RlYwACAACJDAQYUmVzdWx0CARUAc0GBEUBjQwBCAhPawQAzQYAAAAADEVycgQAjQwAAAEAAI0MDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBACRDAFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EAJUMAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAkQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAMAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAlQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQADAEIdTgAAgAAmQwIMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGGdDAGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAnQwEIEJUcmVlTWFwCARLAb0BBFYBGAAEAKEMAAAAoQwAAAKlDAClDAAABAi9ARgAqQwIMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2thecgBEGJvb2wAASxmYXRhbF9lcnJvcsgBEGJvb2wAARhlcnJvcnOZDAEwSW5oZXJlbnREYXRhAACtDAwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAALEMBBhSZXN1bHQIBFQBtQwERQGNDAEICE9rBAC1DAAAAAAMRXJyBACNDAAAAQAAtQwMKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkoAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXM0AUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5KAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGXIARBib29sAAC5DAwoc3Bfc2Vzc2lvbixydW50aW1lX2FwaWhPcGFxdWVHZW5lcmF0ZWRTZXNzaW9uS2V5cwAACAEQa2V5cxgBHFZlYzx1OD4AARRwcm9vZhgBHFZlYzx1OD4AAL0MBBhPcHRpb24EBFQBwQwBCBBOb25lAAAAEFNvbWUEAMEMAAABAADBDAAAAsUMAMUMAAAECBj1CADJDAxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXNMUnVudGltZURpc3BhdGNoSW5mbwgcQmFsYW5jZQHEGFdlaWdodAHVAQAMARh3ZWlnaHTVAQEYV2VpZ2h0AAEUY2xhc3MtBgE0RGlzcGF0Y2hDbGFzcwABLHBhcnRpYWxfZmVlxAEcQmFsYW5jZQAAzQwMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzKEZlZURldGFpbHMEHEJhbGFuY2UBxAAIATRpbmNsdXNpb25fZmVl0QwBdE9wdGlvbjxJbmNsdXNpb25GZWU8QmFsYW5jZT4+AAEMdGlwxAEcQmFsYW5jZQAA0QwEGE9wdGlvbgQEVAHVDAEIEE5vbmUAAAAQU29tZQQA1QwAAAEAANUMDGhwYWxsZXRfdHJhbnNhY3Rpb25fcGF5bWVudBR0eXBlczBJbmNsdXNpb25GZWUEHEJhbGFuY2UBxAAMASBiYXNlX2ZlZcQBHEJhbGFuY2UAARxsZW5fZmVlxAEcQmFsYW5jZQABTGFkanVzdGVkX3dlaWdodF9mZWXEARxCYWxhbmNlAADZDAQYUmVzdWx0CARUAd0MBEUB4QwBCAhPawQA3QwAAAAADEVycgQA4QwAAAEAAN0MAAACEQMA4QwMQHhjbV9ydW50aW1lX2FwaXMQZmVlcxRFcnJvcgABGDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQBMV2VpZ2h0Tm90Q29tcHV0YWJsZQACAExVbmhhbmRsZWRYY21WZXJzaW9uAAMANEFzc2V0Tm90Rm91bmQABAAoVW5yb3V0YWJsZQAFAADlDAQYUmVzdWx0CARUAdUBBEUB4QwBCAhPawQA1QEAAAAADEVycgQA4QwAAAEAAOkMBBhSZXN1bHQIBFQBxARFAeEMAQgIT2sEAMQAAAAADEVycgQA4QwAAAEAAO0MBBhSZXN1bHQIBFQB2QIERQHhDAEICE9rBADZAgAAAAAMRXJyBADhDAAAAQAA8QwEGFJlc3VsdAgEVAH1DARFARkNAQgIT2sEAPUMAAAAAAxFcnIEABkNAAABAAD1DAxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAEhBgAQAUBleGVjdXRpb25fcmVzdWx0+QwBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHMFDQEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbQkNAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtcw0NAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA+QwEGFJlc3VsdAgEVAH9DARFAQENAQgIT2sEAP0MAAAAAAxFcnIEAAENAAABAAD9DAw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0pQIBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWUxBgEQUGF5cwAAAQ0IKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwH9DAAIASRwb3N0X2luZm/9DAEQSW5mbwABFGVycm9yNQYBNERpc3BhdGNoRXJyb3IAAAUNAAACIQYACQ0EGE9wdGlvbgQEVAGVAQEIEE5vbmUAAAAQU29tZQQAlQEAAAEAAA0NAAACEQ0AEQ0AAAQISQEVDQAVDQAAApUBABkNDEB4Y21fcnVudGltZV9hcGlzHGRyeV9ydW4URXJyb3IAAQg0VW5pbXBsZW1lbnRlZAAAAGRWZXJzaW9uZWRDb252ZXJzaW9uRmFpbGVkAAEAAB0NBBhSZXN1bHQIBFQBIQ0ERQEZDQEICE9rBAAhDQAAAAAMRXJyBAAZDQAAAQAAIQ0MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bkBYY21EcnlSdW5FZmZlY3RzBBRFdmVudAEhBgAMAUBleGVjdXRpb25fcmVzdWx0sQYBHE91dGNvbWUAAThlbWl0dGVkX2V2ZW50cwUNAShWZWM8RXZlbnQ+AAE4Zm9yd2FyZGVkX3hjbXMNDQG8VmVjPChWZXJzaW9uZWRMb2NhdGlvbiwgVmVjPFZlcnNpb25lZFhjbTwoKT4+KT4AACUNBBhSZXN1bHQIBFQBBARFASkNAQgIT2sEAAQAAAAADEVycgQAKQ0AAAEAACkNDEB4Y21fcnVudGltZV9hcGlzLGNvbnZlcnNpb25zFEVycm9yAAEILFVuc3VwcG9ydGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAALQ0AAAIxDQAxDQAABAg4AQcANQ0EGFJlc3VsdAgEVAE5DQRFAUkNAQgIT2sEADkNAAAAAAxFcnIEAEkNAAABAAA5DQAAAj0NAD0NDGBpbmRpdl9wYWxsZXRfbmZ0X2NyZWRpdHMUdHlwZXNMTmZ0Q2xhaW1DcmVkaXRQcm9vZgAAGAEQcm9vdAUHATxDcmVkaXRQcm9vZk5vZGUAARhjcmVkaXQIAThOZnRDbGFpbUNyZWRpdAABEGxlYWZBDQFITmZ0Q2xhaW1DcmVkaXRMZWFmAAEobGVhZl9pbmRleDgBDHUzMgABKGxlYWZfY291bnQ4AQx1MzIAARRwcm9vZkUNAVBWZWM8Q3JlZGl0UHJvb2ZOb2RlPgAAQQ0MNGluZGl2X3N1cHBvcnQwY3JlZGl0X3RyZWVzSE5mdENsYWltQ3JlZGl0TGVhZgAABAAIASBbdTg7IDMyXQAARQ0AAAIFBwBJDQxgaW5kaXZfcGFsbGV0X25mdF9jcmVkaXRzFHR5cGVzYE5mdENsYWltQ3JlZGl0UHJvb2ZFcnJvcgABFERVbmtub3duQXdhcmRCbG9jawAAADBBd2FyZHNQcnVuZWQAAQBETGVhZkNvdW50TWlzbWF0Y2gEASBleHBlY3RlZDgBDHUzMgACAFBMZWFmSW5kZXhPdXRPZkJvdW5kcwADADBSb290TWlzbWF0Y2gABAAATQ0EGFJlc3VsdAgEVAE9DQRFAUkNAQgIT2sEAD0NAAAAAAxFcnIEAEkNAAABAABRDQhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmU0Q29sbGF0aW9uSW5mbwAAGAE8dXB3YXJkX21lc3NhZ2VzNAFIVmVjPFVwd2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlcxUIAWBWZWM8T3V0Ym91bmRIcm1wTWVzc2FnZT4AAUxuZXdfdmFsaWRhdGlvbl9jb2RlVQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VmFsaWRhdGlvbkNvZGU+AAFscHJvY2Vzc2VkX2Rvd253YXJkX21lc3NhZ2VzOAEMdTMyAAE4aHJtcF93YXRlcm1hcms4AWByZWxheV9jaGFpbjo6QmxvY2tOdW1iZXIAASRoZWFkX2RhdGFMASBIZWFkRGF0YQAAVQ0EGE9wdGlvbgQEVAFZDQEIEE5vbmUAAAAQU29tZQQAWQ0AAAEAAFkNDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzOFZhbGlkYXRpb25Db2RlAAAEABgBHFZlYzx1OD4AAF0NBBhSZXN1bHQIBFQBEARFAVkHAQgIT2sEABAAAAAADEVycgQAWQcAAAEAAGENBBhPcHRpb24EBFQBWQcBCBBOb25lAAAAEFNvbWUEAFkHAAABAABlDQAAAlkHAGkNCGRuZXh0X3Blb3BsZV9wYXNlb19ydW50aW1lMFJ1bnRpbWVFcnJvcgABgBhTeXN0ZW0EAIkHAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAAAPFBhcmFjaGFpblN5c3RlbQQAJQgBvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIEJhbGFuY2VzBABpCAF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAKAERPcmlnaW5SZXN0cmljdGlvbgQAfQgBvGluZGl2X3BhbGxldF9vcmlnaW5fcmVzdHJpY3Rpb246OkVycm9yPFJ1bnRpbWU+AA0AGEFzc2V0cwQAqQgBdHBhbGxldF9hc3NldHM6OkVycm9yPFJ1bnRpbWU+AA4AMEFzc2V0c0hvbGRlcgQAuQgBkHBhbGxldF9hc3NldHNfaG9sZGVyOjpFcnJvcjxSdW50aW1lPgAPACRBc3NldFJhdGUEAL0IAYRwYWxsZXRfYXNzZXRfcmF0ZTo6RXJyb3I8UnVudGltZT4AEABEQ29sbGF0b3JTZWxlY3Rpb24EANUIAaRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uOjpFcnJvcjxSdW50aW1lPgAVABxTZXNzaW9uBAD5CAF4cGFsbGV0X3Nlc3Npb246OkVycm9yPFJ1bnRpbWU+ABYAJFhjbXBRdWV1ZQQANQkBpGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU6OkVycm9yPFJ1bnRpbWU+AB4ALFBvbGthZG90WGNtBACdCQFocGFsbGV0X3hjbTo6RXJyb3I8UnVudGltZT4AHwAwTWVzc2FnZVF1ZXVlBAC9CQGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkVycm9yPFJ1bnRpbWU+ACIAHFV0aWxpdHkEAMEJAXhwYWxsZXRfdXRpbGl0eTo6RXJyb3I8UnVudGltZT4AKAAgTXVsdGlzaWcEANEJAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+ACkAEFN1ZG8EANUJAWxwYWxsZXRfc3Vkbzo6RXJyb3I8UnVudGltZT4AKgAUUHJveHkEAPkJAXBwYWxsZXRfcHJveHk6OkVycm9yPFJ1bnRpbWU+ACwAGFBlb3BsZQQAAQoBjGluZGl2X3BhbGxldF9wZW9wbGU6OkVycm9yPFJ1bnRpbWU+ADMAHE1vYlJ1bGUEAEUKAZRpbmRpdl9wYWxsZXRfbW9iX3J1bGU6OkVycm9yPFJ1bnRpbWU+ADQAKFByb29mT2ZJbmsEAIEKAaRpbmRpdl9wYWxsZXRfcHJvb2Zfb2ZfaW5rOjpFcnJvcjxSdW50aW1lPgA1ABBHYW1lBADVCgGEaW5kaXZfcGFsbGV0X2dhbWU6OkVycm9yPFJ1bnRpbWU+ADcAFFNjb3JlBAABCwGIaW5kaXZfcGFsbGV0X3Njb3JlOjpFcnJvcjxSdW50aW1lPgA4AChOZnRDcmVkaXRzBAApCwGgaW5kaXZfcGFsbGV0X25mdF9jcmVkaXRzOjpFcnJvcjxSdW50aW1lPgA5ACBEdW1teURpbQQAMQsBmGluZGl2X3BhbGxldF9kdW1teV9kaW06OkVycm9yPFJ1bnRpbWU+ADsAKFBlb3BsZUxpdGUEAD0LAaBpbmRpdl9wYWxsZXRfcGVvcGxlX2xpdGU6OkVycm9yPFJ1bnRpbWU+AD4AJFJlc291cmNlcwQAcQsBmGluZGl2X3BhbGxldF9yZXNvdXJjZXM6OkVycm9yPFJ1bnRpbWU+AD8ANENodW5rc01hbmFnZXIEAIkLAaxpbmRpdl9wYWxsZXRfY2h1bmtzX21hbmFnZXI6OkVycm9yPFJ1bnRpbWU+AEAAHE1lbWJlcnMEANULAZBpbmRpdl9wYWxsZXRfbWVtYmVyczo6RXJyb3I8UnVudGltZT4AQwAcQ29pbmFnZQQA8QsBkGluZGl2X3BhbGxldF9jb2luYWdlOjpFcnJvcjxSdW50aW1lPgBEADxNZW1iZXJzTm90aWZpZXIEACEMAbRpbmRpdl9wYWxsZXRfbWVtYmVyc19ub3RpZmllcjo6RXJyb3I8UnVudGltZT4ARQAcQWlyZHJvcAQAPQwBkGluZGl2X3BhbGxldF9haXJkcm9wOjpFcnJvcjxSdW50aW1lPgBGABhIb25vdXIEAEUMAYxpbmRpdl9wYWxsZXRfaG9ub3VyOjpFcnJvcjxSdW50aW1lPgBHAFBNdWx0aUJsb2NrTWlncmF0aW9ucwQATQwBhHBhbGxldF9taWdyYXRpb25zOjpFcnJvcjxSdW50aW1lPgBiAAC0GFN5c3RlbQEYU3lzdGVtUBxBY2NvdW50AQEEAgQJBkEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAA4BAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBAMgEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQAVBhgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay4AJEJsb2NrU2l6ZQAAOAQADLAgVG90YWwgc2l6ZSAoaW4gYnl0ZXMpIG9mIHRoZSBjdXJyZW50IGJsb2NrLgDIIFRyYWNrcyB0aGUgc2l6ZSBvZiB0aGUgaGVhZGVyIGFuZCBhbGwgZXh0cmluc2ljcy4AJEJsb2NrSGFzaAEBBAU4PIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASYIE1hcCBvZiBibG9jayBudW1iZXJzIHRvIGJsb2NrIGhhc2hlcy4ANEV4dHJpbnNpY0RhdGEBAQQFOBgEAAQ9ASBFeHRyaW5zaWNzIGRhdGEgZm9yIHRoZSBjdXJyZW50IGJsb2NrIChtYXBzIGFuIGV4dHJpbnNpYydzIGluZGV4IHRvIGl0cyBkYXRhKS4AGE51bWJlcgEAOBAAAAAABAkBIFRoZSBjdXJyZW50IGJsb2NrIG51bWJlciBiZWluZyBwcm9jZXNzZWQuIFNldCBieSBgZXhlY3V0ZV9ibG9ja2AuAChQYXJlbnRIYXNoAQA8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHAgSGFzaCBvZiB0aGUgcHJldmlvdXMgYmxvY2suABhEaWdlc3QBAGQEAATwIERpZ2VzdCBvZiB0aGUgY3VycmVudCBibG9jaywgYWxzbyBwYXJ0IG9mIHRoZSBibG9jayBoZWFkZXIuABhFdmVudHMBABkGBAAcoCBFdmVudHMgZGVwb3NpdGVkIGZvciB0aGUgY3VycmVudCBibG9jay4AHQEgTk9URTogVGhlIGl0ZW0gaXMgdW5ib3VuZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBuZXZlciBiZSByZWFkIG9uIGNoYWluLtAgSXQgY291bGQgb3RoZXJ3aXNlIGluZmxhdGUgdGhlIFBvViBzaXplIG9mIGEgYmxvY2suAC0BIEV2ZW50cyBoYXZlIGEgbGFyZ2UgaW4tbWVtb3J5IHNpemUuIEJveCB0aGUgZXZlbnRzIHRvIG5vdCBnbyBvdXQtb2YtbWVtb3J5/CBqdXN0IGluIGNhc2Ugc29tZW9uZSBzdGlsbCByZWFkcyB0aGVtIGZyb20gd2l0aGluIHRoZSBydW50aW1lLgAoRXZlbnRDb3VudAEAOBAAAAAABLggVGhlIG51bWJlciBvZiBldmVudHMgaW4gdGhlIGBFdmVudHM8VD5gIGxpc3QuACxFdmVudFRvcGljcwEBBAI8SQcEACglASBNYXBwaW5nIGJldHdlZW4gYSB0b3BpYyAocmVwcmVzZW50ZWQgYnkgVDo6SGFzaCkgYW5kIGEgdmVjdG9yIG9mIGluZGV4ZXOUIG9mIGV2ZW50cyBpbiB0aGUgYDxFdmVudHM8VD4+YCBsaXN0LgBRASBBbGwgdG9waWMgdmVjdG9ycyBoYXZlIGRldGVybWluaXN0aWMgc3RvcmFnZSBsb2NhdGlvbnMgZGVwZW5kaW5nIG9uIHRoZSB0b3BpYy4gVGhpc0UBIGFsbG93cyBsaWdodC1jbGllbnRzIHRvIGxldmVyYWdlIHRoZSBjaGFuZ2VzIHRyaWUgc3RvcmFnZSB0cmFja2luZyBtZWNoYW5pc20gYW5k5CBpbiBjYXNlIG9mIGNoYW5nZXMgZmV0Y2ggdGhlIGxpc3Qgb2YgZXZlbnRzIG9mIGludGVyZXN0LgBZASBUaGUgdmFsdWUgaGFzIHRoZSB0eXBlIGAoQmxvY2tOdW1iZXJGb3I8VD4sIEV2ZW50SW5kZXgpYCBiZWNhdXNlIGlmIHdlIHVzZWQgb25seSBqdXN0TQEgdGhlIGBFdmVudEluZGV4YCB0aGVuIGluIGNhc2UgaWYgdGhlIHRvcGljIGhhcyB0aGUgc2FtZSBjb250ZW50cyBvbiB0aGUgbmV4dCBibG9jawEBIG5vIG5vdGlmaWNhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCB0aHVzIHRoZSBldmVudCBtaWdodCBiZSBsb3N0LgBITGFzdFJ1bnRpbWVVcGdyYWRlAABRBwQABFUBIFN0b3JlcyB0aGUgYHNwZWNfdmVyc2lvbmAgYW5kIGBzcGVjX25hbWVgIG9mIHdoZW4gdGhlIGxhc3QgcnVudGltZSB1cGdyYWRlIGhhcHBlbmVkLgBEQmxvY2tzVGlsbFVwZ3JhZGUAAAwEAATsIE51bWJlciBvZiBibG9ja3MgdGlsbCB0aGUgcGVuZGluZyBjb2RlIHVwZ3JhZGUgaXMgYXBwbGllZC4AVFVwZ3JhZGVkVG9VMzJSZWZDb3VudAEAyAQABE0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IGB0eXBlIFJlZkNvdW50YCBpcyBgdTMyYC4gRmFsc2UgKGRlZmF1bHQpIGlmIG5vdC4AYFVwZ3JhZGVkVG9UcmlwbGVSZWZDb3VudAEAyAQACF0BIFRydWUgaWYgd2UgaGF2ZSB1cGdyYWRlZCBzbyB0aGF0IEFjY291bnRJbmZvIGNvbnRhaW5zIHRocmVlIHR5cGVzIG9mIGBSZWZDb3VudGAuIEZhbHNlSCAoZGVmYXVsdCkgaWYgbm90LgA4RXhlY3V0aW9uUGhhc2UAAEEHBAAEiCBUaGUgZXhlY3V0aW9uIHBoYXNlIG9mIHRoZSBibG9jay4AREF1dGhvcml6ZWRVcGdyYWRlAABdBwQABLggYFNvbWVgIGlmIGEgY29kZSB1cGdyYWRlIGhhcyBiZWVuIGF1dGhvcml6ZWQuAGBFeHRyaW5zaWNXZWlnaHRSZWNsYWltZWQBANUBCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABJAABJQYAGDBCbG9ja1dlaWdodHNhB4kBBwDyBSoBAAsAIEqp0QECAIACAmXNHQABC8BWDe9FAQIAwAEBCwCY9z5dAQIA4AEBAAACZc0dAAELwN5fWboBAgBgAgELACBKqdEBAgCAAgEHAIhSanQCAKAAAmXNHQAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4ALEJsb2NrTGVuZ3RobQc0AAA8AAAAUAAAAFAAAASoIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGJsb2NrIChpbiBieXRlcykuADhCbG9ja0hhc2hDb3VudDgQABAAAARVASBNYXhpbXVtIG51bWJlciBvZiBibG9jayBudW1iZXIgdG8gYmxvY2sgaGFzaCBtYXBwaW5ncyB0byBrZWVwIChvbGRlc3QgcHJ1bmVkIGZpcnN0KS4AIERiV2VpZ2h0dQdAQHh9AQAAAAAA4fUFAAAAAAQJASBUaGUgd2VpZ2h0IG9mIHJ1bnRpbWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB0aGUgcnVudGltZSBjYW4gaW52b2tlLgAcVmVyc2lvbnkH+QREbmV4dC1wZW9wbGUtcGFzZW9EbmV4dC1wZW9wbGUtcGFzZW8BAAAAYEIPAAAAAABY3XGNXMUyYtQBAAAABOcFIaDT0vgBAAAA173YonLKDWUCAAAA32rLaJkHYJsFAAAAN+OX/HyR9eQCAAAAzNneY5bImcoBAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAAqzwFcikf64sCAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAA8/8U1atScFkDAAAAb/Uu6Fjmxb0CAAAAkbHIsWMo65ICAAAAn/tQWqc41pwBAAAA0LrHvkprCSABAAAAkof7DgIbyFQBAAAAhDtvjOyAmMcBAAAAX00Hx2MP1rkBAAAA6pPj8W89aWIDAAAA+8V3uddH79YBAAAABAAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLgAoU1M1OFByZWZpeC0DCCoAFKggVGhlIGRlc2lnbmF0ZWQgU1M1OCBwcmVmaXggb2YgdGhpcyBjaGFpbi4AOQEgVGhpcyByZXBsYWNlcyB0aGUgInNzNThGb3JtYXQiIHByb3BlcnR5IGRlY2xhcmVkIGluIHRoZSBjaGFpbiBzcGVjLiBSZWFzb24gaXMxASB0aGF0IHRoZSBydW50aW1lIHNob3VsZCBrbm93IGFib3V0IHRoZSBwcmVmaXggaW4gb3JkZXIgdG8gbWFrZSB1c2Ugb2YgaXQgYXNwIGFuIGlkZW50aWZpZXIgb2YgdGhlIGNoYWluLgABiQcAHCxSdW50aW1lQ2FsbCAEjCBUaGUgYWdncmVnYXRlZCBgUnVudGltZUNhbGxgIHR5cGUuFE5vbmNlOARJASBUaGlzIHN0b3JlcyB0aGUgbnVtYmVyIG9mIHByZXZpb3VzIHRyYW5zYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBzZW5kZXIgYWNjb3VudC4QSGFzaDwEmCBUaGUgb3V0cHV0IG9mIHRoZSBgSGFzaGluZ2AgZnVuY3Rpb24uHEhhc2hpbmeNBwQhASBUaGUgaGFzaGluZyBzeXN0ZW0gKGFsZ29yaXRobSkgYmVpbmcgdXNlZCBpbiB0aGUgcnVudGltZSAoZS5nLiBCbGFrZTIpLiRBY2NvdW50SWQEBMggVGhlIHVzZXIgYWNjb3VudCBpZGVudGlmaWVyIHR5cGUgZm9yIHRoZSBydW50aW1lLhRCbG9ja5EHCGEBIFRoZSBCbG9jayB0eXBlIHVzZWQgYnkgdGhlIHJ1bnRpbWUuIFRoaXMgaXMgdXNlZCBieSBgY29uc3RydWN0X3J1bnRpbWVgIHRvIHJldHJpZXZlIHRoZcwgZXh0cmluc2ljcyBvciBvdGhlciBibG9jayBzcGVjaWZpYyBkYXRhIGFzIG5lZWRlZC4sQWNjb3VudERhdGENBghhASBEYXRhIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChvdGhlciB0aGFuIG5vbmNlL3RyYW5zYWN0aW9uIGNvdW50ZXIsIHdoaWNoIHRoaXNkIHBhbGxldCBkb2VzIHJlZ2FyZGxlc3MpLgAAAAA8UGFyYWNoYWluU3lzdGVtATxQYXJhY2hhaW5TeXN0ZW18PEJsb2NrV2VpZ2h0TW9kZQAAqQcEABh8IFRoZSBjdXJyZW50IGJsb2NrIHdlaWdodCBtb2RlLgB1ASBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIG1heGltdW0gYWxsb3dlZCBibG9jayB3ZWlnaHQsIGZvciBtb3JlIGluZm9ybWF0aW9uIHNlZUggW2BibG9ja193ZWlnaHRgXS4AJQEgS2lsbGVkIGluIFtgU2VsZjo6b25faW5pdGlhbGl6ZWBdIGFuZCBzZXQgYnkgdGhlIFtgYmxvY2tfd2VpZ2h0YF0gbG9naWMuAERQcmV2aW91c0NvcmVDb3VudAAArQcEAAwFASBUaGUgY29yZSBjb3VudCBhdmFpbGFibGUgdG8gdGhlIHBhcmFjaGFpbiBpbiB0aGUgcHJldmlvdXMgYmxvY2suAHUBIFRoaXMgaXMgbWFpbmx5IHVzZWQgZm9yIG9mZmNoYWluIGZ1bmN0aW9uYWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0IHRhcmdldCBibG9jayB3ZWlnaHQuAERVbmluY2x1ZGVkU2VnbWVudAEAsQcEABhJASBMYXRlc3QgaW5jbHVkZWQgYmxvY2sgZGVzY2VuZGFudHMgdGhlIHJ1bnRpbWUgYWNjZXB0ZWQuIEluIG90aGVyIHdvcmRzLCB0aGVzZSBhcmVhASBhbmNlc3RvcnMgb2YgdGhlIGN1cnJlbnRseSBleGVjdXRpbmcgYmxvY2sgd2hpY2ggaGF2ZSBub3QgYmVlbiBpbmNsdWRlZCBpbiB0aGUgb2JzZXJ2ZWRMIHJlbGF5LWNoYWluIHN0YXRlLgB1ASBUaGUgc2VnbWVudCBsZW5ndGggaXMgbGltaXRlZCBieSB0aGUgY2FwYWNpdHkgcmV0dXJuZWQgZnJvbSB0aGUgW2BDb25zZW5zdXNIb29rYF0gY29uZmlndXJlZDwgaW4gdGhlIHBhbGxldC4AbEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudAAA2QcEAAxpASBTdG9yYWdlIGZpZWxkIHRoYXQga2VlcHMgdHJhY2sgb2YgYmFuZHdpZHRoIHVzZWQgYnkgdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBhbG9uZyB3aXRoIHRoZS0BIGxhdGVzdCBIUk1QIHdhdGVybWFyay4gVXNlZCBmb3IgbGltaXRpbmcgdGhlIGFjY2VwdGFuY2Ugb2YgbmV3IGJsb2NrcyB3aXRokCByZXNwZWN0IHRvIHJlbGF5IGNoYWluIGNvbnN0cmFpbnRzLgBUUGVuZGluZ1ZhbGlkYXRpb25Db2RlAQAYBAAYWQEgSW4gY2FzZSBvZiBhIHNjaGVkdWxlZCB1cGdyYWRlLCB0aGlzIHN0b3JhZ2UgZmllbGQgY29udGFpbnMgdGhlIHZhbGlkYXRpb24gY29kZSB0byBiZSQgYXBwbGllZC4APQEgQXMgc29vbiBhcyB0aGUgcmVsYXkgY2hhaW4gZ2l2ZXMgdXMgdGhlIGdvLWFoZWFkIHNpZ25hbCwgd2Ugd2lsbCBvdmVyd3JpdGUgdGhlZQEgW2A6cGVuZGluZ19jb2RlYF1bc3BfY29yZTo6c3RvcmFnZTo6d2VsbF9rbm93bl9rZXlzOjpQRU5ESU5HX0NPREVdIHdoaWNoIHdpbGwgcmVzdWx0IHRoZXUBIG5leHQgYmxvY2sgdG8gYmUgcHJvY2Vzc2VkIHdpdGggdGhlIG5ldyB2YWxpZGF0aW9uIGNvZGUuIFRoaXMgY29uY2x1ZGVzIHRoZSB1cGdyYWRlIHByb2Nlc3MuAEROZXdWYWxpZGF0aW9uQ29kZQAAGAQAFF0BIFZhbGlkYXRpb24gY29kZSB0aGF0IGlzIHNldCBieSB0aGUgcGFyYWNoYWluIGFuZCBpcyB0byBiZSBjb21tdW5pY2F0ZWQgdG8gY29sbGF0b3IgYW5keCBjb25zZXF1ZW50bHkgdGhlIHJlbGF5LWNoYWluLgBlASBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2sgaWYgbm8gb3RoZXIgcGFsbGV0IGFscmVhZHkgc2V0LCB0aGUgdmFsdWUuADhWYWxpZGF0aW9uRGF0YQAASAQADNAgVGhlIFtgUGVyc2lzdGVkVmFsaWRhdGlvbkRhdGFgXSBzZXQgZm9yIHRoaXMgYmxvY2suAHEBIFRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgc2V0IG9ubHkgb25jZSBieSB0aGUgW2BQYWxsZXQ6OnNldF92YWxpZGF0aW9uX2RhdGFgXSBpbmhlcmVudC4AUERpZFNldFZhbGlkYXRpb25Db2RlAQDIBAAE4CBXZXJlIHRoZSB2YWxpZGF0aW9uIGRhdGEgc2V0IHRvIG5vdGlmeSB0aGUgcmVsYXkgY2hhaW4/AGRMYXN0UmVsYXlDaGFpbkJsb2NrTnVtYmVyAQA4EAAAAAAMHQEgVGhlIHJlbGF5IGNoYWluIGJsb2NrIG51bWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgcGFyYWNoYWluIGJsb2NrLgCIIFRoaXMgaXMgdXBkYXRlZCBpbiBgb25fZmluYWxpemVgLgBgVXBncmFkZVJlc3RyaWN0aW9uU2lnbmFsAQDdBwQAHHUBIEFuIG9wdGlvbiB3aGljaCBpbmRpY2F0ZXMgaWYgdGhlIHJlbGF5LWNoYWluIHJlc3RyaWN0cyBzaWduYWxsaW5nIGEgdmFsaWRhdGlvbiBjb2RlIHVwZ3JhZGUuYQEgSW4gb3RoZXIgd29yZHMsIGlmIHRoaXMgaXMgYFNvbWVgIGFuZCBbYE5ld1ZhbGlkYXRpb25Db2RlYF0gaXMgYFNvbWVgIHRoZW4gdGhlIHByb2R1Y2VkbCBjYW5kaWRhdGUgd2lsbCBiZSBpbnZhbGlkLgBxASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBhIG1pcnJvciBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgcGFyYWNoYWluIGZyb20gdGhlbQEgcmVsYXktY2hhaW4uIFRoaXMgdmFsdWUgaXMgZXBoZW1lcmFsIHdoaWNoIG1lYW5zIGl0IGRvZXNuJ3QgaGl0IHRoZSBzdG9yYWdlLiBUaGlzIHZhbHVlIGlzYCBzZXQgYWZ0ZXIgdGhlIGluaGVyZW50LgA4VXBncmFkZUdvQWhlYWQBANEHBAAU3CBPcHRpb25hbCB1cGdyYWRlIGdvLWFoZWFkIHNpZ25hbCBmcm9tIHRoZSByZWxheS1jaGFpbi4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4APFJlbGF5U3RhdGVQcm9vZgAAUAQAGMQgVGhlIHN0YXRlIHByb29mIGZvciB0aGUgbGFzdCByZWxheSBwYXJlbnQgYmxvY2suAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AWFJlbGV2YW50TWVzc2FnaW5nU3RhdGUAAOUHBAAcZQEgVGhlIHNuYXBzaG90IG9mIHNvbWUgc3RhdGUgcmVsYXRlZCB0byBtZXNzYWdpbmcgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcGFyYWNoYWluIGFzIHBlckggdGhlIHJlbGF5IHBhcmVudC4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBESG9zdENvbmZpZ3VyYXRpb24AAPkHBAAYKQEgVGhlIHBhcmFjaGFpbiBob3N0IGNvbmZpZ3VyYXRpb24gdGhhdCB3YXMgb2J0YWluZWQgZnJvbSB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuADhMYXN0RG1xTXFjSGVhZAEAAQiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ9CBUaGUgbGFzdCBkb3dud2FyZCBtZXNzYWdlIHF1ZXVlIGNoYWluIGhlYWQgd2UgaGF2ZSBvYnNlcnZlZC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AQExhc3RIcm1wTXFjSGVhZHMBAAUIBAAQSQEgVGhlIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZHMgd2UgaGF2ZSBvYnNlcnZlZCBwZXIgZWFjaCBjaGFubmVsIGluY29taW5nIGNoYW5uZWwuAGUBIFRoaXMgdmFsdWUgaXMgbG9hZGVkIGJlZm9yZSBhbmQgc2F2ZWQgYWZ0ZXIgcHJvY2Vzc2luZyBpbmJvdW5kIGRvd253YXJkIG1lc3NhZ2VzIGNhcnJpZWRgIGJ5IHRoZSBzeXN0ZW0gaW5oZXJlbnQuAGRQcm9jZXNzZWREb3dud2FyZE1lc3NhZ2VzAQA4EAAAAAAMyCBOdW1iZXIgb2YgZG93bndhcmQgbWVzc2FnZXMgcHJvY2Vzc2VkIGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgBwTGFzdFByb2Nlc3NlZERvd253YXJkTWVzc2FnZQAAEQgEAAyUIFRoZSBsYXN0IHByb2Nlc3NlZCBkb3dud2FyZCBtZXNzYWdlLgBdASBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyB0byBmaWx0ZXIgdGhlIG1lc3NhZ2VzIHRoYXQgaGF2ZSBiZWVuIGFscmVhZHkgcHJvY2Vzc2VkLgA0SHJtcFdhdGVybWFyawEAOBAAAAAABKAgSFJNUCB3YXRlcm1hcmsgdGhhdCB3YXMgc2V0IGluIGEgYmxvY2suAGBMYXN0UHJvY2Vzc2VkSHJtcE1lc3NhZ2UAABEIBAAMhCBUaGUgbGFzdCBwcm9jZXNzZWQgSFJNUCBtZXNzYWdlLgBdASBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyB0byBmaWx0ZXIgdGhlIG1lc3NhZ2VzIHRoYXQgaGF2ZSBiZWVuIGFscmVhZHkgcHJvY2Vzc2VkLgBQSHJtcE91dGJvdW5kTWVzc2FnZXMBABUIBAAMpCBIUk1QIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgA4VXB3YXJkTWVzc2FnZXMBADQEAAysIFVwd2FyZCBtZXNzYWdlcyB0aGF0IHdlcmUgc2VudCBpbiBhIGJsb2NrLgDwIFRoaXMgd2lsbCBiZSBjbGVhcmVkIGluIGBvbl9pbml0aWFsaXplYCBmb3IgZWFjaCBuZXcgYmxvY2suAFRQZW5kaW5nVXB3YXJkTWVzc2FnZXMBADQEAAQxASBVcHdhcmQgbWVzc2FnZXMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4AUFBlbmRpbmdVcHdhcmRTaWduYWxzAQA0BAAMLQEgVXB3YXJkIHNpZ25hbHMgdGhhdCBhcmUgc3RpbGwgcGVuZGluZyBhbmQgbm90IHlldCBzZW50IHRvIHRoZSByZWxheSBjaGFpbi4A2CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25fZmluYWxpemVgIGZvciBlYWNoIGJsb2NrLgBMUGVuZGluZ0FwcHJvdmVkUGVlcgAAeAQABDkBIFRoZSBhcHByb3ZlZCBwZWVyIGlkIHRvIGJlIHNlbnQgYXMgYSBVTVAgc2lnbmFsIG9uIHRoZSBsYXN0IGJsb2NrIG9mIHRoZSBQb1YuAFxVcHdhcmREZWxpdmVyeUZlZUZhY3RvcgEALQFAAABkp7O24A0AAAAAAAAAAATkIFRoZSBmYWN0b3IgdG8gbXVsdGlwbHkgdGhlIGJhc2UgZGVsaXZlcnkgZmVlIGJ5IGZvciBVTVAuAIRBbm5vdW5jZWRIcm1wTWVzc2FnZXNQZXJDYW5kaWRhdGUBADgQAAAAAAhlASBUaGUgbnVtYmVyIG9mIEhSTVAgbWVzc2FnZXMgd2Ugb2JzZXJ2ZWQgaW4gYG9uX2luaXRpYWxpemVgIGFuZCB0aHVzIHVzZWQgdGhhdCBudW1iZXIgZm9y8CBhbm5vdW5jaW5nIHRoZSB3ZWlnaHQgb2YgYG9uX2luaXRpYWxpemVgIGFuZCBgb25fZmluYWxpemVgLgBoUmVzZXJ2ZWRYY21wV2VpZ2h0T3ZlcnJpZGUAANUBBAAIXQEgVGhlIHdlaWdodCB3ZSByZXNlcnZlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrIGZvciBwcm9jZXNzaW5nIFhDTVAgbWVzc2FnZXMuIFRoaXO4IG92ZXJyaWRlcyB0aGUgYW1vdW50IHNldCBpbiB0aGUgQ29uZmlnIHRyYWl0LgBkUmVzZXJ2ZWREbXBXZWlnaHRPdmVycmlkZQAA1QEEAAhZASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgRE1QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AYEN1c3RvbVZhbGlkYXRpb25IZWFkRGF0YQAAGAQADCkBIEEgY3VzdG9tIGhlYWQgZGF0YSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyByZXN1bHQgb2YgYHZhbGlkYXRlX2Jsb2NrYC4AEQEgU2VlIGBQYWxsZXQ6OnNldF9jdXN0b21fdmFsaWRhdGlvbl9oZWFkX2RhdGFgIGZvciBtb3JlIGluZm9ybWF0aW9uLgBIUG9WTWVzc2FnZXNUcmFja2VyAAAdCAQADFUBIFRyYWNrcyBjdW11bGF0aXZlIGBVTVBgIGFuZCBgSFJNUGAgbWVzc2FnZXMgc2VudCBhY3Jvc3MgYmxvY2tzIGluIHRoZSBjdXJyZW50IGBQb1ZgLgB1ASBBY3Jvc3MgZGlmZmVyZW50IGNhbmRpZGF0ZXMvUG9WcyB0aGUgYnVkZ2V0cyBhcmUgdHJhY2tlZCBieSBbYEFnZ3JlZ2F0ZWRVbmluY2x1ZGVkU2VnbWVudGBdLgABQAABTQYABChTZWxmUGFyYUlknBDeBQAABLggUmV0dXJucyB0aGUgcGFyYWNoYWluIElEIHdlIGFyZSBydW5uaW5nIHdpdGguAAElCAAAAAEAACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAoIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACREaWRVcGRhdGUBAMgEABDYIFdoZXRoZXIgdGhlIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkIGluIHRoaXMgYmxvY2suAFUBIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCB0byBgdHJ1ZWAgdXBvbiBzdWNjZXNzZnVsIHN1Ym1pc3Npb24gb2YgYSB0aW1lc3RhbXAgYnkgYSBub2RlLkUBIEl0IGlzIHRoZW4gY2hlY2tlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgZXhlY3V0aW9uIGluIHRoZSBgb25fZmluYWxpemVgIGhvb2suAAGwAAAENE1pbmltdW1QZXJpb2QoIAAAAAAAAAAAGIwgVGhlIG1pbmltdW0gcGVyaW9kIGJldHdlZW4gYmxvY2tzLgBNASBCZSBhd2FyZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IHRvIHRoZSAqZXhwZWN0ZWQqIHBlcmlvZCB0aGF0IHRoZSBibG9jayBwcm9kdWN0aW9uSQEgYXBwYXJhdHVzIHByb3ZpZGVzLiBZb3VyIGNob3NlbiBjb25zZW5zdXMgc3lzdGVtIHdpbGwgZ2VuZXJhbGx5IHdvcmsgd2l0aCB0aGlzIHRvYQEgZGV0ZXJtaW5lIGEgc2Vuc2libGUgYmxvY2sgdGltZS4gRm9yIGV4YW1wbGUsIGluIHRoZSBBdXJhIHBhbGxldCBpdCB3aWxsIGJlIGRvdWJsZSB0aGlzcCBwZXJpb2Qgb24gZGVmYXVsdCBzZXR0aW5ncy4AAAQYTW9tZW50KASYIFR5cGUgdXNlZCBmb3IgZXhwcmVzc2luZyBhIHRpbWVzdGFtcC4AAgAANFBhcmFjaGFpbkluZm8BNFBhcmFjaGFpbkluZm8ELFBhcmFjaGFpbklkAQCcEGQAAAAAAAG4AAAAAAAAAwAANFdlaWdodFJlY2xhaW0AAAAAAAAABAiBASBQYWxsZXQgdG8gdXNlIGFsb25nc2lkZSB0aGUgdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIFtgU3RvcmFnZVdlaWdodFJlY2xhaW1gXSwgdGhlIHBhbGxldCBwcm92aWRlc4wgd2VpZ2h0IGluZm9ybWF0aW9uIGFuZCBiZW5jaG1hcmtzLgA8UmVsYXlSYW5kb21uZXNzATxSZWxheVJhbmRvbW5lc3MEKFJhbmRvbW5lc3MBACkICAAAGEEBIFRoZSBsYXN0IGRpc3RpbmN0IHJlbGF5IGNoYWluIHJhbmRvbW5lc3MgdmFsdWVzLCByZWZyZXNoZWQgZnJvbSB0aGUgcmVsYXkgY2hhaW40IHN0YXRlIHByb29mLgA1ASBUaGUgdmFsdWVzIHBlcnNpc3QgYmV0d2VlbiBibG9ja3M6IHRoZXkgcmVmbGVjdCB0aGUgcmVsYXkgcGFyZW50IG9mIHRoZSBsYXN0SQEgYmxvY2sgd2hvc2UgaW5oZXJlbnQgcmFuLiBDb2RlIHJ1bm5pbmcgYmVmb3JlIHRoZSBpbmhlcmVudCAoZS5nLiBgb25faW5pdGlhbGl6ZWApiCBzZWVzIHRoZSBwcmV2aW91cyBibG9jaydzIHZhbHVlcy4AAAAAAAAABQAAIEJhbGFuY2VzASBCYWxhbmNlcxw0VG90YWxJc3N1YW5jZQEAxEAAAAAAAAAAAAAAAAAAAAAABJggVGhlIHRvdGFsIHVuaXRzIGlzc3VlZCBpbiB0aGUgc3lzdGVtLgBASW5hY3RpdmVJc3N1YW5jZQEAxEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uABxBY2NvdW50AQEEAgQNBgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGAJASBUaGUgQmFsYW5jZXMgcGFsbGV0IGV4YW1wbGUgb2Ygc3RvcmluZyB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUgexkCICAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3RvcmFnZU1hcFNoaW08U2VsZjo6QWNjb3VudDxSdW50aW1lPiwgZnJhbWVfc3lzdGVtOjpQcm92aWRlcjxSdW50aW1lPiwgQWNjb3VudElkLCBTZWxmOjpBY2NvdW50RGF0YTxCYWxhbmNlPj4MICB9ECBgYGAAFQEgWW91IGNhbiBhbHNvIHN0b3JlIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQgaW4gdGhlIGBTeXN0ZW1gIHBhbGxldC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHt0ICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTeXN0ZW0MICB9ECBgYGAAUQEgQnV0IHRoaXMgY29tZXMgd2l0aCB0cmFkZW9mZnMsIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUgc3lzdGVtIHBhbGxldCBzdG9yZXNtASBgZnJhbWVfc3lzdGVtYCBkYXRhIGFsb25nc2lkZSB0aGUgYWNjb3VudCBkYXRhIGNvbnRyYXJ5IHRvIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUpASBgQmFsYW5jZXNgIHBhbGxldCwgd2hpY2ggdXNlcyBhIGBTdG9yYWdlTWFwYCB0byBzdG9yZSBiYWxhbmNlcyBkYXRhIG9ubHkuQQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIHBhbGxldCBpcyB1c2VkIHRvIHN0b3JlIGJhbGFuY2VzLgAUTG9ja3MBAQQCBDUIBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAgUmVzZXJ2ZXMBAQQCBEUIBAAMpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gABRIb2xkcwEBBAIEUQgEAARsIEhvbGRzIG9uIGFjY291bnQgYmFsYW5jZXMuABxGcmVlemVzAQEEAgRdCAQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAAG8AAFRBgAQSEV4aXN0ZW50aWFsRGVwb3NpdMRAAMqaOwAAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEAIE1heExvY2tzOBAyAAAAEPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHRoYXQgc2hvdWxkIGV4aXN0IG9uIGFuIGFjY291bnQu3CBOb3Qgc3RyaWN0bHkgZW5mb3JjZWQsIGJ1dCB1c2VkIGZvciB3ZWlnaHQgZXN0aW1hdGlvbi4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAsTWF4UmVzZXJ2ZXM4EDIAAAAMDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gAChNYXhGcmVlemVzOBAAAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgABaQgAEERSdW50aW1lSG9sZFJlYXNvblkGBHQgVGhlIG92ZXJhcmNoaW5nIGhvbGQgcmVhc29uLhxCYWxhbmNlxARsIFRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuRFJlc2VydmVJZGVudGlmaWVyvQEMaCBUaGUgSUQgdHlwZSBmb3IgcmVzZXJ2ZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gQEZyZWV6ZUlkZW50aWZpZXIQBGQgVGhlIElEIHR5cGUgZm9yIGZyZWV6ZXMuAAoAAEhUcmFuc2FjdGlvblBheW1lbnQBSFRyYW5zYWN0aW9uUGF5bWVudAxETmV4dEZlZU11bHRpcGxpZXIBAC0BQAAAZKeztuANAAAAAAAAAAAAADhTdG9yYWdlVmVyc2lvbgEAbQgEAAAAPFR4UGF5bWVudENyZWRpdAAAcQgEAAzwIFRoZSBgT25DaGFyZ2VUcmFuc2FjdGlvbmAgc3RvcmVzIHRoZSB3aXRoZHJhd24gdHggZmVlIGhlcmUuADUBIFVzZSBgd2l0aGRyYXdfdHhmZWVgIGFuZCBgcmVtYWluaW5nX3R4ZmVlYCB0byBhY2Nlc3MgZnJvbSBvdXRzaWRlIHRoZSBjcmF0ZS4AAAGFBgAEYE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcgwEBVRZASBBIGZlZSBtdWx0aXBsaWVyIGZvciBgT3BlcmF0aW9uYWxgIGV4dHJpbnNpY3MgdG8gY29tcHV0ZSAidmlydHVhbCB0aXAiIHRvIGJvb3N0IHRoZWlyLCBgcHJpb3JpdHlgAFEBIFRoaXMgdmFsdWUgaXMgbXVsdGlwbGllZCBieSB0aGUgYGZpbmFsX2ZlZWAgdG8gb2J0YWluIGEgInZpcnR1YWwgdGlwIiB0aGF0IGlzIGxhdGVy9CBhZGRlZCB0byBhIHRpcCBjb21wb25lbnQgaW4gcmVndWxhciBgcHJpb3JpdHlgIGNhbGN1bGF0aW9ucy5NASBJdCBtZWFucyB0aGF0IGEgYE5vcm1hbGAgdHJhbnNhY3Rpb24gY2FuIGZyb250LXJ1biBhIHNpbWlsYXJseS1zaXplZCBgT3BlcmF0aW9uYWxgQQEgZXh0cmluc2ljICh3aXRoIG5vIHRpcCksIGJ5IGluY2x1ZGluZyBhIHRpcCB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIHZpcnR1YWwgdGlwLgA8IGBgYHJ1c3QsaWdub3JlQCAvLyBGb3IgYE5vcm1hbGCMIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwKTsAVCAvLyBGb3IgYE9wZXJhdGlvbmFsYBEBIGxldCB2aXJ0dWFsX3RpcCA9IChpbmNsdXNpb25fZmVlICsgdGlwKSAqIE9wZXJhdGlvbmFsRmVlTXVsdGlwbGllcjvEIGxldCBwcmlvcml0eSA9IHByaW9yaXR5X2NhbGModGlwICsgdmlydHVhbF90aXApOxAgYGBgAFEBIE5vdGUgdGhhdCBzaW5jZSB3ZSB1c2UgYGZpbmFsX2ZlZWAgdGhlIG11bHRpcGxpZXIgYXBwbGllcyBhbHNvIHRvIHRoZSByZWd1bGFyIGB0aXBgXQEgc2VudCB3aXRoIHRoZSB0cmFuc2FjdGlvbi4gU28sIG5vdCBvbmx5IGRvZXMgdGhlIHRyYW5zYWN0aW9uIGdldCBhIHByaW9yaXR5IGJ1bXAgYmFzZWRhASBvbiB0aGUgYGluY2x1c2lvbl9mZWVgLCBidXQgd2UgYWxzbyBhbXBsaWZ5IHRoZSBpbXBhY3Qgb2YgdGlwcyBhcHBsaWVkIHRvIGBPcGVyYXRpb25hbGA4IHRyYW5zYWN0aW9ucy4AAAAACwAASFNraXBGZWVsZXNzUGF5bWVudAAAAYkGAAAAAAAMAABET3JpZ2luUmVzdHJpY3Rpb24BRE9yaWdpblJlc3RyaWN0aW9uBBhVc2FnZXMAAQQC2HkIBAAEjCBUaGUgY3VycmVudCB1c2FnZSBmb3IgZWFjaCBlbnRpdHkuAAHUAAGNBgAAAX0IAARAUmVzdHJpY3RlZEVudGl0edgkUQEgVGhlIHR5cGUgdGhhdCByZXByZXNlbnQgdGhlIGVudGl0aWVzIHRyYWNrZWQsIGl0cyBhbGxvd2FuY2UgYW5kIHRoZSBjb252ZXJzaW9uIGZyb22sIG9yaWdpbiBpcyBib3VuZGVkIGluIFtgUmVzdHJpY3RlZEVudGl0eWBdLgAdASBUaGlzIGlzIHRoZSBjYW5vbmljYWwgb3JpZ2luIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdXNhZ2UgdHJhY2tpbmcujCBFYWNoIGVudGl0eSBpcyB0cmFja2VkIHNlcGFyYXRlbHkuAEkBIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gb3JpZ2luIGFzIGEgbXVsdGlwbGUgb3JpZ2luIGNhbiByZXByZXNlbnQgYSBzaW5nbGUgZW50aXR5LmEBIEZvciBleGFtcGxlLCBpbWFnaW5lIGEgREFPIG9yaWdpbiB3aXRoIGEgcGVyY2VudGFnZSBvZiB2b3RlcnMsIHdlIHdhbnQgdG8gdHJhY2sgdGhlIERBT6wgZW50aXR5IHJlZ2FyZGxlc3Mgb2YgdGhlIHZvdGVyIHBlcmNlbnRhZ2UuAA0AABhBc3NldHMBGEFzc2V0cxgUQXNzZXQAAQQC4IEIBAAEVCBEZXRhaWxzIG9mIGFuIGFzc2V0LgAcQWNjb3VudAABCAICiQiNCAQABOQgVGhlIGhvbGRpbmdzIG9mIGEgc3BlY2lmaWMgYWNjb3VudCBmb3IgYSBzcGVjaWZpYyBhc3NldC4AJEFwcHJvdmFscwABDAICApkInQgEAAxZASBBcHByb3ZlZCBiYWxhbmNlIHRyYW5zZmVycy4gRmlyc3QgYmFsYW5jZSBpcyB0aGUgYW1vdW50IGFwcHJvdmVkIGZvciB0cmFuc2Zlci4gU2Vjb25k6CBpcyB0aGUgYW1vdW50IG9mIGBUOjpDdXJyZW5jeWAgcmVzZXJ2ZWQgZm9yIHN0b3JpbmcgdGhpcy5JASBGaXJzdCBrZXkgaXMgdGhlIGFzc2V0IElELCBzZWNvbmQga2V5IGlzIHRoZSBvd25lciBhbmQgdGhpcmQga2V5IGlzIHRoZSBkZWxlZ2F0ZS4AIE1ldGFkYXRhAQEEAuChCFAAAAAAAAAAAAAAAAAAAAAAAAAAAARYIE1ldGFkYXRhIG9mIGFuIGFzc2V0LgAgUmVzZXJ2ZXMBAQQC4B0BBAAE/CBNYXBzIGFuIGFzc2V0IHRvIGEgbGlzdCBvZiBpdHMgY29uZmlndXJlZCByZXNlcnZlIGluZm9ybWF0aW9uLgAsTmV4dEFzc2V0SWQAAOAEACRtASBUaGUgYXNzZXQgSUQgZW5mb3JjZWQgZm9yIHRoZSBuZXh0IGFzc2V0IGNyZWF0aW9uLCBpZiBhbnkgcHJlc2VudC4gT3RoZXJ3aXNlLCB0aGlzIHN0b3JhZ2VQIGl0ZW0gaGFzIG5vIGVmZmVjdC4AZQEgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBzZXR0aW5nIHVwIGNvbnN0cmFpbnRzIGZvciBJRHMgb2YgdGhlIG5ldyBhc3NldHMuIEZvciBleGFtcGxlLCBieWkBIHByb3ZpZGluZyBhbiBpbml0aWFsIFtgTmV4dEFzc2V0SWRgXSBhbmQgdXNpbmcgdGhlIFtgY3JhdGU6OkF1dG9JbmNBc3NldElkYF0gY2FsbGJhY2ssIGFu6CBhdXRvLWluY3JlbWVudCBtb2RlbCBjYW4gYmUgYXBwbGllZCB0byBhbGwgbmV3IGFzc2V0IElEcy4AIQEgVGhlIGluaXRpYWwgbmV4dCBhc3NldCBJRCBjYW4gYmUgc2V0IHVzaW5nIHRoZSBbYEdlbmVzaXNDb25maWdgXSBvciB0aGUhASBbU2V0TmV4dEFzc2V0SWRdKGBtaWdyYXRpb246Om5leHRfYXNzZXRfaWQ6OlNldE5leHRBc3NldElkYCkgbWlncmF0aW9uLgAB3AABkQYAHEBSZW1vdmVJdGVtc0xpbWl0OBDoAwAADFEBIE1heCBudW1iZXIgb2YgaXRlbXMgdG8gZGVzdHJveSBwZXIgYGRlc3Ryb3lfYWNjb3VudHNgIGFuZCBgZGVzdHJveV9hcHByb3ZhbHNgIGNhbGwuADkBIE11c3QgYmUgY29uZmlndXJlZCB0byByZXN1bHQgaW4gYSB3ZWlnaHQgdGhhdCBtYWtlcyBlYWNoIGNhbGwgZml0IGluIGEgYmxvY2suADBBc3NldERlcG9zaXTEQADKmjsAAAAAAAAAAAAAAAAE+CBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgYW4gYXNzZXQuAExBc3NldEFjY291bnREZXBvc2l0xEAA9GmzAgAAAAAAAAAAAAAACEUBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhIG5vbi1wcm92aWRlciBhc3NldCBhY2NvdW50IHRvIGJlMCBtYWludGFpbmVkLgBMTWV0YWRhdGFEZXBvc2l0QmFzZcRAAKhb6QMAAAAAAAAAAAAAAARRASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGFzc2V0LgBYTWV0YWRhdGFEZXBvc2l0UGVyQnl0ZcRAAOH1BQAAAAAAAAAAAAAAAAhVASBUaGUgYWRkaXRpb25hbCBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIHRoZSBudW1iZXIgb2YgYnl0ZXMgeW91IHN0b3JlIGluIHlvdXIoIG1ldGFkYXRhLgA8QXBwcm92YWxEZXBvc2l0xEAAypo7AAAAAAAAAAAAAAAABCEBIFRoZSBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIHdoZW4gY3JlYXRpbmcgYSBuZXcgYXBwcm92YWwuACxTdHJpbmdMaW1pdDgQMgAAAATgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AAakIABQcQmFsYW5jZcQEnCBUaGUgdW5pdHMgaW4gd2hpY2ggd2UgcmVjb3JkIGJhbGFuY2VzLhxBc3NldElk4ASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC5AQXNzZXRJZFBhcmFtZXRlcuAcWQEgV3JhcHBlciBhcm91bmQgYFNlbGY6OkFzc2V0SWRgIHRvIHVzZSBpbiBkaXNwYXRjaGFibGUgY2FsbCBzaWduYXR1cmVzLiBBbGxvd3MgdGhlIHVzZVEBIG9mIGNvbXBhY3QgZW5jb2RpbmcgaW4gaW5zdGFuY2VzIG9mIHRoZSBwYWxsZXQsIHdoaWNoIHdpbGwgcHJldmVudCBicmVha2luZyBjaGFuZ2VzBQEgcmVzdWx0aW5nIGZyb20gdGhlIHJlbW92YWwgb2YgYEhhc0NvbXBhY3RgIGZyb20gYFNlbGY6OkFzc2V0SWRgLgBZASBUaGlzIHR5cGUgaW5jbHVkZXMgdGhlIGBGcm9tPFNlbGY6OkFzc2V0SWQ+YCBib3VuZCwgc2luY2UgdGlnaHRseSBjb3VwbGVkIHBhbGxldHMgbWF5RQEgd2FudCB0byBjb252ZXJ0IGFuIGBBc3NldElkYCBpbnRvIGEgcGFyYW1ldGVyIGZvciBjYWxsaW5nIGRpc3BhdGNoYWJsZSBmdW5jdGlvbnMoIGRpcmVjdGx5LixSZXNlcnZlRGF0YSEBBOggSW5mb3JtYXRpb24gYWJvdXQgcmVzZXJ2ZSBsb2NhdGlvbnMgZm9yIGEgY2xhc3Mgb2YgYXNzZXQuFEV4dHJhEAT4IEFkZGl0aW9uYWwgZGF0YSB0byBiZSBzdG9yZWQgd2l0aCBhbiBhY2NvdW50J3MgYXNzZXQgYmFsYW5jZS4QaCpZ1Rq55IqMjMQY/5cI0qcCl60LS909pLdGKaZablw0YXNzZXRfZGV0YWlscwQIaWTgrQgEqCBQcm92aWRlIHRoZSBhc3NldCBkZXRhaWxzIGZvciBhc3NldCBgaWRgLgBoKlnVGrnkioyMxBj/lwjSUxrH4ht2sSHnYeRzQZobAihiYWxhbmNlX29mCAx3aG8ECGlk4LEIBLQgUHJvdmlkZSB0aGUgYmFsYW5jZSBvZiBgd2hvYCBmb3IgYXNzZXQgYGlkYC4AaCpZ1Rq55IqMjMQY/5cI0i6HZqQNG2nWFRvYAeV1UF4wZ2V0X21ldGFkYXRhBAhpZOC1CATAIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgbWV0YWRhdGEgZm9yIGFzc2V0IGBpZGAuAGgqWdUaueSKjIzEGP+XCNJk9j8pI+OYKCQxY4GuHmmGRGdldF9yZXNlcnZlc19kYXRhBAhpZOAlAQTUIFByb3ZpZGUgdGhlIGNvbmZpZ3VyZWQgcmVzZXJ2ZXMgZGF0YSBmb3IgYXNzZXQgYGlkYC4ADgAAMEFzc2V0c0hvbGRlcgEwQXNzZXRzSG9sZGVyCBRIb2xkcwEBCAICiQhRCAQABA0BIEEgbWFwIHRoYXQgc3RvcmVzIGhvbGRzIGFwcGxpZWQgb24gYW4gYWNjb3VudCBmb3IgYSBnaXZlbiBBc3NldElkLgA4QmFsYW5jZXNPbkhvbGQAAQgCAokIxAQABGkBIEEgbWFwIHRoYXQgc3RvcmVzIHRoZSBjdXJyZW50IHRvdGFsIGJhbGFuY2Ugb24gaG9sZCBmb3IgZXZlcnkgYWNjb3VudCBvbiBhIGdpdmVuIEFzc2V0SWQuAAABlQYAAAG5CAAERFJ1bnRpbWVIb2xkUmVhc29uWQYEfCBUaGUgb3ZlcmFyY2hpbmcgZnJlZXplIHJlYXNvbi4ADwAAJEFzc2V0UmF0ZQEkQXNzZXRSYXRlBFhDb252ZXJzaW9uUmF0ZVRvTmF0aXZlAAEEAuAtAQQADB0BIE1hcHMgYW4gYXNzZXQgdG8gaXRzIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uIGluIHRoZSBuYXRpdmUgYmFsYW5jZS4ATQEgRS5nLiBgbmF0aXZlX2Ftb3VudCA9IGFzc2V0X2Ftb3VudCAqIENvbnZlcnNpb25SYXRlVG9OYXRpdmU6OjxUPjo6Z2V0KGFzc2V0X2tpbmQpYAABKQEAAZkGAAABvQgABCRBc3NldEtpbmTgBEUBIFRoZSB0eXBlIGZvciBhc3NldCBraW5kcyBmb3Igd2hpY2ggdGhlIGNvbnZlcnNpb24gcmF0ZSB0byBuYXRpdmUgYmFsYW5jZSBpcyBzZXQuABAAADhBc3NldFR4UGF5bWVudAAAAZ0GAAAAAAARAAAoQXV0aG9yc2hpcAEoQXV0aG9yc2hpcAQYQXV0aG9yAAAEBAAEZCBBdXRob3Igb2YgY3VycmVudCBibG9jay4AAAAAAAAAFAAARENvbGxhdG9yU2VsZWN0aW9uAURDb2xsYXRvclNlbGVjdGlvbhQ0SW52dWxuZXJhYmxlcwEAwQgEAAQRASBUaGUgaW52dWxuZXJhYmxlLCBwZXJtaXNzaW9uZWQgY29sbGF0b3JzLiBUaGlzIGxpc3QgbXVzdCBiZSBzb3J0ZWQuADRDYW5kaWRhdGVMaXN0AQDFCAQAFGkBIFRoZSAoY29tbXVuaXR5LCBsaW1pdGVkKSBjb2xsYXRpb24gY2FuZGlkYXRlcy4gYENhbmRpZGF0ZXNgIGFuZCBgSW52dWxuZXJhYmxlc2Agc2hvdWxkIGJlUCBtdXR1YWxseSBleGNsdXNpdmUuAHUBIFRoaXMgbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGRlcG9zaXQgYW5kIHdoZW4gdGhlIGRlcG9zaXRzIGFyZSBlcXVhbCwgdGhlIGxlYXN0oCByZWNlbnRseSB1cGRhdGVkIGlzIGNvbnNpZGVyZWQgZ3JlYXRlci4ARExhc3RBdXRob3JlZEJsb2NrAQEEBQQ4EAAAAAAEhCBMYXN0IGJsb2NrIGF1dGhvcmVkIGJ5IGNvbGxhdG9yLgBERGVzaXJlZENhbmRpZGF0ZXMBADgQAAAAAAx4IERlc2lyZWQgbnVtYmVyIG9mIGNhbmRpZGF0ZXMuAHUBIFRoaXMgc2hvdWxkIGlkZWFsbHkgYWx3YXlzIGJlIGxlc3MgdGhhbiBbYENvbmZpZzo6TWF4Q2FuZGlkYXRlc2BdIGZvciB3ZWlnaHRzIHRvIGJlIGNvcnJlY3QuADRDYW5kaWRhY3lCb25kAQDEQAAAAAAAAAAAAAAAAAAAAAAMuCBGaXhlZCBhbW91bnQgdG8gZGVwb3NpdCB0byBiZWNvbWUgYSBjb2xsYXRvci4AQQEgV2hlbiBhIGNvbGxhdG9yIGNhbGxzIGBsZWF2ZV9pbnRlbnRgIHRoZXkgaW1tZWRpYXRlbHkgcmVjZWl2ZSB0aGUgZGVwb3NpdCBiYWNrLgABMQEAAaEGABgUUG90SWTRCCBQb3RTdGFrZQT0IEFjY291bnQgSWRlbnRpZmllciBmcm9tIHdoaWNoIHRoZSBpbnRlcm5hbCBQb3QgaXMgZ2VuZXJhdGVkLgA0TWF4Q2FuZGlkYXRlczgQZAAAAAzIIE1heGltdW0gbnVtYmVyIG9mIGNhbmRpZGF0ZXMgdGhhdCB3ZSBzaG91bGQgaGF2ZS4AzCBUaGlzIGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBpbnZ1bG5lcmFibGVzLgBQTWluRWxpZ2libGVDb2xsYXRvcnM4EAQAAAAMVQEgTWluaW11bSBudW1iZXIgZWxpZ2libGUgY29sbGF0b3JzLiBTaG91bGQgYWx3YXlzIGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiBUaGlzIGluY2x1ZGVzUQEgSW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlcmUgd2lsbCBhbHdheXMgYmUgb25lIGNvbGxhdG9yIHdobyBjYW5EIHByb2R1Y2UgYSBibG9jay4AQE1heEludnVsbmVyYWJsZXM4EBQAAAAEhCBNYXhpbXVtIG51bWJlciBvZiBpbnZ1bG5lcmFibGVzLgA0S2lja1RocmVzaG9sZDgQMCoAAAAALHBvdF9hY2NvdW50BIBtb2RsUG90U3Rha2UAAAAAAAAAAAAAAAAAAAAAAAAAAASgIEdldHMgdGhpcyBwYWxsZXQncyBkZXJpdmVkIHBvdCBhY2NvdW50LgAB1QgABCxWYWxpZGF0b3JJZAQEdCBBIHN0YWJsZSBJRCBmb3IgYSB2YWxpZGF0b3IuABUAABxTZXNzaW9uARxTZXNzaW9uIChWYWxpZGF0b3JzAQDMBAAEfCBUaGUgY3VycmVudCBzZXQgb2YgdmFsaWRhdG9ycy4AMEN1cnJlbnRJbmRleAEAOBAAAAAABHggQ3VycmVudCBpbmRleCBvZiB0aGUgc2Vzc2lvbi4ANFF1ZXVlZENoYW5nZWQBAMgEAAg5ASBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIGlkZW50aXRpZXMgb3Igd2VpZ2h0aW5nIGJlaGluZCB0aGUgdmFsaWRhdG9yc6QgaGFzIGNoYW5nZWQgaW4gdGhlIHF1ZXVlZCB2YWxpZGF0b3Igc2V0LgAoUXVldWVkS2V5cwEA2QgEAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy4ASERpc2FibGVkVmFsaWRhdG9ycwEA4QgEABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4AIE5leHRLZXlzAAEEBQQ5AQQABJwgVGhlIG5leHQgc2Vzc2lvbiBrZXlzIGZvciBhIHZhbGlkYXRvci4AIEtleU93bmVyAAEEBfEIBAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAERFeHRlcm5hbGx5U2V0S2V5cwABBAUEEAQAEDEBIEFjY291bnRzIHdob3NlIGtleXMgd2VyZSBzZXQgdmlhIGBTZXNzaW9uSW50ZXJmYWNlYCAoZXh0ZXJuYWwgcGF0aCkgd2l0aG91dDkBIGluY3JlbWVudGluZyB0aGUgY29uc3VtZXIgcmVmZXJlbmNlIG9yIHBsYWNpbmcgYSBrZXkgZGVwb3NpdC4gYGRvX3B1cmdlX2tleXNgOQEgb25seSBkZWNyZW1lbnRzIGNvbnN1bWVycyBmb3IgYWNjb3VudHMgdGhhdCB3ZXJlIHJlZ2lzdGVyZWQgdGhyb3VnaCB0aGUgbG9jYWxAIHNlc3Npb24gcGFsbGV0LgABNQEAAaUGAAQoS2V5RGVwb3NpdMRAAAAAAAAAAAAAAAAAAAAAAASkIFRoZSBhbW91bnQgdG8gYmUgaGVsZCB3aGVuIHNldHRpbmcga2V5cy4AAfkIAAgsVmFsaWRhdG9ySWQEBHQgQSBzdGFibGUgSUQgZm9yIGEgdmFsaWRhdG9yLhBLZXlzOQEEKCBUaGUga2V5cy4AFgAAEEF1cmEBEEF1cmEILEF1dGhvcml0aWVzAQD9CAQABGwgVGhlIGN1cnJlbnQgYXV0aG9yaXR5IHNldC4ALEN1cnJlbnRTbG90AQAFCSAAAAAAAAAAAAyAIFRoZSBjdXJyZW50IHNsb3Qgb2YgdGhpcyBibG9jay4AlCBUaGlzIHdpbGwgYmUgc2V0IGluIGBvbl9pbml0aWFsaXplYC4AAAAEMFNsb3REdXJhdGlvbigg4C4AAAAAAAAUDQEgVGhlIHNsb3QgZHVyYXRpb24gQXVyYSBzaG91bGQgcnVuIHdpdGgsIGV4cHJlc3NlZCBpbiBtaWxsaXNlY29uZHMuACEBIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIGNhbiBiZSBjaGFuZ2VkIHdpdGggYSBydW50aW1lIHVwZ3JhZGUuADUBIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBlaXRoZXIgdXNlIFtgTWluaW11bVBlcmlvZFRpbWVzVHdvYF0gb3IgYSBjb25zdC4AAAQsQXV0aG9yaXR5SWQ9AQSYIFRoZSBpZGVudGlmaWVyIHR5cGUgZm9yIGFuIGF1dGhvcml0eS4AFwAAHEF1cmFFeHQBHEF1cmFFeHQILEF1dGhvcml0aWVzAQD9CAQAFJQgU2VydmVzIGFzIGNhY2hlIGZvciB0aGUgYXV0aG9yaXRpZXMuAHEBIFRoZSBhdXRob3JpdGllcyBpbiBBdVJhIGFyZSBvdmVyd3JpdHRlbiBpbiBgb25faW5pdGlhbGl6ZWAgd2hlbiB3ZSBzd2l0Y2ggdG8gYSBuZXcgc2Vzc2lvbixdASBidXQgd2UgcmVxdWlyZSB0aGUgb2xkIGF1dGhvcml0aWVzIHRvIHZlcmlmeSB0aGUgc2VhbCB3aGVuIHZhbGlkYXRpbmcgYSBQb1YuIFRoaXMgd2lsbA0BIGFsd2F5cyBiZSB1cGRhdGVkIHRvIHRoZSBsYXRlc3QgQXVSYSBhdXRob3JpdGllcyBpbiBgb25fZmluYWxpemVgLgA0UmVsYXlTbG90SW5mbwAACQkEABAJASBDdXJyZW50IHJlbGF5IGNoYWluIHNsb3QgcGFpcmVkIHdpdGggYSBudW1iZXIgb2YgYXV0aG9yZWQgYmxvY2tzLgBlASBUaGlzIGlzIHVwZGF0ZWQgaW4gW2BGaXhlZFZlbG9jaXR5Q29uc2Vuc3VzSG9vazo6b25fc3RhdGVfcHJvb2ZgXSB3aXRoIHRoZSBjdXJyZW50IHJlbGF53CBjaGFpbiBzbG90IGFzIHByb3ZpZGVkIGJ5IHRoZSByZWxheSBjaGFpbiBzdGF0ZSBwcm9vZi4AAAAAAAAAGAAAJFhjbXBRdWV1ZQEkWGNtcFF1ZXVlHFBJbmJvdW5kWGNtcFN1c3BlbmRlZAEADQkEACANASBUaGUgc3VzcGVuZGVkIGluYm91bmQgWENNUCBjaGFubmVscy4gQWxsIG90aGVycyBhcmUgbm90IHN1c3BlbmRlZC4AcQEgVGhpcyBpcyBhIGBTdG9yYWdlVmFsdWVgIGluc3RlYWQgb2YgYSBgU3RvcmFnZU1hcGAgc2luY2Ugd2UgZXhwZWN0IG11bHRpcGxlIHJlYWRzIHBlciBibG9ja2kBIHRvIGRpZmZlcmVudCBrZXlzIHdpdGggYSBvbmUgYnl0ZSBwYXlsb2FkLiBUaGUgYWNjZXNzIHRvIGBCb3VuZGVkQlRyZWVTZXRgIHdpbGwgYmUgY2FjaGVkFQEgd2l0aGluIHRoZSBibG9jayBhbmQgdGhlcmVmb3JlIG9ubHkgaW5jbHVkZWQgb25jZSBpbiB0aGUgcHJvb2Ygc2l6ZS4AZQEgTk9URTogVGhlIFBvViBiZW5jaG1hcmtpbmcgY2Fubm90IGtub3cgdGhpcyBhbmQgd2lsbCBvdmVyLWVzdGltYXRlLCBidXQgdGhlIGFjdHVhbCBwcm9vZkQgd2lsbCBiZSBzbWFsbGVyLgBIT3V0Ym91bmRYY21wU3RhdHVzAQAVCQQAGF0BIFRoZSBub24tZW1wdHkgWENNUCBjaGFubmVscyBpbiBvcmRlciBvZiBiZWNvbWluZyBub24tZW1wdHksIGFuZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0UQEgYW5kIGxhc3Qgb3V0Ym91bmQgbWVzc2FnZS4gSWYgdGhlIHR3byBpbmRpY2VzIGFyZSBlcXVhbCwgdGhlbiBpdCBpbmRpY2F0ZXMgYW4gZW1wdHlZASBxdWV1ZSBhbmQgdGhlcmUgbXVzdCBiZSBhIG5vbi1gT2tgIGBPdXRib3VuZFN0YXR1c2AuIFdlIGFzc3VtZSBxdWV1ZXMgZ3JvdyBubyBncmVhdGVyWQEgdGhhbiA2NTUzNSBpdGVtcy4gUXVldWUgaW5kaWNlcyBmb3Igbm9ybWFsIG1lc3NhZ2VzIGJlZ2luIGF0IG9uZTsgemVybyBpcyByZXNlcnZlZCBpbhEBIGNhc2Ugb2YgdGhlIG5lZWQgdG8gc2VuZCBhIGhpZ2gtcHJpb3JpdHkgc2lnbmFsIG1lc3NhZ2UgdGhpcyBibG9jay4JASBUaGUgYm9vbCBpcyB0cnVlIGlmIHRoZXJlIGlzIGEgc2lnbmFsIG1lc3NhZ2Ugd2FpdGluZyB0byBiZSBzZW50LgBQT3V0Ym91bmRYY21wTWVzc2FnZXMBAQgCBSkJLQkEAAS8IFRoZSBtZXNzYWdlcyBvdXRib3VuZCBpbiBhIGdpdmVuIFhDTVAgY2hhbm5lbC4AOFNpZ25hbE1lc3NhZ2VzAQEEApwtCQQABKAgQW55IHNpZ25hbCBtZXNzYWdlcyB3YWl0aW5nIHRvIGJlIHNlbnQuACxRdWV1ZUNvbmZpZwEAMQkwIAAAADAAAAAIAAAABBUBIFRoZSBjb25maWd1cmF0aW9uIHdoaWNoIGNvbnRyb2xzIHRoZSBkeW5hbWljcyBvZiB0aGUgb3V0Ym91bmQgcXVldWUuADhRdWV1ZVN1c3BlbmRlZAEAyAQABEEBIFdoZXRoZXIgb3Igbm90IHRoZSBYQ01QIHF1ZXVlIGlzIHN1c3BlbmRlZCBmcm9tIGV4ZWN1dGluZyBpbmNvbWluZyBYQ01zIG9yIG5vdC4ARERlbGl2ZXJ5RmVlRmFjdG9yAQEEBZwtAUAAAGSns7bgDQAAAAAAAAAABMQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkuAAFBAQABqQYADExNYXhJbmJvdW5kU3VzcGVuZGVkOBDoAwAAFEkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gYmUgc3VzcGVuZGVkIHNpbXVsdGFuZW91c2x5LgBdASBBbnkgZnVydGhlciBjaGFubmVsIHN1c3BlbnNpb25zIHdpbGwgZmFpbCBhbmQgbWVzc2FnZXMgbWF5IGdldCBkcm9wcGVkIHdpdGhvdXQgZnVydGhlckUBIG5vdGljZS4gQ2hvb3NpbmcgYSBoaWdoIHZhbHVlICgxMDAwKSBpcyBva2F5OyB0aGUgdHJhZGUtb2ZmIHRoYXQgaXMgZGVzY3JpYmVkIGlu2CBbYEluYm91bmRYY21wU3VzcGVuZGVkYF0gc3RpbGwgYXBwbGllcyBhdCB0aGF0IHNjYWxlLgBkTWF4QWN0aXZlT3V0Ym91bmRDaGFubmVsczgQgAAAACBlASBNYXhpbWFsIG51bWJlciBvZiBvdXRib3VuZCBYQ01QIGNoYW5uZWxzIHRoYXQgY2FuIGhhdmUgbWVzc2FnZXMgcXVldWVkIGF0IHRoZSBzYW1lIHRpbWUuAFUBIElmIHRoaXMgaXMgcmVhY2hlZCwgdGhlbiBubyBmdXJ0aGVyIG1lc3NhZ2VzIGNhbiBiZSBzZW50IHRvIGNoYW5uZWxzIHRoYXQgZG8gbm90IHlldF0BIGhhdmUgYSBtZXNzYWdlIHF1ZXVlZC4gVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBleHBlY3RlZCBtYXhpbXVtIG9mIG91dGJvdW5kIGNoYW5uZWxzYQEgd2hpY2ggaXMgZGV0ZXJtaW5lZCBieSBbYFNlbGY6OkNoYW5uZWxJbmZvYF0uIEl0IGlzIGltcG9ydGFudCB0byBzZXQgdGhpcyBsYXJnZSBlbm91Z2gsXQEgc2luY2Ugb3RoZXJ3aXNlIHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgcHJvdG9jb2wgd2lsbCBub3Qgd29yayBhcyBpbnRlbmRlZCBhbmQgbWVzc2FnZXNRASBtYXkgYmUgZHJvcHBlZC4gVGhpcyB2YWx1ZSBpbmNyZWFzZXMgdGhlIFBvViBhbmQgc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcGlja2VkIHRvb00BIGhpZ2guIEdvdmVybmFuY2UgbmVlZHMgdG8gcGF5IGF0dGVudGlvbiB0byBub3Qgb3BlbiBtb3JlIGNoYW5uZWxzIHRoYW4gdGhpcyB2YWx1ZS4ALE1heFBhZ2VTaXplOBAAnAEAFLggVGhlIG1heGltYWwgcGFnZSBzaXplIGZvciBIUk1QIG1lc3NhZ2UgcGFnZXMuAGEBIEEgbG93ZXIgbGltaXQgY2FuIGJlIHNldCBkeW5hbWljYWxseSwgYnV0IHRoaXMgaXMgdGhlIGhhcmQtbGltaXQgZm9yIHRoZSBQb1Ygd29yc3QgY2FzZVUBIGJlbmNobWFya2luZy4gVGhlIGxpbWl0IGZvciB0aGUgc2l6ZSBvZiBhIG1lc3NhZ2UgaXMgc2xpZ2h0bHkgYmVsb3cgdGhpcywgc2luY2Ugc29tZbggb3ZlcmhlYWQgaXMgaW5jdXJyZWQgZm9yIGVuY29kaW5nIHRoZSBmb3JtYXQuAAE1CQAAAB4AACxQb2xrYWRvdFhjbQEsUG9sa2Fkb3RYY208MFF1ZXJ5Q291bnRlcgEAKCAAAAAAAAAAAASIIFRoZSBsYXRlc3QgYXZhaWxhYmxlIHF1ZXJ5IGluZGV4LgAcUXVlcmllcwABBAIoOQkEAARUIFRoZSBvbmdvaW5nIHF1ZXJpZXMuAChBc3NldFRyYXBzAQEEBjw4EAAAAAAQaCBUaGUgZXhpc3RpbmcgYXNzZXQgdHJhcHMuAGEBIEtleSBpcyB0aGUgYmxha2UyIDI1NiBoYXNoIG9mIChvcmlnaW4sIHZlcnNpb25lZCBgQXNzZXRzYCkgcGFpci4gVmFsdWUgaXMgdGhlIG51bWJlciBvZh0BIHRpbWVzIHRoaXMgcGFpciBoYXMgYmVlbiB0cmFwcGVkICh1c3VhbGx5IGp1c3QgMSBpZiBpdCBleGlzdHMgYXQgYWxsKS4AOFNhZmVYY21WZXJzaW9uAAA4BAAIYQEgRGVmYXVsdCB2ZXJzaW9uIHRvIGVuY29kZSBYQ00gd2hlbiBsYXRlc3QgdmVyc2lvbiBvZiBkZXN0aW5hdGlvbiBpcyB1bmtub3duLiBJZiBgTm9uZWAsPQEgdGhlbiB0aGUgZGVzdGluYXRpb25zIHdob3NlIFhDTSB2ZXJzaW9uIGlzIHVua25vd24gYXJlIGNvbnNpZGVyZWQgdW5yZWFjaGFibGUuAEBTdXBwb3J0ZWRWZXJzaW9uAAEIBQJNCTgEAATwIFRoZSBMYXRlc3QgdmVyc2lvbnMgdGhhdCB3ZSBrbm93IHZhcmlvdXMgbG9jYXRpb25zIHN1cHBvcnQuAEBWZXJzaW9uTm90aWZpZXJzAAEIBQJNCSgEAAQFASBBbGwgbG9jYXRpb25zIHRoYXQgd2UgaGF2ZSByZXF1ZXN0ZWQgdmVyc2lvbiBub3RpZmljYXRpb25zIGZyb20uAFBWZXJzaW9uTm90aWZ5VGFyZ2V0cwABCAUCTQlRCQQACHEBIFRoZSB0YXJnZXQgbG9jYXRpb25zIHRoYXQgYXJlIHN1YnNjcmliZWQgdG8gb3VyIHZlcnNpb24gY2hhbmdlcywgYXMgd2VsbCBhcyB0aGUgbW9zdCByZWNlbnSUIG9mIG91ciB2ZXJzaW9ucyB3ZSBpbmZvcm1lZCB0aGVtIG9mLgBUVmVyc2lvbkRpc2NvdmVyeVF1ZXVlAQBVCQQADGUBIERlc3RpbmF0aW9ucyB3aG9zZSBsYXRlc3QgWENNIHZlcnNpb24gd2Ugd291bGQgbGlrZSB0byBrbm93LiBEdXBsaWNhdGVzIG5vdCBhbGxvd2VkLCBhbmRxASB0aGUgYHUzMmAgY291bnRlciBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgYSBzZW5kIHRvIHRoZSBkZXN0aW5hdGlvbiBoYXMgYmVlbiBhdHRlbXB0ZWQsjCB3aGljaCBpcyB1c2VkIGFzIGEgcHJpb3JpdGl6YXRpb24uAEBDdXJyZW50TWlncmF0aW9uAABhCQQABJwgVGhlIGN1cnJlbnQgbWlncmF0aW9uJ3Mgc3RhZ2UsIGlmIGFueS4AVFJlbW90ZUxvY2tlZEZ1bmdpYmxlcwABDAUCAmUJaQkEAATwIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gYSByZW1vdGUgY2hhaW4uADxMb2NrZWRGdW5naWJsZXMAAQQCBHkJBAAE4CBGdW5naWJsZSBhc3NldHMgd2hpY2ggd2Uga25vdyBhcmUgbG9ja2VkIG9uIHRoaXMgY2hhaW4uAFRYY21FeGVjdXRpb25TdXNwZW5kZWQBAMgEAAS0IEdsb2JhbCBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBYQ00gZXhlY3V0b3IuADxTaG91bGRSZWNvcmRYY20BAMgEABxZASBXaGV0aGVyIG9yIG5vdCBpbmNvbWluZyBYQ01zIChib3RoIGV4ZWN1dGVkIGxvY2FsbHkgYW5kIHJlY2VpdmVkKSBzaG91bGQgYmUgcmVjb3JkZWQuxCBPbmx5IG9uZSBYQ00gcHJvZ3JhbSB3aWxsIGJlIHJlY29yZGVkIGF0IGEgdGltZS4pASBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgaW4gcnVudGltZSBBUElzLCBhbmQgaXQncyBhZHZpc2VkIGl0IHN0YXlzIGZhbHNlDQEgZm9yIGFsbCBvdGhlciB1c2UgY2FzZXMsIHNvIGFzIHRvIG5vdCBkZWdyYWRlIHJlZ3VsYXIgcGVyZm9ybWFuY2UuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4ALFJlY29yZGVkWGNtAABdAgQAGEkBIElmIFtgU2hvdWxkUmVjb3JkWGNtYF0gaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhlIGxhc3QgWENNIHByb2dyYW0gZXhlY3V0ZWQgbG9jYWxseVQgd2lsbCBiZSBzdG9yZWQgaGVyZS4pASBSdW50aW1lIEFQSXMgY2FuIGZldGNoIHRoZSBYQ00gdGhhdCB3YXMgZXhlY3V0ZWQgYnkgYWNjZXNzaW5nIHRoaXMgdmFsdWUuAFkBIE9ubHkgcmVsZXZhbnQgaWYgdGhpcyBwYWxsZXQgaXMgYmVpbmcgdXNlZCBhcyB0aGUgW2B4Y21fZXhlY3V0b3I6OnRyYWl0czo6UmVjb3JkWGNtYF3IIGltcGxlbWVudGF0aW9uIGluIHRoZSBYQ00gZXhlY3V0b3IgY29uZmlndXJhdGlvbi4AREF1dGhvcml6ZWRBbGlhc2VzAAEEAkkBhQkEAAxlASBNYXAgb2YgYXV0aG9yaXplZCBhbGlhc2VycyBvZiBsb2NhbCBvcmlnaW5zLiBFYWNoIGxvY2FsIGxvY2F0aW9uIGNhbiBhdXRob3JpemUgYSBsaXN0IG9mWQEgb3RoZXIgbG9jYXRpb25zIHRvIGFsaWFzIGludG8gaXQuIEVhY2ggYWxpYXNlciBpcyBvbmx5IHZhbGlkIHVudGlsIGl0cyBpbm5lciBgZXhwaXJ5YDggYmxvY2sgbnVtYmVyLgABRQEIAQK5AVRoaXMgZXh0cmluc2ljIHVzZXMgYFdlaWdodExpbWl0OjpVbmxpbWl0ZWRgLCBwbGVhc2UgbWlncmF0ZSB0byBgbGltaXRlZF90ZWxlcG9ydF9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAIC2QFUaGlzIGV4dHJpbnNpYyB1c2VzIGBXZWlnaHRMaW1pdDo6VW5saW1pdGVkYCwgcGxlYXNlIG1pZ3JhdGUgdG8gYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIG9yIGB0cmFuc2Zlcl9hc3NldHNgAAGtBgAQRFVuaXZlcnNhbExvY2F0aW9u5BgCCQIAeRcEhCBUaGlzIGNoYWluJ3MgVW5pdmVyc2FsIExvY2F0aW9uLgBQQWR2ZXJ0aXNlZFhjbVZlcnNpb244EAUAAAAIJQEgVGhlIGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbiB0aGF0IHdlIGFkdmVydGlzZS4gR2VuZXJhbGx5IGp1c3Qgc2V0IGl0IHRvhCBgcGFsbGV0X3hjbTo6Q3VycmVudFhjbVZlcnNpb25gLgAoTWF4TG9ja2VyczgQCAAAAAQZASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbG9jYWwgWENNIGxvY2tzIHRoYXQgYSBzaW5nbGUgYWNjb3VudCBtYXkgaGF2ZS4AWE1heFJlbW90ZUxvY2tDb25zdW1lcnM4EAAAAAAE/CBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uc3VtZXJzIGEgc2luZ2xlIHJlbW90ZSBsb2NrIG1heSBoYXZlLgABnQkEGAK8VXNlIGBMb2NhbEV4ZWN1dGlvbkluY29tcGxldGVXaXRoRXJyb3JgIGluc3RlYWQBGDIwLjAuMAgsUnVudGltZUNhbGwgBGQgVGhlIHJ1bnRpbWUgYENhbGxgIHR5cGUucFJlbW90ZUxvY2tDb25zdW1lcklkZW50aWZpZXIQBMQgVGhlIElEIHR5cGUgZm9yIGxvY2FsIGNvbnN1bWVycyBvZiByZW1vdGUgbG9ja3MuAB8AAChDdW11bHVzWGNtAAEZAwABvQYAAAAAACAAADBNZXNzYWdlUXVldWUBME1lc3NhZ2VRdWV1ZQwwQm9va1N0YXRlRm9yAQEEBSEDpQl0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzCBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IGFuZCBsYXN0IChub24tZW1wdHkpIHBhZ2VzLgAsU2VydmljZUhlYWQAACEDBAAEvCBUaGUgb3JpZ2luIGF0IHdoaWNoIHdlIHNob3VsZCBiZWdpbiBzZXJ2aWNpbmcuABRQYWdlcwABCAUFsQm1CQQABIggVGhlIG1hcCBvZiBwYWdlIGluZGljZXMgdG8gcGFnZXMuAAEdAwABwQYAECBIZWFwU2l6ZTgQAJwBABQ9ASBUaGUgc2l6ZSBvZiB0aGUgcGFnZTsgdGhpcyBpbXBsaWVzIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB3aGljaCBjYW4gYmUgc2VudC4AWQEgQSBnb29kIHZhbHVlIGRlcGVuZHMgb24gdGhlIGV4cGVjdGVkIG1lc3NhZ2Ugc2l6ZXMsIHRoZWlyIHdlaWdodHMsIHRoZSB3ZWlnaHQgdGhhdCBpc10BIGF2YWlsYWJsZSBmb3IgcHJvY2Vzc2luZyB0aGVtIGFuZCB0aGUgbWF4aW1hbCBuZWVkZWQgbWVzc2FnZSBzaXplLiBUaGUgbWF4aW1hbCBtZXNzYWdlEQEgc2l6ZSBpcyBzbGlnaHRseSBsb3dlciB0aGFuIHRoaXMgYXMgZGVmaW5lZCBieSBbYE1heE1lc3NhZ2VMZW5PZmBdLgAgTWF4U3RhbGU4EAgAAAAMXQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0YWxlIHBhZ2VzIChpLmUuIG9mIG92ZXJ3ZWlnaHQgbWVzc2FnZXMpIGFsbG93ZWQgYmVmb3JlIGN1bGxpbmdRASBjYW4gaGFwcGVuLiBPbmNlIHRoZXJlIGFyZSBtb3JlIHN0YWxlIHBhZ2VzIHRoYW4gdGhpcywgdGhlbiBoaXN0b3JpY2FsIHBhZ2VzIG1heSBiZfwgZHJvcHBlZCwgZXZlbiBpZiB0aGV5IGNvbnRhaW4gdW5wcm9jZXNzZWQgb3ZlcndlaWdodCBtZXNzYWdlcy4ANFNlcnZpY2VXZWlnaHSlAiwBBwBYQPuiAgDgABhBASBUaGUgYW1vdW50IG9mIHdlaWdodCAoaWYgYW55KSB3aGljaCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUgZm9yqCBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2luaXRpYWxpemVgLgD8IFRoaXMgbWF5IGJlIGxlZ2l0aW1hdGVseSBgTm9uZWAgaW4gdGhlIGNhc2UgdGhhdCB5b3Ugd2lsbCBjYWxsXQEgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBtYW51YWxseSBvciBzZXQgW2BTZWxmOjpJZGxlTWF4U2VydmljZVdlaWdodGBdIHRvIGhhdmVUIGl0IHJ1biBpbiBgb25faWRsZWAuAFBJZGxlTWF4U2VydmljZVdlaWdodKUCLAEHAFhA+6ICAOAAFF0BIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgKGlmIGFueSkgdG8gYmUgdXNlZCBmcm9tIHJlbWFpbmluZyB3ZWlnaHQgYG9uX2lkbGVgIHdoaWNoQQEgc2hvdWxkIGJlIHByb3ZpZGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlIGZvciBzZXJ2aWNpbmcgZW5xdWV1ZWQgaXRlbXMgYG9uX2lkbGVgLj0BIFVzZWZ1bCBmb3IgcGFyYWNoYWlucyB0byBwcm9jZXNzIG1lc3NhZ2VzIGF0IHRoZSBzYW1lIGJsb2NrIHRoZXkgYXJlIHJlY2VpdmVkLgApASBJZiBgTm9uZWAsIGl0IHdpbGwgbm90IGNhbGwgYFNlcnZpY2VRdWV1ZXM6OnNlcnZpY2VfcXVldWVzYCBpbiBgb25faWRsZWAuAAG9CQAEEFNpemU4BFQgUGFnZS9oZWFwIHNpemUgdHlwZS4AIgAAHFV0aWxpdHkAASUDAAHJBgAETGJhdGNoZWRfY2FsbHNfbGltaXQ4EKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgABwQkACCxSdW50aW1lQ2FsbCAEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLjRQYWxsZXRzT3JpZ2luMQME8CBUaGUgY2FsbGVyIG9yaWdpbiwgb3ZlcmFyY2hpbmcgdHlwZSBvZiBhbGwgcGFsbGV0cyBvcmlnaW5zLgAoAAAgTXVsdGlzaWcBIE11bHRpc2lnBCRNdWx0aXNpZ3MAAQgFAsUJyQkEAASUIFRoZSBzZXQgb2Ygb3BlbiBtdWx0aXNpZyBvcGVyYXRpb25zLgABkQMAAdEGAAwsRGVwb3NpdEJhc2XEQAA8kWAEAAAAAAAAAAAAAAAYWQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbiBvciB0b4Qgc3RvcmUgYSBkaXNwYXRjaCBjYWxsIGZvciBsYXRlci4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzMQEgYDQgKyBzaXplb2YoKEJsb2NrTnVtYmVyLCBCYWxhbmNlLCBBY2NvdW50SWQpKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzgCBgMzIgKyBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuADREZXBvc2l0RmFjdG9yxEAAILy+AAAAAAAAAAAAAAAADFUBIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciB1bml0IHRocmVzaG9sZCB3aGVuIGNyZWF0aW5nIGEgbXVsdGlzaWcgZXhlY3V0aW9uLgAlASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBtb3JlIGludG8gYSBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4AOE1heFNpZ25hdG9yaWVzOBBkAAAABOwgVGhlIG1heGltdW0gYW1vdW50IG9mIHNpZ25hdG9yaWVzIGFsbG93ZWQgaW4gdGhlIG11bHRpc2lnLgAB0QkABCxSdW50aW1lQ2FsbCAEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLgApAAAQU3VkbwEQU3VkbwQMS2V5AAAEBAAEhCBUaGUgYEFjY291bnRJZGAgb2YgdGhlIHN1ZG8ga2V5LgABnQMAAdUGAAAB1QkABCxSdW50aW1lQ2FsbCAESCBBIHN1ZG8tYWJsZSBjYWxsLgAqAAA8VmVyaWZ5U2lnbmF0dXJlAAAAAAAEJFNpZ25hdHVyZdkDBPQgU2lnbmF0dXJlIHR5cGUgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIHRoaXMgcGFsbGV0IGNhbiB2ZXJpZnkuACsAABRQcm94eQEUUHJveHkIHFByb3hpZXMBAQQFBNkJRAAAAAAAAAAAAAAAAAAAAAAACEUBIFRoZSBzZXQgb2YgYWNjb3VudCBwcm94aWVzLiBNYXBzIHRoZSBhY2NvdW50IHdoaWNoIGhhcyBkZWxlZ2F0ZWQgdG8gdGhlIGFjY291bnRzIQEgd2hpY2ggYXJlIGJlaW5nIGRlbGVnYXRlZCB0bywgdG9nZXRoZXIgd2l0aCB0aGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdC4ANEFubm91bmNlbWVudHMBAQQFBOkJRAAAAAAAAAAAAAAAAAAAAAAABKwgVGhlIGFubm91bmNlbWVudHMgbWFkZSBieSB0aGUgcHJveHkgKGtleSkuAAGhAwAB3QYAGEBQcm94eURlcG9zaXRCYXNlxEAADHdCAwAAAAAAAAAAAAAAEBEBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBwcm94eS4AAQEgVGhpcyBpcyBoZWxkIGZvciBhbiBhZGRpdGlvbmFsIHN0b3JhZ2UgaXRlbSB3aG9zZSB2YWx1ZSBzaXplIGlzJQEgYHNpemVvZihCYWxhbmNlKWAgYnl0ZXMgYW5kIHdob3NlIGtleSBzaXplIGlzIGBzaXplb2YoQWNjb3VudElkKWAgYnl0ZXMuAEhQcm94eURlcG9zaXRGYWN0b3LEQAABssQAAAAAAAAAAAAAAAAUvCBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgcHJveHkgYWRkZWQuADUBIFRoaXMgaXMgaGVsZCBmb3IgYWRkaW5nIDMyIGJ5dGVzIHBsdXMgYW4gaW5zdGFuY2Ugb2YgYFByb3h5VHlwZWAgbW9yZSBpbnRvIGFhASBwcmUtZXhpc3Rpbmcgc3RvcmFnZSB2YWx1ZS4gVGh1cywgd2hlbiBjb25maWd1cmluZyBgUHJveHlEZXBvc2l0RmFjdG9yYCBvbmUgc2hvdWxkIHRha2X0IGludG8gYWNjb3VudCBgMzIgKyBwcm94eV90eXBlLmVuY29kZSgpLmxlbigpYCBieXRlcyBvZiBkYXRhLgAoTWF4UHJveGllczgQIAAAAATwIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBwcm94aWVzIGFsbG93ZWQgZm9yIGEgc2luZ2xlIGFjY291bnQuAChNYXhQZW5kaW5nOBAgAAAABEUBIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLWRlbGF5ZWQgYW5ub3VuY2VtZW50cyB0aGF0IGFyZSBhbGxvd2VkIHRvIGJlIHBlbmRpbmcuAFxBbm5vdW5jZW1lbnREZXBvc2l0QmFzZcRAABQmcgMAAAAAAAAAAAAAABAxASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGFuIGFubm91bmNlbWVudC4ASQEgVGhpcyBpcyBoZWxkIHdoZW4gYSBuZXcgc3RvcmFnZSBpdGVtIGhvbGRpbmcgYSBgQmFsYW5jZWAgaXMgY3JlYXRlZCAodHlwaWNhbGx5IDE2ICBieXRlcykuAGRBbm5vdW5jZW1lbnREZXBvc2l0RmFjdG9yxEAAAmSJAQAAAAAAAAAAAAAAENQgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIGFubm91bmNlbWVudCBtYWRlLgBZASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyBhbiBgQWNjb3VudElkYCwgYEhhc2hgIGFuZCBgQmxvY2tOdW1iZXJgICh0eXBpY2FsbHkgNjggYnl0ZXMpjCBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuAAH5CQAILFJ1bnRpbWVDYWxsIARsIFRoZSBvdmVyYXJjaGluZyBjYWxsIHR5cGUuJFByb3h5VHlwZakDEFUBIEEga2luZCBvZiBwcm94eTsgc3BlY2lmaWVkIHdpdGggdGhlIHByb3h5IGFuZCBwYXNzZWQgaW4gdG8gdGhlIGBJc1Byb3h5YWJsZWAgZmlsdGVyLlEBIFRoZSBpbnN0YW5jZSBmaWx0ZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gY2FsbCBtYXkgYmUgcHJveGllZCB1bmRlciB0aGlzIHR5cGUuAE0BIElNUE9SVEFOVDogYERlZmF1bHRgIG11c3QgYmUgcHJvdmlkZWQgYW5kIE1VU1QgQkUgdGhlIHRoZSAqbW9zdCBwZXJtaXNzaXZlKiB2YWx1ZS4IGAnXg0Zyeg71jA+gO6+jI8vFFIjZKhqnE3sDv7UO/BdEY2hlY2tfcGVybWlzc2lvbnMIEGNhbGwgKHByb3h5X3R5cGWpA8gE9CBDaGVjayBpZiBhIGBSdW50aW1lQ2FsbGAgaXMgYWxsb3dlZCBmb3IgYSBnaXZlbiBgUHJveHlUeXBlYC4AGAnXg0Zyeg71jA+gO6+jIxcUsGB9Yq8KOzsK0sXVXFgsaXNfc3VwZXJzZXQIIHRvX2NoZWNrqQMcYWdhaW5zdKkDyAT0IENoZWNrIGlmIG9uZSBgUHJveHlUeXBlYCBpcyBhIHN1YnNldCBvZiBhbm90aGVyIGBQcm94eVR5cGVgLgAsAAAYUGVvcGxlARhQZW9wbGUkEEtleXMAAQQCCCgEABRJASBUaGUgY3VycmVudCBpbmRpdmlkdWFscyB3ZSByZWNvZ25pc2UsIGJ1dCBub3QgbmVjZXNzYXJpbHkgeWV0IGluY2x1ZGVkIGluIGEgcmluZy4AdQEgTG9vay11cCBmcm9tIHRoZSBjcnlwdG8gKHB1YmxpYykga2V5IHRvIHRoZSBpbW11dGFibGUgSUQgb2YgdGhlIGluZGl2aWR1YWwgKGBQZXJzb25hbElkYCkuIEFdASBwZXJzb24gY2FuIGhhdmUgdHdvIGRpZmZlcmVudCBlbnRyaWVzIGluIHRoaXMgbWFwIGlmIHRoZXkgcXVldWVkIGEga2V5IG1pZ3JhdGlvbiB3aGljaGQgaGFzbid0IGJlZW4gZW5hY3RlZCB5ZXQuADhDb3VudGVyRm9yS2V5cwEAOBAAAAAABKxDb3VudGVyIGZvciB0aGUgcmVsYXRlZCBjb3VudGVkIHN0b3JhZ2UgbWFwABhQZW9wbGUAAQQCKP0JBAAMSQEgVGhlIGN1cnJlbnQgaW5kaXZpZHVhbHMgd2UgcmVjb2duaXNlLCBidXQgbm90IG5lY2Vzc2FyaWx5IHlldCBpbmNsdWRlZCBpbiBhIHJpbmcuAGUBIEltbXV0YWJsZSBJRCBvZiB0aGUgaW5kaXZpZHVhbCAoYFBlcnNvbmFsSWRgKSB0byBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBrZXkgYW5kIHN0YXR1cy4AOEFsaWFzVG9BY2NvdW50AAEEAkkDBAQABMwgQ29udmVyc2lvbiBvZiBhIGNvbnRleHR1YWwgYWxpYXMgdG8gYW4gYWNjb3VudCBJRC4AOEFjY291bnRUb0FsaWFzAAEEAgRFAwQABMwgQ29udmVyc2lvbiBvZiBhbiBhY2NvdW50IElEIHRvIGEgY29udGV4dHVhbCBhbGlhcy4ATEFjY291bnRUb1BlcnNvbmFsSWQAAQQCBCgEABC8IEFzc29jaWF0aW9uIG9mIGFuIGFjY291bnQgSUQgdG8gYSBwZXJzb25hbCBJRC4AIQEgTWFuYWdlZCB3aXRoIGBzZXRfcGVyc29uYWxfaWRfYWNjb3VudGAgYW5kIGB1bnNldF9wZXJzb25hbF9pZF9hY2NvdW50YC74IFJldmVyc2UgbG9va3VwIGlzIGluc2lkZSBgUGVvcGxlYCBzdG9yYWdlLCBpbnNpZGUgdGhlIHJlY29yZC4AOE5leHRQZXJzb25hbElkAQAoIAAAAAAAAAAABLggVGhlIG5leHQgZnJlZSBhbmQgbmV2ZXIgcmVzZXJ2ZWQgcGVyc29uYWwgSUQuAFxQZW9wbGVDb2xsZWN0aW9uQ3JlYXRlZAEAyAQABMAgV2hldGhlciB0aGUgcGVvcGxlIGNvbGxlY3Rpb24gaGFzIGJlZW4gY3JlYXRlZC4ASFJlc2VydmVkUGVyc29uYWxJZAABBAUoEAQABMAgQ2FuZGlkYXRlcycgcmVzZXJ2ZWQgaWRlbnRpdGllcyB3aGljaCB3ZSB0cmFjay4AAa0DAAHlBgAQMFJpbmdFeHBvbmVudLEEBAkETQEgVGhlIHJpbmcgZXhwb25lbnQgdXNlZCB0byBvcGVyYXRlIHRoZSBwZW9wbGUgbWVtYmVyIGNvbGxlY3Rpb24gaW4gYE1lbWJlclNlcnZpY2VgLgBcT25ib2FyZGluZ1F1ZXVlUGFnZVNpemU4EB4AAAAISQEgTWF4aW11bSBudW1iZXIgb2YgcGVvcGxlIGluY2x1ZGVkIGluIGFuIG9uYm9hcmRpbmcgcXVldWUgcGFnZSBiZWZvcmUgYSBuZXcgb25lIGlzJCBjcmVhdGVkLgBkU3RhbGVBbGlhc0NsZWFudXBJbnRlcnZhbDgQlgAAAAQxASBJbnRlcnZhbCAoaW4gYmxvY2tzKSBhdCB3aGljaCB0aGUgb2ZmY2hhaW4gd29ya2VyIHJ1bnMgc3RhbGUgYWxpYXMgY2xlYW51cC4AcGFjY291bnRfc2V0dXBfdGltZV90b2xlcmFuY2U4EFgCAAAUPQEgVGhlIGFtb3VudCBvZiBibG9jayBudW1iZXIgdG9sZXJhbmNlIHdlIGFsbG93IGZvciBhIHNldHVwIGFjY291bnQgdHJhbnNhY3Rpb24uAAUBIGBzZXRfYWxpYXNfYWNjb3VudGAgYW5kIGBzZXRfcGVyc29uYWxfaWRfYWNjb3VudGAgY2FsbHMgY29udGFpbnNRASBgY2FsbF92YWxpZF9hdGAgYXMgYSBwYXJhbWV0ZXIsIHRob3NlIGNhbGxzIGFyZSB2YWxpZCBpZiB0aGUgYmxvY2sgbnVtYmVyIGlzIHdpdGhpblggdGhlIHRvbGVyYW5jZSBwZXJpb2QuAAEBCgAAADMAABxNb2JSdWxlARxNb2JSdWxlMBxDcmVkaXRzAQEEAggFCnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIwgVGhlIHZvdGluZyByZWNvcmRzIG9mIGFsbCBhbGlhc2VzLgA8Vm90aW5nUGVuYWx0aWVzAAEEAgg4BAAIcQEgVGhlIHZvdGUgcGVuYWx0aWVzIG9mIHVzZXJzIGFuZCB0aGVpciBzdGFydGluZyBtb21lbnQuIFZvdGVycyB3aXRoIHBlbmFsdGllcyBjYW5ub3Qgdm90ZSBpbswgY29udGVtcHQgdW50aWwgdGhlIHBlbmFsdHkgZXhwaXJlcyBhbmQgaXMgcmVtb3ZlZC4AMFZvdGluZ1BvaW50cwEBCAYCCQo4EAAAAAAIZQEgVGhlIGFjY3VtdWxhdGVkIHBvaW50cyBvZiBhbGwgYWxpYXNlcywgZHVyaW5nIGVhY2ggZnVuZGluZyByb3VuZC4gVGhlIHBvaW50cyBhY2N1bXVsYXRlZCEBIGR1cmluZyByb3VuZCBgTmAgY2FuIGJlIHJlZGVlbWVkIGZvciByZXdhcmRzIG9ubHkgZHVyaW5nIHJvdW5kIGBOICsgMWAuABRWb3RlcwABCAICCQrBAwQABLggQWxsIHZvdGVzIGNhc3QsIHNlZ3JlZ2F0ZWQgYnkgY2FzZSBhbmQgdm90ZXIuACRDYXNlQ291bnQBADgQAAAAAAQRASBUaGUgbnVtYmVyIG9mIGNhc2VzLCBvcGVuIG9yIHJlY2VudGx5IGNsb3NlZCwgc3RvcmVkIGluIHRoZSBwYWxsZXQuACRPcGVuQ2FzZXMAAQQCOA0KBAAEKQEgVGhlIG9wZW4gY2FzZXMgcmVjb3JkZWQgaW4gdGhlIHBhbGxldC4gVGhlc2UgY2FzZXMgY2FuIHN0aWxsIGJlIHZvdGVkIG9uLgAkUmlwZUNhc2VzAAEEAjgpCgQADHUBIFRoZSByaXBlIGNhc2VzIHJlY29yZGVkIGluIHRoZSBwYWxsZXQuIFRoZSB2b3RpbmcgaGFzIGNvbmNsdWRlZCBvbiB0aGVzZSBjYXNlcyBhbmQgYSB2ZXJkaWN0ZQEgaGFzIGJlZW4gcmVhY2hlZCwgYnV0IHRoZXkgY2Fubm90IGJlIHJlbW92ZWQgeWV0IGluIG9yZGVyIHRvIGFsbG93IHBlb3BsZSB0byBjbGFpbSB0aGVpchwgdm90ZXMuACREb25lQ2FzZXMAAQQCOC0KBAAIYQEgVGhlIGRvbmUgY2FzZXMgcmVjb3JkZWQgaW4gdGhlIHBhbGxldC4gVGhlc2UgY2FzZXMgYXJlIG9ic29sZXRlIGFuZCBjYW4gYmUgcmVtb3ZlZCBmcm9tJCBzdG9yYWdlLgBEQWNjdW11bGF0ZWRQb2ludHMBACggAAAAAAAAAAAIdQEgVGhlIG51bWJlciBvZiBwb2ludHMgYWNjdW11bGF0ZWQgdGhyb3VnaCBjb3JyZWN0IHZvdGVzIGR1cmluZyB0aGUgY3VycmVudCBwYXlvdXQgcm91bmQuIFRoaXN1ASBhbW91bnQgaXMgZ29pbmcgdG8gZGV0ZXJtaW5lIHRoZSBwb2ludC9yZXdhcmQgZXhjaGFuZ2UgcmF0ZSBvZiB0aGUgbmV4dCByZXdhcmQgcGF5b3V0IHJvdW5kLgBIUGF5b3V0RGlzdHJpYnV0aW9uAAAxCgQABNggRGVzY3JpYmVzIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBjdXJyZW50IHBheW91dCByb3VuZC4AOFJvdW5kU2NoZWR1bGVzAQA1CgQABLggRGVzY3JpYmVzIHRoZSBzY2hlZHVsZXMgb2YgdGhlIHBheW91dCByb3VuZHMuACxBY3RpdmVTaW5jZQAAKAQACG0BIFRoZSB0aW1lc3RhbXAsIGluIHNlY29uZHMsIG9mIHRoZSBtb21lbnQgZW5vdWdoIGFjdGl2ZSB2b3RlcnMgd2VyZSBkZXRlY3RlZCBhbmQgdm90aW5nIHdhczEBIGVuYWJsZWQuIFRoaXMgdmFsdWUgd2lsbCBub3QgYmUgcHJlc2VudCBpZiB0aGVyZSBhcmUgdG9vIGZldyBhY3RpdmUgdm90ZXJzLgABvQMAAekGADhQQ3VycmVuY3lMb2NhdGlvbkluZm/gMAEDAHEXBDIFdsjrCwT0IFRoZSBsb2NhdGlvbiBvZiB0aGUgdXNlZCBjdXJyZW5jeS4gSXQgaXMgaW5mb3JtYXRpb25hbCBvbmx5LgBQTWF4Vm90ZUNsYWltRHVyYXRpb24oIIBRAQAAAAAABAUBIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgYSBjYXNlIHRpbWVzIG91dCBhbmQgY2FuIGJlIHJlYXBlZC4APE1pbkNhc2VEdXJhdGlvbjgQWAIAAARBASBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYSBjYXNlIG11c3Qgc3RheSBvcGVuIGZvciB2b3RpbmcgYmVmb3JlIGl0IGNhbiBiZSBjbG9zZWQuAERNYXhWb3RpbmdEdXJhdGlvbjgQsAQAAAQtASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2Vjb25kcyBmb3Igd2hpY2ggYSBjYXNlIGNvdWxkIHN0YXkgb3BlbiBmb3Igdm90aW5nLgBETWluVHVybm91dE5vbWluYWw4EAEAAAAERQEgVGhlIG1pbmltdW0gbnVtYmVyIG9mIHZvdGVzIGEgY2FzZSBtdXN0IHJlY2VpdmUgYmVmb3JlIGEgdmVyZGljdCBjYW4gYmUgcmVhY2hlZC4AUE1pblR1cm5vdXRQZXJjZW50YWdlQQoECghlASBUaGUgbWluaW11bSBudW1iZXIgb2Ygdm90ZXMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSB0b3RhbCB2b3RlciBjb3VudCBhIGNhc2UgbXVzdCByZWNlaXZlhCBiZWZvcmUgYSB2ZXJkaWN0IGNhbiBiZSByZWFjaGVkLgBUVm90aW5nUGVuYWx0eUR1cmF0aW9uOBDAqAAABNAgVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCBhIHBlbmFsdHkgaXMgYXBwbGllZCBmb3IuAERNYXhWb3Rlc0NsYWltYWJsZTgQCgAAAAT0IFRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlcyBjbGFpbWFibGUgaW4gYSBzaW5nbGUgZXh0cmluc2ljLgBQT2ZmY2hhaW5Xb3JrSW50ZXJ2YWw4EJYAAAAEsCBUaGUgaW50ZXJ2YWwgYXQgd2hpY2ggb2ZmY2hhaW4gd29ya2VyIHJ1bnMuAExDbGVhblZvdGVzQmF0Y2hTaXplOBDoAwAABCUBIE1heGltdW0gbnVtYmVyIG9mIHZvdGVzIHRoYXQgd2lsbCBiZSBjbGVhbmVkIGR1cmluZyBvZmZjaGFpbiB3b3JrZXIgcnVuLgBoVm90ZXNPcGVuRm9yQ2xhaW1zRHVyYXRpb244EFgCAAAIFQEgVGhlIHRpbWUgaW4gc2Vjb25kcyBkdXJpbmcgd2hpY2ggdm90ZXMgY2FuIGJlIGNsYWltZWQgb24gZG9uZSBjYXNlcy7AIE1lYXN1cmVkIGZyb20gdGhlIHRpbWUgdGhlIGNhc2UgYmVjb21lcyAnRG9uZScuAFRNaW5pbXVtVm90ZXJUaHJlc2hvbGQ4EAMAAAAIZQEgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGFjdGl2ZSB2b3RlcnMgcmVxdWlyZWQgdG8gYWxsb3cgdm90aW5nLiBXaGVuIHRoaXMgdGhyZXNob2xkIGlzIG5vdIQgbWV0LCBvcGVuIGNhc2VzIGNhbm5vdCB0aW1lIG91dC4APG1vYl9ydWxlX3BvdF9pZASAbW9kbE1vYlJ3cmRzAAAAAAAAAAAAAAAAAAAAAAAAAAAE4CBHZXQgYSB1bmlxdWUsIGluYWNjZXNzaWJsZSBhY2NvdW50IElEIGZyb20gdGhlIGBQb3RJZGAuAEBtb2JfcnVsZV9jb250ZXh0CIBwb3A6cG9sa2Fkb3QubmV0d29yay9tb2ItcnVsZSAgIAhRASBUaGUgY29udGV4dCB1c2VkIGZvciB0aGUgcHJvb2ZzIHJlcXVpcmVkIHRvIGF1dGhlbnRpY2F0ZSBhcyBhIHBlcnNvbmFsIGFsaWFzIGluIG1vYhggcnVsZS4AAUUKAAAANAAAKFByb29mT2ZJbmsBKFByb29mT2ZJbmssKENhbmRpZGF0ZXMAAQQCBEkKBAAESQEgVGhlIGN1cnJlbnQgcGVyc29uYWwgaWRlbnRpdGllcyB3aGljaCBhcmUgZ29pbmcgdGhyb3VnaCB0aGUgcHJvb2Ytb2YtaW5rIHByb2Nlc3MuABhQZW9wbGUAAQQFKFkKBAAIcQEgVGhlIHBlcnNvbmFsIGlkZW50aXRpZXMgd2hpY2ggd2UgdHJhY2s7IGFsbCB3aGljaCBoYXZlIGJlZW4gcmVjb2duaXplZCB0aHJvdWdoIHByb29mLW9mLWluazQgYXJlIGluIGhlcmUuADxSZWZlcnJhbFRpY2tldHMAAQQFKGUKBAAECQEgVGhlIHRpY2tldHMgc3RvcmVkIG9uLWNoYWluIHJlYWR5IHRvIGJlIHVzZWQgdG8gcmVmZXIgY2FuZGlkYXRlcy4AOERlc2lnbkZhbWlsaWVzAAEEAi0DcQoEAASoIFRoZSBjdXJyZW50IGRlc2lnbiBmYW1pbGllcyB3ZSByZWNvZ25pc2UuAEBDb21taXR0ZWREZXNpZ25zAAEIAgJ1CnkKBAAE1CBUaGUgY29tbWl0dGVkIGRlc2lnbnMgd2hpY2ggYXJlIG5vIGxvbmdlciBhdmFpbGFibGUuADxBbGxvY2F0aW9uQ291bnQBADgQAAAAAASwIFRoZSBudW1iZXIgb2YganVkZ2VtZW50cyBjdXJyZW50bHkgb25nb2luZy4ANENvbmZpZ3VyYXRpb24BAOUDoECdBAAEAAAA6AMAAAAAAAQAAAAAIAAAAAAAIAAAAAAACAAAAECdBAAETCBUaGUgY29uZmlndXJhdGlvbi4AQEF2YWlsYWJsZUludml0ZXMBAQQCBDgQAAAAAAT4IE51bWJlciBvZiBpbnZpdGF0aW9ucyBhdmFpbGFibGUgdG8gZGlzdHJpYnV0ZSBmb3IgYW4gYWNjb3VudC4AOFBlbmRpbmdJbnZpdGVzAAEIAgJ9ChAEAAwdASBQZW5kaW5nIGludml0YXRpb25zIGZvciBlYWNoIGludml0ZXIgKGFuIGFjY291bnQgdGhhdCBpbnZpdGVzIG90aGVycykuAFkBIElmIHRoZSBrZXkgYChpbnZpdGVyLCB0aWNrZXQpYCBleGlzdHMsIHRoZW4gdGhlIHRpY2tldCBpcyBjdXJyZW50bHkgYSBwZW5kaW5nIGludml0ZS4AbFJlZmVycmVyUmVpbWJ1cnNlbWVudFZhbHVlcwAA6QMEABRhASBUaGUgdmFsdWVzIG9mIHRoZSByZWltYnVyc2VtZW50IGF3YXJkZWQgdG8gcmVmZXJyZXJzLCBhbG9uZyB3aXRoIGhvdyBtYW55IG9mIGVhY2ggdmFsdWVtASBzaG91bGQgYmUgYXdhcmRlZC4gVGhlc2UgdmFsdWVzIGFyZSBzdG9yZWQgaW4gcmV2ZXJzZSBvcmRlciBvZiB0aGVpciBwcmlvcml0eSwgc28gdGhlIGxhc3RBASB2YWx1ZSBpbiB0aGUgbGlzdCB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgdG8gYmUgdXNlZCBieSB0aGUgcmVpbWJ1cnNlbWVudCBzeXN0ZW0uAEUBIFN0b3JhZ2UgaXRlbSBuYW1lIGtlZXBzIHRoZSBsZWdhY3kgcHJlZml4IGZvciBzdG9yYWdlIHJlYWRhYmlsaXR5IGNvbXBhdGliaWxpdHkuAGxSZWZlcnJlZFJlaW1idXJzZW1lbnRWYWx1ZXMAAOkDBAAUYQEgVGhlIHZhbHVlcyBvZiB0aGUgcmVpbWJ1cnNlbWVudCBhd2FyZGVkIHRvIHJlZmVycmVkIHBlb3BsZSwgYWxvbmcgd2l0aCBob3cgbWFueSBvZiBlYWNocQEgdmFsdWUgc2hvdWxkIGJlIGF3YXJkZWQuIFRoZXNlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHJldmVyc2Ugb3JkZXIgb2YgdGhlaXIgcHJpb3JpdHksIHNvIHRoZVUBIGxhc3QgdmFsdWUgaW4gdGhlIGxpc3Qgd2lsbCBiZSB0aGUgZmlyc3Qgb25lIHRvIGJlIHVzZWQgYnkgdGhlIHJlaW1idXJzZW1lbnQgc3lzdGVtLgBFASBTdG9yYWdlIGl0ZW0gbmFtZSBrZWVwcyB0aGUgbGVnYWN5IHByZWZpeCBmb3Igc3RvcmFnZSByZWFkYWJpbGl0eSBjb21wYXRpYmlsaXR5LgABzQMAAfEGAAxITWF4QWN0aXZlUmVmZXJyYWxzOBAKAAAACPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFjdGl2ZSByZWZlcnJhbHMgYSB1c2VyIGNhbiBoYXZlIG9wZW4uWCBJdCBjYW5ub3QgZXhjZWVkIDIwMC4AFFBvdElk0QggUG9JUG90X18g7CBBY2NvdW50IElkZW50aWZpZXIgZnJvbSB3aGljaCB0aGUgcmV3YXJkIHBvdCBpcyBnZW5lcmF0ZWQuACkBIFRoZSBhY2NvdW50IG11c3QgYmUgZnVuZGVkIHNvIHJld2FyZHMgY2FuIGJlIHBhaWQgZHVyaW5nIHJlZ2lzdHJhdGlvbiBhbmRgIHJlZmVycmFsIHJld2FyZCBjbGFpbXMuABEBIFRoZSBgUGFsbGV0SWRgIG11c3QgYmUgYSBjb25zdGFudCBhcyBpdCBpcyBleHBvc2VkIGluIHRoZSBtZXRhZGF0YS5lASBDaGFuZ2luZyB0aGlzIHZhbHVlIHdpdGggYSBydW50aW1lIHVwZ3JhZGUgY2FuIGJlIGRvbmUgYXQgYW55IHRpbWUsIHRoZSBuZXcgYWNjb3VudCB3aWxskCB0aGVuIG5lZWQgdG8gYmUgZnVuZGVkIGFjY29yZGluZ2x5LgBMcHJvb2Zfb2ZfaW5rX3BvdF9pZASAbW9kbFBvSVBvdF9fAAAAAAAAAAAAAAAAAAAAAAAAAAAE1CBUaGUgYWNjb3VudCBJRCBvZiB0aGUgcG90IHVzZWQgZm9yIHJld2FyZCB0cmFuc2ZlcnMuAAGBCgAIPFRpY2tldFNpZ25hdHVyZdkDDIggU2lnbmF0dXJlIHVzZWQgdG8gdmVyaWZ5IHRpY2tldHMuAAEBIENhbiB2ZXJpZnkgd2hldGhlciBhbiBgU2VsZjo6VGlja2V0UHVibGljYCBjcmVhdGVkIGEgc2lnbmF0dXJlLhhUaWNrZXQEBJggVGlja2V0IHR5cGUgdXNlZCB0byByZWZlciBjYW5kaWRhdGVzLgA1AAAQR2FtZQEQR2FtZVBQU3RvcmVkUGhhc2VEdXJhdGlvbnMAAEEEBAAM9CBQaGFzZS1kdXJhdGlvbiBvdmVycmlkZSBzZXQgYnkgW2BDb25maWc6Ok1hbmFnZXJPcmlnaW5gXSB2aWHgIGBzZXRfZ2FtZV9waGFzZXNgLiBgTm9uZWAgbWVhbnMgdGhlIGNoYWluIGZhbGxzIGJhY2sgdG9wIGBUOjpEZWZhdWx0UGhhc2VEdXJhdGlvbnNgLgBEUGxheURlcG9zaXRBbW91bnQBAMRAAMgXqAQAAAAAAAAAAAAAABA9ASBUaGUgY29uZmlndXJlZCBuYXRpdmUgYmFsYW5jZSBoZWxkIGFzIGRlcG9zaXQgd2hlbiBhbiBhY2NvdW50IHBsYXllciBzaWducyB1cC4AMQEgVGhpcyB2YWx1ZSBpcyBvbmx5IHVzZWQgZm9yIG5ldyBkZXBvc2l0IGNyZWF0aW9uczsgZXhpc3RpbmcgYWN0aXZlIGRlcG9zaXRzqCByZXRhaW4gdGhlIGFtb3VudCB0aGV5IHdlcmUgY3JlYXRlZCB3aXRoLgA8QXJjaGl2ZWRQbGF5ZXJzAAEEAnEEhQoEAAQpASBBbGwgdGhlIHBsYXllciB3aXRoIHplcm8gc2NvcmUgYnV0IHN0aWxsIG9uYm9hcmRlZCBpbiBpbmRpdl9wYWxsZXRfc2NvcmUuABxQbGF5ZXJzAAEEAnEEiQoEABBwIEFsbCB0aGUgcGxheWVyIGluIHRoZSBnYW1lLgAhASBBY2NvdW50LWJhc2VkIHBsYXllciBhY2NvdW50cyBpbiB0aGlzIHN0b3JhZ2UgYW5kIHN0YXRlbWVudCBhY2NvdW50cyBpbqQgW2BTdG10QWNjb3VudFRvQWxpYXNgXSBtdXN0IG5vdCBvdmVybGFwLgAkR2FtZUluZGV4AQA4EAAAAAAEYCBUaGUgY3VycmVudCBnYW1lIGluZGV4LgAQR2FtZQAAoQoEAATMIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIG5leHQgZ2FtZSBvciBvbmdvaW5nIGdhbWUuACxHYW1lSGlzdG9yeQABBAU4OAQACGEBIFRoZSBtYXBwaW5nIGZyb20gcGFzdCBnYW1lcywgaWRlbnRpZmllZCBieSB0aGVpciBnYW1lIGluZGV4LCB0byB0aGUgc3RhcnQgdGltZXN0YW1wLCBpbnggc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC4AXFBsYXllckF0dGVuZGFuY2VIaXN0b3J5AQEEAnEEvQoEAAgxASBFbnRyaWVzIG9mIHByZXZpb3VzbHkgYXR0ZW5kZWQgZ2FtZXMgb2YgZWFjaCBwbGF5ZXIuIFJldGFpbmVkIG9uIGBvZmZib2FyZGAJASBhbmQgYGtpY2tvdXRgLiBCb3VuZGVkIGJ5IGBNYXhBdHRlbmRhbmNlSGlzdG9yeURlcHRoYCBwZXIgcGxheWVyLgBQR2FtZVBhcnRpY2lwYW50Q291bnQBAQQFODgQAAAAABDwIENvdW50IG9mIGNvbmZpcm1lZCBhdHRlbmRlZXMgcGVyIGdhbWUgaW5kZXguIEluY3JlbWVudGVkIGJ5GQEgW2BQYWxsZXQ6Om5vdGVfYXR0ZW5kYW5jZWBdIGZvciBldmVyeSBhdHRlbmRhbmNlIGVudHJ5LCByZWdhcmRsZXNzIG9m/CB3aGV0aGVyIHRoZSBwbGF5ZXIgaXMgcmVjb3JkZWQgYXMgYEFjY291bnRPclBlcnNvbjo6UGVyc29uYCBvcvQgYEFjY291bnRPclBlcnNvbjo6QWNjb3VudGAuIEV4cG9zZWQgZm9yIG9mZi1jaGFpbiBjb25zdW1lcnMuADRJbmRleFRvUGxheWVyAAEEBcEKcQQEAATkIFRoZSBtYXBwaW5nIGZyb20gcm91bmQgaW5kZXggYW5kIHBsYXllciBpbmRleCB0byBwbGF5ZXIuADRQbGF5ZXJUb0luZGV4AAEEAnEExQoEAATgIFRoZSBtYXBwaW5nIGZyb20gcGxheWVyIHRvIHRoZWlyIGluZGljZXMgaW4gZWFjaCByb3VuZC4ARFNodWZmbGVSZWNvZ25pemVkAAEIBQbJCnEEBAAEAQEgU3RvcmFnZSB1c2VkIHRvIGNvbXB1dGUgdGhlIHNodWZmbGUgb3JkZXIgb2YgcmVjb2duaXplZCBwZW9wbGUuAFBTaHVmZmxlTm90UmVjb2duaXplZAABCAUGyQpxBAQABFUBIFN0b3JhZ2UgdXNlZCB0byBjb21wdXRlIHRoZSBzaHVmZmxlIG9yZGVyIG9mIG5vdCByZWNvZ25pemVkIHBlb3BsZSwgaS5lLiBjYW5kaWRhdGVzLgA0R2FtZVNjaGVkdWxlcwEAzQoEAAAAQEF2YWlsYWJsZUludml0ZXMBAQQCBDgQAAAAAAToIE51bWJlciBvZiBpbnZpdGVzIGF2YWlsYWJsZSB0byBkaXN0cmlidXRlIGZvciBhbiBhY2NvdW50LgA4UGVuZGluZ0ludml0ZXMAAQgCAn0KEAQAEIggUGVuZGluZyBpbnZpdGVzIGZvciBlYWNoIGludml0ZXIuAGkBIElmIHRoZSBrZXkgYChpbnZpdGVyLCB0aWNrZXQpYCBleGlzdHMgdGhlbiB0aGUgdGlja2V0IGlzIGN1cnJlbnRseSBhIHBlbmRpbmcgaW52aXRlLCBmcm9tNCB0aGUgaW52aXRlci4ALExpdGVJbnZpdGVzAAEEAggEBAAIaQEgVGhlIGFjY291bnQgZWFjaCBsaXRlIHBlcnNvbiBkZXNpZ25hdGVkIHRvIHBsYXkgd2l0aCwga2V5ZWQgYnkgdGhlIGxpdGUgcGVyc29uJ3MgYWxpYXMgaW6cIFtgaW5kaXZfcGFsbGV0X3Njb3JlOjpTQ09SRV9DT05URVhUYF0uAEhBbGlhc1RvU3RtdEFjY291bnQAAQQCCAQEABxZASBNYXBwaW5nIGZyb20gYWxpYXMgdG8gdGhlIGFjY291bnQgaWQgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdGF0ZW1lbnQgc3RvcmUuAEEBIEFjY291bnQtYmFzZWQgcGxheWVyIHNpbXBseSB1c2UgdGhlaXIgYWNjb3VudCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoaXMgbWFwcGluZy4BASBSZXZlcnNlIG1hcHBpbmcgaXMgYXZhaWxhYmxlIGluIHN0b3JhZ2UgW2BTdG10QWNjb3VudFRvQWxpYXNgXS4A7CBUaGlzIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIGdldHMgYXJjaGl2ZWQuVQEgVGhpcyBpcyB1cGRhdGVkIHdoZW4gdGhlIGFsaWFzLWJhc2VkIHBsYXllciBzaWducyB1cCB3aXRoIGFub3RoZXIgc3RhdGVtZW50IGFjY291bnQuAEhTdG10QWNjb3VudFRvQWxpYXMAAQQCBAgEACRZASBNYXBwaW5nIGZyb20gdGhlIGFjY291bnQgaWQgdG8gdXNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHN0YXRlbWVudCBzdG9yZSB0byB0aGUgYWxpYXMuAEEBIEFjY291bnQtYmFzZWQgcGxheWVyIHNpbXBseSB1c2UgdGhlaXIgYWNjb3VudCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRoaXMgbWFwcGluZy4BASBSZXZlcnNlIG1hcHBpbmcgaXMgYXZhaWxhYmxlIGluIHN0b3JhZ2UgW2BBbGlhc1RvU3RtdEFjY291bnRgXS7sIFRoaXMgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhbGlhcy1iYXNlZCBwbGF5ZXIgZ2V0cyBhcmNoaXZlZC5VASBUaGlzIGlzIHVwZGF0ZWQgd2hlbiB0aGUgYWxpYXMtYmFzZWQgcGxheWVyIHNpZ25zIHVwIHdpdGggYW5vdGhlciBzdGF0ZW1lbnQgYWNjb3VudC4AZQEgU3RhdGVtZW50IGFjY291bnRzIGluIHRoaXMgc3RvcmFnZSBhbmQgYWNjb3VudC1iYXNlZCBwbGF5ZXIgYWNjb3VudHMgaW4gW2BQbGF5ZXJzYF0gbXVzdDQgbm90IG92ZXJsYXAuAGBDb21tdW5pY2F0aW9uSWRlbnRpZmllcnMAAQQCBN0DBAAMaQEgVGhlIGNvbW11bmljYXRpb24gaWRlbnRpZmllcnMgdXNlZCBieSBwbGF5ZXJzIHRvIGVzdGFibGlzaCBhbiBlbmNyeXB0ZWQgUDJQIGNvbm5lY3Rpb24gaW5tASBvcmRlciB0byBwbGF5IHRoZSBnYW1lLiBUaGUgYWNjb3VudCB1bmRlciB3aGljaCB0aGUgY29tbXVuaWNhdGlvbiBpZGVudGlmaWVyIGlzIHJlZ2lzdGVyZWQZASBzaG91bGQgYmUgdGhlIHNhbWUgYWNjb3VudCB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIHN0YXRlbWVudCBzdG9yZS4AAfUDAAH1BgA0JE1heFJvdW5kczgQAwAAAAygIFRoZSBtYXhpbXVtIG51bWJlciBvZiByb3VuZHMgaW4gYSBnYW1lLgDoIE5vdGU6IHRoZSBhY3R1YWwgbnVtYmVyIG9mIHJvdW5kcyBpcyBjb25maWd1cmVkIHBlciBnYW1lLgAwTWF4R3JvdXBTaXplOBAGAAAADKggVGhlIG1heGltdW0gbnVtYmVyIG9mIHBsYXllcnMgaW4gYSBncm91cC4AGQEgTm90ZTogdGhlIGFjdHVhbCBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwIGlzIGNvbmZpZ3VyZWQgcGVyIGdhbWUuADBNaW5Hcm91cFNpemU4EAAAAAAgqCBUaGUgbWluaW11bSBudW1iZXIgb2YgcGxheWVycyBpbiBhIGdyb3VwLgBlASBXaGVuIHNjaGVkdWxpbmcgYSBnYW1lIHRoZSB2YWx1ZSBmb3IgYG1heF9ncm91cF9zaXplYCBtdXN0IGJlIGF0IGxlYXN0IHRoaXMgbWluaW11bSArIDEuACUBIEluIG9yZGVyIHRvIGhhdmUgbm8gc2luZ2xlLXBsYXllciBncm91cHMsIHRoaXMgdmFsdWUgbXVzdCBiZSBhdCBsZWFzdCAyLgBRASBOb3RlOiB0aGUgYWN0dWFsIG1pbmltdW0gbnVtYmVyIG9mIHBsYXllcnMgaW4gYSBncm91cCBpcyBjb25maWd1cmVkIHBlciBnYW1lLCBpdCBpc1ggYG1heF9ncm91cF9zaXplIC0gMWAuAFROb25QbGF5aW5nS2lja291dFRpbWU4EIBTOwAMFQEgVGhlIHRpbWUgYWZ0ZXIgd2hpY2ggYSBwbGF5ZXIgdGhhdCBpcyBub3QgcGxheWluZyBjYW4gYmUga2lja2VkIG91dC4AvCBUaGlzIGlzIG9ubHkgZm9yIGFjY291bnQgcGxheWVycywgbm90IHBlcnNvbnMuAEhEZWZhdWx0UGxheURlcG9zaXTEQADIF6gEAAAAAAAAAAAAAAAIUQEgVGhlIGRlZmF1bHQgcGxheSBkZXBvc2l0IChuYXRpdmUgYmFsYW5jZSkgdXNlZCB3aGVuIFtgUGxheURlcG9zaXRBbW91bnRgXSBoYXMgbmV2ZXJwIGJlZW4gZXhwbGljaXRseSBjb25maWd1cmVkLgBURGVmYXVsdFBoYXNlRHVyYXRpb25zQQRQLAEAADwAAAAeAAAAWAIAADwAAAAQ7CBUaGUgZGVmYXVsdCBkdXJhdGlvbnMgb2YgZWFjaCBnYW1lIHBoYXNlLCBpbiBzZWNvbmRzLiBXaGVu/CBgU3RvcmVkUGhhc2VEdXJhdGlvbnNgIGlzIGBTb21lYCwgdGhvc2UgdmFsdWVzIHRha2UgcHJlY2VkZW5jZdggb3ZlciB0aGlzIGRlZmF1bHQ7IHRoZSBvdmVycmlkZSBpcyBzZXQgYXQgcnVudGltZSB2aWF0IFtgUGFsbGV0OjpzZXRfZ2FtZV9waGFzZXNgXS4AQE1heEdhbWVTY2hlZHVsZXM4EAwAAAAE7CBUaGUgTWF4aW11bSBudW1iZXIgb2YgZ2FtZSBzY2hlZHVsZXMgdGhlIHBhbGxldCBjYW4gc3RvcmUuAGRNYXhBdHRlbmRhbmNlSGlzdG9yeURlcHRoOBAMAAAACF0BIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXN0IGdhbWVzIGZvciB3aGljaCBwbGF5ZXIgYXR0ZW5kYW5jZSBpcyBzdG9yZWQuIEFueSBhdHRlbmRhbmNlAQEgZW50cmllcyBvbGRlciB0aGFuIHRoaXMgd2lsbCBiZSBpbW1pbmVudGx5IHB1cmdlZCBmcm9tIHN0b3JhZ2UuADRBaXJkcm9wU291cmNlBIBtb2RscG9wL2dhZHMAAAAAAAAAAAAAAAAAAAAAAAAAAAjkIEFjY291bnQgdGhhdCBmdW5kcyB0aGUgcGVyLWdhbWUgYWlyZHJvcCBwcml6ZSBhbGxvY2F0aW9uDQEgKGBtYXhfd2lubmVycyDDlyBhc3NldF9hbW91bnRgIGlzIHRyYW5zZmVycmVkIHBlciBzY2hlZHVsZWQgZ2FtZSkuAGxwcm9vZl9vZl9vd25lcnNoaXBfbXNnX2Jhc2UIgHBvcDpnYW1lOnN0bXRfYWNjb3VudF9mb3JfYWxpYXM6EBkBIFRoZSBiYXNlIG1lc3NhZ2Ugb2YgdGhlIHByb29mIG9mIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGJ5IGFuIGFsaWFzLgA1ASBUaGUgZnVsbCBtZXNzYWdlIGlzIHRoaXMgYmFzZSBjb25jYXRlbmF0ZWQgdG8gdGhlIGFsaWFzIGFuZCB0aGVuIGhhc2hlZCB3aXRorCBgYmxha2UyXzI1NmAgKGJsYWtlMiB3aXRoIDI1NiBiaXQgb3V0cHV0KS4AOG1heF9lbmFjdG1lbnRzOBAQAAAAEDkBIE1heGltdW0gbnVtYmVyIG9mIGZ1bGwgZWFybHktYXR0ZW5kYW5jZSBlbmFjdG1lbnRzIGEgc2luZ2xlIGByZXBvcnRgIGNhbGwgY2FuGQEgdHJpZ2dlcjogZXZlcnkgdW5pcXVlIGNvLXBsYXllciBhY3Jvc3MgYWxsIHJvdW5kcywgcGx1cyB0aGUgcmVwb3J0ZXIuANwgVXNlZCBhcyB0aGUgcHJlLWRpc3BhdGNoIG92ZXJjaGFyZ2UgYm91bmQgb24gYHJlcG9ydGAuAEhtYXhfcmVjZWl2ZWRfdm90ZXM4EA8AAAAIVQEgW2BTZWxmOjptYXhfYXR0ZXN0YXRpb25zYF0gb3ZlciBhbnkgZ2FtZSB0aGUgcnVudGltZSBhbGxvd3M6IHRoZSBtb3N0IHZvdGVzIGEgc2luZ2xlIQEgcGxheWVyIGNhbiByZWNlaXZlLCBhbmQgZXF1YWxseSB0aGUgbW9zdCBjby1wbGF5ZXJzIHRoZXkgY2FuIHJlcG9ydCBvbi4AVGFpcmRyb3BfZXZlbnRfaWRfYmFzZdEKbHBvcDpnYW1lOmFpcmRyb3A6ICAgICAgICAgIAxZASBUaGUgYmFzZSBzdHJpbmcgZm9yIHRoZSBhaXJkcm9wIGV2ZW50IGlkIGRlcml2YXRpb24uIFRoZSBhY3R1YWwgZXZlbnQgaWQgaXMgdGhpcyBiYXNlHQEgY29uY2F0ZW5hdGVkIHdpdGggdGhlIGFpcmRyb3AgaW5kZXggYW5kIHRoZSBnYW1lIGluZGV4IEJFIGVuY29kZWQgKHNlZXwgW2BQYWxsZXQ6OmFpcmRyb3BfZXZlbnRfaWRgXSkuAAHVCgAQPFRpY2tldFNpZ25hdHVyZdkDBIggU2lnbmF0dXJlIHVzZWQgdG8gdmVyaWZ5IHRpY2tldHMuQEFjY291bnRTaWduYXR1cmXZAwRgIFNpZ25hdHVyZSBmb3IgYWNjb3VudHMuOEFpcmRyb3BBc3NldElk4ASQIEFzc2V0IGlkIHVzZWQgYnkgW2BTZWxmOjpBaXJkcm9wYF0uTEFpcmRyb3BBc3NldEJhbGFuY2XEBKQgQXNzZXQgYmFsYW5jZSB1c2VkIGJ5IFtgU2VsZjo6QWlyZHJvcGBdLgA3AAAUU2NvcmUBFFNjb3JlLDBQYXJ0aWNpcGFudHMAAQQCcQTZCgQABHwgVGhlIHBhcnRpY2lwYW50cyBpbmZvcm1hdGlvbnMuAExQZXJzb25ob29kVGhyZXNob2xkAQAMBAAEyCBUaGUgc2NvcmUgdGhyZXNob2xkIHJlcXVpcmVkIHRvIHJlYWNoIHBlcnNvbmhvb2QuAGxQZXJzb25ob29kVGhyZXNob2xkU2NoZWR1bGUBAF0EfBiIEwAAARAnAAADIE4AAAa4iAAAClDDAAAP/////xUoHQEgUnVudGltZS1jb25maWd1cmFibGUgc2NoZWR1bGUgb2YgcGVyc29uaG9vZC10aHJlc2hvbGQgdGllcnMsIHNvcnRlZCBieR0BIGFzY2VuZGluZyBgcG9wdWxhdGlvbl9zaXplX3RocmVzaG9sZGAuIEVhY2ggdGllciBzcGVjaWZpZXMgdGhlIHNjb3JlIGEdASBwYXJ0aWNpcGFudCBtdXN0IHJlYWNoIHRvIGJlIHJlY29nbml6ZWQgYXMgYSBwZXJzb24gYXQgdGhhdCBwb3B1bGF0aW9uHCBsZXZlbC4ABQEgRGVmYXVsdHMgdG8gW2BEZWZhdWx0UGVyc29uaG9vZFRocmVzaG9sZFRpZXJzYF0gdW50aWwgZ292ZXJuYW5jZQEBIG92ZXJyaWRlcyBpdCB2aWEgW2BQYWxsZXQ6OnNldF9wZXJzb25ob29kX3RocmVzaG9sZF9zY2hlZHVsZWBdLgARASBBIG5ldyBzY2hlZHVsZSB0YWtlcyBlZmZlY3QgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IHJlcG9ydCBzZXNzaW9u/CB3aGVuIGB1cGRhdGVfdGhyZXNob2xkcygpYCByZWNhbGN1bGF0ZXMgYFBlcnNvbmhvb2RUaHJlc2hvbGRgLgBQQWJzZW5jZUdyYWNlU2NoZWR1bGUBAFEElBiIEwAABgUQJwAABQQgTgAABAO4iAAAAwJQwwAAAgH/////BgEgKQEgUnVudGltZS1jb25maWd1cmFibGUgc2NoZWR1bGUgb2YgYWJzZW5jZS1ncmFjZSB0aWVycywgc29ydGVkIGJ5IGFzY2VuZGluZw0BIHBvcHVsYXRpb24gc2l6ZSB0aHJlc2hvbGQuIEVhY2ggdGllciBzcGVjaWZpZXMgaG93IG1hbnkgbWlzc2VzIGFyZQ0BIHRvbGVyYXRlZCB3aXRoaW4gcmVjZW50IGdhbWVzIGJlZm9yZSBhIHBhcnRpY2lwYW50J3MgcGVyc29uaG9vZCBpcywgc3VzcGVuZGVkLgAdASBEZWZhdWx0cyB0byBbYERlZmF1bHRBYnNlbmNlR3JhY2VUaWVyc2BdIHVudGlsIGdvdmVybmFuY2Ugb3ZlcnJpZGVzIGl0DQEgdmlhIFtgUGFsbGV0OjpzZXRfYWJzZW5jZV9ncmFjZV9zY2hlZHVsZWBdLiBBbiBlbXB0eSBzY2hlZHVsZSAoc2V0+CBleHBsaWNpdGx5IGJ5IGdvdmVybmFuY2UpIGRpc2FibGVzIHRoZSBncmFjZSBwZXJpb2QgZW50aXJlbHkuAERBYnNlbmNlR3JhY2VSYXRpbwEARQkIAAAYFQEgVGhlIGN1cnJlbnRseSBhY3RpdmUgYWJzZW5jZS1ncmFjZSByYXRpbyBgKGFsbG93ZWRfbWlzc2VzLCB3aW5kb3cpYCwlASBkZXJpdmVkIGZyb20gYEFic2VuY2VHcmFjZVNjaGVkdWxlYCBhbmQgdGhlIGN1cnJlbnQgYWN0aXZlLXBlcnNvbiBjb3VudC4AEQEgVXBkYXRlZCBlYWNoIHRpbWUgYHVwZGF0ZV90aHJlc2hvbGRzKClgIHJ1bnMgKGF0IHRoZSBzdGFydCBvZiBldmVyeR0BIGF0dGVuZGFuY2UgcmVwb3J0IHNlc3Npb24pLiBSZWFkIGJ5IGBzZXRfYXR0ZW5kYW5jZWAgdG8gZGVjaWRlIHdoZXRoZXKMIGEgcGFydGljaXBhbnQgc2hvdWxkIGJlIHN1c3BlbmRlZC4ASEN1cnJlbnRSb3VuZFBvaW50cwEAOBAAAAAABLQgVGhlIGFjY3VtdWxhdGVkIHBvaW50cyBpbiB0aGUgY3VycmVudCByb3VuZC4AREN1cnJlbnRSb3VuZEluZGV4AQA4EAAAAAAcgCBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcm91bmQuAF0BIFRoaXMgbXVzdCBiZSB0aGUgc3VtIG9mIGFsbCBwb2ludHMgYWNjdW11bGF0ZWQgaW4gYFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50YCBmb3IgdGhlPCBjdXJyZW50IHJvdW5kLgBRASAqKldBUk5JTkcqKjogVGhpcyBzdG9yYWdlIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIGBSb3VuZHNQb2ludHNGb3JQYXJ0aWNpcGFudGAsIHVzZbQgYGZuIGFkZF9wb2ludHNfdG9fcGFydGljaXBhbnRgIHRvIHVwZGF0ZSBpdC4AaFJvdW5kc1BvaW50c0ZvclBhcnRpY2lwYW50AQEIAgLpCjgQAAAAABjQIFRoZSBwb2ludHMgYWNjdW11bGF0ZWQgYnkgYSBwYXJ0aWNpcGFudCBpbiBhIHJvdW5kLgBRASBGb3IgdGhlIGN1cnJlbnQgcm91bmQsIHRoaXMgc3RvcmFnZSBtdXN0IGJlIHVwZGF0ZWQgYWxvbmdzaWRlIGBDdXJyZW50Um91bmRQb2ludHNgLgAxASAqKldBUk5JTkcqKjogVGhpcyBzdG9yYWdlIG11c3QgYmUgY29uc2lzdGVudCB3aXRoIGBDdXJyZW50Um91bmRQb2ludHNgLCB1c2W0IGBmbiBhZGRfcG9pbnRzX3RvX3BhcnRpY2lwYW50YCB0byB1cGRhdGUgaXQuADBSb3VuZFBheW91dHMAAQQCOO0KBAAQqCBUaGUgcm91bmRzIHRoYXQgYXJlIGN1cnJlbnRseSBwYXlpbmcgb3V0LgARASBSb3VuZHMgYXJlIHBheWluZyBvdXQgYWZ0ZXIgdGhleSBoYXZlIGZpbmlzaGVkIGFjY3VtdWxhdGluZyBwb2ludHMuJQEgV2hlbiBhbGwgdGhlaXIgcG9pbnRzIGhhdmUgYmVlbiBwYWlkIG91dCwgdGhleSBhcmUgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UuADRSb3VuZFBsYW5uaW5nAADxCgQADPwgVGhlIHBsYW5uaW5nIG9mIHRoZSBjdXJyZW50IHJvdW5kIHRoYXQgaXMgYWNjdW11bGF0aW5nIHBvaW50cy4APQEgSWYgbm9uZSB0aGUgY3VycmVudCByb3VuZCBpcyBvbmdvaW5nIGFuZCB3aWxsIGJlIHBsYW5uZWQgb24gdGhlIG5leHQgc2NoZWR1bGUuADhSb3VuZFNjaGVkdWxlcwEA9QoEAAS4IERlc2NyaWJlcyB0aGUgc2NoZWR1bGVzIG9mIHRoZSBwYXlvdXQgcm91bmRzLgABRQQAAfkGABBQQ3VycmVuY3lMb2NhdGlvbkluZm/gMAEDAHEXBDIFdsjrCwT0IFRoZSBsb2NhdGlvbiBvZiB0aGUgdXNlZCBjdXJyZW5jeS4gSXQgaXMgaW5mb3JtYXRpb25hbCBvbmx5LgBQT2ZmY2hhaW5Xb3JrSW50ZXJ2YWw4EAIAAAAEsCBUaGUgaW50ZXJ2YWwgYXQgd2hpY2ggb2ZmY2hhaW4gd29ya2VyIHJ1bnMuADBzY29yZV9wb3RfaWQEgG1vZGxzY29yZXBvdAAAAAAAAAAAAAAAAAAAAAAAAAAABOAgR2V0IGEgdW5pcXVlLCBpbmFjY2Vzc2libGUgYWNjb3VudCBJRCBmcm9tIHRoZSBgUG90SWRgLgA0c2NvcmVfY29udGV4dAiAcG9wOnBvbGthZG90Lm5ldHdvcmsvc2NvcmUgICAgICAIWQEgVGhlIGNvbnRleHQgdXNlZCBmb3IgdGhlIHByb29mcyByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgYXMgYSBwZXJzb25hbCBhbGlhcyBpbiBzY29yZSAgcGFsbGV0LgABAQsAAAA4AAAoTmZ0Q3JlZGl0cwEoTmZ0Q3JlZGl0cyBYQXdhcmRlZE5mdENsYWltQ3JlZGl0cwEBCAUC6QoFC0AAAAAAAAAAAAAAAAAAAAAARF0BIFdoaWNoIGNyZWRpdHMgYSBnYW1lIGhhcyBhbHJlYWR5IGF3YXJkZWQgYSBjbGFpbWFudCwga2V5ZWQgYnkgZ2FtZSBpbmRleCBhbmQgY2xhaW1hbnQuFQEgVGhlIHZhbHVlIG1hcmtzIHRoZSBzbG90cyBvZiBbYFBhbGxldDo6Y3JlZGl0X3Nsb3RgXSB0aGF0IGFyZSB0YWtlbi4AXQEgQm9va2tlZXBpbmcgZm9yIFtgUGFsbGV0Ojphd2FyZF9uZnRfY2xhaW1fY3JlZGl0YF0sIGl0cyBvbmx5IHJlYWRlciwgYW5kIHdoYXQgbWFrZXMgYW4tASBhd2FyZCBpZGVtcG90ZW50OiBgcmVwb3J0YCBhd2FyZHMgYSBgUGVyc29uYCB2b3RlJ3MgY3JlZGl0IG9uIHRoZSBzcG90IGFuZGEBIGBhd2FyZF9hdHRlbmRhbmNlX2NyZWRpdHNgIGxhdGVyIHdhbGtzIHRoYXQgc2FtZSBjcmVkaXQsIHdoaWNoIHVuZ3VhcmRlZCB3b3VsZCBnaXZlIHRoZVUBIGNsYWltYW50IGEgc2Vjb25kIGxlYWYsIGluIGEgc2Vjb25kIGJsb2NrJ3MgdHJlZSwgYW5kIHR3byBtaW50cyBmcm9tIG9uZSBjcmVkaXQuIE9mZmUBIGNoYWluIGl0IGlzIG5vdCBuZWVkZWQsIEFzc2V0IEh1YiBtaW50aW5nIGFnYWluc3QgYSByb290IGl0IGlzIHNlbnQgYW5kIGEgd2FsbGV0IHJlYWRpbmdZASBbYE5mdENsYWltQ3JlZGl0QmxvY2tzYF0gYW5kIHRoZSBibG9ja3MnIGBOZnRDbGFpbUNyZWRpdEF3YXJkZWRgIGV2ZW50cy4gT25lIHdvcmQgcGVyaQEgY2xhaW1hbnQgcmF0aGVyIHRoYW4gYW4gZW50cnkgcGVyIGNyZWRpdCwgYmVjYXVzZSB0aGF0IGVudHJ5IGNvdW50IGlzIHdoYXQgdGhlIGJhY2tmaWxsJ3NcIHByb29mIHNpemUgaXMgbWFkZSBvZi4AEQEgT25seSB0aGUgY3VycmVudCBnYW1lIGlzIGV2ZXIgaW4gaGVyZSwgZW50cmllcyBiZWluZyBkcmFpbmVkIGJlZm9yZWEBIGBwbGF5ZXJfcHJvY2Vzc19zdGVwMmAga2lsbHMgdGhlIGdhbWUgYW5kIGBuZXdfZ2FtZWAgcmVmdXNpbmcgdG8gc3RhcnQgb25lIHdoaWxlIGEgZ2FtZWEBIGV4aXN0cy4gVGhlIGdhbWUga2V5IHN0aWxsIGVhcm5zIGl0cyBwbGFjZTogYSBzbG90IG1lYW5zIG5vdGhpbmcgb3V0c2lkZSB0aGUgZ2FtZSB3aG9zZVkBIGdyb3VwcyBpdCBpbmRleGVzLCBzbyB3ZXJlIGEgZHJhaW4gbGVmdCBoYWxmIGRvbmUsIGFuIHVua2V5ZWQgZW50cnkgd291bGQgcmVhZCBhcyB0aGX4IG5leHQgZ2FtZSdzIGF3YXJkZWQgc2xvdHMgYW5kIHNpbGVudGx5IHN3YWxsb3cgdGhvc2UgY3JlZGl0cy4AUE5mdENsYWltQ3JlZGl0QmxvY2tzAQEEAnEEbQQEAChdASBUaGUgYmxvY2tzIGEgY2xhaW1hbnQgd2FzIGF3YXJkZWQgYXQgbGVhc3Qgb25lIE5GVCBjbGFpbSBjcmVkaXQgaW4sIGluIGFzY2VuZGluZyBvcmRlclQgYW5kIHdpdGhvdXQgcmVwZWF0cy4AcQEgRWFjaCBlbnRyeSBrZXlzIGFuIFtgTmZ0Q2xhaW1DcmVkaXRSb290c2BdIGVudHJ5IHdob3NlIHRyZWUgaG9sZHMgYSBsZWFmIG9mIHRoZSBjbGFpbWFudCdzLGEBIHNvIHRoaXMgYW5zd2VycyB3aGljaCByb290cyB0aGUgY2xhaW1hbnQgaGFzIHNvbWV0aGluZyB0byBtaW50IGFnYWluc3Qgd2l0aG91dCBzY2FubmluZ3EBIGV2ZXJ5IGJsb2NrLiBUaGUgcHJvb2YgaXRzZWxmIHN0aWxsIGNvbWVzIGZyb20gdGhhdCBibG9jaydzIGBOZnRDbGFpbUNyZWRpdEF3YXJkZWRgIGV2ZW50czugIHRoZSBpbmRleCBzdGF0ZXMgd2hpY2ggYmxvY2tzIHRvIGZldGNoLgBZASBCbG9ja3MgYXJlIGFwcGVuZGVkIGFzIGNyZWRpdHMgYXJlIGF3YXJkZWQgYW5kIG5ldmVyIHJlbW92ZWQgb25jZSBtaW50ZWQuIFRoZSBsaXN0IGlzEQEgdGhlcmVmb3JlIGEgcmluZyBib3VuZGVkIGJ5IFtgQ29uZmlnOjpNYXhDcmVkaXRCbG9ja3NQZXJDbGFpbWFudGBdLgBQTmZ0Q2xhaW1DcmVkaXRBd2FyZHMBAQQFOAkLBAAwbQEgVGhlIE5GVCBjbGFpbSBjcmVkaXRzIGVhY2ggcmV0YWluZWQgYmxvY2sgYXdhcmRlZCwgaW4gYXdhcmQgb3JkZXIsIHdoaWNoIGFyZSB0aGUgcHJlaW1hZ2VzfCBvZiB0aGF0IGJsb2NrJ3MgTWVya2xlIGxlYXZlcy4AaQEgVGhlIGN1cnJlbnQgYmxvY2sncyBlbnRyeSBkb3VibGVzIGFzIHRoZSBidWZmZXIgdGhlIG5leHQgYmxvY2sncyBgb25faW5pdGlhbGl6ZWAgY29tcHV0ZXNRASB0aGUgcm9vdCBvdmVyOiBgUGFsbGV0Ojphd2FyZF9uZnRfY2xhaW1fY3JlZGl0YCBhcHBlbmRzIHRvIGl0LCBhbmQgb25jZSB0aGUgcm9vdCBpc2UBIHJlY29yZGVkIHRoZSBlbnRyeSBzdGF5cyBhcyBpdCBpcywgc28gYSBjbGFpbSBjYW4gYmUgcHJvdmVuIGZyb20gc3RhdGUgYWxvbmUuIFRoZSBvbGRlc3TYIGVudHJ5IGlzIHJlbW92ZWQgd2hlbiBhIG5ldyByb290IHB1c2hlcyBpdCBvdXQgb2YgdGhlJQEgW2BDb25maWc6Ok1heFJldGFpbmVkQXdhcmRCbG9ja3NgXSB3aW5kb3csIHdoaWNoIGlzIHdoYXQgYm91bmRzIHRoZSBtYXAuAGUBIFRoZSBhd2FyZHMgYXJlIGtlcHQgcmF0aGVyIHRoYW4gdGhlIGxlYXZlcyB0aGV5IGhhc2ggdG8sIGJlY2F1c2UgYSBtaW50IG5lZWRzIHRoZSBjcmVkaXRRASBpdHNlbGY6IEFzc2V0IEh1YiByZWNvbXB1dGVzIHRoZSBsZWFmIGZyb20gdGhlIGNsYWltYW50IGFuZCB0aGUgY3JlZGl0IHRoZSBjbGFpbWFudFEBIHByZXNlbnRzLCBzbyBhIGxlYWYgYWxvbmUgd291bGQgc3RpbGwgbGVhdmUgdGhlIGNyZWRpdCB0byBiZSByZWNvdmVyZWQgZnJvbSBldmVudHMuAGROZnRDbGFpbUNyZWRpdEF3YXJkQmxvY2tzAQAVCwQAGGEBIFRoZSBhd2FyZCBibG9ja3Mgd2hvc2UgW2BOZnRDbGFpbUNyZWRpdEF3YXJkc2BdIGFyZSBzdGlsbCBvbiBjaGFpbiwgaW4gYXNjZW5kaW5nIG9yZGVyLgBlASBBIHJpbmcgYm91bmRlZCBieSBbYENvbmZpZzo6TWF4UmV0YWluZWRBd2FyZEJsb2Nrc2BdOiByZWNvcmRpbmcgYSByb290IGFwcGVuZHMgaXRzIGJsb2NrZQEgYW5kLCB3aGVuIHRoYXQgZmlsbHMgdGhlIHJpbmcsIHJlbW92ZXMgdGhlIGF3YXJkcyBvZiB0aGUgYmxvY2sgdGhhdCBkcm9wcyBvZmYgdGhlIGZyb250LmkBIEtlZXBpbmcgdGhlIGxpc3QgcmF0aGVyIHRoYW4gcHJ1bmluZyBieSBibG9jayBhcml0aG1ldGljIG1lYW5zIG5vIGJsb2NrIGV2ZXIgcGF5cyBmb3IgdGhlFQEgcmVtb3ZhbCBvZiBhbiBlbnRyeSB0aGF0IHdhcyBuZXZlciB0aGVyZSwgYXdhcmQgYmxvY2tzIGJlaW5nIHNwYXJzZS4AdFBlbmRpbmdOZnRDbGFpbUNyZWRpdFJvb3RJbmZvAAAZCwQAHGUBIFRoZSBmaWVsZHMgdGhlIFtgTmZ0Q2xhaW1DcmVkaXRSb290c2BdIGVudHJ5IG9mIHRoZSBjdXJyZW50IGJsb2NrIHdpbGwgY2FycnkgYmVzaWRlcyB0aGVRASByb290LiBXcml0dGVuIHdoZW4gdGhlIGJsb2NrJ3MgZmlyc3QgY3JlZGl0IGlzIGF3YXJkZWQgYW5kIGNsZWFyZWQgb25jZSBpdHMgcm9vdCBpcyggcmVjb3JkZWQuAPQgYE5vbmVgIGV4YWN0bHkgd2hlbiB0aGUgY3VycmVudCBibG9jayBoYXMgYXdhcmRlZCBubyBjcmVkaXQuVQEgW2BQYWxsZXQ6OmJ1aWxkX2NyZWRpdF90cmVlYF0gcmVsaWVzIG9uIHRoYXQgdG8gZGVjaWRlIHdoZXRoZXIgYSBibG9jayBoYXMgYSByb290IHRvMQEgcmVjb3JkIHdpdGhvdXQgcmVhZGluZyB0aGUgYmxvY2sncyBhd2FyZHMsIHdoaWNoIGFyZSBjaGFyZ2VkIGF0IGBtYXhfc2l6ZWAuAExOZnRDbGFpbUNyZWRpdFJvb3RzAAEEBTgBBwQACGEBIFRoZSBNZXJrbGUgY29tbWl0bWVudCB0byBlYWNoIGJsb2NrJ3MgYXdhcmRlZCBORlQgY2xhaW0gY3JlZGl0cywga2V5ZWQgYnkgdGhlIGJsb2NrIHRoZRkBIGNyZWRpdHMgd2VyZSBhd2FyZGVkIGluLiBCbG9ja3MgdGhhdCBhd2FyZGVkIG5vIGNyZWRpdCBoYXZlIG5vIGVudHJ5LgBcQ3JlZGl0VHJlZURlbGl2ZXJ5UXVldWUBAB0LBAAcZQEgVGhlIGF3YXJkIGJsb2NrcyB3aG9zZSBjcmVkaXQgdHJlZXMgaGF2ZSBub3QgYmVlbiBkZWxpdmVyZWQgdG8gdGhlIE5GVCBjbGFpbXMgY2hhaW4geWV0LD0BIGluIGFzY2VuZGluZyBibG9jayBvcmRlciwgZWFjaCB3aXRoIHRoZSBzZXF1ZW5jZSBudW1iZXIgaXQgaXMgZGVsaXZlcmVkIHVuZGVyLgAhASBBcHBlbmRlZCBieSBbYFBhbGxldDo6YnVpbGRfY3JlZGl0X3RyZWVgXSBhbmQgZHJhaW5lZCBmcm9tIHRoZSBmcm9udCBieVEBIFtgUGFsbGV0OjpzZW5kX2NyZWRpdF90cmVlc2BdIG9uY2UgdGhlIFhDTSBjYXJyeWluZyB0aGUgdHJlZXMgaGFzIGJlZW4gYWNjZXB0ZWQgZm9yXQEgZGVsaXZlcnkuIFRoZSB0cmVlcyB0aGVtc2VsdmVzIHN0YXkgaW4gW2BOZnRDbGFpbUNyZWRpdFJvb3RzYF07IHRoaXMgb25seSByZWNvcmRzIHdoYXRcIHN0aWxsIG93ZXMgYSBkZWxpdmVyeS4AWE5leHRDcmVkaXRUcmVlU2VxdWVuY2UBACggAAAAAAAAAAAUEQEgVGhlIHNlcXVlbmNlIG51bWJlciB0aGUgbmV4dCBxdWV1ZWQgY3JlZGl0IHRyZWUgaXMgZGVsaXZlcmVkIHVuZGVyLgBxASBPbmx5IGEgdHJlZSB0aGF0IG1hZGUgaXQgaW50byBbYENyZWRpdFRyZWVEZWxpdmVyeVF1ZXVlYF0gY29uc3VtZXMgb25lLCBzbyB0aGUgc2VxdWVuY2UgdGhlYQEgY2xhaW1zIGNoYWluIHNlZXMgc3RheXMgY29udGlndW91cyBldmVuIHdoZW4gdGhlIHF1ZXVlIG92ZXJmbG93cy4gQSBnYXAgdGhlcmUgdGhlcmVmb3Jl3CBtZWFucyBhIG1lc3NhZ2Ugd2FzIGxvc3QsIG5ldmVyIHRoYXQgb25lIHdhcyBub3Qgc2VudC4AAWkEAAH9BgAgSE1heENyZWRpdHNQZXJCbG9jazgQsAQAAFhNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgTkZUIGNsYWltIGNyZWRpdHMgdGhhdCBjYW4gYmUgYXdhcmRlZCBpbiBhIHNpbmdsZSBibG9jaywgYW5kCQEgaGVuY2UgdGhlIG1heGltdW0gbnVtYmVyIG9mIGxlYXZlcyBpbiBvbmUgW2BOZnRDbGFpbUNyZWRpdFRyZWVgXS4AUQEgT25lIGJsb2NrJ3MgYXdhcmRzIGFyZSBhIHNpbmdsZSBbYE5mdENsYWltQ3JlZGl0QXdhcmRzYF0gZW50cnksIHdob3NlIHByb29mIHNpemUgaXNVASBjaGFyZ2VkIGF0IGBtYXhfc2l6ZWAgb24gZXZlcnkgYXdhcmQgYW5kIG9uIGV2ZXJ5IHJvb3QgY29tcHV0YXRpb24sIHNvIHRoaXMgYm91bmQgaXMBASBwYWlkIGZvciBpbiBldmVyeSBgcmVwb3J0YCB3aGV0aGVyIHRoZSBhd2FyZHMgYXJlIHRoZXJlIG9yIG5vdC4AWQEgQW4gdW5yZWNvcmRlZCBjcmVkaXQgaXMgY29tbWl0dGVkIHRvIG5vIHJvb3QgYW5kIHN0YXlzIHVubWludGFibGUsIGFuZCB0aGUgcGFsbGV0IGNhblkBIG9ubHkgcmVwb3J0IHRoYXQgZGVmZW5zaXZlbHksIHNvIHRoZSBib3VuZCBtdXN0IGNvdmVyIHdoYXQgYSB3aG9sZSBibG9jayBvZiBgcmVwb3J0YHNhASBhd2FyZHMuIFRoZSBgaW50ZWdyaXR5X3Rlc3RgIGFzc2VydHMgdGhhdCBmbG9vciBmcm9tIHRoZSBydW50aW1lJ3Mgb3duIGJsb2NrIGxpbWl0cyBhbmRhASB3ZWlnaHRzLCBmYWlsaW5nIHRoZSBgcnVudGltZV9pbnRlZ3JpdHlfdGVzdHNgIHRoYXQgaXRzIGBjb25zdHJ1Y3RfcnVudGltZSFgIGdlbmVyYXRlcy5JASBUaGUgYmFja2ZpbGwgaW4gYHBsYXllcl9wcm9jZXNzX3N0ZXAxYCBuZWVkcyBubyBmbG9vcjogaXQgZGVmZXJzIGEgcGxheWVyIHRoYXQgbm80IGxvbmdlciBmaXRzLgBZASBTbGFjayBhYm92ZSB0aGUgZmxvb3IgYnV5cyBtYXJnaW4gYWdhaW5zdCBhIHdlaWdodCByZWdlbmVyYXRpb24gbGlmdGluZyBpdCwgYW5kIGNvc3RzZQEgcmVwb3J0cyBwZXIgYmxvY2ssIHNpbmNlIGl0IGlzIGNoYXJnZWQgdG8gZXZlcnkgb25lIG9mIHRoZW0uIFRoYXQgY2hhcmdlIGFsc28gbG93ZXJzIHRoZWUBIGZsb29yLCBzbyB0aGUgbWFyZ2luIGdyb3dzIGZhc3RlciB0aGFuIHRoZSBzbGFjay4gVGhlIGBpbnRlZ3JpdHlfdGVzdGAgd2FybnMgcmF0aGVyIHRoYW50IGZhaWxzIGFib3ZlIHR3aWNlIHRoZSBmbG9vci4ATQEgUmFpc2luZyB0aGUgYm91bmQgaW4gYSBydW50aW1lIHVwZ3JhZGUgaXMgc2FmZS4gTG93ZXJpbmcgaXQgc3RyYW5kcyBldmVyeSByZXRhaW5lZFUBIGJsb2NrJ3MgYXdhcmRzLCBzaW5jZSBbYE5mdENsYWltQ3JlZGl0QXdhcmRzYF0gbm8gbG9uZ2VyIGRlY29kZXMgYWdhaW5zdCB0aGUgc21hbGxlcnwgYm91bmQsIHNvIGNsZWFyIHRoZSBtYXAgZmlyc3QuADxOZnRDbGFpbXNQYXJhSWScENwFAAAMWQEgVGhlIHBhcmFjaGFpbiB0aGUgY3JlZGl0IHRyZWVzIGFyZSBkZWxpdmVyZWQgdG8sIHdoaWNoIG1pbnRzIHRoZSBORlRzIGNsYWltZWQgYWdhaW5zdF0BIHRoZW0uIFRoZXJlIGlzIGV4YWN0bHkgb25lLCBzbyB0aGUgcnVudGltZSBmaXhlcyBpdCByYXRoZXIgdGhhbiBnb3Zlcm5hbmNlIHJlZ2lzdGVyaW5nECBpdC4AUE5mdENsYWltc1BhbGxldEluZGV4DARgCEEBIFBhbGxldCBpbmRleCBvZiBpbmRpdi1wYWxsZXQtbmZ0LWNsYWltcyBvbiBbYENvbmZpZzo6TmZ0Q2xhaW1zUGFyYUlkYF0sIHVzZWQgdG/cIGVuY29kZSB0aGUgYFRyYW5zYWN0YCBjYWxsIHRoZSB0cmVlcyBhcmUgZGVsaXZlcmVkIGluLgBQTWF4UXVldWVkQ3JlZGl0VHJlZXM4EAABAAAcBQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNyZWRpdCB0cmVlcyB0aGF0IGNhbiB3YWl0IGZvciBkZWxpdmVyeSBpbmwgYENyZWRpdFRyZWVEZWxpdmVyeVF1ZXVlYC4AYQEgT25lIGJsb2NrIGJ1aWxkcyBhdCBtb3N0IG9uZSB0cmVlIGFuZCB0aGUgb2ZmY2hhaW4gd29ya2VyIGRyYWlucyB0aGUgcXVldWUgZXZlcnkgYmxvY2ssYQEgc28gdGhpcyBvbmx5IGhhcyB0byBjb3ZlciBhbiBvdXRhZ2UuIEEgdHJlZSB0aGF0IGRvZXMgbm90IGZpdCBpcyBuZXZlciBxdWV1ZWQgYW5kIG5lZWRz2CBbYFBhbGxldDo6cmVwbGF5X2NyZWRpdF90cmVlc2BdLCBzbyBzaXplIGl0IHdlbGwgcGFzdJggW2BDb25maWc6Ok1heENyZWRpdFRyZWVzUGVyTWVzc2FnZWBdLgBgTWF4Q3JlZGl0VHJlZXNQZXJNZXNzYWdlOBAgAAAAEPwgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNyZWRpdCB0cmVlcyBjYXJyaWVkIGJ5IG9uZSBYQ00gbWVzc2FnZS4AVQEgVGhlIG5mdC1jbGFpbXMgcGFsbGV0J3Mgb3duIGJvdW5kIG11c3QgYmUgYXQgbGVhc3QgdGhpcyBsYXJnZSwgb3RoZXJ3aXNlIHRoZSBiYXRjaGVz+CBzZW50IHRvIGl0IGZhaWwgdG8gZGVjb2RlIGFuZCB0aGUgdHJlZXMgaW4gdGhlbSBuZXZlciBhcnJpdmUuAFROZnRDbGFpbXNSZW1vdGVXZWlnaHTVARgCRsMjoSggCQEgUGVyLXRyZWUgd2VpZ2h0IHN1cmNoYXJnZSBmb3IgZXhlY3V0aW5nIGByZWNlaXZlX2NyZWRpdF90cmVlc2Agb27YIFtgQ29uZmlnOjpOZnRDbGFpbXNQYXJhSWRgXSwgY2hhcmdlZCB0byB0aGUgY2FsbGVyIG9mhCBbYFBhbGxldDo6cmVwbGF5X2NyZWRpdF90cmVlc2BdLgBNASBUaGUgZmVlIGl0IGJ1eXMgaXMgd2hhdCBsaW1pdHMgaG93IG11Y2ggcmVwbGF5IHRyYWZmaWMgYW55b25lIGNhbiBjYXVzZSwgdGhhdCBjYWxsSQEgYmVpbmcgcGVybWlzc2lvbmxlc3MgYW5kIGRlbGliZXJhdGVseSBub3QgcmF0ZS1saW1pdGVkLCBzbyBzZXQgaXQgdG8gYXQgbGVhc3QgdGhlVQEgcGVyLXRyZWUgY29zdCBvZiBgcmVjZWl2ZV9jcmVkaXRfdHJlZXNgIGluIHRoZSBjbGFpbXMgY2hhaW4ncyBvd24gZ2VuZXJhdGVkIHdlaWdodHMsKQEgcHJvb2Ygc2l6ZSBpbmNsdWRlZC4gQSB2YWx1ZSBiZWxvdyB0aGF0IGxlYXZlcyB0aGUgcmVtb3RlIHdvcmsgdW5kZXJwYWlkLgBYTWF4UmV0YWluZWRBd2FyZEJsb2NrczgQAAEAAEBVASBUaGUgbnVtYmVyIG9mIG1vc3QgcmVjZW50IGF3YXJkIGJsb2NrcyB3aG9zZSBbYE5mdENsYWltQ3JlZGl0QXdhcmRzYF0gc3RheSBvbiBjaGFpbi4AMQEgVGhpcyBpcyB0aGUgd2luZG93IGluIHdoaWNoIGEgY2xhaW0gY2FuIGJlIHByb3ZlbiBmcm9tIHN0YXRlIGFsb25lLCB0aHJvdWdoSQEgW2BQYWxsZXQ6Om5mdF9jbGFpbV9jcmVkaXRfcHJvb2ZzYF0uIE9uY2UgYSBibG9jayBkcm9wcyBvdXQgb2YgaXQsIGl0cyBhd2FyZHMgYXJlWQEgcmVtb3ZlZCBhbmQgYSBwcm9vZiBoYXMgdG8gYmUgcmVidWlsdCBmcm9tIHRoZSBibG9jaydzIGBOZnRDbGFpbUNyZWRpdEF3YXJkZWRgIGV2ZW50c1kBIGFuZCBwYXNzZWQgdG8gW2BQYWxsZXQ6Om5mdF9jbGFpbV9jcmVkaXRfcHJvb2ZfZnJvbV9hd2FyZHNgXS4gVGhlIHJvb3QgaXRzZWxmIGlzIGtlcHRJASBmb3IgZ29vZCwgc28gZHJvcHBpbmcgb3V0IGRlbGF5cyBubyBtaW50IHRoYXQgYSBjbGFpbWFudCwgb3IgYW4gaW5kZXhlciwga2VwdCB0aGUsIGF3YXJkcyBvZi4AWQEgSXQgY291bnRzIGF3YXJkIGJsb2Nrcywgbm90IGJsb2NrcywgYmVjYXVzZSBvbmx5IGJsb2NrcyB0aGF0IGF3YXJkZWQgYSBjcmVkaXQgaGF2ZSBhblkBIGVudHJ5LiBTaXplZCBhZ2FpbnN0IGhvdyBsb25nIGEgY2xhaW1hbnQgbWF5IHRha2UgdG8gbWludCwgYW5kIHBhaWQgZm9yIGluIHN0YXRlOiB0aGUlASBtYXAgaG9sZHMgYXQgbW9zdCB0aGlzIG1hbnkgZW50cmllcyBvZiBgTWF4Q3JlZGl0c1BlckJsb2NrYCBhd2FyZHMgZWFjaC4AWQEgUmFpc2luZyB0aGUgYm91bmQgaW4gYSBydW50aW1lIHVwZ3JhZGUgaXMgc2FmZS4gTG93ZXJpbmcgaXQgb3JwaGFucyB0aGUgYXdhcmRzIG9mIHRoZVUBIGJsb2NrcyBiZXlvbmQgdGhlIG5ldyBib3VuZCwgc2luY2UgYE5mdENsYWltQ3JlZGl0QXdhcmRCbG9ja3NgIG5vIGxvbmdlciBkZWNvZGVzIGFuZBkBIHRoZSByaW5nIGlzIHdoYXQgbmFtZXMgdGhlIGVudHJpZXMgdG8gcmVtb3ZlLCBzbyBjbGVhciB0aGUgbWFwIGZpcnN0LgBoTWF4Q3JlZGl0QmxvY2tzUGVyQ2xhaW1hbnQ4ECAAAAAgQQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGF3YXJkIGJsb2NrcyBbYE5mdENsYWltQ3JlZGl0QmxvY2tzYF0ga2VlcHMgcGVyIGNsYWltYW50LgBVASBUaGUgaW5kZXggaXMgYSBsb29rdXAgYWlkLCBub3QgdGhlIHJlY29yZCBvZiB3aGF0IGEgY2xhaW1hbnQgaXMgb3dlZCwgc28gYSBmdWxsIGxpc3RFASBkcm9wcyBpdHMgb2xkZXN0IGJsb2NrIHJhdGhlciB0aGFuIHJlamVjdGluZyBhbiBhd2FyZC4gU2l6ZSBpdCBwYXN0IHRoZSBibG9ja3MgYUEBIGNsYWltYW50IGNhbiBlYXJuIGNyZWRpdHMgaW4gb3ZlciB0aGUgZ2FtZXMgd2hvc2UgdHJlZXMgYXJlIHN0aWxsIHdvcnRoIG1pbnRpbmdFASBhZ2FpbnN0LCBhbmQgYWNjb3VudCBmb3IgdGhlIHByb29mIHNpemU6IGEgcmVhZCBpcyBjaGFyZ2VkIGF0IHRoZSBsaXN0J3MgbWF4aW11bVEBIGVuY29kZWQgbGVuZ3RoLCBvbmUgYmxvY2sgbnVtYmVyIHBlciBlbnRyeSwgb25jZSBwZXIgZGlzdGluY3QgY2xhaW1hbnQgYW4gZXh0cmluc2ljLCBhd2FyZHMgdG8uAAEpCwAAADkAACBEdW1teURpbQEgRHVtbXlEaW0ILFJlc2VydmVkSWRzAAEEAigQBAAE3CBUaGUgcGVyc29uYWwgSURzIHRoYXQgYXJlIHJlc2VydmVkIGJ5IHVucHJvdmVuIHBlb3BsZS4AGFBlb3BsZQABBAUoLQsEAAS4IFRoZSBwZW9wbGUgd2UgdHJhY2sgYWxvbmcgd2l0aCB0aGVpciByZWNvcmRzLgABdQQAAQkHAAABMQsAAAA7AAAoUGVvcGxlTGl0ZQEoUGVvcGxlTGl0ZRQoTGl0ZVBlb3BsZQABBAIENQsEAAAAOEFsaWFzVG9BY2NvdW50AAEEAkkDBAQABOAgQ29udmVyc2lvbiBvZiBhIGxpdGUgY29udGV4dHVhbCBhbGlhcyB0byBhbiBhY2NvdW50IElELgA4QWNjb3VudFRvQWxpYXMAAQQCBEUDBAAE4CBDb252ZXJzaW9uIG9mIGFuIGFjY291bnQgSUQgdG8gYSBsaXRlIGNvbnRleHR1YWwgYWxpYXMuAGxMaXRlUGVvcGxlQ29sbGVjdGlvbkNyZWF0ZWQBAMgEAATwIFdoZXRoZXIgdGhlIGxpdGUgcGVvcGxlIG1lbWJlciBjb2xsZWN0aW9uIGhhcyBiZWVuIGNyZWF0ZWQuAFBBdHRlc3RhdGlvbkFsbG93YW5jZQEBBAIEOBAAAAAABCkBIE51bWJlciBvZiBhdHRlc3RhdGlvbnMgYXZhaWxhYmxlIHRvIGRpc3RyaWJ1dGUgZm9yIGEgdmVyaWZpZXIgYWNjb3VudCBpZC4AAY0EAAENBwAMQExpdGVSaW5nRXhwb25lbnSxBAQJBMwgUmluZyBleHBvbmVudCB1c2VkIGZvciB0aGUgbGl0ZSBwZW9wbGUgY29sbGVjdGlvbi4ASExpdGVPbmJvYXJkaW5nU2l6ZTgQAwAAAAT8IE9uYm9hcmRpbmcgc2l6ZSB1c2VkIHdoZW4gY3JlYXRpbmcgdGhlIGxpdGUgcGVvcGxlIGNvbGxlY3Rpb24uAHRhY2NvdW50X3NldHVwX2Jsb2NrX3RvbGVyYW5jZTgQWAIAAAQtASBUaGUgbnVtYmVyIG9mIGJsb2NrcyBvZiB0b2xlcmFuY2Ugd2UgYWxsb3cgZm9yIGFuIGFsaWFzIHNldHVwIHRyYW5zYWN0aW9uLgABPQsABFBBdHRlc3RhdGlvblNpZ25hdHVyZdkDCGEBIFNpZ25hdHVyZSBnZW5lcmF0ZWQgYnkgbGl0ZSBwZW9wbGUgYW5kIHVzZWQgYnkgdmVyaWZpZXJzIHRvIGNsYWltIGF0dGVzdGF0aW9ucyBvbiB0aGVpciAgYmVoYWxmLgA+AAAkUmVzb3VyY2VzASRSZXNvdXJjZXMsJENvbnN1bWVycwABBAIEQQsEAAQpASBBY2NvdW50cyB1c2VkIHRvIGlkZW50aWZ5IGNvbnN1bWVycyBtYXBwZWQgdG8gdGhlaXIgY29uc3VtZXIgaW5mb3JtYXRpb24uAGBTdGF0ZW1lbnRTdG9yZUFsbG93YW5jZXMAAQgGAkkLUQsEABRxASBBY2NvdW50cyBhc3NvY2lhdGVkIHdpdGggYSBzdGF0ZW1lbnQgc3RvcmUgc2xvdCB0aHJvdWdoIGFuIGFub255bW91cyBhbGxvd2FuY2UsIHBlciBwZXJpb2QuAGEBIFRoZSBwZXJpb2Qga2V5IGlzIGEgYmlnLWVuZGlhbiBlbmNvZGVkIGRheSBudW1iZXIgKHNlY29uZHMgc2luY2UgVW5peCBlcG9jaCAvIDg2NDAwKSBzb3EBIHRoYXQgYElkZW50aXR5YC1oYXNoZWQgaXRlcmF0aW9uIHlpZWxkcyBlbnRyaWVzIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIgdG8gYmUgcmVtb3ZlZCBieSB0aGVEIG9mZmNoYWluIHdvcmtlci4AbFN0bXRTdG9yZUFsbG93YW5jZUJ5QWNjb3VudAABCAICVQsQBAAUQQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBhIHN0YXRlbWVudCBhY2NvdW50IHRvIGFsbCBpdHMgYWN0aXZlIGFub255bW91cyBhbGxvd2FuY2VzLgBFASBLZXllZCBieSBgKEFjY291bnRJZCwgKEJpZ0VuZGlhblUzMiBwZXJpb2QsIHUzMiBzZXEsIEFsaWFzKSlgIOKGkiBgKClgLiBNdWx0aXBsZUkBIGVudHJpZXMgcGVyIGFjY291bnQgYXJlIHBvc3NpYmxlIHdoZW4gdGhlIHNhbWUgc3RhdGVtZW50IGFjY291bnQgaXMgYXV0aG9yaXplZCBiecwgZGlmZmVyZW50IGFsaWFzZXMgb3IgYWNyb3NzIGdyYWNlLXdpbmRvdyBvdmVybGFwcy4AfE5vdGlmaWNhdGlvblJlZ2lzdHJhdGlvbkJ5QWxpYXMAAQQCCF0LBAAE4CBOb3RpZmljYXRpb24gYWxsb3dhbmNlIHJlZ2lzdHJhdGlvbiBieSBhbm9ueW1vdXMgYWxpYXMuAGhOb3RpZmljYXRpb25BbGlhc0J5QWNjb3VudAABBAIECAQABB0BIFJldmVyc2UgbG9va3VwIGZyb20gbm90aWZpY2F0aW9uIHN0YXRlbWVudCBhY2NvdW50IHRvIGFub255bW91cyBhbGlhcy4AbFNwZW50TG9uZ1Rlcm1TdG9yYWdlQWxpYXNlcwABCAYCSQsQBAAgSQEgQWxpYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHVzZWQgdG8gY2xhaW0gbG9uZy10ZXJtIHN0b3JhZ2UgaW4gYSBnaXZlbiBwZXJpb2QuAFkBIEtleWVkIGJ5IGAocGVyaW9kLCBhbGlhcylgLiBFYWNoIGNvdW50ZXIgdmFsdWUgaW4gdGhlIHByb29mIGNvbnRleHQgcHJvZHVjZXMgYSB1bmlxdWVdASBhbGlhcywgc28gYSBwZXJzb24gY2FuIGhhdmUgdXAgdG8gYExvbmdUZXJtU3RvcmFnZUNsYWltc1BlclBlcmlvZGAgZW50cmllcyBwZXIgcGVyaW9kLjUBIE9sZCBwZXJpb2RzIGNhbiBiZSBjbGVhbmVkIHVwIHZpYSBgY2xlYXJfZXhwaXJlZF9sb25nX3Rlcm1fc3RvcmFnZV9hbGlhc2VzYC4AQQEgVGhlIHBlcmlvZCBrZXkgaXMgYEJpZ0VuZGlhblUzMmAgd2l0aCBgSWRlbnRpdHlgIHNvIGl0ZXJhdGlvbiB5aWVsZHMgZW50cmllcyBpbuggY2hyb25vbG9naWNhbCBvcmRlciwgbWF0Y2hpbmcgYFN0YXRlbWVudFN0b3JlQWxsb3dhbmNlc2AuADxVc2VybmFtZU93bmVyT2YAAQQCmQQEBAAYcQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBgdXNlcm5hbWVgIHRvIHRoZSBgQWNjb3VudElkYCB0aGF0IGhhcyByZWdpc3RlcmVkIGl0LiBUaGUgYG93bmVyYCB2YWx1ZWUBIHNob3VsZCBiZSBhIGtleSBpbiB0aGUgYENvbnN1bWVyc2AgbWFwLiBUaGVyZSBjYW4gYmUgYXQgbW9zdCAyIHVzZXJuYW1lcyBwb2ludGluZyB0byB0aGU4IHNhbWUgYG93bmVyYDpxASAtIHVzZXJuYW1lIGFzc29jaWF0ZWQgd2l0aCBhIGNvbnN1bWVyJ3MgbGl0ZSBwZXJzb24gaWRlbnRpdHkgLSB0aGlzIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQ7WQEgLSBvcHRpb25hbGx5IGFub3RoZXIgdXNlcm5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb25zdW1lcidzIGZ1bGwgcGVyc29uIGlkZW50aXR5LCBpZjggICBhcHBsaWNhYmxlLgA4QWNjb3VudE9mQWxpYXMAAQQCCAQEAARpASBSZXZlcnNlIGxvb2t1cCBmcm9tIHJlZ2lzdGVyZWQgYWxpYXNlcyB0byB0aGUgYEFjY291bnRJZGAgdXNlZCB0byByZWdpc3RlciBhcyBhIGNvbnN1bWVyLgBsVXNlcm5hbWVSZXNlcnZhdGlvbkR1cmF0aW9uAQAoIAAAAAAAAAAACFUBIFRoZSBhbW91bnQgb2YgdGltZSBmb3Igd2hpY2ggYSB1c2VybmFtZSByZXNlcnZhdGlvbiBpcyB2YWxpZCwgaW4gc2Vjb25kcy4gQWZ0ZXIgdGhpc9AgdGltZSBwZXJpb2QgZWxhcHNlcywgdGhlIHJlc2VydmF0aW9uIGNhbiBiZSB2b2lkZWQuAGBVc2VybmFtZVJlc2VydmF0aW9uUXVldWUAAQQCmQRhCwQACHEBIE1hcCBmcm9tIGEgcmVzZXJ2ZWQgYHVzZXJuYW1lYCB0byBhIHF1ZXVlIG9mIGBSZXNlcnZhdGlvblF1ZXVlRW50cnlgIGl0ZW1zLCBlYWNoIGhvbGRpbmcgYW5hASBhY2NvdW50IGFuZCB0aGUgdGltZXN0YW1wIHdoZW4gaXQgam9pbmVkLiBPbGQgcmVzZXJ2YXRpb25zIGNhbiBiZSByZW1vdmVkIGZyb20gc3RvcmFnZS4ANFJlc2VydmF0aW9uT2YAAQQCBJkEBAAIZQEgUmV2ZXJzZSBsb29rdXAgZnJvbSBhbiBhY2NvdW50IHRvIHRoZSB1c2VybmFtZSBpdCBoYXMgcmVzZXJ2ZWQuIEVhY2ggYWNjb3VudCBjYW4gaGF2ZSBhdJwgbW9zdCBvbmUgYWN0aXZlIHJlc2VydmF0aW9uIGF0IGEgdGltZS4AAaEEAAERBwBQRE1heFVzZXJuYW1lTGVuZ3RoOBAgAAAABC0BIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLCBpbmNsdWRpbmcgYW55IHBvdGVudGlhbCB0cmFpbGluZyBkaWdpdHMuAERNaW5Vc2VybmFtZUxlbmd0aDgQBgAAAASIIFRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLgBIUGVyc29uQXV0aER1cmF0aW9uOBAAowIADFUBIFRoZSBkdXJhdGlvbiBvZiB0aW1lLCBpbiBzZWNvbmRzLCBmb3Igd2hpY2ggYSBwZXJzb24ncyBhdXRob3JpemF0aW9uIGlzIHZhbGlkLiBBZnRlclEBIHRoaXMgcGVyaW9kIGVsYXBzZXMsIHBlb3BsZSB3aWxsIG5vIGxvbmdlciBiZSBjb25zaWRlcmVkIGFjdGl2ZSwgYnV0IHRoZWlyIHJlc291cmNlDQEgYWxsb3dhbmNlcyBzaG91bGQgZGVmYXVsdCB0byB0aGUgc2FtZSB2YWx1ZXMgdXNlZCBmb3IgbGl0ZSBwZW9wbGUuAGxNaW5QZXJzb25BdXRoVXBkYXRlSW50ZXJ2YWw4EIBRAQAIVQEgVGhlIG1pbmltdW0gaW50ZXJ2YWwgb2YgdGltZSwgaW4gc2Vjb25kcywgd2hpY2ggbXVzdCBwYXNzIGJlZm9yZSB1cGRhdGluZyBhIHBlcnNvbidzPCBhdXRob3JpemF0aW9uLgBkTWF4UmVzZXJ2YXRpb25RdWV1ZUxlbmd0aDgQCgAAAAQpASBNYXhpbXVtIG51bWJlciBvZiBhY2NvdW50cyB0aGF0IGNhbiBxdWV1ZSBmb3IgYSBzaW5nbGUgcmVzZXJ2ZWQgdXNlcm5hbWUuAFBBY2NvdW50c0FwaUFsbG93YW5jZW0LIAIAAAAA0AcABNAgVGhlIFN0YXRlbWVudCBTdG9yZSBhbGxvd2FuY2UgZm9yIHRoZSBhY2NvdW50cyBBUEkuAFxTdG10U3RvcmVTbG90c1BlclBlcmlvZDgQFAAAAAQ5ASBNYXhpbXVtIG51bWJlciBvZiBzdGF0ZW1lbnQgc3RvcmUgc2xvdHMgYSBwZXJzb24gY2FuIGNsYWltIHdpdGhpbiBvbmUgcGVyaW9kLgBsTGl0ZVN0bXRTdG9yZVNsb3RzUGVyUGVyaW9kOBAKAAAAEE0BIE1heGltdW0gbnVtYmVyIG9mIHN0YXRlbWVudCBzdG9yZSBzbG90cyBhIGxpdGUgcGVyc29uIGNhbiBjbGFpbSB3aXRoaW4gb25lIHBlcmlvZC4ATQEgU2FtZSBzZW1hbnRpY3MgYXMgYFN0bXRTdG9yZVNsb3RzUGVyUGVyaW9kYCBidXQgYXBwbGllZCB3aGVuIHRoZSBwcm9vZiB0YXJnZXRzIHRoZfwgbGl0ZS1wZW9wbGUgY29sbGVjdGlvbiB2aWEgYE1lbWJlcnNoaXBDb2xsZWN0aW9uOjpMaXRlUGVvcGxlYC4AVFN0bXRTdG9yZUNsZWFudXBMaW1pdDgQMgAAAARZASBNYXhpbXVtIG51bWJlciBvZiBzdGFsZSBzdGF0ZW1lbnQgc3RvcmUgYWxsb3dhbmNlIGVudHJpZXMgdG8gcmVtb3ZlIHBlciBjbGVhbnVwIGNhbGwuAHBTdG10U3RvcmVSZXBsYWNlbWVudENvb2xkb3duOBA8AAAACDUBIE1pbmltdW0gdGltZSwgaW4gc2Vjb25kcywgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIGFuIGFsaWFzIGNhbiByZXBsYWNlIGl0cyBvd27gIHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgZW50cnkgd2l0aGluIHRoZSBzYW1lIHBlcmlvZC4AUFN0bXRTdG9yZUdyYWNlV2luZG93OBAAowIAEFUBIEV4dHJhIHRpbWUsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCBzdGF0ZW1lbnQtc3RvcmUgYWxsb3dhbmNlcyBmcm9tIGFuIGVuZGVkIHBlcmlvZLggcmVtYWluIGFjdGl2ZSBiZWZvcmUgY2xlYW51cCBtYXkgcmV2b2tlIHRoZW0uACkBIEFmdGVyIHRoaXMgZWxhcHNlcywgdGhlIGFsbG93YW5jZXMgd2lsbCBldmVudHVhbGx5IGJlIGNsZWFuZWQgYnkgdGhlIE9DVy4AVE5vdGlmaWNhdGlvbkFsbG93YW5jZW0LIAEAAAAAKAAABB0BIFRoZSBTdGF0ZW1lbnQgU3RvcmUgYWxsb3dhbmNlIGZvciBub3RpZmljYXRpb24gc3RhdGVtZW50IHJlZ2lzdHJhdGlvbi4AaE5vdGlmaWNhdGlvblNsb3RzUGVyUGVyaW9kDAQQIC0BIEhpZ2hlc3QgdmFsaWQgbm90aWZpY2F0aW9uIHNsb3QgaWRlbnRpZmllciBmb3IgYSBwZXJzb24gd2l0aGluIG9uZSBwZXJpb2QuAF0BIEEgcGVyaW9kIGlzIGEgZml4ZWQtZHVyYXRpb24gd2luZG93IHNldCBieSBgTm90aWZpY2F0aW9uUGVyaW9kRHVyYXRpb25gLiBFYWNoIHNsb3QgY2Fu4CBiZSBjbGFpbWVkIGF0IG1vc3Qgb25jZSBieSBhIHBlcnNvbiB3aXRoaW4gdGhhdCBwZXJpb2QuAFEBIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGA4YCwgdGhlIHZhbGlkIHNsb3QgaWRlbnRpZmllcnMgYXJlIGAwLi49OGAsIHNvIGVhY2ggcGVyc29uIQEgY2FuIGNsYWltIHVwIHRvIDkgbm90aWZpY2F0aW9uIGFsbG93YW5jZXMgZHVyaW5nIHRoZSBwZXJpb2Qgc2VsZWN0ZWQgYnklASBgTm90aWZpY2F0aW9uUGVyaW9kRHVyYXRpb25gLiBXaGVuIHRoZSBwZXJpb2QgYWR2YW5jZXMsIHRoZSBzbG90cyByZXNldC4AeExpdGVOb3RpZmljYXRpb25TbG90c1BlclBlcmlvZAwECBBBASBIaWdoZXN0IHZhbGlkIG5vdGlmaWNhdGlvbiBzbG90IGlkZW50aWZpZXIgZm9yIGEgbGl0ZSBwZXJzb24gd2l0aGluIG9uZSBwZXJpb2QuAFkBIFNhbWUgc2VtYW50aWNzIGFzIGBOb3RpZmljYXRpb25TbG90c1BlclBlcmlvZGAgYnV0IGFwcGxpZWQgd2hlbiB0aGUgcHJvb2YgdGFyZ2V0cyB0aGX8IGxpdGUtcGVvcGxlIGNvbGxlY3Rpb24gdmlhIGBNZW1iZXJzaGlwQ29sbGVjdGlvbjo6TGl0ZVBlb3BsZWAuAGhOb3RpZmljYXRpb25QZXJpb2REdXJhdGlvbjgQgFEBACQFASBSb2xsaW5nIHRpbWUgd2luZG93IGZvciByYXRlLWxpbWl0aW5nIG5vdGlmaWNhdGlvbnMsIGluIHNlY29uZHMuADUBIFRpbWUgaXMgZGl2aWRlZCBpbnRvIGZpeGVkLWR1cmF0aW9uIHBlcmlvZHMuIFRoZSBwZXJpb2QgaW5kZXggaXMgY29tcHV0ZWQgYXOkIGBub3dfc2VjcyAvIE5vdGlmaWNhdGlvblBlcmlvZER1cmF0aW9uYC4AYQEgRm9yIGV4YW1wbGUsIGlmIHRoaXMgaXMgYDg2XzQwMGAgKDI0IGhvdXJzKSwgcGVyaW9kIGAwYCBpcyB0aGUgZmlyc3QgMjQgaG91cnMgc2luY2UgdGhlGQEgVW5peCBlcG9jaCwgcGVyaW9kIGAxYCBpcyB0aGUgbmV4dCAyNCBob3VycywgYW5kIHNvIG9uLiBDb21iaW5lZCB3aXRoWQEgYE5vdGlmaWNhdGlvblNsb3RzUGVyUGVyaW9kYCwgdGhpcyBkZWZpbmVzIGhvdyBtYW55IG5vdGlmaWNhdGlvbnMgY2FuIGJlIHNlbnQgaW4gZWFjaCAgcGVyaW9kLgBYT2ZmY2hhaW5Xb3JrZXJJbnRlcnZhbDgQAQAAAATsIE51bWJlciBvZiBibG9ja3MgYmV0d2VlbiBvZmZjaGFpbi13b3JrZXIgbWFpbnRlbmFuY2UgcnVucy4AdExvbmdUZXJtU3RvcmFnZVBlcmlvZER1cmF0aW9uOBAAdRIAFAUBIFRoZSBkdXJhdGlvbiBvZiBhIGxvbmctdGVybSBzdG9yYWdlIGNsYWltaW5nIHBlcmlvZCwgaW4gc2Vjb25kcy4ANQEgVGltZSBpcyBkaXZpZGVkIGludG8gZml4ZWQtZHVyYXRpb24gcGVyaW9kcy4gVGhlIHBlcmlvZCBpbmRleCBpcyBjb21wdXRlZCBhcyUBIGBub3dfc2VjcyAvIExvbmdUZXJtU3RvcmFnZVBlcmlvZER1cmF0aW9uYC4gRWFjaCBwZXJzb24gY2FuIHN1Ym1pdCB1cCB0b9AgYExvbmdUZXJtU3RvcmFnZUNsYWltc1BlclBlcmlvZGAgY2xhaW1zIHBlciBwZXJpb2QuAHhMb25nVGVybVN0b3JhZ2VDbGFpbXNQZXJQZXJpb2QMBGQQCQEgTWF4aW11bSBudW1iZXIgb2YgbG9uZy10ZXJtIHN0b3JhZ2UgY2xhaW1zIHBlciBwZXJzb24gcGVyIHBlcmlvZC4ASQEgRWFjaCBjbGFpbSB1c2VzIGEgZGlmZmVyZW50IGNvdW50ZXIgdmFsdWUgKDAuLmNsYWltc19wZXJfcGVyaW9kKSB3aGljaCBwcm9kdWNlcyBhKQEgZGlzdGluY3QgYWxpYXMgaW4gdGhlIHByb29mIGNvbnRleHQsIGVuc3VyaW5nIG9uZSBjbGFpbSBwZXIgY291bnRlciBzbG90LgBoTG9uZ1Rlcm1TdG9yYWdlR3JhY2VXaW5kb3c4EBAOAAAUUQEgRXh0cmEgdGltZSwgaW4gc2Vjb25kcywgZHVyaW5nIHdoaWNoIHRoZSBwcmV2aW91cyBsb25nLXRlcm0gc3RvcmFnZSBwZXJpb2QgaXMgc3RpbGxsIGFjY2VwdGVkIGFmdGVyIGEgcm9sbG92ZXIuAF0BIEV4dHJhIHRpbWUsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCB0aGUgcHJldmlvdXMgbG9uZy10ZXJtIHN0b3JhZ2UgcGVyaW9kIGlzIGFjY2VwdGVkSCBhZnRlciBhIHJvbGxvdmVyLgBsTG9uZ1Rlcm1TdG9yYWdlQ2xlYW51cExpbWl0OBAUAAAAFEkBIE1heGltdW0gbnVtYmVyIG9mIHNwZW50IGxvbmctdGVybSBzdG9yYWdlIGFsaWFzZXMgdGhhdCBjYW4gYmUgY2xlYXJlZCBpbiBhIHNpbmdsZcAgYGNsZWFyX2V4cGlyZWRfbG9uZ190ZXJtX3N0b3JhZ2VfYWxpYXNlc2AgY2FsbC4ATQEgQm91bmRzIHRoZSB3b3JzdC1jYXNlIHdlaWdodCBvZiB0aGUgY2xlYW51cCBleHRyaW5zaWM7IGNhbGxlcnMgbXVzdCBwYXNzIGEgYGxpbWl0YHAgbm8gZ3JlYXRlciB0aGFuIHRoaXMgdmFsdWUuAAFxCwAERE9mZmNoYWluU2lnbmF0dXJl2QMIUQEgU2lnbmF0dXJlIHR5cGUgZm9yIGVuc3VyaW5nIG93bmVyc2hpcCBvZiBwcm92aWRlZCBhY2NvdW50cyBpbiBjYXNlIG9mIHJlZ2lzdHJhdGlvbnM8IHRocm91Z2ggYWxpYXMuDCER4N8Z3pVjtYMB5ffgB0M3LT6mizpKqhipWKis1xpDZGN1cnJlbnRfc3RtdF9zdG9yZV9wZXJpb2QAOARRASBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlbWVudCBzdG9yZSBhbGxvd2FuY2UgcGVyaW9kIChkYXkgbnVtYmVyIHNpbmNlIFVuaXggZXBvY2gpLgAhEeDfGd6VY7WDAeX34AdDrMglyENevZ01vA216nYOlmxzdG10X3N0b3JlX3Nsb3RfY29udGV4dF9mb3IIGHBlcmlvZDgMc2VxOAgQIQEgUmV0dXJucyB0aGUgcHJvb2YgY29udGV4dCBmb3IgYSBzdGF0ZW1lbnQgc3RvcmUgc2xvdCBjbGFpbSBhdCB0aGUgZ2l2ZW5QIGBwZXJpb2RgIGFuZCBgc2VxYC4APQEgTGF5b3V0OiBgU1NTX1NMT1Q6PHBlcmlvZCAoNCBieXRlcyBCRSk+PHNlcSAoNCBieXRlcyBCRSk+YCBwYWRkZWQgdG8gMzIgYnl0ZXMuACER4N8Z3pVjtYMB5ffgB0PvWg0qhc79ScVJ/efRN7MxYG5vdGlmaWNhdGlvbl9jb250ZXh0X2ZvcggYcGVyaW9kOAxzZXEMCAgdASBSZXR1cm5zIHRoZSBwcm9vZiBjb250ZXh0IGZvciBhIG5vdGlmaWNhdGlvbiByZWdpc3RyYXRpb24gYXQgdGhlIGdpdmVuUCBgcGVyaW9kYCBhbmQgYHNlcWAuAD8AADRDaHVua3NNYW5hZ2VyATRDaHVua3NNYW5hZ2VyCBhDaHVua3MAAQgFBXULeQsEAAQZASBQYWdpbmF0ZWQgY29sbGVjdGlvbiBvZiBjaHVua3MgKFJpbmdFeHBvbmVudCAtPiBQYWdlSW5kZXggLT4gQ2h1bmtzKS4APENodW5rUGFnZUhhc2hlcwABCAUFdQsIBAAEiCBUaGUgaGFzaCBmb3IgZWFjaCBwYWdlIG9mIGNodW5rcy4AAa0EAAEVBwAEIFBhZ2VTaXplOBD/AAAABMwgTnVtYmVyIG9mIGNodW5rcyBwZXIgcGFnZS4gTXVzdCBiZSBhIHBvd2VyIG9mIHR3by4AAYkLAAQUQ2h1bmuBCwRwIFRoZSB0eXBlIG9mIGEgc2luZ2xlIGNodW5rLgBAAAAcTWVtYmVycwEcTWVtYmVyc0QsQ29sbGVjdGlvbnMAAQQGCI0LBAAE4CBJbmZvcm1hdGlvbiBhYm91dCBlYWNoIGNvbGxlY3Rpb24sIGtleWVkIGJ5IGlkZW50aWZpZXIuAFBTdXNwZW5kZWRDb2xsZWN0aW9ucwABBAYIjQsEAAghASBDb2xsZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBtYXJrZWQgZm9yIGRlbGV0aW9uIGFuZCBhcmUgYmVpbmcgcHJvY2Vzc2VkLlkBIE9uY2UgYSBjb2xsZWN0aW9uIGlzIG1vdmVkIGhlcmUsIG5vcm1hbCBvcGVyYXRpb25zIHdpbGwgZmFpbCB3aXRoIENvbGxlY3Rpb25Ob3RGb3VuZC4ANElkZW50aWZpZXJzT2YAAQQCkQuZCwQABMwgVGhlIGlkZW50aWZpZXJzIG9mIGNvbGxlY3Rpb25zIG93bmVkIGJ5IGFuIGVudGl0eS4AEFJvb3QAAQgGAp0LoQsEAASIIFRoZSBjdXJyZW50IG1lbWJlcnMgd2UgcmVjb2duaXNlLgAgT2xkUm9vdHMAAQwGBgapC60LBAAkQQEgT2xkIHJpbmcgcm9vdHMgYXJlIHJldGFpbmVkIGZvciBhIGdyYWNlIHBlcmlvZCBzbyB0aGF0IHByb29mcyBnZW5lcmF0ZWQgYWdhaW5zdGUBIHByZXZpb3VzIHJldmlzaW9ucyByZW1haW4gdmFsaWQuIEVhY2ggcm9vdCBpbiB0aGUgbWFwIGlzIGlkZW50aWZpZWQgYnkgdGhlIGNvbXBvc2l0ZSBrZXktASBgKGNvbGxlY3Rpb24sIHJpbmcgaW5kZXgsIHJpbmcgcmV2aXNpb24pYC4gRW50cmllcyBjYW4gYmUgY2xlYW5lZCB1cCBhZnRlciUBIGBPbGRSb290UmV0ZW50aW9uRHVyYXRpb25gIGhhcyBwYXNzZWQgc2luY2UgdGhlIGBhcmNoaXZlZF9hdGAgdGltZXN0YW1wLgA5ASBUaGlzIHN0b3JhZ2UgY2FuIGNvbnRhaW4gc29tZSByb290cyBmb3IgZGVsZXRlZCBjb2xsZWN0aW9ucyBvciByZW1vdmVkIHJpbmdzLkEBIFRoZSBjYWxsIGB2ZXJpZnlfbWVtYmVyc2hpcGAgYW5kIG90aGVyIG9wZXJhdGlvbiB1c2luZyBvbGQgcm9vdHMgbXVzdCBjaGVjayB0aGVBASBleGlzdGVuY2Ugb2YgdGhlIGNvbGxlY3Rpb24gYW5kIHRoZSByb290IGluIG9yZGVyIHRvIG5vdCB2YWxpZGF0ZSBhZ2FpbnN0IGR1c3Qu8CBUaGUgb2xkIHJvb3RzIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciB0aGUgcmV0ZW50aW9uIGR1cmF0aW9uLgBAQ3VycmVudFJpbmdJbmRleAEBBAYIOBAAAAAABOQgS2VlcHMgdHJhY2sgb2YgdGhlIHJpbmcgaW5kZXggY3VycmVudGx5IGJlaW5nIHBvcHVsYXRlZC4AOE9uYm9hcmRpbmdTaXplAQEEBgg4EAAAAAAE+CBNYXhpbXVtIG51bWJlciBvZiBtZW1iZXJzIHF1ZXVlZCBiZWZvcmUgb25ib2FyZGluZyB0byBhIHJpbmcuACBSaW5nS2V5cwEBDAYCBbELtQsEABBhASBCb3RoIHRoZSBrZXlzIHRoYXQgYXJlIGluY2x1ZGVkIGluIGJ1aWx0IHJpbmdzIGFuZCB0aGUga2V5cyB0aGF0IHdpbGwgYmUgdXNlZCBpbiBmdXR1cmVZASByaW5ncy4gUGFnaW5hdGVkIGJ5IChJZGVudGlmaWVyLCBSaW5nSW5kZXgsIFBhZ2VJbmRleCkgd2hlcmUgZWFjaCBwYWdlIGNvbnRhaW5zIHVwIHRvdQEgYFJpbmdDYXBhY2l0eUZyb21FeHBvbmVudGAga2V5cy4gVGhlIHBhZ2Ugc2l6ZSBlcXVhbHMgdGhlIGZsZXhpYmxlIHJpbmcgZXhwb25lbnQncyBjYXBhY2l0eSz0IGVuc3VyaW5nIEZsZXhpYmxlIGNvbGxlY3Rpb25zIG5ldmVyIG5lZWQgbW9yZSB0aGFuIG9uZSBwYWdlLgA4UmluZ0tleXNTdGF0dXMBAQgGAp0LuQskAAAAAAAAAAAACGEBIFN0b3JlcyB0aGUgbWV0YSBpbmZvcm1hdGlvbiBmb3IgZWFjaCByaW5nLCB0aGUgbnVtYmVyIG9mIGtleXMgYW5kIGhvdyBtYW55IGFyZSBhY3R1YWxseVggaW5jbHVkZWQgaW4gdGhlIHJvb3QuAEhQZW5kaW5nU3VzcGVuc2lvbnMBAQgGBZ0LvQsEAAxpASBBIG1hcCBvZiBhbGwgcmluZ3Mgd2hpY2ggY3VycmVudGx5IGhhdmUgcGVuZGluZyBzdXNwZW5zaW9ucyBhbmQgbmVlZCBjbGVhbmluZywgYWxvbmcgd2l0aBEBIHRoZWlyIHJlc3BlY3RpdmUgbnVtYmVyIG9mIHN1c3BlbmRlZCBrZXlzIHdoaWNoIG5lZWQgdG8gYmUgcmVtb3ZlZC5tASBOb3RlOiBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBzaW5nbGUtcGFnZSByaW5ncywgc28gYm91bmRlZCBieSBgUmluZ0NhcGFjaXR5RnJvbUV4cG9uZW50YC4ANEFjdGl2ZU1lbWJlcnMBAQQGCDgQAAAAAATQIFRoZSBudW1iZXIgb2YgbWVtYmVycyBjdXJyZW50bHkgaW5jbHVkZWQgaW4gYSByaW5nLgAcTWVtYmVycwABCAYCwQvFCwQAGF0BIFRoZSBjdXJyZW50IG1lbWJlcnMgaW4gZWFjaCBjb2xsZWN0aW9uIChlaXRoZXIgaW5jbHVkZWQgaW4gcmluZ3MsIHN1c3BlbmRlZCBhbmQgcXVldWVkIQEgZm9yIHJlbW92YWwgZnJvbSBhIHJpbmcsIHN1c3BlbmRlZCBhbmQgbm90IGluIGFueSByaW5nLCBvciBvbmJvYXJkaW5nKS4ADQEgQ29sbGVjdGlvbiBpZGVudGlmaWVyIHRvIG1lbWJlciBwdWJsaWMga2V5IHRvIHRoZSBtZW1iZXIncyBzdGF0dXMuAKggQSBrZXkgY2FuIGJlbG9uZyB0byBtdWx0aXBsZSBjb2xsZWN0aW9ucy4AKFJpbmdzU3RhdGUBAQQGCMkLBAAE/CBUaGUgY3VycmVudCBzdGF0ZSBvZiBhbGwgcmluZ3MgbWFuYWdlZCBmb3IgYSBnaXZlbiBpZGVudGlmaWVyLgAoU3RhbGVSaW5ncwABCAYFnQsQBAAEzCBTZXQgb2YgcmluZ3Mgd2hpY2ggYXJlIHN0YWxlIGFuZCByZXF1aXJlIGJ1aWxkaW5nLgBAUXVldWVQYWdlSW5kaWNlcwEBBAYITQcgAAAAAAAAAAAEOQEgS2VlcHMgdHJhY2sgb2YgdGhlIHBhZ2UgaW5kaWNlcyBvZiB0aGUgaGVhZCBhbmQgdGFpbCBvZiB0aGUgb25ib2FyZGluZyBxdWV1ZS4APE9uYm9hcmRpbmdRdWV1ZQEBCAYFnQvRCwQABC0BIFBhZ2luYXRlZCBjb2xsZWN0aW9uIG9mIG1lbWJlciBwdWJsaWMga2V5cyByZWFkeSB0byBiZSBpbmNsdWRlZCBpbiBhIHJpbmcuAERSaW5nRGVsZXRpb25RdWV1ZQABDAYFBbELEAQAFJggUXVldWUgb2YgcmluZyBwYWdlcyBwZW5kaW5nIGRlbGV0aW9uLgAVASBUaGlzIGlzIHVzZWQgYm90aCBieSBgcmVtb3ZlX3JpbmdgIChpbmRpdmlkdWFsIHJpbmcgZGVsZXRpb24pIGFuZCBieRkBIGNvbGxlY3Rpb24gZGVsZXRpb24uIFJpbmcgcGFnZXMgYXJlIHByb2Nlc3NlZCBmcm9tIHRoaXMgcXVldWUgdmlhIE9DV6wgcmVnYXJkbGVzcyBvZiB3aGljaCBvcGVyYXRpb24gcXVldWVkIHRoZW0uAAG9BAABGQcAGDhNYXhDb2xsZWN0aW9uczgQZAAAAATEIE1heGltdW0gbnVtYmVyIG9mIGNvbGxlY3Rpb25zIGFuIG93bmVyIGNhbiBoYXZlLgBcT25ib2FyZGluZ1F1ZXVlUGFnZVNpemU4EP8AAAAITQEgTWF4aW11bSBudW1iZXIgb2YgbWVtYmVycyBpbmNsdWRlZCBpbiBhbiBvbmJvYXJkaW5nIHF1ZXVlIHBhZ2UgYmVmb3JlIGEgbmV3IG9uZSBpcyQgY3JlYXRlZC4AXE1heEZsZXhpYmxlUmluZ0V4cG9uZW50sQQECQxdASBUaGUgbWF4aW11bSByaW5nIGV4cG9uZW50IHVzZWQgZm9yIEZsZXhpYmxlIGNvbGxlY3Rpb25zLiBUaGlzIGFsc28gZGV0ZXJtaW5lcyB0aGUgcGFnZVUBIHNpemUgZm9yIHBhZ2luYXRlZCByaW5nIGtleSBzdG9yYWdlLiBGbGV4aWJsZSBjb2xsZWN0aW9ucyBjYW4gb25seSB1c2UgcmluZyBzaXplcyB1cDwgdG8gdGhpcyB2YWx1ZS4AXFJpbmdCdWlsZGluZ01lbWJlckxpbWl0OBBkAAAACGEBIE1heGltdW0gbnVtYmVyIG9mIG1lbWJlcnMgdGhhdCBjYW4gYmUgaW5jbHVkZWQgaW4gYSByaW5nIHRocm91Z2ggYSBzaW5nbGUgcm9vdCBidWlsZGluZxggY2FsbC4AYE9sZFJvb3RSZXRlbnRpb25EdXJhdGlvbiggWAIAAAAAAAAIUQEgRHVyYXRpb24gaW4gc2Vjb25kcyB0aGF0IG9sZCByaW5nIHJvb3RzIGFyZSByZXRhaW5lZCBiZWZvcmUgdGhleSBjYW4gYmUgY2xlYW5lZCB1cC5JASBUaGlzIGFsbG93cyBwcm9vZnMgZ2VuZXJhdGVkIHdpdGggb2xkZXIgcm9vdHMgdG8gcmVtYWluIHZhbGlkIGZvciBhIGdyYWNlIHBlcmlvZC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAEAAAAE5CBUaGUgbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIG9mZmNoYWluIHdvcmtlciBleGVjdXRpb25zLgAB1QsABCBMb2NhdGlvbuAEOQEgTG9jYXRpb24gdHlwZSBmb3IgaWRlbnRpZnlpbmcgY29sbGVjdGlvbiBvd25lcnMgZnJvbSBvdGhlciBjaGFpbnMvcGFyYWNoYWlucy4AQwAAHENvaW5hZ2UBHENvaW5hZ2VEMENvaW5zQnlPd25lcgABBAUEcQMEABBAIENvaW5zIGJ5IG93bmVyLgBdASBUaGlzIHN0b3JhZ2UgbWFwIGNvbnRhaW5zIGFsbCB0aGUgY29pbnMgY3VycmVudGx5IGNpcmN1bGF0aW5nLiBUaGUgY29pbiBpcyBtaW50ZWQgd2hlbiUBIHVubG9hZGVkIGZyb20gdGhlIHJlY3ljbGVyLCBhbmQgZGVzdHJveWVkIHdoZW4gbG9hZGVkIGludG8gdGhlIHJlY3ljbGVyLgAsTG9ja2VkQ29pbnMAAQQFBNkLBAAQBQEgVGVtcG9yYXJ5IGxvY2sgZXhwaXJ5IGZvciBjb2lucyB0aGF0IHByZXZpb3VzbHkgZmFpbGVkIGRpc3BhdGNoLgBlASBBIGNvaW4gb3duZXIgZW50cnkgaXMgbG9ja2VkIHVudGlsIHRoZSBzdG9yZWQgVW5peCB0aW1lc3RhbXAsIHByZXZlbnRpbmcgcmVwZWF0ZWQgZmFpbGVklCBkaXNwYXRjaCBhdHRlbXB0cyBpbiBhIHNob3J0IHBlcmlvZC4AaFRvdGFsVmFsdWVPZkRlc3Ryb3llZENvaW5zAQDEQAAAAAAAAAAAAAAAAAAAAAAUqCBUaGUgdG90YWwgdmFsdWUgb2YgY29pbnMgdGhhdCB3ZXJlIGJ1cm50LgBpASBUaGlzIHRyYWNrcyB2YWx1ZSB0aGF0IGlzIGludGVudGlvbmFsbHkgZGVzdHJveWVkIGFzIHBhcnQgb2YgcHJvdG9jb2wgZmxvd3MgKGZvciBleGFtcGxlOmUBIHJlY3ljbGVyIGV4cGlyYXRpb24gY2xlYW51cCBhbmQgZmVlIHJlbWFpbmRlciBidXJuaW5nKS4gVGhpcyBzdG9yYWdlIGl0ZW0ga2VlcHMgdHJhY2sgb2akIHRoZSB0b3RhbCB2YWx1ZSBvZiBzdWNoIGRlc3Ryb3llZCBjb2lucy4AYENvbnN1bWVkRnJlZVVubG9hZFRva2VucwABCAUFCQoQBAAYxCBDb25zdW1lZCBmcmVlIHVubG9hZCB0b2tlbnMgYnkgcGVyaW9kIGFuZCBhbGlhcy4AVQEgVGhpcyBzdG9yYWdlIGtlZXBzIHRyYWNrIG9mIHRoZSBmcmVlIHVubG9hZCB0b2tlbnMgdGhhdCBoYXZlIGJlZW4gY29uc3VtZWQgYnkgcGVvcGxlrCBhbmQgbGl0ZSBwZW9wbGUsIHRvIGF2b2lkIGRvdWJsZSBzcGVuZGluZy4AcCBJdCBpcyBjbGVhcmVkIHBlcmlvZGljYWxseS4AZFJlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWQAAQQFdQMQBABQGQEgVHJhY2tzIHdoZXRoZXIgYSByZWN5Y2xlciBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBnaXZlbiBkZW5vbWluYXRpb24uADEBIFJlY3ljbGVyIGNvbGxlY3Rpb25zIGFyZSBub3JtYWxseSBjcmVhdGVkIGVhZ2VybHkgZHVyaW5nIG9uZS10aW1lIGBvbl9wb2xsYNwgaW5pdGlhbGl6YXRpb24gYWZ0ZXIgYFVuZGVybHlpbmdBc3NldElkYCBoYXMgYmVlbiBzZXQuHQEgW2BSZWN5Y2xlck1hbmFnZXI6OmVuc3VyZV9jb2xsZWN0aW9uX2V4aXN0c2BdIHJlbWFpbnMgdGhlIGZhbGxiYWNrIGZvcgEBIGZpcnN0LXVzZSBvciByZWNvdmVyeSBwYXRocyB3aGVuIGEgY29sbGVjdGlvbiBpcyBzdGlsbCBtaXNzaW5nLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6SQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBkZW5vbWluYXRpb24uXQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGRlbm9taW5hdGlvbi5hASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGRlbm9taW5hdGlvbiBpdCBpcyBpbi5pASAqIFtSZWN5Y2xlckFsaWFzU3RhdGVzXSAtIHBlci1hbGlhcyBsb2NrL3VubG9hZGVkIHN0YXRlLCBpbmRleGVkIGJ5IGRlbm9taW5hdGlvbiBhbmQgcmluZyQgICBpbmRleC5BASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggZGVmZXJyZWQgcmVjeWNsZXIgZHVzdCBwZW5kaW5nIHJlbW92YWwubQEgKiBbUmVjeWNsZXJzQXJjaGl2ZXNdIC0gYXJjaGl2YWwgY29tbWl0bWVudHMgZm9yIGNsZWFuZWQgcmluZ3MgdGhhdCBzdGlsbCBob2xkIHJlY292ZXJhYmxlJCAgIGNvaW5zLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AdFJlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4AAEEBXUDOAQASMwgTGFzdCByZW1vdmVkIHJpbmcgaW5kZXggcGVyIHJlY3ljbGVyIGRlbm9taW5hdGlvbi4ARQEgUmluZ3MgYXJlIHJlbW92ZWQgc2VxdWVudGlhbGx5IHN0YXJ0aW5nIGZyb20gaW5kZXggMC4gVGhlIG5leHQgcmluZyB0byBjaGVjayBmb3ItASBleHBpcmF0aW9uIGlzIGBsYXN0X3JlbW92ZWQgKyAxYCAob3IgYDBgIGlmIG5vdGhpbmcgaGFzIGJlZW4gcmVtb3ZlZCB5ZXQpLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6SQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBkZW5vbWluYXRpb24uXQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGRlbm9taW5hdGlvbi5hASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGRlbm9taW5hdGlvbiBpdCBpcyBpbi5pASAqIFtSZWN5Y2xlckFsaWFzU3RhdGVzXSAtIHBlci1hbGlhcyBsb2NrL3VubG9hZGVkIHN0YXRlLCBpbmRleGVkIGJ5IGRlbm9taW5hdGlvbiBhbmQgcmluZyQgICBpbmRleC5BASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggZGVmZXJyZWQgcmVjeWNsZXIgZHVzdCBwZW5kaW5nIHJlbW92YWwubQEgKiBbUmVjeWNsZXJzQXJjaGl2ZXNdIC0gYXJjaGl2YWwgY29tbWl0bWVudHMgZm9yIGNsZWFuZWQgcmluZ3MgdGhhdCBzdGlsbCBob2xkIHJlY292ZXJhYmxlJCAgIGNvaW5zLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXFJlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyAAEEBQh1AwQASBkBIE1hcHBpbmcgZnJvbSBhIHJlY3ljbGVyIG1lbWJlciBrZXkgdG8gdGhlIGRlbm9taW5hdGlvbiBpdCBiZWxvbmdzIHRvLgBNASBXaGVuIGEgY29pbiBpcyBsb2FkZWQgaW50byBhIHJlY3ljbGVyLCB0aGUgbWVtYmVyIGtleSBpcyByZWNvcmRlZCBoZXJlIHNvIHRoYXQgdGhlFQEgcGFsbGV0IGNhbiBsb29rIHVwIHdoaWNoIGRlbm9taW5hdGlvbiB0aGUgbWVtYmVyIGtleSBjb3JyZXNwb25kcyB0by4AVQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BSZWN5Y2xlck1hbmFnZXJgXSB0eXBlIGluc3RlYWQuAFUBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIG1hbmFnZWQgYnkgW2BSZWN5Y2xlck1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OkkBICogW1JlY3ljbGVyQ29sbGVjdGlvbkNyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgZGVub21pbmF0aW9uLl0BICogW1JlY3ljbGVyc0xhc3RSZW1vdmVkUmluZ0luZGV4XSAtIHRoZSBsYXN0IHJlbW92ZWQgcmluZyBpbmRleCBmb3IgZWFjaCBkZW5vbWluYXRpb24uYQEgKiBbUmVjeWNsZXJzQ29pblRvUmVjeWNsZXJdIC0gdGhlIG1hcHBpbmcgZnJvbSBtZW1iZXIga2V5IHRvIHRoZSBkZW5vbWluYXRpb24gaXQgaXMgaW4uaQEgKiBbUmVjeWNsZXJBbGlhc1N0YXRlc10gLSBwZXItYWxpYXMgbG9jay91bmxvYWRlZCBzdGF0ZSwgaW5kZXhlZCBieSBkZW5vbWluYXRpb24gYW5kIHJpbmckICAgaW5kZXguQQEgKiBbUmVjeWNsZXJzRHVzdGluZ10gLSBtYXJrcyByaW5ncyB3aXRoIGRlZmVycmVkIHJlY3ljbGVyIGR1c3QgcGVuZGluZyByZW1vdmFsLm0BICogW1JlY3ljbGVyc0FyY2hpdmVzXSAtIGFyY2hpdmFsIGNvbW1pdG1lbnRzIGZvciBjbGVhbmVkIHJpbmdzIHRoYXQgc3RpbGwgaG9sZCByZWNvdmVyYWJsZSQgICBjb2lucy4AYQEgUmluZyBtZW1iZXJzLCBwZW5kaW5nIG1lbWJlcnMsIGFuZCByaW5nIHN0YXRlIGFyZSBtYW5hZ2VkIGJ5IFtgQ29uZmlnOjpNZW1iZXJTZXJ2aWNlYF0uAExSZWN5Y2xlckFsaWFzU3RhdGVzAAEMBQUF4QvlCwQASC0BIFN0YXRlIG9mIHJlY3ljbGVyIGFsaWFzZXMsIGluZGV4ZWQgYnkgYChkZW5vbWluYXRpb24sIHJpbmcgaW5kZXgsIGFsaWFzKWAuAFUBIEVhY2ggZW50cnkgcmVjb3JkcyBlaXRoZXIgYSB0ZW1wb3JhcnkgZmFpbGVkLWRpc3BhdGNoIGxvY2sgb3IgYSBwZXJtYW5lbnRseSBjb25zdW1lZOggYWxpYXMuIEFic2VuY2UgZnJvbSB0aGUgbWFwIG1lYW5zIHRoZSBhbGlhcyBpcyBhdmFpbGFibGUuAFUBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUmVjeWNsZXJNYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBVASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUmVjeWNsZXJNYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDpJASAqIFtSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGRlbm9taW5hdGlvbi5dASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggZGVub21pbmF0aW9uLmEBICogW1JlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyXSAtIHRoZSBtYXBwaW5nIGZyb20gbWVtYmVyIGtleSB0byB0aGUgZGVub21pbmF0aW9uIGl0IGlzIGluLmkBICogW1JlY3ljbGVyQWxpYXNTdGF0ZXNdIC0gcGVyLWFsaWFzIGxvY2svdW5sb2FkZWQgc3RhdGUsIGluZGV4ZWQgYnkgZGVub21pbmF0aW9uIGFuZCByaW5nJCAgIGluZGV4LkEBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCBkZWZlcnJlZCByZWN5Y2xlciBkdXN0IHBlbmRpbmcgcmVtb3ZhbC5tASAqIFtSZWN5Y2xlcnNBcmNoaXZlc10gLSBhcmNoaXZhbCBjb21taXRtZW50cyBmb3IgY2xlYW5lZCByaW5ncyB0aGF0IHN0aWxsIGhvbGQgcmVjb3ZlcmFibGUkICAgY29pbnMuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBAUmVjeWNsZXJzRHVzdGluZwABBAXpCxAEAFAdASBNYXJrcyByZWN5Y2xlciByaW5ncyB0aGF0IGhhdmUgZGVmZXJyZWQgcmVjeWNsZXIgZHVzdCBwZW5kaW5nIHJlbW92YWwuADUBIFdoZW4gYSByZWN5Y2xlciByaW5nIGlzIHJlbW92ZWQsIHRoZSBjbGVhbnVwIG9mIGl0cyBsZWZ0b3ZlciBhbGlhcyBzdGF0ZXMgaW5ZASBbUmVjeWNsZXJBbGlhc1N0YXRlc10gaXMgcGVyZm9ybWVkIGdyYWR1YWxseSB0aHJvdWdoIHRoaXMgc3RvcmFnZSBpdGVtLiBBbiBlbnRyeSBoZXJlaQEgaW5kaWNhdGVzIHRoYXQgZW50cmllcyBpbiBbUmVjeWNsZXJBbGlhc1N0YXRlc10gZm9yIHRoZSBnaXZlbiBkZW5vbWluYXRpb24gYW5kIHJpbmcgaW5kZXiIIHN0aWxsIGV4aXN0IGFuZCBzaG91bGQgYmUgZHVzdGVkLgBVASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFJlY3ljbGVyTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AVQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFJlY3ljbGVyTWFuYWdlcmBdIGFuZCBpcyBwYXJ0IG9mIGEgY29uc2lzdGVudCBzZXQ6SQEgKiBbUmVjeWNsZXJDb2xsZWN0aW9uQ3JlYXRlZF0gLSB3aGV0aGVyIHRoZSBjb2xsZWN0aW9uIGV4aXN0cyBmb3IgYSBkZW5vbWluYXRpb24uXQEgKiBbUmVjeWNsZXJzTGFzdFJlbW92ZWRSaW5nSW5kZXhdIC0gdGhlIGxhc3QgcmVtb3ZlZCByaW5nIGluZGV4IGZvciBlYWNoIGRlbm9taW5hdGlvbi5hASAqIFtSZWN5Y2xlcnNDb2luVG9SZWN5Y2xlcl0gLSB0aGUgbWFwcGluZyBmcm9tIG1lbWJlciBrZXkgdG8gdGhlIGRlbm9taW5hdGlvbiBpdCBpcyBpbi5pASAqIFtSZWN5Y2xlckFsaWFzU3RhdGVzXSAtIHBlci1hbGlhcyBsb2NrL3VubG9hZGVkIHN0YXRlLCBpbmRleGVkIGJ5IGRlbm9taW5hdGlvbiBhbmQgcmluZyQgICBpbmRleC5BASAqIFtSZWN5Y2xlcnNEdXN0aW5nXSAtIG1hcmtzIHJpbmdzIHdpdGggZGVmZXJyZWQgcmVjeWNsZXIgZHVzdCBwZW5kaW5nIHJlbW92YWwubQEgKiBbUmVjeWNsZXJzQXJjaGl2ZXNdIC0gYXJjaGl2YWwgY29tbWl0bWVudHMgZm9yIGNsZWFuZWQgcmluZ3MgdGhhdCBzdGlsbCBob2xkIHJlY292ZXJhYmxlJCAgIGNvaW5zLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4ARFJlY3ljbGVyc0FyY2hpdmVzAAEEBekL7QsEAGxNASBBcmNoaXZhbCBjb21taXRtZW50cyBmb3IgY2xlYW5lZCByZWN5Y2xlciByaW5ncyB0aGF0IHN0aWxsIGhvbGQgcmVjb3ZlcmFibGUgY29pbnMuAGkBIFdoZW4gYSByZWN5Y2xlciByaW5nIGlzIGNsZWFuZWQgKHNlZSBbYFJlY3ljbGVyTWFuYWdlcjo6Y2xlYW5fdW5jaGVja2VkYF0pIHdoaWxlIGl0IHN0aWxsXQEgaGFzIGF0IGxlYXN0IG9uZSBub3QtdW5sb2FkZWQgYWxpYXMsIGFuIFtgQXJjaGl2ZWRSZWN5Y2xlcmBdIGlzIHJlY29yZGVkIGhlcmUga2V5ZWQgYnlpASBgKGRlbm9taW5hdGlvbiwgcmluZyBpbmRleClgLiBJdCBjb21taXRzIHRvIHRoZSB0cmllIG9mIHVubG9hZGVkIGFsaWFzZXMgYW5kIHRoZSByZWN5Y2xlctAgcm9vdC4gTm90LXVubG9hZGVkIGNvaW5zIGNhbiBzdGlsbCBiZSB1bmxvYWRlZCB3aXRoZQEgW2BQYWxsZXQ6OnVubG9hZF9hcmNoaXZlZF9yZWN5Y2xlcl9pbnRvX2V4dGVybmFsX2Fzc2V0YF0sIHdoaWNoIHVwZGF0ZXMgdGhlIGFyY2hpdmUuIFRoZdggYXJjaGl2ZSBpcyByZW1vdmVkIG9uY2UgYWxsIGNvaW5zIGhhdmUgYmVlbiB1bmxvYWRlZC4AYQEgT25seSB0aGUgY29tbWl0bWVudHMgYXJlIHN0b3JlZCBvbi1jaGFpbi4gVGhlIHVubG9hZGVkLWFsaWFzZXMgdHJpZSBhbmQgdGhlIHJpbmcgY2FuIGJlIQEgcmVjb25zdHJ1Y3RlZCBvZmZjaGFpbiB0byBidWlsZCB0aGUgcmVjb3ZlcnkgcHJvb2ZzIGJ5IGxpc3RlbmluZyB0byB0aGUJASBbYEV2ZW50OjpSZWN5Y2xlckFsaWFzVW5sb2FkZWRgXSwgW2BFdmVudDo6UmVjeWNsZXJBcmNoaXZlZGBdIGFuZPQgW2BFdmVudDo6QXJjaGl2ZWRSZWN5Y2xlclVubG9hZGVkSW50b0V4dGVybmFsQXNzZXRgXSBldmVudHMuAFUBICoqV0FSTklORyoqOiBEbyBub3QgdXNlIHRoaXMgc3RvcmFnZSBkaXJlY3RseSwgdXNlIFtgUmVjeWNsZXJNYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBVASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUmVjeWNsZXJNYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDpJASAqIFtSZWN5Y2xlckNvbGxlY3Rpb25DcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIGRlbm9taW5hdGlvbi5dASAqIFtSZWN5Y2xlcnNMYXN0UmVtb3ZlZFJpbmdJbmRleF0gLSB0aGUgbGFzdCByZW1vdmVkIHJpbmcgaW5kZXggZm9yIGVhY2ggZGVub21pbmF0aW9uLmEBICogW1JlY3ljbGVyc0NvaW5Ub1JlY3ljbGVyXSAtIHRoZSBtYXBwaW5nIGZyb20gbWVtYmVyIGtleSB0byB0aGUgZGVub21pbmF0aW9uIGl0IGlzIGluLmkBICogW1JlY3ljbGVyQWxpYXNTdGF0ZXNdIC0gcGVyLWFsaWFzIGxvY2svdW5sb2FkZWQgc3RhdGUsIGluZGV4ZWQgYnkgZGVub21pbmF0aW9uIGFuZCByaW5nJCAgIGluZGV4LkEBICogW1JlY3ljbGVyc0R1c3RpbmddIC0gbWFya3MgcmluZ3Mgd2l0aCBkZWZlcnJlZCByZWN5Y2xlciBkdXN0IHBlbmRpbmcgcmVtb3ZhbC5tASAqIFtSZWN5Y2xlcnNBcmNoaXZlc10gLSBhcmNoaXZhbCBjb21taXRtZW50cyBmb3IgY2xlYW5lZCByaW5ncyB0aGF0IHN0aWxsIGhvbGQgcmVjb3ZlcmFibGUkICAgY29pbnMuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBYUGFpZFVubG9hZFRva2VuTWVtYmVycwABBAUIEAQAOAkBIE1hcHBpbmcgZnJvbSBhIHBhaWQgdG9rZW4gbWVtYmVyIGtleSB0byB0aGUgcGVyaW9kIGl0IGJlbG9uZ3MgdG8uAEUBIFdoZW4gYSB1c2VyIHBheXMgZm9yIGEgcmVjeWNsZXIgdW5sb2FkIHRva2VuLCB0aGUgbWVtYmVyIGtleSBpcyByZWNvcmRlZCBoZXJlIHNvIQEgdGhhdCB0aGUgcGFsbGV0IGNhbiBsb29rIHVwIHdoaWNoIHBlcmlvZCB0aGUgbWVtYmVyIGtleSBjb3JyZXNwb25kcyB0by4AUQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BQYWlkVGtuTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AUQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFBhaWRUa25NYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDrwICogW1BhaWRVbmxvYWRUb2tlbk1lbWJlcnNdIC0gdHJhY2tzIHJlZ2lzdGVyZWQgbWVtYmVyIGtleXMuGQEgKiBbUGFpZFVubG9hZFRva2VuQ29uc3VtZWRdIC0gdGhlIGNvbnN1bWVkIHBhaWQgdW5sb2FkIHRva2VuIGFsaWFzZXMuOQEgKiBbUGFpZFRva2VuQ29sbGVjdGlvbnNDcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIHBlcmlvZC5FASAqIFtQYWlkVW5sb2FkVG9rZW5EdXN0aW5nXSAtIG1hcmtzIHBlcmlvZHMgd2l0aCBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXFBhaWRVbmxvYWRUb2tlbkNvbnN1bWVkAAEMBgUFWQsQBAA49CBDb25zdW1lZCBwYWlkIHVubG9hZCB0b2tlbnMgYnkgcGVyaW9kLCByaW5nIGluZGV4IGFuZCBhbGlhcy4ASQEgV2hlbiBhIHBhaWQgdW5sb2FkIHRva2VuIGlzIGNvbnN1bWVkLCB0aGUgYWxpYXMgcHJvZHVjZWQgYnkgdGhlIHJpbmctVlJGIHByb29mIGlz9CBzdG9yZWQgaGVyZSB0byBwcmV2ZW50IGRvdWJsZS1zcGVuZGluZyB3aXRoaW4gdGhlIHNhbWUgcmluZy4AUQEgKipXQVJOSU5HKio6IERvIG5vdCB1c2UgdGhpcyBzdG9yYWdlIGRpcmVjdGx5LCB1c2UgW2BQYWlkVGtuTWFuYWdlcmBdIHR5cGUgaW5zdGVhZC4AUQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgbWFuYWdlZCBieSBbYFBhaWRUa25NYW5hZ2VyYF0gYW5kIGlzIHBhcnQgb2YgYSBjb25zaXN0ZW50IHNldDrwICogW1BhaWRVbmxvYWRUb2tlbk1lbWJlcnNdIC0gdHJhY2tzIHJlZ2lzdGVyZWQgbWVtYmVyIGtleXMuGQEgKiBbUGFpZFVubG9hZFRva2VuQ29uc3VtZWRdIC0gdGhlIGNvbnN1bWVkIHBhaWQgdW5sb2FkIHRva2VuIGFsaWFzZXMuOQEgKiBbUGFpZFRva2VuQ29sbGVjdGlvbnNDcmVhdGVkXSAtIHdoZXRoZXIgdGhlIGNvbGxlY3Rpb24gZXhpc3RzIGZvciBhIHBlcmlvZC5FASAqIFtQYWlkVW5sb2FkVG9rZW5EdXN0aW5nXSAtIG1hcmtzIHBlcmlvZHMgd2l0aCBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AbFBhaWRUb2tlbkNvbGxlY3Rpb25zQ3JlYXRlZAABBAZNCxAEADgJASBUcmFja3Mgd2hldGhlciBhIHBhaWQgdG9rZW4gY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgZ2l2ZW4gcGVyaW9kLgBVASBVc2VzIGBJZGVudGl0eWAgaGFzaGVyIHNvIHRoYXQgaXRlcmF0aW9uIHlpZWxkcyBwZXJpb2RzIGluIG9yZGVyLCBlbmFibGluZyBlZmZpY2llbnRwIGNsZWFudXAgb2YgZXhwaXJlZCBwZXJpb2RzLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgBYUGFpZFVubG9hZFRva2VuRHVzdGluZwABBAZNCxAEAEAtASBNYXJrcyBwYWlkIHVubG9hZCB0b2tlbiBwZXJpb2RzIHRoYXQgaGF2ZSBjb25zdW1lZCB0b2tlbnMgcGVuZGluZyByZW1vdmFsLgBZASBXaGVuIGEgcGFpZCB1bmxvYWQgdG9rZW4gY29sbGVjdGlvbiBpcyByZW1vdmVkLCB0aGUgY2xlYW51cCBvZiBpdHMgY29uc3VtZWQgdG9rZW5zIGluVQEgW1BhaWRVbmxvYWRUb2tlbkNvbnN1bWVkXSBpcyBwZXJmb3JtZWQgZ3JhZHVhbGx5IHRocm91Z2ggdGhpcyBzdG9yYWdlIGl0ZW0uIEFuIGVudHJ5TQEgaGVyZSBpbmRpY2F0ZXMgdGhhdCBjb25zdW1lZCB0b2tlbnMgZm9yIHRoZSBnaXZlbiBwZXJpb2Qgc3RpbGwgZXhpc3QgYW5kIHNob3VsZCBiZSAgZHVzdGVkLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuAGEBIFJpbmcgbWVtYmVycywgcGVuZGluZyBtZW1iZXJzLCBhbmQgcmluZyBzdGF0ZSBhcmUgbWFuYWdlZCBieSBbYENvbmZpZzo6TWVtYmVyU2VydmljZWBdLgB4UGFpZFVubG9hZFRva2VuTmV4dFJpbmdUb0NsZWFuAAEEBk0LOAQAYPQgVHJhY2tzIHRoZSBuZXh0IHJpbmcgaW5kZXggdG8gY2xlYW4gZm9yIGVhY2ggZXhwaXJlZCBwZXJpb2QuADUBIFVzZWQgYnkgdGhlIE9DVyB0byBkZXRlcm1pbmUgY2xlYW51cCBwcm9ncmVzcyBhbmQgYnkgdGhlIGNvbGxlY3Rpb24gZGVsZXRpb27EIGV4dHJpbnNpYyB0byB2ZXJpZnkgYWxsIHJpbmdzIGhhdmUgYmVlbiBjbGVhbmVkLgA9ASBSaW5ncyBhcmUgY2xlYW5lZCBzZXF1ZW50aWFsbHkgKG9uZSBwZXIgT0NXIGludGVydmFsKSByYXRoZXIgdGhhbiBhbGwgYXQgb25jZS49ASBUaGlzIGlzIGludGVudGlvbmFsOiBhIHNpbmdsZSBzdG9yYWdlIGN1cnNvciBlbmFibGVzIE8oMSkgY29tcGxldGlvbiBjaGVja3MgaW7MIGJvdGggW2BQYWlkVGtuTWFuYWdlcjo6ZW5zdXJlX2Nhbl9jbGVhbl9yaW5nYF0gYW5kRQEgW2BQYWlkVGtuTWFuYWdlcjo6ZW5zdXJlX2Nhbl9kZWxldGVfY29sbGVjdGlvbmBdLiBUaGUgYWx0ZXJuYXRpdmUg4oCUIHN1Ym1pdHRpbmdVASBhbGwgcmluZyBjbGVhbnMgaW4gcGFyYWxsZWwg4oCUIHdvdWxkIHJlcXVpcmUgZmV0Y2hpbmcgcmluZyBtZW1iZXJzIHRvIGNoZWNrIHdoZXRoZXJNASBlYWNoIHJpbmcgd2FzIGFscmVhZHkgY2xlYW5lZCAoc2luY2UgYHJpbmdfc3RhdHVzYCBzdGlsbCByZXBvcnRzIGB0b3RhbCA+IDBgIGFmdGVyVQEgY2xlYW51cCBiZWNhdXNlIHJpbmdzIGFyZSBub3QgcmVtb3ZlZCB1bnRpbCBjb2xsZWN0aW9uIGRlbGV0aW9uKS4gQ2xlYW51cCBvZiBleHBpcmVkTQEgY29sbGVjdGlvbnMgaXMgbm90IHRpbWUtY3JpdGljYWwsIHNvIHRoZSBzaW1wbGVyIHNlcXVlbnRpYWwgYXBwcm9hY2ggaXMgcHJlZmVycmVkLgBRASAqKldBUk5JTkcqKjogRG8gbm90IHVzZSB0aGlzIHN0b3JhZ2UgZGlyZWN0bHksIHVzZSBbYFBhaWRUa25NYW5hZ2VyYF0gdHlwZSBpbnN0ZWFkLgBRASBUaGlzIHN0b3JhZ2UgaXRlbSBpcyBtYW5hZ2VkIGJ5IFtgUGFpZFRrbk1hbmFnZXJgXSBhbmQgaXMgcGFydCBvZiBhIGNvbnNpc3RlbnQgc2V0OvAgKiBbUGFpZFVubG9hZFRva2VuTWVtYmVyc10gLSB0cmFja3MgcmVnaXN0ZXJlZCBtZW1iZXIga2V5cy4ZASAqIFtQYWlkVW5sb2FkVG9rZW5Db25zdW1lZF0gLSB0aGUgY29uc3VtZWQgcGFpZCB1bmxvYWQgdG9rZW4gYWxpYXNlcy45ASAqIFtQYWlkVG9rZW5Db2xsZWN0aW9uc0NyZWF0ZWRdIC0gd2hldGhlciB0aGUgY29sbGVjdGlvbiBleGlzdHMgZm9yIGEgcGVyaW9kLkUBICogW1BhaWRVbmxvYWRUb2tlbkR1c3RpbmddIC0gbWFya3MgcGVyaW9kcyB3aXRoIGNvbnN1bWVkIHRva2VucyBwZW5kaW5nIHJlbW92YWwuHQEgKiBbUGFpZFVubG9hZFRva2VuTmV4dFJpbmdUb0NsZWFuXSAtIHNlcXVlbnRpYWwgcmluZyBjbGVhbnVwIHByb2dyZXNzLgBhASBSaW5nIG1lbWJlcnMsIHBlbmRpbmcgbWVtYmVycywgYW5kIHJpbmcgc3RhdGUgYXJlIG1hbmFnZWQgYnkgW2BDb25maWc6Ok1lbWJlclNlcnZpY2VgXS4AXEluaXRpYWxpemVQYWxsZXRBY2NvdW50AAAQBAAY0CBXaGV0aGVyIHRoZSBvbmUtdGltZSBwYWxsZXQgaW5pdGlhbGl6YXRpb24gaGFzIHJ1bi4AWQEgU2V0IGJ5IFtgUGFsbGV0Ojpkb19pbml0aWFsaXplYF0gb25jZSByZWN5Y2xlciBjb2xsZWN0aW9ucyBhcmUgY3JlYXRlZCBhbmQgdGhlIHBhbGxldD0BIGFjY291bnQgaGFzIGJlZW4gZW5zdXJlZCB0byBob2xkIHRoZSBtaW5pbXVtIGJhbGFuY2Ugb2YgW2BVbmRlcmx5aW5nQXNzZXRJZGBdLlEBIEluaXRpYWxpemF0aW9uIGlzIGdhdGVkIG9uIGBVbmRlcmx5aW5nQXNzZXRJZGAgYmVpbmcgc2V0LCBzbyB0aGlzIHN0YXlzIHVuc2V0IHVudGls7CBnb3Zlcm5hbmNlIGhhcyBjYWxsZWQgW2BQYWxsZXQ6OnNldF91bmRlcmx5aW5nX2Fzc2V0X2lkYF0uAERVbmRlcmx5aW5nQXNzZXRJZAAA4AQAGJwgVGhlIHVuZGVybHlpbmcgYXNzZXQgaWQgZm9yIHRoZSBjb2lucy4A1CBTZXQgb25jZSBieSBbYENvbmZpZzo6VW5kZXJseWluZ0Fzc2V0SWRNYW5hZ2VyYF0gdmlhVQEgW2BQYWxsZXQ6OnNldF91bmRlcmx5aW5nX2Fzc2V0X2lkYF0uIFdoaWxlIHVuc2V0LCBldmVyeSBjb2luL3JlY3ljbGVyIG9wZXJhdGlvbiB0aGF0DQEgbmVlZHMgdGhlIHVuZGVybHlpbmcgYXNzZXQgZmFpbHMgd2l0aCBbYEVycm9yOjpBc3NldElkTm90U2V0YF0gKG9yKQEgW2BDdXN0b21JbnZhbGlkaXR5OjpBc3NldElkTm90U2V0YF0gaW4gdHJhbnNhY3Rpb24gZXh0ZW5zaW9uIHZhbGlkYXRpb24pLgABxQQAAR0HAEBQUmVjeWNsZXJSaW5nRXhwb25lbnSxBAQKDLAgVGhlIHJpbmcgZXhwb25lbnQgZm9yIHJlY3ljbGVyIGNvbGxlY3Rpb25zLgA9ASBOT1RFOiBDaGFuZ2luZyB0aGlzIHZhbHVlIG9uIGEgbGl2ZSBjaGFpbiByZXF1aXJlcyBzdWJzdGFudGlhbCBtaWdyYXRpb24gd29yay4AbFBhaWRVbmxvYWRUb2tlblJpbmdFeHBvbmVudLEEBAoE1CBUaGUgcmluZyBleHBvbmVudCBmb3IgcGFpZCB1bmxvYWQgdG9rZW4gY29sbGVjdGlvbnMuAExVbmRlcmx5aW5nQXNzZXRVbml0xEAQJwAAAAAAAAAAAAAAAAAABLwgVGhlIHVuaXQgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQgb2YgdGhlIGNvaW5zLgA8TWluaW11bUV4cG9uZW50dQMEAASsIFRoZSBtaW5pbXVtIGV4cG9uZW50IGZvciB0aGUgZGVub21pbmF0aW9uLgA8TWF4aW11bUV4cG9uZW50dQMEDgSsIFRoZSBtYXhpbXVtIGV4cG9uZW50IGZvciB0aGUgZGVub21pbmF0aW9uLgCETWluaW11bUV4cG9uZW50Rm9yT3V0cHV0VW5sb2FkRmVldQMEACBdASBUaGUgbWluaW11bSBjb2luIGV4cG9uZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZGlzcGF0Y2ggYSBjYWxsIGB1bmxvYWRfcmVjeWNsZXJfKmAgd2l0aNQgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBgQXNVbmxvYWRUb2tlbkZyb21PdXRwdXRgLgBhASBUaGlzIGVuc3VyZXMgdGhlIGZlZSBjb2luIGlzIGxhcmdlIGVub3VnaCB0byBwZW5hbGl6ZSBmYWlsaW5nIHRyYW5zYWN0aW9ucywgYnV0IGl0IGRvZXO4IG5vdCBuZWVkIHRvIGNvdmVyIHRoZSB3aG9sZSB1bmxvYWQgdG9rZW4gZmVlLgBRASBUaGUgaGVscGVyIGZ1bmN0aW9uIGB3ZWlnaHRfZm9yX3VubG9hZF9yZWN5Y2xlcl9wYXlpbmdfdXNpbmdfb3V0cHV0YCBjYW4gYmUgdXNlZCB0b8wgZXZhbHVhdGUgdGhlIHdvcnN0LWNhc2Ugd2VpZ2h0IGZvciB0aGlzIG9wZXJhdGlvbi4APE1heFNwbGl0T3V0cHV0czgQIAAAAASsIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvdXRwdXRzIGZvciBhIHNwbGl0LgBATWF4Q29uc29saWRhdGlvbjgQQAAAAATcIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGlhcyBwcm9vZnMgaW4gYSBjb25zb2xpZGF0aW9uLgBITWF4QmF0Y2hVbnBhaWRMb2FkOBAKAAAACLggVGhlIG1heGltdW0gbnVtYmVyIG9mIGlubmVyIGNhbGxzIGluIGEgc2luZ2xlDQEgW2BDYWxsOjpsb2FkX3JlY3ljbGVyX3dpdGhfZXh0ZXJuYWxfYXNzZXRfdW5wYWlkX2JhdGNoYF0gZGlzcGF0Y2guAJRVbmxvYWRUb2tlblRpbWVQZXJpb2RQZW9wbGVMaXRlUGVvcGxlOBCAUQEABOAgVGhlIHRpbWUgcGVyaW9kIGR1cmF0aW9uIGZvciB1bmxvYWQgdG9rZW5zLCBpbiBzZWNvbmRzLgCoVW5sb2FkVG9rZW5BbGxvd2FuY2VQZXJUaW1lUGVyaW9kRm9yUGVvcGxlxEAALTEBAAAAAAAAAAAAAAAAFF0BIFRoZSBhbGxvd2FuY2Ugb2YgdW5sb2FkIHRva2VucyB0aGF0IGEgcGVyc29uIGNhbiB1c2UgcGVyIHRpbWUgcGVyaW9kLCBleHByZXNzZWQgaW4gdGhlSCB1bmRlcmx5aW5nIGFzc2V0LgBVASBVc2UgcGFsbGV0IHZpZXcgdG8gZmV0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgbnVtYmVyIG9mIHVubG9hZCB0b2tlbnMgZ2l2ZW4gdGhlIGN1cnJlbnRkIHByaWNlIGZvciB1bmxvYWQgdG9rZW5zLgC4VW5sb2FkVG9rZW5BbGxvd2FuY2VQZXJUaW1lUGVyaW9kRm9yTGl0ZVBlb3BsZcRAgJaYAAAAAAAAAAAAAAAAABRhASBUaGUgYWxsb3dhbmNlIG9mIHVubG9hZCB0b2tlbnMgdGhhdCBhIGxpdGUgcGVyc29uIGNhbiB1c2UgcGVyIHRpbWUgcGVyaW9kLCBleHByZXNzZWQgaW5YIHRoZSB1bmRlcmx5aW5nIGFzc2V0LgBZASBVc2UgcGFsbGV0J3MgZ2V0X2ZyZWVfdW5sb2FkX3Rva2VuX2luZm8oKSB0byBmZXRjaCB0aGUgY29ycmVzcG9uZGluZyBudW1iZXIgb2YgdW5sb2FkyCB0b2tlbnMgZ2l2ZW4gdGhlIGN1cnJlbnQgcHJpY2UgZm9yIHVubG9hZCB0b2tlbnMuAIBNYXhGcmVlVW5sb2FkVG9rZW5zUGVyVGltZVBlcmlvZDgQ6AMAABAZASBIYXJkIHVwcGVyIGJvdW5kIG9uIHRoZSBudW1iZXIgb2YgZnJlZSB1bmxvYWQgdG9rZW5zIHBlciB0aW1lIHBlcmlvZC4AjCBUaGUgZWZmZWN0aXZlIGZyZWUgdG9rZW4gbGltaXQgaXM6CQEgYG1pbihhbGxvd2FuY2UgLyBjdXJyZW50X2ZlZSwgTWF4RnJlZVVubG9hZFRva2Vuc1BlclRpbWVQZXJpb2QpYC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAQAAAAE5CBUaGUgbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIG9mZmNoYWluIHdvcmtlciBleGVjdXRpb25zLgBUQ29pbkZhaWx1cmVMb2NrUGVyaW9kKCA8AAAAAAAAABBRASBUaGUgYmFzZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBsb2NrIGEgY29pbiBhZnRlciBhIGZhaWxlZCBkaXNwYXRjaCBpbiBgQXNDb2luYCBmbG93LgA9ASBUaGUgYWN0dWFsIGxvY2sgZHVyYXRpb24gaXMgZXhwb25lbnRpYWw6IGAyXnJldHJpZXMgKiBiYXNlYCB3aGVyZSBgcmV0cmllc2AgaXOQIHRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgZmFpbHVyZXMuADhwYWxsZXRfYWNjb3VudASAbW9kbGNvaW5hZ2UgAAAAAAAAAAAAAAAAAAAAAAAAAAAEeCBUaGUgYWNjb3VudCBpZCBvZiB0aGUgcGFsbGV0LgAB8QsAAEh6wnEsinalKsO6EKKQIeyZ+S8k7m09V0l+jzxSYVxhYWhnZXRfZnJlZV91bmxvYWRfdG9rZW5faW5mbwD1CyRNASBHZXQgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGZyZWUgdW5sb2FkIHRva2VucyBkaXN0cmlidXRlZCB0byBwZW9wbGUgYW5kIGxpdGUgcGVvcGxlrCBnaXZlbiB0aGUgY3VycmVudCBwcmljZSBmb3IgdW5sb2FkIHRva2Vucy4AXQEgSWYgYW4gZWxlbWVudCBpcyBgTm9uZWAsIG5vIHByaWNlIGlzIGN1cnJlbnRseSBhdmFpbGFibGUgYW5kIGNvbnZlcnNpb24gYmV0d2VlbiBuYXRpdmXEIGFuZCB0aGUgdW5kZXJseWluZyBhc3NldCBuZWVkcyB0byBiZSBjb25maWd1cmVkLgC4IFJldHVybnM6IGAobGltaXRfcGVvcGxlLCBsaW1pdF9saXRlX3Blb3BsZSlgLgDoIEVhY2ggZWxlbWVudCBpcyBgTm9uZWAgd2hlbiBpdHMgbGltaXQgY2Fubm90IGJlIGNvbXB1dGVkLgB6wnEsinalKsO6EKKQIeyZwBDmchGsmAit8mGYGbvyCmBnZXRfcmVjeWNsZXJfcmluZ19zdGF0dXMIFHZhbHVldQMUaW5kZXg4+QsE6CBHZXQgdGhlIHJpbmcgc3RhdHVzIGZvciBhIHJlY3ljbGVyIGF0IGEgZ2l2ZW4gcmluZyBpbmRleC4AesJxLIp2pSrDuhCikCHsmQfGVPrGlVgIzxEXMW3s755oZ2V0X3JlY3ljbGVyX3JpbmdfcmV2aXNpb24IFHZhbHVldQMUaW5kZXg4CQME8CBHZXQgdGhlIHJpbmcgcmV2aXNpb24gZm9yIGEgcmVjeWNsZXIgYXQgYSBnaXZlbiByaW5nIGluZGV4LgB6wnEsinalKsO6EKKQIeyZte/GgJpr82sDrlf0xmwEiWhnZXRfcGFpZF90b2tlbl9yaW5nX3N0YXR1cwgYcGVyaW9kOBRpbmRleDj5CwQdASBHZXQgdGhlIHJpbmcgc3RhdHVzIGZvciBhIHBhaWQgdG9rZW4gYXQgYSBnaXZlbiBwZXJpb2QgYW5kIHJpbmcgaW5kZXguAHrCcSyKdqUqw7oQopAh7Jmg9sMQ9qgqn3x27yB//Z41cGdldF9wYWlkX3Rva2VuX3JpbmdfcmV2aXNpb24IGHBlcmlvZDgUaW5kZXg4CQMEJQEgR2V0IHRoZSByaW5nIHJldmlzaW9uIGZvciBhIHBhaWQgdG9rZW4gYXQgYSBnaXZlbiBwZXJpb2QgYW5kIHJpbmcgaW5kZXguAHrCcSyKdqUqw7oQopAh7JluvFXpnNfiPnMl4+z82ZtmiGdldF9wYWlkX3VubG9hZF90b2tlbl9mZWVfaW5fYXNzZXQAsQgQEQEgR2V0IHRoZSBjdXJyZW50IGZlZSBpbiB0aGUgdW5kZXJseWluZyBhc3NldCBmb3IgcGFpZCB1bmxvYWQgdG9rZW5zLgBdASBJZiBub25lIGlzIHJldHVybmVkIGl0IG1lYW5zIHRoYXQgbm8gcHJpY2UgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgYW5kIHNvbWUgY29udmVyc2lvbgEBIGJldHdlZW4gbmF0aXZlIGFuZCB0aGUgdW5kZXJseWluZyBhc3NldCBuZWVkcyB0byBiZSBjb25maWd1cmVkLgB6wnEsinalKsO6EKKQIeyZzr1EoM9R1bqZT2wP4Czp6oxnZXRfcGFpZF91bmxvYWRfdG9rZW5fZmVlX2luX25hdGl2ZQDEBA0BIEdldCB0aGUgY3VycmVudCBmZWUgaW4gdGhlIG5hdGl2ZSBjdXJyZW5jeSBmb3IgcGFpZCB1bmxvYWQgdG9rZW5zLgB6wnEsinalKsO6EKKQIeyZnl6QXlmqQJ+xgGt4maYXhURnZXRfY29pbl9ieV9vd25lcgQUb3duZXIE/QsEhCBHZXQgY29pbiBkZXRhaWxzIGZvciBhbiBhY2NvdW50LgB6wnEsinalKsO6EKKQIeyZ2pwW6SSCpfejl/Gf/KR/GkxnZXRfY29pbl9sb2NrX3VudGlsBBRvd25lcgQVAwxVASBHZXQgdGhlIFVuaXggdGltZXN0YW1wIHVudGlsIHdoaWNoIGEgY29pbiBpcyBjdXJyZW50bHkgbG9ja2VkIGFmdGVyIGZhaWxlZCBkaXNwYXRjaC4ASQEgUmV0dXJucyBgTm9uZWAgd2hlbiB0aGVyZSBpcyBubyBsb2NrIG9yIHdoZW4gdGhlIHN0b3JlZCBsb2NrIGhhcyBhbHJlYWR5IGV4cGlyZWQuAHrCcSyKdqUqw7oQopAh7JlYyRaLj8qyUXvAnME5HrGjYGdldF9yZWN5Y2xlcl9tZW1iZXJfaW5mbwQYbWVtYmVyCAEMBOQgR2V0IHRoZSBkZW5vbWluYXRpb24gZm9yIGEgc3BlY2lmaWMgcmVjeWNsZXIgbWVtYmVyIGtleS4AesJxLIp2pSrDuhCikCHsmU8iBwpDfNFUQuU+iaAqaHRQaXNfcGFpZF90b2tlbl9tZW1iZXIEGG1lbWJlcgjIBNQgQ2hlY2sgd2hldGhlciBhIHBhaWQgdG9rZW4gbWVtYmVyIGtleSBpcyByZWdpc3RlcmVkLgB6wnEsinalKsO6EKKQIeyZYpEalM+uIYO4ZZxc938C1VBnZXRfcmVjeWNsZXJfbWVtYmVycwgUdmFsdWV1AxRpbmRleDixAwiQIEdldCB0aGUgbWVtYmVycyBvZiBhIHJlY3ljbGVyIHJpbmcuDQEgUmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJpbmcgY29tbWl0bWVudCAoYWNjdW11bGF0b3IpIGZvciB0aGUgcHJvb2YuAHrCcSyKdqUqw7oQopAh7Jm1PNXK47zj3bSyYu7D4O/zSHJlY3ljbGVyX3Jpbmdfcm9vdAgUdmFsdWV1AxRpbmRleDgFDARZASBHZXQgdGhlIHJpbmctVlJGIHJvb3QgKHRoZSAicmVjeWNsZXIgcm9vdCIpIG9mIGEgcmVjeWNsZXIgcmluZywgaWYgaXQgaGFzIGJlZW4gYnVpbHQuAHrCcSyKdqUqw7oQopAh7JnxOPwgaPI+APZVDu3OYk9hbGdldF9wYWlkX3Rva2VuX3JpbmdfbWVtYmVycwgYcGVyaW9kOBRpbmRleDixAwiYIEdldCB0aGUgbWVtYmVycyBvZiBhIHBhaWQgdG9rZW4gcmluZy4NASBSZXF1aXJlZCB0byBidWlsZCB0aGUgcmluZyBjb21taXRtZW50IChhY2N1bXVsYXRvcikgZm9yIHRoZSBwcm9vZi4AesJxLIp2pSrDuhCikCHsmRMKZ5+ecN737A8zIN9OCGNoaXNfcmVjeWNsZXJfYWxpYXNfdW5sb2FkZWQMFHZhbHVldQMUaW5kZXg4FGFsaWFzCMgM9CBDaGVjayBpZiBhIHJlY3ljbGVyIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdW5sb2FkZWQgKHNwZW50KS4A8CBJZiB0aGUgcmVjeWNsZXIgaXMgbm90IGxpdmUsIHRoZSByZXN1bHQgaXMgbm90IHNpZ25pZmljYW50LgB6wnEsinalKsO6EKKQIeyZLo2LKpvECMha5KAFiFfQj3Bpc19wYWlkX3Rva2VuX2FsaWFzX2NvbnN1bWVkDBhwZXJpb2Q4FGluZGV4OBRhbGlhcwjIDMAgQ2hlY2sgaWYgYSBwYWlkIHVubG9hZCB0b2tlbiBoYXMgYmVlbiBjb25zdW1lZC4A9CBJZiB0aGUgcGVyaW9kIGlzIG5vdCBjdXJyZW50LCB0aGUgcmVzdWx0IGlzIG5vdCBzaWduaWZpY2FudC4AesJxLIp2pSrDuhCikCHsmb8S0HqINh0O9TXsi1wZ5dNwaXNfZnJlZV90b2tlbl9hbGlhc19jb25zdW1lZAgYcGVyaW9kOBRhbGlhcwjIDMAgQ2hlY2sgaWYgYSBmcmVlIHVubG9hZCB0b2tlbiBoYXMgYmVlbiBjb25zdW1lZC4A9CBJZiB0aGUgcGVyaW9kIGlzIG5vdCBjdXJyZW50LCB0aGUgcmVzdWx0IGlzIG5vdCBzaWduaWZpY2FudC4AesJxLIp2pSrDuhCikCHsmZGzLy68Hyv53pXKQlnduMW4d2VpZ2h0X2Zvcl91bmxvYWRfcmVjeWNsZXJfcGF5aW5nX3VzaW5nX291dHB1dADVARQxASBHZXQgdGhlIHdvcnN0LWNhc2Ugd2VpZ2h0IGZvciBhIHRyYW5zYWN0aW9uIHVzaW5nIG91dHB1dC1iYXNlZCBmZWUgcGF5bWVudC4AKQEgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtYXhpbXVtIHdlaWdodCBmb3IgdHJhbnNhY3Rpb25zIGRpc3BhdGNoZWQgd2l0aFUBIGBBc1VubG9hZFRva2VuRnJvbU91dHB1dGAsIHVzZWZ1bCBmb3IgcnVudGltZSBjb25maWd1cmF0aW9uIHRvIGZpbmQgYSBnb29kIHZhbHVlIGZvcpQgYE1pbmltdW1FeHBvbmVudEZvck91dHB1dFVubG9hZEZlZWAuAEQAADxNZW1iZXJzTm90aWZpZXIBPE1lbWJlcnNOb3RpZmllcjAsU3Vic2NyaWJlcnMAAQQGnAkMBAAEQQEgU3Vic2NyaWJlciByZWdpc3RyeSB3aXRoIHRoZWlyIHN1YnNjcmliZWQgY29sbGVjdGlvbnMgYW5kIGluaXRpYWxpemF0aW9uIHN0YXRlLgBUQ291bnRlckZvclN1YnNjcmliZXJzAQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAATFNlYWxlZEJhdGNoU2VxdWVuY2UBACggAAAAAAAAAAAMiCBTZXF1ZW5jZSBudW1iZXIgZm9yIHNlYWxlZCBiYXRjaC70IEluY3JlbWVudGVkIHdoZW4gYSBiYXRjaCBpcyBzZWFsZWQgLSByZWFkeSBmb3IgZGlzdHJpYnV0aW9uLvAgU2VydmVzIGFzIHRoZSBiYXRjaCBpZGVudGlmaWVyIGZvciByZXBsYXkgYW5kIGRpc3RyaWJ1dGlvbi4AJFBhZ2VTdGF0ZQEADQwgAAAAAAAAAAAE8CBQYWdpbmcgc3RhdGU6IHdyaXRlIHBhZ2UsIHNlbmQgcGFnZSwgYW5kIGxhc3QgdXBkYXRlIGJsb2NrLgA4UGVuZGluZ1VwZGF0ZXMAAQwGBgYRDBAEAAx8IENoYW5nZWQgcmluZyByb290IGtleXMsIHBhZ2VkLjEBIEtleTogKHBhZ2VfaW5kZXgsIGlkZW50aWZpZXIsIHJpbmdfaW5kZXgpLiBQb3B1bGF0ZWQgYnkgYE9uUmluZ1Jvb3RDaGFuZ2VgLDkBIGNvbnN1bWVkIGJ5IGBlbnF1ZXVlX3VwZGF0ZXNgIG9uZSBwYWdlIGF0IGEgdGltZSBmcm9tIGBQYWdlU3RhdGU6OnNlbmRfcGFnZWAuAEBQYWdlVXBkYXRlc0NvdW50AQEEBi0DOBAAAAAABLQgUGVyLXBhZ2UgY291bnQgb2YgZW50cmllcyBpbiBQZW5kaW5nVXBkYXRlcy4ALFBlbmRpbmdJbml0AAEEBpwVDAQABLwgU3RhdGUgZm9yIHBhZ2luYXRlZCBzdWJzY3JpYmVyIGluaXRpYWxpemF0aW9uLgBUQ291bnRlckZvclBlbmRpbmdJbml0AQA4EAAAAAAErENvdW50ZXIgZm9yIHRoZSByZWxhdGVkIGNvdW50ZWQgc3RvcmFnZSBtYXAASFNlYWxlZEJhdGNoSW5kaWNlcwABBAYIKQUEAATcIEluZGljZXMgcGVyIGNvbGxlY3Rpb24gZm9yIHRoZSBzZWFsZWQgKGN1cnJlbnQpIGJhdGNoLgAwQ3VycmVudEJhdGNoAAAZDAQABIggQ3VycmVudCBiYXRjaCBkaXN0cmlidXRpb24gc3RhdGUuAGxTdWJzY3JpYmVyc1dpdGhDdXJyZW50QmF0Y2gAAQQGnBAEAAToIFRyYWNrcyB3aGljaCBzdWJzY3JpYmVycyBoYXZlIHJlY2VpdmVkIHRoZSBjdXJyZW50IGJhdGNoLgA4TGFzdFJlcGxheVRpbWUAAQgGBh0MKAQACNAgTGFzdCByZXBsYXkgdGltZSBwZXIgKHN1YnNjcmliZXIsIGNvbGxlY3Rpb24pIHBhaXIu0CBVc2VkIHRvIGVuZm9yY2UgYSBjb29sZG93biBiZXR3ZWVuIHJlcGxheSByZXF1ZXN0cy4AARUFAAEhBwAoOE1heFN1YnNjcmliZXJzOBAKAAAABJwgTWF4aW11bSBudW1iZXIgb2Ygc3Vic2NyaWJlcnMgYWxsb3dlZC4ASE1heFVwZGF0ZXNQZXJCYXRjaDgQCgAAAARsIE1heGltdW0gdXBkYXRlcyBwZXIgYmF0Y2guAGxNYXhDb2xsZWN0aW9uc1BlclN1YnNjcmliZXI4EAMAAAAEzCBNYXhpbXVtIGNvbGxlY3Rpb25zIGEgc3Vic2NyaWJlciBjYW4gc3Vic2NyaWJlIHRvLgA4TWF4Q29sbGVjdGlvbnM4EGQAAAAEkCBNYXhpbXVtIG51bWJlciBvZiByaW5nIGNvbGxlY3Rpb25zLgBMVXBkYXRlVHJpZ2dlckJsb2NrczgQAQAAAATEIE1pbmltdW0gbnVtYmVyIG9mIGJsb2NrcyBiZXR3ZWVuIHVwZGF0ZSBiYXRjaGVzLgBYVXBkYXRlVHJpZ2dlclRocmVzaG9sZDgQAQAAAATsIE1pbmltdW0gbnVtYmVyIG9mIHVwZGF0ZXMgdG8gdHJpZ2dlciBpbW1lZGlhdGUgYmF0Y2ggc2VuZC4AZFJlcXVlc3RSZXBsYXlSZW1vdGVXZWlnaHTVAQxBnAAEJQEgUGVyLWluZGV4IHdlaWdodCBzdXJjaGFyZ2UgZm9yIHJlbW90ZSBleGVjdXRpb24gb24gdGhlIHN1YnNjcmliZXIgY2hhaW4uAFhPZmZjaGFpbldvcmtlckludGVydmFsOBABAAAABNwgTWluaW11bSBudW1iZXIgb2YgYmxvY2tzIGJldHdlZW4gb2ZmY2hhaW4gd29ya2VyIHJ1bnMuAERTdHVja0JhdGNoVGltZW91dDgQZAAAAATkIE51bWJlciBvZiBibG9ja3MgYWZ0ZXIgd2hpY2ggYSBzdHVjayBiYXRjaCBpcyBhYmFuZG9uZWQuAFRSZXBsYXlDb29sZG93blNlY29uZHMoIDwAAAAAAAAABFkBIENvb2xkb3duLCBpbiBzZWNvbmRzLCBiZXR3ZWVuIHJlcGxheSByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgc3Vic2NyaWJlciBhbmQgY29sbGVjdGlvbi4AASEMAAAARQAAHEFpcmRyb3ABHEFpcmRyb3AYGEV2ZW50cwABBAUIJQwEAATYIFJlZ2lzdGVyZWQgYWlyZHJvcCBldmVudHMsIGtleWVkIGJ5IHRoZWlyIGlkZW50aWZpZXIuADhBY3Rpb25TY2hlZHVsZQABCAYGLQwQBAAIXQEgUGVuZGluZyBsaWZlY3ljbGUgYWN0aW9ucyBmb3IgcmVnaXN0ZXJlZCBldmVudHMsIG9yZGVyZWQgYnkgdGhlIHRpbWVzdGFtcCBhdCB3aGljaCB0aGVoIGFjdGlvbiBzaG91bGQgdGFrZSBwbGFjZS4ANFJlZ2lzdHJhdGlvbnMAAQgFBjUMLQcEAAgNASBQZXItZXZlbnQgcGFydGljaXBhbnQgcmVnaXN0cmF0aW9ucywga2V5ZWQgYnkgMzItYnl0ZSBlbnRyb3B5IHNsb3SYIGluIGJpZy1lbmRpYW4gb3JkZXIgdW5kZXIgYElkZW50aXR5YC4AHFdpbm5lcnMAAQgFAjkMKQcEAAhxASBXaW5uZXJzIGZvciBhbiBldmVudCwga2V5ZWQgYnkgdGhlIGV2ZW50IGlkZW50aWZpZXIgYW5kIHRoZWlyIHJlZ2lzdHJhdGlvbiBlbnRyeS4gVGhpcyBtYXBz6CB0byB0aGUgcGFydGljaXBhbnQncyB0aWNrZXQgZm9yIG9mZmNoYWluIGxvb2t1cCBwdXJwb3Nlcy4AMEV2ZW50RW50cm9weQABBAUIKQcEAAhdASBFbnRyb3B5IHNlZWQgY2FwdHVyZWQgYXQgZHJhdyB0aW1lLCBwZXIgZXZlbnQuIFRoaXMgc2VydmVzIGFzIGEgcGFydGl0aW9uIHBvaW50IGluIHRoZfAgcGFydGljaXBhdGlvbiB0aWNrZXQgb3JkZXJlZCBsaXN0IGluIG9yZGVyIHRvIHBpY2sgd2lubmVycy4APFN1cHBvcnRlZEFzc2V0cwABBAXgxAQAEGUBIFBlci1hc3NldCBlbmFibGVtZW50IGdhdGUuIEFuIGFzc2V0IGlzIHVzYWJsZSBmb3Igc2NoZWR1bGluZyBldmVudHMgaWZmIGl0IGlzIHByZXNlbnQgaW5lASB0aGlzIG1hcDsgdGhlIHN0b3JlZCB2YWx1ZSBpcyB0aGUgYW1vdW50IHRoZSBwYWxsZXQgdHJhbnNmZXJyZWQgaW50byBpdHMgcG90IHRvIGtlZXAgdGhlVQEgcG90J3MgYXNzZXQgYWNjb3VudCBhbGl2ZSAodGhlIGFzc2V0J3MgRUQgYXQgdGhlIHRpbWUgb2YgZW5hYmxpbmcpLiBgZW5hYmxlX2Fzc2V0YCAvyCBgZGlzYWJsZV9hc3NldGAgYXJlIHRoZSBvbmx5IHdheXMgdG8gbXV0YXRlIHRoaXMuAAEtBQABJQcAFCBQYWxsZXRJZNEIIHBvcC9hZHJwBMAgUGFsbGV0IGlkIHVzZWQgdG8gZGVyaXZlIHRoZSBwcml6ZSBwb3QgYWNjb3VudC4AKENsZWFyTGltaXQ4EGQAAAAI1CBNYXhpbXVtIG51bWJlciBvZiByZWdpc3RyYXRpb24gZW50cmllcyBwcm9jZXNzZWQgcGVy6CBgY2xlYW5fdXBfe3JlZ2lzdHJhdGlvbnMsd2lubmVyc31fYXV0aG9yaXplZGAgaW52b2NhdGlvbi4AJERyYXdMaW1pdDgQZAAAAAQxASBNYXhpbXVtIG51bWJlciBvZiB3aW5uZXIgc2xvdHMgaW5zZXJ0ZWQgcGVyIGBkcmF3X3dpbm5lcnNfYXV0aG9yaXplZGAgY2FsbC4AWE9mZmNoYWluV29ya2VySW50ZXJ2YWw4EAEAAAAE2CBIb3cgZnJlcXVlbnRseSB0aGUgb2ZmY2hhaW4gd29ya2VyIGZpcmVzIChpbiBibG9ja3MpLgA4YWlyZHJvcF9wb3RfaWQEgG1vZGxwb3AvYWRycAAAAAAAAAAAAAAAAAAAAAAAAAAABHQgQWNjb3VudCBpZCBvZiB0aGUgcHJpemUgcG90LgABPQwAAABGAAAYSG9ub3VyARhIb25vdXIMGFBvaW50cwABBAIIQQwEABCYIFBvaW50cyB0aGF0IGhhdmUgYmVlbiB1c2VkIGJ5IHZvdGVycy4AdQEgUmVjb3JkcyBpbiBbYFBvaW50c2BdIHRyYWNrIHVzZWQgcG9pbnRzIHRvIHByZXZlbnQgZG91YmxlLXNwZW5kaW5nIGFuZCBlbmZvcmNlIHJhdGUtbGltaXRpbmd4IGJhc2VkIG9uIHRoZSBsYXN0IHVzYWdlIHRpbWUuABRWb3RlcwABBAIIEAQAEHwgVm90ZXMgdGhhdCBoYXZlIGJlZW4gYmVzdG93ZWQuAFUBIFByZXZlbnRzIGRvdWJsZS12b3Rpbmcgb24gdGhlIHNhbWUgc3ViamVjdCBieSB0aGUgc2FtZSB2b3RlciwgYXMgW2BTdWJqZWN0QWxpYXNgXSBpc9AgdW5pcXVlbHkgZGVyaXZlZCBmcm9tIFtgU3ViamVjdElkYF0gZm9yIGVhY2ggdm90ZXIuABRUYWxseQABBAIINQcEAAQxASBBYnNvbHV0ZSBob25vdXIgc2NvcmUgb2YgYSBzdWJqZWN0LiBJbml0aWFsaXplZCB0byAtMSB0byBvZmZzZXQgc2VsZi12b3Rlcy4AATUFAAExBwAITFBvaW50RnJlZXplRHVyYXRpb24oIIBRAQAAAAAABAUBIER1cmF0aW9uIGluIHNlY29uZHMgdGhhdCBtdXN0IHBhc3MgYmVmb3JlIGEgcG9pbnQgY2FuIGJlIHJldXNlZC4ANENhbGxNb3J0YWxpdHkoICwBAAAAAAAABD0BIER1cmF0aW9uIGluIHNlY29uZHMgYSBgYmVzdG93YCBjYWxsIHJlbWFpbnMgdmFsaWQgYWZ0ZXIgaXRzIGBjYWxsX3ZhbGlkX2Zyb21gLgABRQwAAABHAABUU3RvcmFnZUluaXRpYWxpemF0aW9uAVRTdG9yYWdlSW5pdGlhbGl6YXRpb24IME9uUG9sbFN0YXR1cwEASQwEAAT0IEN1cnJlbnQgc3RhdGUgb2YgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgaW4gb25fcG9sbCBob29rLgBYWGNtVHJhbnNmZXJJbml0aWF0ZWRBdAAAOAQACLggQmxvY2sgbnVtYmVyIHdoZW4gWENNIHRyYW5zZmVyIHdhcyBpbml0aWF0ZWQugCBVc2VkIHRvIHRyYWNrIHRyYW5zZmVyIHRpbWVvdXQuAAABOQcAAAAAADwAAFBNdWx0aUJsb2NrTWlncmF0aW9ucwFQTXVsdGlCbG9ja01pZ3JhdGlvbnMIGEN1cnNvcgAASQUEAAzYIFRoZSBjdXJyZW50bHkgYWN0aXZlIG1pZ3JhdGlvbiB0byBydW4gYW5kIGl0cyBjdXJzb3IuALwgYE5vbmVgIGluZGljYXRlcyB0aGF0IG5vIG1pZ3JhdGlvbiBpcyBydW5uaW5nLgAgSGlzdG9yaWMAAQQFXQUQBAAQtCBTZXQgb2YgYWxsIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCBtaWdyYXRpb25zLgBxASBUaGlzIGlzIHVzZWQgYXMgYmxhY2tsaXN0LCB0byBub3QgcmUtZXhlY3V0ZSBtaWdyYXRpb25zIHRoYXQgaGF2ZSBub3QgYmVlbiByZW1vdmVkIGZyb20gdGhlMQEgY29kZWJhc2UgeWV0LiBHb3Zlcm5hbmNlIGNhbiByZWd1bGFybHkgY2xlYXIgdGhpcyBvdXQgdmlhIGBjbGVhcl9oaXN0b3JpY2AuAAFBBQABPQcACDBDdXJzb3JNYXhMZW44EAAAAQAQpCBUaGUgbWF4aW1hbCBsZW5ndGggb2YgYW4gZW5jb2RlZCBjdXJzb3IuAGUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYSBjdXJzb3Igd2l0aCBNRUwJASBhYm92ZSB0aGlzIGxpbWl0LiBUaGlzIGlzIHN0YXRpY2FsbHkgY2hlY2tlZCBpbiBgaW50ZWdyaXR5X3Rlc3RgLgBASWRlbnRpZmllck1heExlbjgQAAEAABC0IFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGlkZW50aWZpZXIuAFUBIEEgZ29vZCBkZWZhdWx0IG5lZWRzIHRvIHNlbGVjdGVkIHN1Y2ggdGhhdCBubyBtaWdyYXRpb24gd2lsbCBldmVyIGhhdmUgYW4gaWRlbnRpZmllci0BIHdpdGggTUVMIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAAFNDAAAEAsgGZrONWTQlk4sTUqbpGmUTbz/amzhpNCyfG/MAtJMOG9uZ29pbmdfc3RhdHVzAFEMBKggUmV0dXJucyB0aGUgb25nb2luZyBzdGF0dXMgb2YgbWlncmF0aW9ucy4ACyAZms41ZNCWTixNSpukaV69d2yxXZuRLieNTS1ixaEgcHJvZ3Jlc3MAVQwQCQEgUmV0dXJucyBwcm9ncmVzcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBtaWdyYXRpb24sIGlmIGFueS4AUQEgVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBtaWdyYXRpb24ncyBwcm9ncmVzcywdASBpbmNsdWRpbmcgdGhlIG51bWJlciBvZiBzdGVwcyBjb21wbGV0ZWQgYW5kIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3RlcHMuAAsgGZrONWTQlk4sTUqbpGlGr0vOxvNae7vunZ/BCVvhRGFmZmVjdGVkX3ByZWZpeGVzADQMAQEgUmV0dXJucyB0aGUgc3RvcmFnZSBwcmVmaXhlcyBhZmZlY3RlZCBieSB0aGUgY3VycmVudCBtaWdyYXRpb24uABkBIENhbiBiZSBlbXB0eSBpZiB0aGUgbWlncmF0aW9uIGRvZXMgbm90IGtub3cgb3IgdGhlcmUgYXJlIG5vIHByZWZpeGVzLgALIBmazjVk0JZOLE1Km6RpqkwooG8ZiEW9G7KexiBd3RhzdGF0dXMAXQwE8CBSZXR1cm5zIHRoZSBjb21wcmVoZW5zaXZlIHN0YXR1cyBvZiBtdWx0aS1ibG9jayBtaWdyYXRpb25zLgBiAAAIBAUAINkDBABYAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhgVW5pdFRyYW5zYWN0aW9uRXh0ZW5zaW9uEBBQVmVyaWZ5TXVsdGlTaWduYXR1cmVpBRAgQXNQZXJzb25tBRBcQXNQcm9vZk9mSW5rUGFydGljaXBhbnR5BRBIU2NvcmVBc1BhcnRpY2lwYW50hQUQNEdhbWVBc0ludml0ZWSRBRA4UGVvcGxlTGl0ZUF1dGidBRAgQXNNZW1iZXKpBRAkQXNDb2luYWdltQUQLEFzUmVzb3VyY2VzxQUQKEhvbm91ckF1dGjRBRA0QXV0aG9yaXplQ2FsbN0FEDxSZXN0cmljdE9yaWdpbnPhBRBIQ2hlY2tOb25aZXJvU2VuZGVy5QUQQENoZWNrU3BlY1ZlcnNpb27pBTg4Q2hlY2tUeFZlcnNpb27tBTgwQ2hlY2tHZW5lc2lz8QU8OENoZWNrTW9ydGFsaXR59QU8KENoZWNrTm9uY2X9BRAsQ2hlY2tXZWlnaHQBBhBQQ2hhcmdlQXNzZXRUeFBheW1lbnQFBhBQU3RvcmFnZVdlaWdodFJlY2xhaW0QEFgcQXVyYUFwaQg0c2xvdF9kdXJhdGlvbgBhDAyQIFJldHVybnMgdGhlIHNsb3QgZHVyYXRpb24gZm9yIEF1cmEuACUBIEN1cnJlbnRseSwgb25seSB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhpcyB0eXBlIGF0IGdlbmVzaXMgd2lsbCBiZSB1c2VkLgAsYXV0aG9yaXRpZXMAAQkEnCBSZXR1cm4gdGhlIGN1cnJlbnQgc2V0IG9mIGF1dGhvcml0aWVzLgAEuCBBUEkgbmVjZXNzYXJ5IGZvciBibG9jayBhdXRob3JzaGlwIHdpdGggYXVyYS4EAFBSZWxheVBhcmVudE9mZnNldEFwaQRMcmVsYXlfcGFyZW50X29mZnNldAA4BPQgRmV0Y2ggdGhlIHNsb3Qgb2Zmc2V0IHRoYXQgaXMgZXhwZWN0ZWQgZnJvbSB0aGUgcmVsYXkgY2hhaW4uABAFASBBUEkgdG8gdGVsbCB0aGUgbm9kZSBzaWRlIGhvdyB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBiZSBjaG9zZW4uAGkBIEEgbGFyZ2VyIG9mZnNldCBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVsYXkgcGFyZW50IHNob3VsZCBub3QgYmUgdGhlIHRpcCBvZiB0aGUgcmVsYXkgY2hhaW4sMQEgYnV0IGBOYCBibG9ja3MgYmVoaW5kIHRoZSB0aXAuIFRoaXMgb2Zmc2V0IGlzIHRoZW4gZW5mb3JjZWQgYnkgdGhlIHJ1bnRpbWUuBABgQXVyYVVuaW5jbHVkZWRTZWdtZW50QXBpBDhjYW5fYnVpbGRfdXBvbgg0aW5jbHVkZWRfaGFzaDwQc2xvdAUJyCg5ASBXaGV0aGVyIGl0IGlzIGxlZ2FsIHRvIGV4dGVuZCB0aGUgY2hhaW4sIGFzc3VtaW5nIHRoZSBnaXZlbiBibG9jayBpcyB0aGUgbW9zdDUBIHJlY2VudGx5IGluY2x1ZGVkIG9uZSBhcy1vZiB0aGUgcmVsYXkgcGFyZW50IHRoYXQgd2lsbCBiZSBidWlsdCBhZ2FpbnN0LCBhbmRwIHRoZSBnaXZlbiByZWxheSBjaGFpbiBzbG90LgBRASBUaGlzIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvZ2ljIHRoZSBydW50aW1lIHVzZXMgd2hlbiB2YWxpZGF0aW5nIGJsb2NrcyB0bzggYXZvaWQgaXNzdWVzLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgZW1wdHksIGkuZS4gYGluY2x1ZGVkX2hhc2ggPT0gYXRgLCB3aGVyZSBhdCBpcyB0aGUgYmxvY2thASB3aG9zZSBzdGF0ZSB3ZSBhcmUgcXVlcnlpbmcgYWdhaW5zdCwgdGhpcyBtdXN0IGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIGxvbmcgYXMgdGhlIHNsb3S8IGlzIG1vcmUgcmVjZW50IHRoYW4gdGhlIGluY2x1ZGVkIGJsb2NrIGl0c2VsZi4ANDUBIFRoaXMgcnVudGltZSBBUEkgaXMgdXNlZCB0byBpbmZvcm0gcG90ZW50aWFsIGJsb2NrIGF1dGhvcnMgd2hldGhlciB0aGV5IHdpbGwlASBoYXZlIHRoZSByaWdodCB0byBhdXRob3IgYXQgYSBzbG90LCBhc3N1bWluZyB0aGV5IGhhdmUgY2xhaW1lZCB0aGUgc2xvdC4AdQEgSW4gcGFydGljdWxhciwgdGhpcyBBUEkgYWxsb3dzIEF1cmEtYmFzZWQgcGFyYWNoYWlucyB0byByZWd1bGF0ZSB0aGVpciAidW5pbmNsdWRlZCBzZWdtZW50IixtASB3aGljaCBpcyB0aGUgc2VjdGlvbiBvZiB0aGUgaGVhZCBvZiB0aGUgY2hhaW4gd2hpY2ggaGFzIG5vdCB5ZXQgYmVlbiBtYWRlIGF2YWlsYWJsZSBpbiB0aGU0IHJlbGF5IGNoYWluLgBhASBXaGVuIHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgaXMgc2hvcnQsIEF1cmEgY2hhaW5zIHdpbGwgYWxsb3cgYXV0aG9ycyB0byBjcmVhdGUgbXVsdGlwbGVdASBibG9ja3MgcGVyIHNsb3QgaW4gb3JkZXIgdG8gYnVpbGQgYSBiYWNrbG9nLiBXaGVuIGl0IGlzIHNhdHVyYXRlZCwgdGhpcyBBUEkgd2lsbCBsaW1pdKggdGhlIGFtb3VudCBvZiBibG9ja3MgdGhhdCBjYW4gYmUgY3JlYXRlZC4AJCBDaGFuZ2VzOpEBIC0gVmVyc2lvbiAyOiBVcGRhdGUgdG8gYGNhbl9idWlsZF91cG9uYCB0byB0YWtlIGEgcmVsYXkgY2hhaW4gYFNsb3RgIGluc3RlYWQgb2YgYSBwYXJhY2hhaW4gYFNsb3RgLggAEENvcmUMHHZlcnNpb24AeQcEkCBSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgA0ZXhlY3V0ZV9ibG9jawQUYmxvY2tlDBAEZCBFeGVjdXRlIHRoZSBnaXZlbiBibG9jay4AQGluaXRpYWxpemVfYmxvY2sEGGhlYWRlclxxDARBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuAAQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LhQAIE1ldGFkYXRhDCBtZXRhZGF0YQB1DASMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS4ATG1ldGFkYXRhX2F0X3ZlcnNpb24EHHZlcnNpb244eQwQpCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBhdCBhIGdpdmVuIHZlcnNpb24uAAUBIElmIHRoZSBnaXZlbiBgdmVyc2lvbmAgaXNuJ3Qgc3VwcG9ydGVkLCB0aGlzIHdpbGwgcmV0dXJuIGBOb25lYC51ASBVc2UgW2BTZWxmOjptZXRhZGF0YV92ZXJzaW9uc2BdIHRvIGZpbmQgb3V0IGFib3V0IHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgBEbWV0YWRhdGFfdmVyc2lvbnMAyQMMpCBSZXR1cm5zIHRoZSBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbnMuAMAgVGhpcyBjYW4gYmUgdXNlZCB0byBjYWxsIGBtZXRhZGF0YV9hdF92ZXJzaW9uYC4ABAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLggATFJ1bnRpbWVWaWV3RnVuY3Rpb24EVGV4ZWN1dGVfdmlld19mdW5jdGlvbgggcXVlcnlfaWR9DBRpbnB1dBiBDAR8IEV4ZWN1dGUgYSB2aWV3IGZ1bmN0aW9uIHF1ZXJ5LgAEpCBSdW50aW1lIEFQSSBmb3IgZXhlY3V0aW5nIHZpZXcgZnVuY3Rpb25zBAAwQmxvY2tCdWlsZGVyEDxhcHBseV9leHRyaW5zaWMEJGV4dHJpbnNpY5UHiQwQbCBBcHBseSB0aGUgZ2l2ZW4gZXh0cmluc2ljLgA5ASBSZXR1cm5zIGFuIGluY2x1c2lvbiBvdXRjb21lIHdoaWNoIHNwZWNpZmllcyBpZiB0aGlzIGV4dHJpbnNpYyBpcyBpbmNsdWRlZCBpbkwgdGhpcyBibG9jayBvciBub3QuADhmaW5hbGl6ZV9ibG9jawBcBGggRmluaXNoIHRoZSBjdXJyZW50IGJsb2NrLgBMaW5oZXJlbnRfZXh0cmluc2ljcwQgaW5oZXJlbnSZDKUHBD0BIEdlbmVyYXRlIGluaGVyZW50IGV4dHJpbnNpY3MuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgA8Y2hlY2tfaW5oZXJlbnRzCBRibG9ja2UMEGRhdGGZDKkMBFUBIENoZWNrIHRoYXQgdGhlIGluaGVyZW50cyBhcmUgdmFsaWQuIFRoZSBpbmhlcmVudCBkYXRhIHdpbGwgdmFyeSBmcm9tIGNoYWluIHRvIGNoYWluLgAEcQEgVGhlIGBCbG9ja0J1aWxkZXJgIGFwaSB0cmFpdCB0aGF0IHByb3ZpZGVzIHRoZSByZXF1aXJlZCBmdW5jdGlvbmFsaXR5IGZvciBidWlsZGluZyBhIGJsb2NrLhgAWFRhZ2dlZFRyYW5zYWN0aW9uUXVldWUEUHZhbGlkYXRlX3RyYW5zYWN0aW9uDBhzb3VyY2WtDAh0eJUHKGJsb2NrX2hhc2g8sQwkaCBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24uAGUBIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYnkgdGhlIHRyYW5zYWN0aW9uIHBvb2wgdG8gbGVhcm4gZGV0YWlscyBhYm91dCBnaXZlbiB0cmFuc2FjdGlvbi5FASBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIG1ha2Ugc3VyZSB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSB0cmFuc2FjdGlvbk0BIGFnYWluc3QgY3VycmVudCBzdGF0ZS4gVGhlIGdpdmVuIGBibG9ja19oYXNoYCBjb3JyZXNwb25kcyB0byB0aGUgaGFzaCBvZiB0aGUgYmxvY2t8IHRoYXQgaXMgdXNlZCBhcyBjdXJyZW50IHN0YXRlLgBFASBOb3RlIHRoYXQgdGhpcyBjYWxsIG1heSBiZSBwZXJmb3JtZWQgYnkgdGhlIHBvb2wgbXVsdGlwbGUgdGltZXMgYW5kIHRyYW5zYWN0aW9uc6QgbWlnaHQgYmUgdmVyaWZpZWQgaW4gYW55IHBvc3NpYmxlIG9yZGVyLgAETQEgVGhlIGBUYWdnZWRUcmFuc2FjdGlvblF1ZXVlYCBhcGkgdHJhaXQgZm9yIGludGVyZmVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIHF1ZXVlLgwARE9mZmNoYWluV29ya2VyQXBpBDxvZmZjaGFpbl93b3JrZXIEGGhlYWRlclwQBMggU3RhcnRzIHRoZSBvZmYtY2hhaW4gdGFzayBmb3IgZ2l2ZW4gYmxvY2sgaGVhZGVyLgAEZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS4IACxTZXNzaW9uS2V5cwhUZ2VuZXJhdGVfc2Vzc2lvbl9rZXlzCBRvd25lchgQc2VlZGUFuQwcFQEgR2VuZXJhdGUgYSBzZXQgb2Ygc2Vzc2lvbiBrZXlzIHdpdGggb3B0aW9uYWxseSB1c2luZyB0aGUgZ2l2ZW4gc2VlZC4JASBUaGUga2V5cyBzaG91bGQgYmUgc3RvcmVkIHdpdGhpbiB0aGUga2V5c3RvcmUgZXhwb3NlZCB2aWEgcnVudGltZTwgZXh0ZXJuYWxpdGllcy4AsCBUaGUgc2VlZCBuZWVkcyB0byBiZSBhIHZhbGlkIGB1dGY4YCBzdHJpbmcuANAgUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIFNDQUxFIGVuY29kZWQgcHVibGljIGtleXMuAExkZWNvZGVfc2Vzc2lvbl9rZXlzBBxlbmNvZGVkGL0MDJggRGVjb2RlIHRoZSBnaXZlbiBwdWJsaWMgc2Vzc2lvbiBrZXlzLgDcIFJldHVybnMgdGhlIGxpc3Qgb2YgcHVibGljIHJhdyBwdWJsaWMga2V5cyArIGtleSB0eXBlLgAEaCBTZXNzaW9uIGtleXMgcnVudGltZSBhcGkuCAA8QWNjb3VudE5vbmNlQXBpBDRhY2NvdW50X25vbmNlBBxhY2NvdW50BDgEwCBHZXQgY3VycmVudCBhY2NvdW50IG5vbmNlIG9mIGdpdmVuIGBBY2NvdW50SWRgLgAEgCBUaGUgQVBJIHRvIHF1ZXJ5IGFjY291bnQgbm9uY2UuBABUVHJhbnNhY3Rpb25QYXltZW50QXBpEChxdWVyeV9pbmZvCAx1eHSVBwxsZW44yQwAAERxdWVyeV9mZWVfZGV0YWlscwgMdXh0lQcMbGVuOM0MAABMcXVlcnlfd2VpZ2h0X3RvX2ZlZQQYd2VpZ2h01QHEAABMcXVlcnlfbGVuZ3RoX3RvX2ZlZQQYbGVuZ3RoOMQAAAAQAGRUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpEDxxdWVyeV9jYWxsX2luZm8IEGNhbGwgDGxlbjjJDARJASBRdWVyeSBpbmZvcm1hdGlvbiBvZiBhIGRpc3BhdGNoIGNsYXNzLCB3ZWlnaHQsIGFuZCBmZWUgb2YgYSBnaXZlbiBlbmNvZGVkIGBDYWxsYC4AWHF1ZXJ5X2NhbGxfZmVlX2RldGFpbHMIEGNhbGwgDGxlbjjNDAS0IFF1ZXJ5IGZlZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gZW5jb2RlZCBgQ2FsbGAuAExxdWVyeV93ZWlnaHRfdG9fZmVlBBh3ZWlnaHTVAcQEAQEgUXVlcnkgdGhlIG91dHB1dCBvZiB0aGUgY3VycmVudCBgV2VpZ2h0VG9GZWVgIGdpdmVuIHNvbWUgaW5wdXQuAExxdWVyeV9sZW5ndGhfdG9fZmVlBBhsZW5ndGg4xAQBASBRdWVyeSB0aGUgb3V0cHV0IG9mIHRoZSBjdXJyZW50IGBMZW5ndGhUb0ZlZWAgZ2l2ZW4gc29tZSBpbnB1dC4AAAwANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uONkMFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi4AQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2WVAeUMFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC4AZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodNUBFGFzc2V0EQPpDBjoIENvbnZlcnRzIGEgd2VpZ2h0IGludG8gYSBmZWUgZm9yIHRoZSBzcGVjaWZpZWQgYEFzc2V0SWRgLgAwICMgQXJndW1lbnRzAIggKiBgd2VpZ2h0YDogY29udmVydGlibGUgYFdlaWdodGAufCAqIGBhc3NldGA6IGBWZXJzaW9uZWRBc3NldElkYC4ATHF1ZXJ5X2RlbGl2ZXJ5X2ZlZXMMLGRlc3RpbmF0aW9uSQEcbWVzc2FnZZUBIGFzc2V0X2lkEQPtDChgIFF1ZXJ5IGRlbGl2ZXJ5IGZlZXMgVjIuAB0BIEdldCBkZWxpdmVyeSBmZWVzIGZvciBzZW5kaW5nIGEgc3BlY2lmaWMgYG1lc3NhZ2VgIHRvIGEgYGRlc3RpbmF0aW9uYC70IFRoZXNlIGFsd2F5cyBjb21lIGluIGEgc3BlY2lmaWMgYXNzZXQsIGRlZmluZWQgYnkgdGhlIGNoYWluLgAwICMgQXJndW1lbnRzgQEgKiBgbWVzc2FnZWA6IFRoZSBtZXNzYWdlIHRoYXQnbGwgYmUgc2VudCwgbmVjZXNzYXJ5IGJlY2F1c2UgbW9zdCBkZWxpdmVyeSBmZWVzIGFyZSBiYXNlZCBvbiB0aGVcICAgc2l6ZSBvZiB0aGUgbWVzc2FnZS5hASAqIGBkZXN0aW5hdGlvbmA6IFRoZSBkZXN0aW5hdGlvbiB0byBzZW5kIHRoZSBtZXNzYWdlIHRvLiBEaWZmZXJlbnQgZGVzdGluYXRpb25zIG1heSB1c2XAICAgZGlmZmVyZW50IHNlbmRlcnMgdGhhdCBjaGFyZ2UgZGlmZmVyZW50IGZlZXMuACxwIEEgdHJhaXQgb2YgWENNIHBheW1lbnQgQVBJLgCoIEFQSSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciBvYnRhaW5pbmc6AMQgKiB0aGUgd2VpZ2h0IHJlcXVpcmVkIHRvIGV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UsBQEgKiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBgQXNzZXRJZGBzIGZvciBtZXNzYWdlIGV4ZWN1dGlvbiBwYXltZW50LAEBICogdGhlIGNvc3Qgb2YgdGhlIHdlaWdodCBpbiB0aGUgc3BlY2lmaWVkIGFjY2VwdGFibGUgYEFzc2V0SWRgLqAgKiB0aGUgZmVlcyBmb3IgYW4gWENNIG1lc3NhZ2UgZGVsaXZlcnkuAPAgVG8gZGV0ZXJtaW5lIHRoZSBleGVjdXRpb24gd2VpZ2h0IG9mIHRoZSBjYWxscyByZXF1aXJlZCBmb3J1ASBbYHhjbTo6bGF0ZXN0OjpJbnN0cnVjdGlvbjo6VHJhbnNhY3RgXSBpbnN0cnVjdGlvbiwgYFRyYW5zYWN0aW9uUGF5bWVudENhbGxBcGlgIGNhbiBiZSB1c2VkLggAJERyeVJ1bkFwaQgwZHJ5X3J1bl9jYWxsDBhvcmlnaW4xAxBjYWxsIExyZXN1bHRfeGNtc192ZXJzaW9uOPEMBEQgRHJ5IHJ1biBjYWxsIFYyLgAsZHJ5X3J1bl94Y20IPG9yaWdpbl9sb2NhdGlvbkkBDHhjbd0CHQ0EUCBEcnkgcnVuIFhDTSBwcm9ncmFtACSxASBBUEkgZm9yIGRyeS1ydW5uaW5nIGV4dHJpbnNpY3MgYW5kIFhDTSBwcm9ncmFtcyB0byBnZXQgdGhlIHByb2dyYW1zIHRoYXQgbmVlZCB0byBiZSBwYXNzZWQgdG8gdGhlIGZlZXMgQVBJLgCBASBBbGwgY2FsbHMgcmV0dXJuIGEgdmVjdG9yIG9mIHR1cGxlcyAobG9jYXRpb24sIHhjbSkgd2hlcmUgZWFjaCAieGNtIiBpcyBleGVjdXRlZCBpbiAibG9jYXRpb24iLuQgSWYgdGhlcmUncyBsb2NhbCBleGVjdXRpb24sIHRoZSBsb2NhdGlvbiB3aWxsIGJlICJIZXJlIi4dASBUaGlzIHZlY3RvciBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgYm90aCBleGVjdXRpb24gYW5kIGRlbGl2ZXJ5IGZlZXMuAJkBIENhbGxzIG9yIFhDTXMgbWlnaHQgZmFpbCB3aGVuIGV4ZWN1dGVkLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGUgcmVzdWx0IG9mIHRoZXNlIGNhbGxzIHdpbGwgYmUgYW4gYEVycmAuZQEgSW4gdGhvc2UgY2FzZXMsIHRoZXJlIG1pZ2h0IHN0aWxsIGJlIGEgdmFsaWQgcmVzdWx0LCB3aXRoIHRoZSBleGVjdXRpb24gZXJyb3IgaW5zaWRlIGl0LmUBIFRoZSBvbmx5IHJlYXNvbnMgd2h5IHRoZXNlIGNhbGxzIG1pZ2h0IHJldHVybiBhbiBlcnJvciBhcmUgbGlzdGVkIGluIHRoZSBbYEVycm9yYF0gZW51bS4IAFBMb2NhdGlvblRvQWNjb3VudEFwaQRAY29udmVydF9sb2NhdGlvbgQgbG9jYXRpb25JASUNBJAgQ29udmVydHMgYExvY2F0aW9uYCB0byBgQWNjb3VudElkYC4ABA0BIEFQSSBmb3IgdXNlZnVsIGNvbnZlcnNpb25zIGJldHdlZW4gWENNIGBMb2NhdGlvbmAgYW5kIGBBY2NvdW50SWRgLgQAKE1vYlJ1bGVBcGkEIHZvdGVkX29uCBR2b3RlcggkZG9uZV9vbmx5yMkDDFkBIFJldHVybnMgYSBsaXN0IG9mIGNhc2VzIHdoZXJlIHRoZSB1c2VyIGhhcyBhIHZvdGUgc3RvcmVkIG9uIGNoYWluLiBJZiB0aGUgYGRvbmVfb25seWBVASBmbGFnIGlzIHNldCwgb25seSBjYXNlcyB0aGF0IGFyZSBkb25lIGFuZCByZWFkeSB0byBiZSBjbGFpbWVkIHdpbGwgYmUgcmV0dXJuZWQuIFRoaXMFASBmdW5jdGlvbiBkb2VzIG5vdCB0YWtlIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgdm90ZSBpbnRvIGFjY291bnQuAAS0IFRoZSBBUEkgdG8gcXVlcnkgdGhlIHJld2FyZHMgZm9yIG1vYiBjcmVkaXQuBAA0UHJvb2ZPZklua0FwaQREY2FuZGlkYWN5X2RlcG9zaXQAxATUIFJldHVybnMgdGhlIGRlcG9zaXQgbmVjZXNzYXJ5IHRvIGJlY29tZSBhIGNhbmRpZGF0ZS4ABOwgVGhlIEFQSSB0byBxdWVyeSB0aGUgZGVwb3NpdCBmb3IgYSBwcm9vZiBvZiBpbmsgY2FuZGlkYWN5LgQANFBhbGxldEdhbWVBcGkEMHBsYXlfZGVwb3NpdADEBLggUmV0dXJucyB0aGUgZGVwb3NpdCBuZWNlc3NhcnkgdG8gcGxheSBhIGdhbWUuAASsIFRoZSBBUEkgdG8gcXVlcnkgdGhlIGRlcG9zaXQgZm9yIGdhbWVwbGF5LgQANE5mdENyZWRpdHNBcGkMWG5mdF9jbGFpbV9jcmVkaXRfcm9vdHMEIGNsYWltYW50cQQtDRhZASBSZXR1cm5zIHRoZSBORlQgY2xhaW0gY3JlZGl0IHJvb3RzIGBjbGFpbWFudGAgaGFzIGF0IGxlYXN0IG9uZSBjcmVkaXQgdW5kZXIsIGtleWVkIGJ5BQEgdGhlIGJsb2NrIHRoZSBjcmVkaXRzIHdlcmUgYXdhcmRlZCBpbiwgaW4gYXNjZW5kaW5nIGJsb2NrIG9yZGVyLgBdASBBIHdhbGxldCBzdGFydHMgaGVyZSBhbmQgYXNrcyBgbmZ0X2NsYWltX2NyZWRpdF9wcm9vZnNgIGFib3V0IGVhY2ggYmxvY2sgcmV0dXJuZWQuIFRoZUkBIGJsb2NrIGEgY3JlZGl0IHdhcyBhd2FyZGVkIGluIGdldHMgaXRzIHJvb3Qgb25seSBpbiB0aGUgbmV4dCBibG9jaywgc28gdGhlIG5ld2VzdJAgYXdhcmQgYmxvY2sgaXMgbGVmdCBvdXQgdW50aWwgdGhlbi4AXG5mdF9jbGFpbV9jcmVkaXRfcHJvb2ZzCCxhd2FyZF9ibG9jazggY2xhaW1hbnRxBDUNKFEBIFJldHVybnMgdGhlIGluY2x1c2lvbiBwcm9vZiBvZiBlYWNoIGNyZWRpdCBgY2xhaW1hbnRgIHdhcyBhd2FyZGVkIGluIGBhd2FyZF9ibG9ja2AsxCB3aGljaCBpcyB3aGF0IEFzc2V0IEh1YiB2ZXJpZmllcyBhIG1pbnQgYWdhaW5zdC4AYQEgRXZlcnl0aGluZyBjb21lcyBmcm9tIGNoYWluIHN0YXRlLCBzbyBhIGNhbGxlciBuZWVkcyBubyBldmVudCBoaXN0b3J5OiB0aGUgcHJvb2ZzIGNhcnJ5SQEgdGhlIGNyZWRpdCwgdGhlIGxlYWYsIGl0cyBpbmRleCwgdGhlIGxlYWYgY291bnQsIHRoZSByb290IGFuZCB0aGUgc2libGluZyBoYXNoZXMuvCBFbXB0eSBpZiB0aGUgYmxvY2sgYXdhcmRlZCBgY2xhaW1hbnRgIG5vdGhpbmcuADkBIE9ubHkgYmxvY2tzIHdob3NlIGF3YXJkcyBhcmUgc3RpbGwgcmV0YWluZWQgY2FuIGJlIHNlcnZlZC4gQW4gb2xkZXIgb25lIGdpdmVzAQEgYE5mdENsYWltQ3JlZGl0UHJvb2ZFcnJvcjo6QXdhcmRzUHJ1bmVkYCwgYW5kIGhhcyB0byBnbyB0aHJvdWdomCBgbmZ0X2NsYWltX2NyZWRpdF9wcm9vZl9mcm9tX2F3YXJkc2AuAIhuZnRfY2xhaW1fY3JlZGl0X3Byb29mX2Zyb21fYXdhcmRzDCxhd2FyZF9ibG9jazgYYXdhcmRzEQsobGVhZl9pbmRleDhNDSRFASBSZXR1cm5zIHRoZSBpbmNsdXNpb24gcHJvb2Ygb2YgdGhlIGNyZWRpdCBhdCBgbGVhZl9pbmRleGAgb2YgYGF3YXJkX2Jsb2NrYCwgZnJvbYQgYGF3YXJkc2Agc3VwcGxpZWQgYnkgdGhlIGNhbGxlci4ATQEgVGhlIGZhbGxiYWNrIGZvciBhIGJsb2NrIHdob3NlIGF3YXJkcyBhcmUgbm8gbG9uZ2VyIHJldGFpbmVkOiBgYXdhcmRzYCBhcmUgYWxsIHRoZVEBIGNyZWRpdHMgdGhlIGJsb2NrIGF3YXJkZWQsIGluIGF3YXJkIG9yZGVyLCByZWJ1aWx0IGZyb20gaXRzIGBOZnRDbGFpbUNyZWRpdEF3YXJkZWRgWQEgZXZlbnRzLiBMZWFmIGhhc2hpbmcgYW5kIHRoZSB0cmVlIGxheW91dCBzdGF5IGluIHRoZSBydW50aW1lLCBhbmQgdGhlIHJlY29tcHV0ZWQgcm9vdE0BIGlzIGNoZWNrZWQgYWdhaW5zdCB0aGUgcmVjb3JkZWQgb25lLCBzbyBhd2FyZHMgdGhhdCBhcmUgaW5jb21wbGV0ZSBvciBvdXQgb2Ygb3JkZXJZASBmYWlsIHdpdGggYE5mdENsYWltQ3JlZGl0UHJvb2ZFcnJvcjo6Um9vdE1pc21hdGNoYCByYXRoZXIgdGhhbiB5aWVsZGluZyBhIHByb29mIEFzc2V0NCBIdWIgcmVqZWN0cy4ABNAgVGhlIEFQSSBhIHdhbGxldCBtaW50cyBhbiBORlQgY2xhaW0gY3JlZGl0IHRocm91Z2guBABQQ29sbGVjdENvbGxhdGlvbkluZm8EWGNvbGxlY3RfY29sbGF0aW9uX2luZm8EGGhlYWRlclxRDRCcIENvbGxlY3QgaW5mb3JtYXRpb24gYWJvdXQgYSBjb2xsYXRpb24uAPQgVGhlIGdpdmVuIGBoZWFkZXJgIGlzIHRoZSBoZWFkZXIgb2YgdGhlIGJ1aWx0IGJsb2NrIGZvciB0aGF0qCB3ZSBhcmUgY29sbGVjdGluZyB0aGUgY29sbGF0aW9uIGluZm8gZm9yLgAU2CBSdW50aW1lIGFwaSB0byBjb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgBEIFZlcnNpb24gaGlzdG9yeToBASAtIFZlcnNpb24gMjogQ2hhbmdlZCBbYFNlbGY6OmNvbGxlY3RfY29sbGF0aW9uX2luZm9gXSBzaWduYXR1cmU1ASAtIFZlcnNpb24gMzogU2lnbmFscyB0byB0aGUgbm9kZSB0byB1c2UgdmVyc2lvbiAxIG9mIFtgUGFyYWNoYWluQmxvY2tEYXRhYF0uDAA4R2VuZXNpc0J1aWxkZXIMLGJ1aWxkX3N0YXRlBBBqc29uGF0NKGUBIEJ1aWxkIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSBhIEpTT04gYmxvYiBub3QgdXNpbmcgYW55IGRlZmF1bHRzIGFuZCBzdG9yZSBpdCBpbiB0aGUkIHN0b3JhZ2UuACkBIEluIHRoZSBjYXNlIG9mIGEgRlJBTUUtYmFzZWQgcnVudGltZSwgdGhpcyBmdW5jdGlvbiBkZXNlcmlhbGl6ZXMgdGhlIGZ1bGxVASBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gdGhlIGdpdmVuIEpTT04gYmxvYiBhbmQgcHV0cyBpdCBpbnRvIHRoZSBzdG9yYWdlLiBJZiB0aGVVASBwcm92aWRlZCBKU09OIGJsb2IgaXMgaW5jb3JyZWN0IG9yIGluY29tcGxldGUgb3IgdGhlIGRlc2VyaWFsaXphdGlvbiBmYWlscywgYW4gZXJyb3I0IGlzIHJldHVybmVkLgBdASBQbGVhc2Ugbm90ZSB0aGF0IHByb3ZpZGVkIEpTT04gYmxvYiBtdXN0IGNvbnRhaW4gYWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZmllbGRzLCBub1wgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLgAoZ2V0X3ByZXNldAQIaWRhDWUFOGEBIFJldHVybnMgYSBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgaWRlbnRpZmllZCBieRggYGlkYC4AVQEgSWYgYGlkYCBpcyBgTm9uZWAgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZWZhdWx0SQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBzdHJ1Y3Qgb2YgdGhlIHJ1bnRpbWUuIEltcGxlbWVudGF0aW9uIG11c3QgcHJvdmlkZSBkZWZhdWx0YCBgUnVudGltZUdlbmVzaXNDb25maWdgLgAhASBPdGhlcndpc2UgZnVuY3Rpb24gcmV0dXJucyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluLCBuYW1lZFEBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0IGlkZW50aWZpZWQgYnkgYGlkYCwgb3IgYE5vbmVgIGlmIHN1Y2ggcHJlc2V0IGRvZXMgbm90YQEgZXhpc3QuIFJldHVybmVkIGBWZWM8dTg+YCBjb250YWlucyBieXRlcyBvZiBKU09OIGJsb2IgKHBhdGNoKSB3aGljaCBjb21wcmlzZXMgYSBsaXN0IG9mTQEgKHBvdGVudGlhbGx5IG5lc3RlZCkga2V5LXZhbHVlIHBhaXJzIHRoYXQgYXJlIGludGVuZGVkIGZvciBjdXN0b21pemluZyB0aGUgZGVmYXVsdGUBIHJ1bnRpbWUgZ2VuZXNpcyBjb25maWcuIFRoZSBwYXRjaCBzaGFsbCBiZSBtZXJnZWQgKHJmYzczODYpIHdpdGggdGhlIEpTT04gcmVwcmVzZW50YXRpb25hASBvZiB0aGUgZGVmYXVsdCBgUnVudGltZUdlbmVzaXNDb25maWdgIHRvIGNyZWF0ZSBhIGNvbXByZWhlbnNpdmUgZ2VuZXNpcyBjb25maWcgdGhhdCBjYW6EIGJlIHVzZWQgaW4gYGJ1aWxkX3N0YXRlYCBtZXRob2QuADBwcmVzZXRfbmFtZXMAZQ0QUQEgUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgZm9yIGF2YWlsYWJsZSBidWlsdGluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0cy4AYQEgVGhlIHByZXNldHMgZnJvbSB0aGUgbGlzdCBjYW4gYmUgcXVlcmllZCB3aXRoIFtgR2VuZXNpc0J1aWxkZXI6OmdldF9wcmVzZXRgXSBtZXRob2QuIElmAQEgbm8gbmFtZWQgcHJlc2V0cyBhcmUgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWUgdGhlIGxpc3QgaXMgZW1wdHkuAATwIEFQSSB0byBpbnRlcmFjdCB3aXRoIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZm9yIHRoZSBydW50aW1lBAAgIQZpDQA=";
|
|
2
|
+
|
|
3
|
+
export { binMeta as default };
|