From 9400b284366f37792327e75d424d3189bfc3d7ab Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Fri, 25 Oct 2019 09:17:22 +0200 Subject: [PATCH] Remove unmaintained cc1 (#186) * Remove unmaintained cc1 * Bump polkadot-js deps --- README.md | 19 +-- package.json | 4 +- packages/extension-chains/src/index.ts | 3 +- packages/extension-chains/src/kusama-cc1.ts | 19 --- packages/extension-ui/package.json | 4 +- packages/extension/package.json | 4 +- yarn.lock | 124 ++++++++++---------- 7 files changed, 80 insertions(+), 97 deletions(-) delete mode 100644 packages/extension-chains/src/kusama-cc1.ts diff --git a/README.md b/README.md index 45f86f2e..8db6ca4d 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,17 @@ As it stands, it does one thing: it _only_ manages accounts and allows the signi ![interface screenshots](docs/concat-overview.jpg) +## FAQ + +### Why can't I import an account with a seed +This is a deliberate choice since mnemonic phrases are easier to write down, to memorize or type in a field. They have a checksum (not every 12/24 words list is a valid mnemonic) and constitute a much better means of holding un-encrypted information. Therefore, this extension does not and will not have the functionality to recover an account from a hex seed phrase. + +### I want to send funds directly from the extension +The extension is not meant to be a full wallet replacement. It tries to focus on account management and making it as smooth as possible - and then makes these accounts to any dapp that can perform transfers, allow you to vote on democracy proposals and/or participate in any feature available on Polkadot and Substrate. We really aim to keep this singular account-only focus, leaving the hard-work of understanding chains and their intricacies over to over to wallets such as [polkadot-js/apps](https://polkadot.js.org/apps/). + +### My addresses display differently on the extension vs a dapp +Unlike a dapp, the extension itself does not connect to a network. The addresses are formatted with a network-specific prefix, which on a dapp, is retrieved upon connection from the chain properties. Underlying the public keys can be the same, but based on the address formatting the display could be different. This does not affect operation at all. You can choose which format to display the addresses in your extension via the "Options" screen. + ## Development version Steps to build the extension and view your changes in a browser: @@ -119,11 +130,3 @@ window.injectedWeb3 = { } } ``` - -## FAQ - -### Why can't I import an account with a seed -This is a deliberate choice since mnemonic phrases are easier to write down, to memorize or type in a field. They are checksummed (not every 12/24 words list is a valid mnemonic) and constitute a much better means of holding un-encrypted information. Therefore, this extension does not and will not have the functionality to recover an account from a hex seed phrase. - -### I want to send funds directly from the extension -The extension is not meant to be a full wallet replacement. It tries to focus on account management and making it as smooth as possible - and then makes these accounts to any dapp that can perform transfers, allow you to vote on democracy proposals and/or participate in any feature available on Polkadot and Substrate. We really aim to keep this singular account-only focus, leaving the hard-work of understanding chains and their intricacies over to over to wallets such as [polkadot-js/apps](https://polkadot.js.org/apps/). diff --git a/package.json b/package.json index c422b1c7..885022a3 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,9 @@ "yarn": "^1.10.1" }, "resolutions": { - "@polkadot/api": "^0.95.0-beta.34", + "@polkadot/api": "^0.95.0-beta.36", "@polkadot/keyring": "^1.6.1", - "@polkadot/types": "^0.95.0-beta.34", + "@polkadot/types": "^0.95.0-beta.36", "@polkadot/util": "^1.6.1", "@polkadot/util-crypto": "^1.6.1", "babel-core": "^7.0.0-bridge.0", diff --git a/packages/extension-chains/src/index.ts b/packages/extension-chains/src/index.ts index fd38400a..c5d72588 100644 --- a/packages/extension-chains/src/index.ts +++ b/packages/extension-chains/src/index.ts @@ -9,11 +9,10 @@ import { Chain } from './types'; // inside the api, run `yarn chain:info --ws ` import alexander from './alexander'; import edgeware from './edgeware'; -import kusamaCC1 from './kusama-cc1'; import kusamaCC2 from './kusama-cc2'; const chains: Map = new Map( - [alexander, edgeware, kusamaCC1, kusamaCC2].map( + [alexander, edgeware, kusamaCC2].map( ({ chain, genesisHash, icon, metaCalls, specVersion, ss58Format, tokenDecimals, tokenSymbol, types }): [string, Chain] => [ genesisHash, { diff --git a/packages/extension-chains/src/kusama-cc1.ts b/packages/extension-chains/src/kusama-cc1.ts deleted file mode 100644 index aa864342..00000000 --- a/packages/extension-chains/src/kusama-cc1.ts +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2019 @polkadot/extension-chains authors & contributors -// This software may be modified and distributed under the terms -// of the Apache-2.0 license. See the LICENSE file for details. - -// Generated via (in api) `yarn chain:info --ws wss://kusama-rpc.polkadot.io` - -export default { - chain: 'Kusama CC1', - genesisHash: '0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf', - icon: 'polkadot', - specVersion: 1001, - ss58Format: 2, - tokenDecimals: 12, - tokenSymbol: 'KSM', - types: { - Keys: 'SessionKeysPolkadot' - }, - metaCalls: 'bWV0YQdcGFN5c3RlbQABGChmaWxsX2Jsb2NrAAQhASBBIGJpZyBkaXNwYXRjaCB0aGF0IHdpbGwgZGlzYWxsb3cgYW55IG90aGVyIHRyYW5zYWN0aW9uIHRvIGJlIGluY2x1ZGVkLhhyZW1hcmsEHF9yZW1hcmsUQnl0ZXMEbCBNYWtlIHNvbWUgb24tY2hhaW4gcmVtYXJrLjhzZXRfaGVhcF9wYWdlcwQUcGFnZXMMdTY0BPwgU2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEDG5ldxRCeXRlcwRIIFNldCB0aGUgbmV3IGNvZGUuLHNldF9zdG9yYWdlBBRpdGVtczRWZWM8S2V5VmFsdWU+BGwgU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBBBrZXlzIFZlYzxLZXk+BHggS2lsbCBzb21lIGl0ZW1zIGZyb20gc3RvcmFnZS4AABBCYWJlAAEEiHNldF9wZW5kaW5nX3NlY29uZGFyeV9zbG90c19jaGFuZ2UEGGNoYW5nZTBPcHRpb248Ym9vbD4MFQEgU2V0cyBhIHBlbmRpbmcgY2hhbmdlIHRvIGVuYWJsZSAvIGRpc2FibGUgc2Vjb25kYXJ5IHNsb3QgYXNzaWdubWVudC4NASBUaGUgcGVuZGluZyBjaGFuZ2Ugd2lsbCBiZSBzZXQgYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlcG9jaCBhbmSgIHdpbGwgYmUgZW5hY3RlZCBhdCBgY3VycmVudF9lcG9jaCArIDJgLgAAJFRpbWVzdGFtcAABBAxzZXQEDG5vdzxDb21wYWN0PE1vbWVudD4kWCBTZXQgdGhlIGN1cnJlbnQgdGltZS4AWQEgVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtggcGhhc2UsIGlmIHRoaXMgY2FsbCBoYXNuJ3QgYmVlbiBpbnZva2VkIGJ5IHRoYXQgdGltZS4ARQEgVGhlIHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBwcmV2aW91cyBvbmUgYnkgdGhlIGFtb3VudCBzcGVjaWZpZWQgYnlEIGBNaW5pbXVtUGVyaW9kYC4A2CBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgSW5oZXJlbnRgLgAAHEluZGljZXMAAQAAACBCYWxhbmNlcwABDCB0cmFuc2ZlcggQZGVzdBxBZGRyZXNzFHZhbHVlQENvbXBhY3Q8QmFsYW5jZT5c2CBUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAJASBgdHJhbnNmZXJgIHdpbGwgc2V0IHRoZSBgRnJlZUJhbGFuY2VgIG9mIHRoZSBzZW5kZXIgYW5kIHJlY2VpdmVyLiEBIEl0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhlIGBUcmFuc2ZlckZlZWAuFQEgSWYgdGhlIHNlbmRlcidzIGFjY291bnQgaXMgYmVsb3cgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgYXMgYSByZXN1bHS0IG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABkBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSB0cmFuc2FjdG9yLgAsICMgPHdlaWdodD4xASAtIERlcGVuZGVudCBvbiBhcmd1bWVudHMgYnV0IG5vdCBjcml0aWNhbCwgZ2l2ZW4gcHJvcGVyIGltcGxlbWVudGF0aW9ucyBmb3LMICAgaW5wdXQgY29uZmlnIHR5cGVzLiBTZWUgcmVsYXRlZCBmdW5jdGlvbnMgYmVsb3cuaQEgLSBJdCBjb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzIGFuZCB3cml0ZXMgaW50ZXJuYWxseSBhbmQgbm8gY29tcGxleCBjb21wdXRhdGlvbi4ATCBSZWxhdGVkIGZ1bmN0aW9uczoAUQEgICAtIGBlbnN1cmVfY2FuX3dpdGhkcmF3YCBpcyBhbHdheXMgY2FsbGVkIGludGVybmFsbHkgYnV0IGhhcyBhIGJvdW5kZWQgY29tcGxleGl0eS4tASAgIC0gVHJhbnNmZXJyaW5nIGJhbGFuY2VzIHRvIGFjY291bnRzIHRoYXQgZGlkIG5vdCBleGlzdCBiZWZvcmUgd2lsbCBjYXVzZdQgICAgICBgVDo6T25OZXdBY2NvdW50Ojpvbl9uZXdfYWNjb3VudGAgdG8gYmUgY2FsbGVkLtwgICAtIFJlbW92aW5nIGVub3VnaCBmdW5kcyBmcm9tIGFuIGFjY291bnQgd2lsbCB0cmlnZ2VyWQEgICAgIGBUOjpEdXN0UmVtb3ZhbDo6b25fdW5iYWxhbmNlZGAgYW5kIGBUOjpPbkZyZWVCYWxhbmNlWmVybzo6b25fZnJlZV9iYWxhbmNlX3plcm9gLgAwICMgPC93ZWlnaHQ+LHNldF9iYWxhbmNlDAx3aG8cQWRkcmVzcyBuZXdfZnJlZUBDb21wYWN0PEJhbGFuY2U+MG5ld19yZXNlcnZlZEBDb21wYWN0PEJhbGFuY2U+NJQgU2V0IHRoZSBiYWxhbmNlcyBvZiBhIGdpdmVuIGFjY291bnQuACEBIFRoaXMgd2lsbCBhbHRlciBgRnJlZUJhbGFuY2VgIGFuZCBgUmVzZXJ2ZWRCYWxhbmNlYCBpbiBzdG9yYWdlLiBpdCB3aWxsCQEgYWxzbyBkZWNyZWFzZSB0aGUgdG90YWwgaXNzdWFuY2Ugb2YgdGhlIHN5c3RlbSAoYFRvdGFsSXNzdWFuY2VgKS4ZASBJZiB0aGUgbmV3IGZyZWUgb3IgcmVzZXJ2ZWQgYmFsYW5jZSBpcyBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdCzoIGl0IHdpbGwgcmVzZXQgdGhlIGFjY291bnQgbm9uY2UgKGBzeXN0ZW06OkFjY291bnROb25jZWApLgC0IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAuACwgIyA8d2VpZ2h0PoAgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLsQgLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzIGFuZCB3cml0ZXMuMCAjIDwvd2VpZ2h0Pjhmb3JjZV90cmFuc2ZlcgwYc291cmNlHEFkZHJlc3MQZGVzdBxBZGRyZXNzFHZhbHVlQENvbXBhY3Q8QmFsYW5jZT4IUQEgRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2UgYWNjb3VudCBtYXkgYmUsIHNwZWNpZmllZC4AAChBdXRob3JzaGlwAAEEKHNldF91bmNsZXMEKG5ld191bmNsZXMsVmVjPEhlYWRlcj4EZCBQcm92aWRlIGEgc2V0IG9mIHVuY2xlcy4AABxTdGFraW5nAAE0EGJvbmQMKGNvbnRyb2xsZXIcQWRkcmVzcxR2YWx1ZUhDb21wYWN0PEJhbGFuY2VPZj4UcGF5ZWVEUmV3YXJkRGVzdGluYXRpb248ZQEgVGFrZSB0aGUgb3JpZ2luIGFjY291bnQgYXMgYSBzdGFzaCBhbmQgbG9jayB1cCBgdmFsdWVgIG9mIGl0cyBiYWxhbmNlLiBgY29udHJvbGxlcmAgd2lsbIQgYmUgdGhlIGFjY291bnQgdGhhdCBjb250cm9scyBpdC4AUQEgYHZhbHVlYCBtdXN0IGJlIG1vcmUgdGhhbiB0aGUgYGV4aXN0ZW50aWFsX2RlcG9zaXRgIGRlZmluZWQgaW4gdGhlIEJhbGFuY2VzIG1vZHVsZS4AJQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoIGFjY291bnQuACwgIyA8d2VpZ2h0PtQgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBNb2RlcmF0ZSBjb21wbGV4aXR5LiAgLSBPKDEpLmggLSBUaHJlZSBleHRyYSBEQiBlbnRyaWVzLgBtASBOT1RFOiBUd28gb2YgdGhlIHN0b3JhZ2Ugd3JpdGVzIChgU2VsZjo6Ym9uZGVkYCwgYFNlbGY6OnBheWVlYCkgYXJlIF9uZXZlcl8gY2xlYW5lZCB1bmxlc3MlASB0aGUgYG9yaWdpbmAgZmFsbHMgYmVsb3cgX2V4aXN0ZW50aWFsIGRlcG9zaXRfIGFuZCBnZXRzIHJlbW92ZWQgYXMgZHVzdC4wICMgPC93ZWlnaHQ+KGJvbmRfZXh0cmEEOG1heF9hZGRpdGlvbmFsSENvbXBhY3Q8QmFsYW5jZU9mPjhlASBBZGQgc29tZSBleHRyYSBhbW91bnQgdGhhdCBoYXZlIGFwcGVhcmVkIGluIHRoZSBzdGFzaCBgZnJlZV9iYWxhbmNlYCBpbnRvIHRoZSBiYWxhbmNlIHVwNCBmb3Igc3Rha2luZy4AUQEgVXNlIHRoaXMgaWYgdGhlcmUgYXJlIGFkZGl0aW9uYWwgZnVuZHMgaW4geW91ciBzdGFzaCBhY2NvdW50IHRoYXQgeW91IHdpc2ggdG8gYm9uZC5lASBVbmxpa2UgW2Bib25kYF0gb3IgW2B1bmJvbmRgXSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGltcG9zZSBhbnkgbGltaXRhdGlvbiBvbiB0aGUgYW1vdW50TCB0aGF0IGNhbiBiZSBhZGRlZC4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIHN0YXNoLCBub3QgdGhlIGNvbnRyb2xsZXIuACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuICAtIE8oMSkuQCAtIE9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+GHVuYm9uZAQUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+XFUBIFNjaGVkdWxlIGEgcG9ydGlvbiBvZiB0aGUgc3Rhc2ggdG8gYmUgdW5sb2NrZWQgcmVhZHkgZm9yIHRyYW5zZmVyIG91dCBhZnRlciB0aGUgYm9uZAEBIHBlcmlvZCBlbmRzLiBJZiB0aGlzIGxlYXZlcyBhbiBhbW91bnQgYWN0aXZlbHkgYm9uZGVkIGxlc3MgdGhhbjUBIFQ6OkN1cnJlbmN5OjpleGlzdGVudGlhbF9kZXBvc2l0KCksIHRoZW4gaXQgaXMgaW5jcmVhc2VkIHRvIHRoZSBmdWxsIGFtb3VudC4ASQEgT25jZSB0aGUgdW5sb2NrIHBlcmlvZCBpcyBkb25lLCB5b3UgY2FuIGNhbGwgYHdpdGhkcmF3X3VuYm9uZGVkYCB0byBhY3R1YWxseSBtb3ZlwCB0aGUgZnVuZHMgb3V0IG9mIG1hbmFnZW1lbnQgcmVhZHkgZm9yIHRyYW5zZmVyLgA9ASBObyBtb3JlIHRoYW4gYSBsaW1pdGVkIG51bWJlciBvZiB1bmxvY2tpbmcgY2h1bmtzIChzZWUgYE1BWF9VTkxPQ0tJTkdfQ0hVTktTYCk9ASBjYW4gY28tZXhpc3RzIGF0IHRoZSBzYW1lIHRpbWUuIEluIHRoYXQgY2FzZSwgW2BDYWxsOjp3aXRoZHJhd191bmJvbmRlZGBdIG5lZWT8IHRvIGJlIGNhbGxlZCBmaXJzdCB0byByZW1vdmUgc29tZSBvZiB0aGUgY2h1bmtzIChpZiBwb3NzaWJsZSkuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgCYIFNlZSBhbHNvIFtgQ2FsbDo6d2l0aGRyYXdfdW5ib25kZWRgXS4ALCAjIDx3ZWlnaHQ+QQEgLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBMaW1pdGVkIGJ1dCBwb3RlbnRpYWxseSBleHBsb2l0YWJsZSBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLmUBIC0gRWFjaCBjYWxsIChyZXF1aXJlcyB0aGUgcmVtYWluZGVyIG9mIHRoZSBib25kZWQgYmFsYW5jZSB0byBiZSBhYm92ZSBgbWluaW11bV9iYWxhbmNlYClxASAgIHdpbGwgY2F1c2UgYSBuZXcgZW50cnkgdG8gYmUgaW5zZXJ0ZWQgaW50byBhIHZlY3RvciAoYExlZGdlci51bmxvY2tpbmdgKSBrZXB0IGluIHN0b3JhZ2UupQEgICBUaGUgb25seSB3YXkgdG8gY2xlYW4gdGhlIGFmb3JlbWVudGlvbmVkIHN0b3JhZ2UgaXRlbSBpcyBhbHNvIHVzZXItY29udHJvbGxlZCB2aWEgYHdpdGhkcmF3X3VuYm9uZGVkYC5AIC0gT25lIERCIGVudHJ5LiggPC93ZWlnaHQ+RHdpdGhkcmF3X3VuYm9uZGVkAEAtASBSZW1vdmUgYW55IHVubG9ja2VkIGNodW5rcyBmcm9tIHRoZSBgdW5sb2NraW5nYCBxdWV1ZSBmcm9tIG91ciBtYW5hZ2VtZW50LgA1ASBUaGlzIGVzc2VudGlhbGx5IGZyZWVzIHVwIHRoYXQgYmFsYW5jZSB0byBiZSB1c2VkIGJ5IHRoZSBzdGFzaCBhY2NvdW50IHRvIGRvTCB3aGF0ZXZlciBpdCB3YW50cy4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guAGwgU2VlIGFsc28gW2BDYWxsOjp1bmJvbmRgXS4ALCAjIDx3ZWlnaHQ+VQEgLSBDb3VsZCBiZSBkZXBlbmRlbnQgb24gdGhlIGBvcmlnaW5gIGFyZ3VtZW50IGFuZCBob3cgbXVjaCBgdW5sb2NraW5nYCBjaHVua3MgZXhpc3QuRQEgIEl0IGltcGxpZXMgYGNvbnNvbGlkYXRlX3VubG9ja2VkYCB3aGljaCBsb29wcyBvdmVyIGBMZWRnZXIudW5sb2NraW5nYCwgd2hpY2ggaXP0ICBpbmRpcmVjdGx5IHVzZXItY29udHJvbGxlZC4gU2VlIFtgdW5ib25kYF0gZm9yIG1vcmUgZGV0YWlsLnkBIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcywgeWV0IHRoZSBzaXplIG9mIHdoaWNoIGNvdWxkIGJlIGxhcmdlIGJhc2VkIG9uIGBsZWRnZXJgLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4gdmFsaWRhdGUEFHByZWZzOFZhbGlkYXRvclByZWZzLOggRGVjbGFyZSB0aGUgZGVzaXJlIHRvIHZhbGlkYXRlIGZvciB0aGUgb3JpZ2luIGNvbnRyb2xsZXIuANwgRWZmZWN0cyB3aWxsIGJlIGZlbHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBlcmEuAFUBIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGJ5IHRoZSBjb250cm9sbGVyLCBub3QgdGhlIHN0YXNoLgAsICMgPHdlaWdodD7oIC0gSW5kZXBlbmRlbnQgb2YgdGhlIGFyZ3VtZW50cy4gSW5zaWduaWZpY2FudCBjb21wbGV4aXR5LpggLSBDb250YWlucyBhIGxpbWl0ZWQgbnVtYmVyIG9mIHJlYWRzLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4gbm9taW5hdGUEHHRhcmdldHMwVmVjPEFkZHJlc3M+LBEBIERlY2xhcmUgdGhlIGRlc2lyZSB0byBub21pbmF0ZSBgdGFyZ2V0c2AgZm9yIHRoZSBvcmlnaW4gY29udHJvbGxlci4A3CBFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guACwgIyA8d2VpZ2h0PiUBIC0gVGhlIHRyYW5zYWN0aW9uJ3MgY29tcGxleGl0eSBpcyBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgYHRhcmdldHNgLJggd2hpY2ggaXMgY2FwcGVkIGF0IGBNQVhfTk9NSU5BVElPTlNgLtggLSBCb3RoIHRoZSByZWFkcyBhbmQgd3JpdGVzIGZvbGxvdyBhIHNpbWlsYXIgcGF0dGVybi4wICMgPC93ZWlnaHQ+FGNoaWxsACzIIERlY2xhcmUgbm8gZGVzaXJlIHRvIGVpdGhlciB2YWxpZGF0ZSBvciBub21pbmF0ZS4A3CBFZmZlY3RzIHdpbGwgYmUgZmVsdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGVyYS4AVQEgVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYnkgdGhlIGNvbnRyb2xsZXIsIG5vdCB0aGUgc3Rhc2guACwgIyA8d2VpZ2h0PuggLSBJbmRlcGVuZGVudCBvZiB0aGUgYXJndW1lbnRzLiBJbnNpZ25pZmljYW50IGNvbXBsZXhpdHkuVCAtIENvbnRhaW5zIG9uZSByZWFkLsggLSBXcml0ZXMgYXJlIGxpbWl0ZWQgdG8gdGhlIGBvcmlnaW5gIGFjY291bnQga2V5LjAgIyA8L3dlaWdodD4kc2V0X3BheWVlBBRwYXllZURSZXdhcmREZXN0aW5hdGlvbiy4IChSZS0pc2V0IHRoZSBwYXltZW50IHRhcmdldCBmb3IgYSBjb250cm9sbGVyLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgY29udHJvbGxlciwgbm90IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+6CAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6YIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcy7IIC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS4wICMgPC93ZWlnaHQ+OHNldF9jb250cm9sbGVyBChjb250cm9sbGVyHEFkZHJlc3MskCAoUmUtKXNldCB0aGUgY29udHJvbGxlciBvZiBhIHN0YXNoLgDcIEVmZmVjdHMgd2lsbCBiZSBmZWx0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgZXJhLgBVASBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBieSB0aGUgc3Rhc2gsIG5vdCB0aGUgY29udHJvbGxlci4ALCAjIDx3ZWlnaHQ+6CAtIEluZGVwZW5kZW50IG9mIHRoZSBhcmd1bWVudHMuIEluc2lnbmlmaWNhbnQgY29tcGxleGl0eS6YIC0gQ29udGFpbnMgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkcy7IIC0gV3JpdGVzIGFyZSBsaW1pdGVkIHRvIHRoZSBgb3JpZ2luYCBhY2NvdW50IGtleS4wICMgPC93ZWlnaHQ+THNldF92YWxpZGF0b3JfY291bnQEDG5ldzBDb21wYWN0PHUzMj4EgCBUaGUgaWRlYWwgbnVtYmVyIG9mIHZhbGlkYXRvcnMuNGZvcmNlX25vX2VyYXMAFLAgRm9yY2UgdGhlcmUgdG8gYmUgbm8gbmV3IGVyYXMgaW5kZWZpbml0ZWx5LgAsICMgPHdlaWdodD5AIC0gTm8gYXJndW1lbnRzLjAgIyA8L3dlaWdodD40Zm9yY2VfbmV3X2VyYQAYTQEgRm9yY2UgdGhlcmUgdG8gYmUgYSBuZXcgZXJhIGF0IHRoZSBlbmQgb2YgdGhlIG5leHQgc2Vzc2lvbi4gQWZ0ZXIgdGhpcywgaXQgd2lsbCBiZaAgcmVzZXQgdG8gbm9ybWFsIChub24tZm9yY2VkKSBiZWhhdmlvdXIuACwgIyA8d2VpZ2h0PkAgLSBObyBhcmd1bWVudHMuMCAjIDwvd2VpZ2h0PkRzZXRfaW52dWxuZXJhYmxlcwQodmFsaWRhdG9yczhWZWM8QWNjb3VudElkPgTMIFNldCB0aGUgdmFsaWRhdG9ycyB3aG8gY2Fubm90IGJlIHNsYXNoZWQgKGlmIGFueSkuAAAgT2ZmZW5jZXMAAQAAABxTZXNzaW9uAAEEIHNldF9rZXlzCBBrZXlzEEtleXMUcHJvb2YUQnl0ZXMo5CBTZXRzIHRoZSBzZXNzaW9uIGtleShzKSBvZiB0aGUgZnVuY3Rpb24gY2FsbGVyIHRvIGBrZXlgLiEBIEFsbG93cyBhbiBhY2NvdW50IHRvIHNldCBpdHMgc2Vzc2lvbiBrZXkgcHJpb3IgdG8gYmVjb21pbmcgYSB2YWxpZGF0b3IuxCBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4A1CBUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgZnVuY3Rpb24gbXVzdCBiZSBzaWduZWQuACwgIyA8d2VpZ2h0PoggLSBPKGxvZyBuKSBpbiBudW1iZXIgb2YgYWNjb3VudHMuWCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+AAA8RmluYWxpdHlUcmFja2VyAAEEKGZpbmFsX2hpbnQEEGhpbnRQQ29tcGFjdDxCbG9ja051bWJlcj4I9CBIaW50IHRoYXQgdGhlIGF1dGhvciBvZiB0aGlzIGJsb2NrIHRoaW5rcyB0aGUgYmVzdCBmaW5hbGl6ZWRsIGJsb2NrIGlzIHRoZSBnaXZlbiBudW1iZXIuAAAcR3JhbmRwYQABBEhyZXBvcnRfbWlzYmVoYXZpb3IEHF9yZXBvcnQUQnl0ZXMEZCBSZXBvcnQgc29tZSBtaXNiZWhhdmlvci4AACBJbU9ubGluZQABBCRoZWFydGJlYXQIJGhlYXJ0YmVhdCRIZWFydGJlYXQkc2lnbmF0dXJlSEF1dGhvcml0eVNpZ25hdHVyZQAAACREZW1vY3JhY3kAAUQccHJvcG9zZQggcHJvcG9zYWwgUHJvcG9zYWwUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+GKAgUHJvcG9zZSBhIHNlbnNpdGl2ZSBhY3Rpb24gdG8gYmUgdGFrZW4uACwgIyA8d2VpZ2h0PiAgLSBPKDEpLoAgLSBUd28gREIgY2hhbmdlcywgb25lIERCIGVudHJ5LjAgIyA8L3dlaWdodD4Yc2Vjb25kBCBwcm9wb3NhbEhDb21wYWN0PFByb3BJbmRleD4YoCBQcm9wb3NlIGEgc2Vuc2l0aXZlIGFjdGlvbiB0byBiZSB0YWtlbi4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuQCAtIE9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+EHZvdGUIJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4Qdm90ZRBWb3RlHDUBIFZvdGUgaW4gYSByZWZlcmVuZHVtLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0IHRoZSBwcm9wb3NhbDu8IG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkufCAtIE9uZSBEQiBjaGFuZ2UsIG9uZSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+KHByb3h5X3ZvdGUIJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4Qdm90ZRBWb3RlHFEBIFZvdGUgaW4gYSByZWZlcmVuZHVtIG9uIGJlaGFsZiBvZiBhIHN0YXNoLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0+CB0aGUgcHJvcG9zYWw7ICBvdGhlcndpc2UgaXQgaXMgYSB2b3RlIHRvIGtlZXAgdGhlIHN0YXR1cyBxdW8uACwgIyA8d2VpZ2h0PiAgLSBPKDEpLnwgLSBPbmUgREIgY2hhbmdlLCBvbmUgREIgZW50cnkuMCAjIDwvd2VpZ2h0PkBlbWVyZ2VuY3lfY2FuY2VsBCRyZWZfaW5kZXg8UmVmZXJlbmR1bUluZGV4CFEBIFNjaGVkdWxlIGFuIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24gb2YgYSByZWZlcmVuZHVtLiBDYW5ub3QgaGFwcGVuIHR3aWNlIHRvIHRoZSBzYW1lMCByZWZlcmVuZHVtLkBleHRlcm5hbF9wcm9wb3NlBCBwcm9wb3NhbCBQcm9wb3NhbAgxASBTY2hlZHVsZSBhIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGUgYW4gZXh0ZXJuYWwwIHJlZmVyZW5kdW0uZGV4dGVybmFsX3Byb3Bvc2VfbWFqb3JpdHkEIHByb3Bvc2FsIFByb3Bvc2FsFFkBIFNjaGVkdWxlIGEgbWFqb3JpdHktY2FycmllcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGVgIGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAE0BIFVubGlrZSBgZXh0ZXJuYWxfcHJvcG9zZWAsIGJsYWNrbGlzdGluZyBoYXMgbm8gZWZmZWN0IG9uIHRoaXMgYW5kIGl0IG1heSByZXBsYWNlIGGcIHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuYGV4dGVybmFsX3Byb3Bvc2VfZGVmYXVsdAQgcHJvcG9zYWwgUHJvcG9zYWwUSQEgU2NoZWR1bGUgYSBuZWdhdGl2ZS10dXJub3V0LWJpYXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgbmV4dCBvbmNlIGl0IGlzIGxlZ2FsIHRvhCBzY2hlZHVsZSBhbiBleHRlcm5hbCByZWZlcmVuZHVtLgBNASBVbmxpa2UgYGV4dGVybmFsX3Byb3Bvc2VgLCBibGFja2xpc3RpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIGFuZCBpdCBtYXkgcmVwbGFjZSBhnCBwcmUtc2NoZWR1bGVkIGBleHRlcm5hbF9wcm9wb3NlYCBjYWxsLihmYXN0X3RyYWNrDDRwcm9wb3NhbF9oYXNoEEhhc2g0dm90aW5nX3BlcmlvZCxCbG9ja051bWJlchRkZWxheSxCbG9ja051bWJlciBRASBTY2hlZHVsZSB0aGUgY3VycmVudGx5IGV4dGVybmFsbHktcHJvcG9zZWQgbWFqb3JpdHktY2FycmllcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZGUBIGltbWVkaWF0ZWx5LiBJZiB0aGVyZSBpcyBubyBleHRlcm5hbGx5LXByb3Bvc2VkIHJlZmVyZW5kdW0gY3VycmVudGx5LCBvciBpZiB0aGVyZSBpcyBvbmXsIGJ1dCBpdCBpcyBub3QgYSBtYWpvcml0eS1jYXJyaWVzIHJlZmVyZW5kdW0gdGhlbiBpdCBmYWlscy4A+CAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgZXh0ZXJuYWwgcHJvcG9zYWwuLQEgLSBgdm90aW5nX3BlcmlvZGA6IFRoZSBwZXJpb2QgdGhhdCBpcyBhbGxvd2VkIGZvciB2b3Rpbmcgb24gdGhpcyBwcm9wb3NhbC5VASAtIGBkZWxheWA6IFRoZSBudW1iZXIgb2YgYmxvY2sgYWZ0ZXIgdm90aW5nIGhhcyBlbmRlZCBpbiBhcHByb3ZhbCBhbmQgdGhpcyBzaG91bGQgYmXwICAgZW5hY3RlZC4gSW5jcmVhc2VkIHRvIGBFbWVyZ2VuY3lWb3RpbmdQZXJpb2RgIGlmIHRvbyBsb3cuNHZldG9fZXh0ZXJuYWwENHByb3Bvc2FsX2hhc2gQSGFzaAS8IFZldG8gYW5kIGJsYWNrbGlzdCB0aGUgZXh0ZXJuYWwgcHJvcG9zYWwgaGFzaC5EY2FuY2VsX3JlZmVyZW5kdW0EJHJlZl9pbmRleGBDb21wYWN0PFJlZmVyZW5kdW1JbmRleD4EVCBSZW1vdmUgYSByZWZlcmVuZHVtLjRjYW5jZWxfcXVldWVkDBB3aGVuUENvbXBhY3Q8QmxvY2tOdW1iZXI+FHdoaWNoMENvbXBhY3Q8dTMyPhB3aGF0YENvbXBhY3Q8UmVmZXJlbmR1bUluZGV4PgSgIENhbmNlbCBhIHByb3Bvc2FsIHF1ZXVlZCBmb3IgZW5hY3RtZW50LiRzZXRfcHJveHkEFHByb3h5JEFjY291bnRJZBSYIFNwZWNpZnkgYSBwcm94eS4gQ2FsbGVkIGJ5IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+WCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+MHJlc2lnbl9wcm94eQAUmCBDbGVhciB0aGUgcHJveHkuIENhbGxlZCBieSB0aGUgcHJveHkuACwgIyA8d2VpZ2h0PkAgLSBPbmUgREIgY2xlYXIuMCAjIDwvd2VpZ2h0PjByZW1vdmVfcHJveHkEFHByb3h5JEFjY291bnRJZBSYIENsZWFyIHRoZSBwcm94eS4gQ2FsbGVkIGJ5IHRoZSBzdGFzaC4ALCAjIDx3ZWlnaHQ+QCAtIE9uZSBEQiBjbGVhci4wICMgPC93ZWlnaHQ+IGRlbGVnYXRlCAh0byRBY2NvdW50SWQoY29udmljdGlvbihDb252aWN0aW9uFDwgRGVsZWdhdGUgdm90ZS4ALCAjIDx3ZWlnaHQ+WCAtIE9uZSBleHRyYSBEQiBlbnRyeS4wICMgPC93ZWlnaHQ+KHVuZGVsZWdhdGUAFEQgVW5kZWxlZ2F0ZSB2b3RlLgAsICMgPHdlaWdodD4gIC0gTygxKS4wICMgPC93ZWlnaHQ+AAAcQ291bmNpbAABECxzZXRfbWVtYmVycwQsbmV3X21lbWJlcnM4VmVjPEFjY291bnRJZD4QUQEgU2V0IHRoZSBjb2xsZWN0aXZlJ3MgbWVtYmVyc2hpcCBtYW51YWxseSB0byBgbmV3X21lbWJlcnNgLiBCZSBuaWNlIHRvIHRoZSBjaGFpbiBhbmRcIHByb3ZpZGUgaXQgcHJlLXNvcnRlZC4AWCBSZXF1aXJlcyByb290IG9yaWdpbi4cZXhlY3V0ZQQgcHJvcG9zYWwgUHJvcG9zYWwM9CBEaXNwYXRjaCBhIHByb3Bvc2FsIGZyb20gYSBtZW1iZXIgdXNpbmcgdGhlIGBNZW1iZXJgIG9yaWdpbi4ArCBPcmlnaW4gbXVzdCBiZSBhIG1lbWJlciBvZiB0aGUgY29sbGVjdGl2ZS4ccHJvcG9zZQgkdGhyZXNob2xkUENvbXBhY3Q8TWVtYmVyQ291bnQ+IHByb3Bvc2FsIFByb3Bvc2FsECwgIyA8d2VpZ2h0PpAgLSBCb3VuZGVkIHN0b3JhZ2UgcmVhZHMgYW5kIHdyaXRlcy64IC0gQXJndW1lbnQgYHRocmVzaG9sZGAgaGFzIGJlYXJpbmcgb24gd2VpZ2h0LjAgIyA8L3dlaWdodD4Qdm90ZQwgcHJvcG9zYWwQSGFzaBRpbmRleFhDb21wYWN0PFByb3Bvc2FsSW5kZXg+HGFwcHJvdmUQYm9vbBAsICMgPHdlaWdodD6MIC0gQm91bmRlZCBzdG9yYWdlIHJlYWQgYW5kIHdyaXRlcy5VASAtIFdpbGwgYmUgc2xpZ2h0bHkgaGVhdmllciBpZiB0aGUgcHJvcG9zYWwgaXMgYXBwcm92ZWQgLyBkaXNhcHByb3ZlZCBhZnRlciB0aGUgdm90ZS4wICMgPC93ZWlnaHQ+AABIVGVjaG5pY2FsQ29tbWl0dGVlAAEQLHNldF9tZW1iZXJzBCxuZXdfbWVtYmVyczhWZWM8QWNjb3VudElkPhBRASBTZXQgdGhlIGNvbGxlY3RpdmUncyBtZW1iZXJzaGlwIG1hbnVhbGx5IHRvIGBuZXdfbWVtYmVyc2AuIEJlIG5pY2UgdG8gdGhlIGNoYWluIGFuZFwgcHJvdmlkZSBpdCBwcmUtc29ydGVkLgBYIFJlcXVpcmVzIHJvb3Qgb3JpZ2luLhxleGVjdXRlBCBwcm9wb3NhbCBQcm9wb3NhbAz0IERpc3BhdGNoIGEgcHJvcG9zYWwgZnJvbSBhIG1lbWJlciB1c2luZyB0aGUgYE1lbWJlcmAgb3JpZ2luLgCsIE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLhxwcm9wb3NlCCR0aHJlc2hvbGRQQ29tcGFjdDxNZW1iZXJDb3VudD4gcHJvcG9zYWwgUHJvcG9zYWwQLCAjIDx3ZWlnaHQ+kCAtIEJvdW5kZWQgc3RvcmFnZSByZWFkcyBhbmQgd3JpdGVzLrggLSBBcmd1bWVudCBgdGhyZXNob2xkYCBoYXMgYmVhcmluZyBvbiB3ZWlnaHQuMCAjIDwvd2VpZ2h0PhB2b3RlDCBwcm9wb3NhbBBIYXNoFGluZGV4WENvbXBhY3Q8UHJvcG9zYWxJbmRleD4cYXBwcm92ZRBib29sECwgIyA8d2VpZ2h0PowgLSBCb3VuZGVkIHN0b3JhZ2UgcmVhZCBhbmQgd3JpdGVzLlUBIC0gV2lsbCBiZSBzbGlnaHRseSBoZWF2aWVyIGlmIHRoZSBwcm9wb3NhbCBpcyBhcHByb3ZlZCAvIGRpc2FwcHJvdmVkIGFmdGVyIHRoZSB2b3RlLjAgIyA8L3dlaWdodD4AACRFbGVjdGlvbnMAASg0c2V0X2FwcHJvdmFscwwUdm90ZXMkVmVjPGJvb2w+FGluZGV4SENvbXBhY3Q8Vm90ZUluZGV4PhBoaW50IFNldEluZGV4YGEBIFNldCBjYW5kaWRhdGUgYXBwcm92YWxzLiBBcHByb3ZhbCBzbG90cyBzdGF5IHZhbGlkIGFzIGxvbmcgYXMgY2FuZGlkYXRlcyBpbiB0aG9zZSBzbG90c0AgYXJlIHJlZ2lzdGVyZWQuAMAgTG9ja3MgdGhlIHRvdGFsIGJhbGFuY2Ugb2YgY2FsbGVyIGluZGVmaW5pdGVseS4pASBPbmx5IFtgcmV0cmFjdF92b3RlcmBdIG9yIFtgcmVhcF9pbmFjdGl2ZV92b3RlcmBdIGNhbiB1bmxvY2sgdGhlIGJhbGFuY2UuANQgYGhpbnRgIGFyZ3VtZW50IGlzIGludGVycHJldGVkIGRpZmZlcmVudGx5IGJhc2VkIG9uOkUBIC0gaWYgYG9yaWdpbmAgaXMgc2V0dGluZyBhcHByb3ZhbHMgZm9yIHRoZSBmaXJzdCB0aW1lOiBUaGUgaW5kZXggd2lsbCBiZSBjaGVja2VksCBmb3IgYmVpbmcgYSB2YWxpZCBfaG9sZV8gaW4gdGhlIHZvdGVyIGxpc3QuTQEgICAtIGlmIHRoZSBoaW50IGlzIGNvcnJlY3RseSBwb2ludGluZyB0byBhIGhvbGUsIG5vIGZlZSBpcyBkZWR1Y3RlZCBmcm9tIGBvcmlnaW5gLokBICAgLSBPdGhlcndpc2UsIHRoZSBjYWxsIHdpbGwgc3VjY2VlZCBidXQgdGhlIGluZGV4IGlzIGlnbm9yZWQgYW5kIHNpbXBseSBhIHB1c2ggdG8gdGhlIGxhc3QgY2h1bmuBASAgIHdpdGggZnJlZSBzcGFjZSBoYXBwZW5zLiBJZiB0aGUgbmV3IHB1c2ggY2F1c2VzIGEgbmV3IGNodW5rIHRvIGJlIGNyZWF0ZWQsIGEgZmVlIGluZGljYXRlZCBieXQgICBbYFZvdGluZ0ZlZWBdIGlzIGRlZHVjdGVkLl0BIC0gaWYgYG9yaWdpbmAgaXMgYWxyZWFkeSBhIHZvdGVyOiB0aGUgaW5kZXggX19tdXN0X18gYmUgdmFsaWQgYW5kIHBvaW50IHRvIHRoZSBjb3JyZWN01CBwb3NpdGlvbiBvZiB0aGUgYG9yaWdpbmAgaW4gdGhlIGN1cnJlbnQgdm90ZXJzIGxpc3QuAK0BIE5vdGUgdGhhdCBhbnkgdHJhaWxpbmcgYGZhbHNlYCB2b3RlcyBpbiBgdm90ZXNgIGlzIGlnbm9yZWQ7IEluIGFwcHJvdmFsIHZvdGluZywgbm90IHZvdGluZyBmb3IgYSBjYW5kaWRhdGV0IGFuZCB2b3RpbmcgZmFsc2UsIGFyZSBlcXVhbC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkunCAtIFR3byBleHRyYSBEQiBlbnRyaWVzLCBvbmUgREIgY2hhbmdlLgUBIC0gQXJndW1lbnQgYHZvdGVzYCBpcyBsaW1pdGVkIGluIGxlbmd0aCB0byBudW1iZXIgb2YgY2FuZGlkYXRlcy4wICMgPC93ZWlnaHQ+THByb3h5X3NldF9hcHByb3ZhbHMMFHZvdGVzJFZlYzxib29sPhRpbmRleEhDb21wYWN0PFZvdGVJbmRleD4QaGludCBTZXRJbmRleBiVASBTZXQgY2FuZGlkYXRlIGFwcHJvdmFscyBmcm9tIGEgcHJveHkuIEFwcHJvdmFsIHNsb3RzIHN0YXkgdmFsaWQgYXMgbG9uZyBhcyBjYW5kaWRhdGVzIGluIHRob3NlIHNsb3RzQCBhcmUgcmVnaXN0ZXJlZC4ALCAjIDx3ZWlnaHQ+8CAtIFNhbWUgYXMgYHNldF9hcHByb3ZhbHNgIHdpdGggb25lIGFkZGl0aW9uYWwgc3RvcmFnZSByZWFkLjAgIyA8L3dlaWdodD5McmVhcF9pbmFjdGl2ZV92b3RlchA4cmVwb3J0ZXJfaW5kZXgwQ29tcGFjdDx1MzI+DHdobxxBZGRyZXNzJHdob19pbmRleDBDb21wYWN0PHUzMj5IYXNzdW1lZF92b3RlX2luZGV4SENvbXBhY3Q8Vm90ZUluZGV4PjBhASBSZW1vdmUgYSB2b3Rlci4gRm9yIGl0IG5vdCB0byBiZSBhIGJvbmQtY29uc3VtaW5nIG5vLW9wLCBhbGwgYXBwcm92ZWQgY2FuZGlkYXRlIGluZGljZXNxASBtdXN0IG5vdyBiZSBlaXRoZXIgdW5yZWdpc3RlcmVkIG9yIHJlZ2lzdGVyZWQgdG8gYSBjYW5kaWRhdGUgdGhhdCByZWdpc3RlcmVkIHRoZSBzbG90IGFmdGVyoCB0aGUgdm90ZXIgZ2F2ZSB0aGVpciBsYXN0IGFwcHJvdmFsIHNldC4AFQEgQm90aCBpbmRpY2VzIG11c3QgYmUgcHJvdmlkZWQgYXMgZXhwbGFpbmVkIGluIFtgdm90ZXJfYXRgXSBmdW5jdGlvbi4AAQEgTWF5IGJlIGNhbGxlZCBieSBhbnlvbmUuIFJldHVybnMgdGhlIHZvdGVyIGRlcG9zaXQgdG8gYHNpZ25lZGAuACwgIyA8d2VpZ2h0PiAgLSBPKDEpLpwgLSBUd28gZmV3ZXIgREIgZW50cmllcywgb25lIERCIGNoYW5nZS4wICMgPC93ZWlnaHQ+NHJldHJhY3Rfdm90ZXIEFGluZGV4MENvbXBhY3Q8dTMyPigtASBSZW1vdmUgYSB2b3Rlci4gQWxsIHZvdGVzIGFyZSBjYW5jZWxsZWQgYW5kIHRoZSB2b3RlciBkZXBvc2l0IGlzIHJldHVybmVkLgAJASBUaGUgaW5kZXggbXVzdCBiZSBwcm92aWRlZCBhcyBleHBsYWluZWQgaW4gW2B2b3Rlcl9hdGBdIGZ1bmN0aW9uLgA9ASBBbHNvIHJlbW92ZXMgdGhlIGxvY2sgb24gdGhlIGJhbGFuY2Ugb2YgdGhlIHZvdGVyLiBTZWUgW2Bkb19zZXRfYXBwcm92YWxzKClgXS4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkunCAtIFR3byBmZXdlciBEQiBlbnRyaWVzLCBvbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD5Ac3VibWl0X2NhbmRpZGFjeQQQc2xvdDBDb21wYWN0PHUzMj40eCBTdWJtaXQgb25lc2VsZiBmb3IgY2FuZGlkYWN5LgARASBBY2NvdW50IG11c3QgaGF2ZSBlbm91Z2ggdHJhbnNmZXJyYWJsZSBmdW5kcyBpbiBpdCB0byBwYXkgdGhlIGJvbmQuACEBIE5PVEU6IGlmIGBvcmlnaW5gIGhhcyBhbHJlYWR5IGFzc2lnbmVkIGFwcHJvdmFscyB2aWEgW2BzZXRfYXBwcm92YWxzYF0sRQEgaXQgd2lsbCBOT1QgaGF2ZSBhbnkgdXNhYmxlIGZ1bmRzIHRvIHBhc3MgY2FuZGlkYWN5IGJvbmQgYW5kIG11c3QgZmlyc3QgcmV0cmFjdC4xASBOb3RlIHRoYXQgc2V0dGluZyBhcHByb3ZhbHMgd2lsbCBsb2NrIHRoZSBlbnRpcmUgYmFsYW5jZSBvZiB0aGUgdm90ZXIgdW50aWx4IHJldHJhY3Rpb24gb3IgYmVpbmcgcmVwb3J0ZWQuACwgIyA8d2VpZ2h0PmAgLSBJbmRlcGVuZGVudCBvZiBpbnB1dC5QIC0gVGhyZWUgREIgY2hhbmdlcy4wICMgPC93ZWlnaHQ+OHByZXNlbnRfd2lubmVyDCRjYW5kaWRhdGUcQWRkcmVzcxR0b3RhbEhDb21wYWN0PEJhbGFuY2VPZj4UaW5kZXhIQ29tcGFjdDxWb3RlSW5kZXg+IGUBIENsYWltIHRoYXQgYHNpZ25lZGAgaXMgb25lIG9mIHRoZSB0b3AgU2VsZjo6Y2FycnlfY291bnQoKSArIGN1cnJlbnRfdm90ZSgpLjEgY2FuZGlkYXRlcy6hASBPbmx5IHdvcmtzIGlmIHRoZSBgYmxvY2tfbnVtYmVyID49IGN1cnJlbnRfdm90ZSgpLjBgIGFuZCBgPCBjdXJyZW50X3ZvdGUoKS4wICsgcHJlc2VudGF0aW9uX2R1cmF0aW9uKClgeCBgc2lnbmVkYCBzaG91bGQgaGF2ZSBhdCBsZWFzdAAsICMgPHdlaWdodD5UIC0gTyh2b3RlcnMpIGNvbXB1dGUuRCAtIE9uZSBEQiBjaGFuZ2UuMCAjIDwvd2VpZ2h0PkRzZXRfZGVzaXJlZF9zZWF0cwQUY291bnQwQ29tcGFjdDx1MzI+DGUBIFNldCB0aGUgZGVzaXJlZCBtZW1iZXIgY291bnQ7IGlmIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQsIHRoZW4gc2VhdHMgd2lsbCBub3QgYmUgdXBJASBlbGVjdGlvbiB3aGVuIHRoZXkgZXhwaXJlLiBJZiBtb3JlLCB0aGVuIGEgbmV3IHZvdGUgd2lsbCBiZSBzdGFydGVkIGlmIG9uZSBpcyBub3RUIGFscmVhZHkgaW4gcHJvZ3Jlc3MuNHJlbW92ZV9tZW1iZXIEDHdobxxBZGRyZXNzECEBIFJlbW92ZSBhIHBhcnRpY3VsYXIgbWVtYmVyIGZyb20gdGhlIHNldC4gVGhpcyBpcyBlZmZlY3RpdmUgaW1tZWRpYXRlbHkuACEBIE5vdGU6IEEgdGFsbHkgc2hvdWxkIGhhcHBlbiBpbnN0YW50bHkgKGlmIG5vdCBhbHJlYWR5IGluIGEgcHJlc2VudGF0aW9uQQEgcGVyaW9kKSB0byBmaWxsIHRoZSBzZWF0IGlmIHJlbW92YWwgbWVhbnMgdGhhdCB0aGUgZGVzaXJlZCBtZW1iZXJzIGFyZSBub3QgbWV0LmRzZXRfcHJlc2VudGF0aW9uX2R1cmF0aW9uBBRjb3VudFBDb21wYWN0PEJsb2NrTnVtYmVyPghZASBTZXQgdGhlIHByZXNlbnRhdGlvbiBkdXJhdGlvbi4gSWYgdGhlcmUgaXMgY3VycmVudGx5IGEgdm90ZSBiZWluZyBwcmVzZW50ZWQgZm9yLCB3aWxsYCBpbnZva2UgYGZpbmFsaXplX3ZvdGVgLkRzZXRfdGVybV9kdXJhdGlvbgQUY291bnRQQ29tcGFjdDxCbG9ja051bWJlcj4IUQEgU2V0IHRoZSBwcmVzZW50YXRpb24gZHVyYXRpb24uIElmIHRoZXJlIGlzIGN1cnJlbnQgYSB2b3RlIGJlaW5nIHByZXNlbnRlZCBmb3IsIHdpbGxgIGludm9rZSBgZmluYWxpemVfdm90ZWAuAABMVGVjaG5pY2FsTWVtYmVyc2hpcAABEChhZGRfbWVtYmVyBAx3aG8kQWNjb3VudElkDHwgQWRkIGEgbWVtYmVyIGB3aG9gIHRvIHRoZSBzZXQuALQgTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYEFkZE9yaWdpbmAgb3Igcm9vdC40cmVtb3ZlX21lbWJlcgQMd2hvJEFjY291bnRJZAyQIFJlbW92ZSBhIG1lbWJlciBgd2hvYCBmcm9tIHRoZSBzZXQuAMAgTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFJlbW92ZU9yaWdpbmAgb3Igcm9vdC4sc3dhcF9tZW1iZXIIGHJlbW92ZSRBY2NvdW50SWQMYWRkJEFjY291bnRJZAzAIFN3YXAgb3V0IG9uZSBtZW1iZXIgYHJlbW92ZWAgZm9yIGFub3RoZXIgYGFkZGAuALggTWF5IG9ubHkgYmUgY2FsbGVkIGZyb20gYFN3YXBPcmlnaW5gIG9yIHJvb3QuNHJlc2V0X21lbWJlcnMEHG1lbWJlcnM4VmVjPEFjY291bnRJZD4QWQEgQ2hhbmdlIHRoZSBtZW1iZXJzaGlwIHRvIGEgbmV3IHNldCwgZGlzcmVnYXJkaW5nIHRoZSBleGlzdGluZyBtZW1iZXJzaGlwLiBCZSBuaWNlIGFuZGwgcGFzcyBgbWVtYmVyc2AgcHJlLXNvcnRlZC4AvCBNYXkgb25seSBiZSBjYWxsZWQgZnJvbSBgUmVzZXRPcmlnaW5gIG9yIHJvb3QuAAAgVHJlYXN1cnkAAQw0cHJvcG9zZV9zcGVuZAgUdmFsdWVIQ29tcGFjdDxCYWxhbmNlT2Y+LGJlbmVmaWNpYXJ5HEFkZHJlc3MkLQEgUHV0IGZvcndhcmQgYSBzdWdnZXN0aW9uIGZvciBzcGVuZGluZy4gQSBkZXBvc2l0IHByb3BvcnRpb25hbCB0byB0aGUgdmFsdWU1ASBpcyByZXNlcnZlZCBhbmQgc2xhc2hlZCBpZiB0aGUgcHJvcG9zYWwgaXMgcmVqZWN0ZWQuIEl0IGlzIHJldHVybmVkIG9uY2UgdGhlVCBwcm9wb3NhbCBpcyBhd2FyZGVkLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLpQgLSBPbmUgREIgY2hhbmdlLCBvbmUgZXh0cmEgREIgZW50cnkuMCAjIDwvd2VpZ2h0PjxyZWplY3RfcHJvcG9zYWwELHByb3Bvc2FsX2lkWENvbXBhY3Q8UHJvcG9zYWxJbmRleD4c/CBSZWplY3QgYSBwcm9wb3NlZCBzcGVuZC4gVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSBzbGFzaGVkLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkAgLSBPbmUgREIgY2xlYXIuMCAjIDwvd2VpZ2h0PkBhcHByb3ZlX3Byb3Bvc2FsBCxwcm9wb3NhbF9pZFhDb21wYWN0PFByb3Bvc2FsSW5kZXg+IF0BIEFwcHJvdmUgYSBwcm9wb3NhbC4gQXQgYSBsYXRlciB0aW1lLCB0aGUgcHJvcG9zYWwgd2lsbCBiZSBhbGxvY2F0ZWQgdG8gdGhlIGJlbmVmaWNpYXJ5rCBhbmQgdGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBiZSByZXR1cm5lZC4ALCAjIDx3ZWlnaHQ+ICAtIE8oMSkuZCAtIExpbWl0ZWQgc3RvcmFnZSByZWFkcy5EIC0gT25lIERCIGNoYW5nZS4wICMgPC93ZWlnaHQ+AAAYQ2xhaW1zAAEEFGNsYWltCBBkZXN0JEFjY291bnRJZEhldGhlcmV1bV9zaWduYXR1cmU4RWNkc2FTaWduYXR1cmUEOCBNYWtlIGEgY2xhaW0uAAAoUGFyYWNoYWlucwABDCRzZXRfaGVhZHMEFGhlYWRzWFZlYzxBdHRlc3RlZENhbmRpZGF0ZT4EFQEgUHJvdmlkZSBjYW5kaWRhdGUgcmVjZWlwdHMgZm9yIHBhcmFjaGFpbnMsIGluIGFzY2VuZGluZyBvcmRlciBieSBpZC5IcmVnaXN0ZXJfcGFyYWNoYWluDAhpZBhQYXJhSWQQY29kZRRCeXRlc0Rpbml0aWFsX2hlYWRfZGF0YRRCeXRlcwiYIFJlZ2lzdGVyIGEgcGFyYWNoYWluIHdpdGggZ2l2ZW4gY29kZS6MIEZhaWxzIGlmIGdpdmVuIElEIGlzIGFscmVhZHkgdXNlZC5QZGVyZWdpc3Rlcl9wYXJhY2hhaW4ECGlkGFBhcmFJZASUIERlcmVnaXN0ZXIgYSBwYXJhY2hhaW4gd2l0aCBnaXZlbiBpZAAAMEF0dGVzdGF0aW9ucwABBERtb3JlX2F0dGVzdGF0aW9ucwQUX21vcmVATW9yZUF0dGVzdGF0aW9ucwQVASBQcm92aWRlIGNhbmRpZGF0ZSByZWNlaXB0cyBmb3IgcGFyYWNoYWlucywgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGlkLgAAFFNsb3RzAAEYLG5ld19hdWN0aW9uCCBkdXJhdGlvblBDb21wYWN0PEJsb2NrTnVtYmVyPkhsZWFzZV9wZXJpb2RfaW5kZXhYQ29tcGFjdDxMZWFzZVBlcmlvZE9mPhRYIENyZWF0ZSBhIG5ldyBhdWN0aW9uLgBVASBUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuIHRoZXJlIGlzbid0IGFscmVhZHkgYW4gYXVjdGlvbiBpbiBwcm9ncmVzcyBhbmQgbWF5IG9ubHkgYmUpASBjYWxsZWQgYnkgdGhlIHJvb3Qgb3JpZ2luLiBBY2NlcHRzIHRoZSBgZHVyYXRpb25gIG9mIHRoaXMgYXVjdGlvbiBhbmQgdGhlXQEgYGxlYXNlX3BlcmlvZF9pbmRleGAgb2YgdGhlIGluaXRpYWwgbGVhc2UgcGVyaW9kIG9mIHRoZSBmb3VyIHRoYXQgYXJlIHRvIGJlIGF1Y3Rpb25lZC4MYmlkFAxzdWI4Q29tcGFjdDxTdWJJZD40YXVjdGlvbl9pbmRleFRDb21wYWN0PEF1Y3Rpb25JbmRleD4oZmlyc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+JGxhc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+GGFtb3VudEhDb21wYWN0PEJhbGFuY2VPZj5ATQEgTWFrZSBhIG5ldyBiaWQgZnJvbSBhbiBhY2NvdW50IChpbmNsdWRpbmcgYSBwYXJhY2hhaW4gYWNjb3VudCkgZm9yIGRlcGxveWluZyBhIG5ldywgcGFyYWNoYWluLgBdASBNdWx0aXBsZSBzaW11bHRhbmVvdXMgYmlkcyBmcm9tIHRoZSBzYW1lIGJpZGRlciBhcmUgYWxsb3dlZCBvbmx5IGFzIGxvbmcgYXMgYWxsIGFjdGl2ZUEBIGJpZHMgb3ZlcmxhcCBlYWNoIG90aGVyIChpLmUuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUpLiBCaWRzIGNhbm5vdCBiZSByZWRhY3RlZC4AWQEgLSBgc3ViYCBpcyB0aGUgc3ViLWJpZGRlciBJRCwgYWxsb3dpbmcgZm9yIG11bHRpcGxlIGNvbXBldGluZyBiaWRzIHRvIGJlIG1hZGUgYnkgKGFuZHQgZnVuZGVkIGJ5KSB0aGUgc2FtZSBhY2NvdW50LlEBIC0gYGF1Y3Rpb25faW5kZXhgIGlzIHRoZSBpbmRleCBvZiB0aGUgYXVjdGlvbiB0byBiaWQgb24uIFNob3VsZCBqdXN0IGJlIHRoZSBwcmVzZW50bCB2YWx1ZSBvZiBgQXVjdGlvbkNvdW50ZXJgLk0BIC0gYGZpcnN0X3Nsb3RgIGlzIHRoZSBmaXJzdCBsZWFzZSBwZXJpb2QgaW5kZXggb2YgdGhlIHJhbmdlIHRvIGJpZCBvbi4gVGhpcyBpcyB0aGUNASBhYnNvbHV0ZSBsZWFzZSBwZXJpb2QgaW5kZXggdmFsdWUsIG5vdCBhbiBhdWN0aW9uLXNwZWNpZmljIG9mZnNldC5FASAtIGBsYXN0X3Nsb3RgIGlzIHRoZSBsYXN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQ0BIGFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0Lk0BIC0gYGFtb3VudGAgaXMgdGhlIGFtb3VudCB0byBiaWQgdG8gYmUgaGVsZCBhcyBkZXBvc2l0IGZvciB0aGUgcGFyYWNoYWluIHNob3VsZCB0aGXMIGJpZCB3aW4uIFRoaXMgYW1vdW50IGlzIGhlbGQgdGhyb3VnaG91dCB0aGUgcmFuZ2UuJGJpZF9yZW5ldxA0YXVjdGlvbl9pbmRleFRDb21wYWN0PEF1Y3Rpb25JbmRleD4oZmlyc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+JGxhc3Rfc2xvdFhDb21wYWN0PExlYXNlUGVyaW9kT2Y+GGFtb3VudEhDb21wYWN0PEJhbGFuY2VPZj48UQEgTWFrZSBhIG5ldyBiaWQgZnJvbSBhIHBhcmFjaGFpbiBhY2NvdW50IGZvciByZW5ld2luZyB0aGF0IChwcmUtZXhpc3RpbmcpIHBhcmFjaGFpbi4AqCBUaGUgb3JpZ2luICptdXN0KiBiZSBhIHBhcmFjaGFpbiBhY2NvdW50LgBdASBNdWx0aXBsZSBzaW11bHRhbmVvdXMgYmlkcyBmcm9tIHRoZSBzYW1lIGJpZGRlciBhcmUgYWxsb3dlZCBvbmx5IGFzIGxvbmcgYXMgYWxsIGFjdGl2ZUEBIGJpZHMgb3ZlcmxhcCBlYWNoIG90aGVyIChpLmUuIGFyZSBtdXR1YWxseSBleGNsdXNpdmUpLiBCaWRzIGNhbm5vdCBiZSByZWRhY3RlZC4AUQEgLSBgYXVjdGlvbl9pbmRleGAgaXMgdGhlIGluZGV4IG9mIHRoZSBhdWN0aW9uIHRvIGJpZCBvbi4gU2hvdWxkIGp1c3QgYmUgdGhlIHByZXNlbnRsIHZhbHVlIG9mIGBBdWN0aW9uQ291bnRlcmAuTQEgLSBgZmlyc3Rfc2xvdGAgaXMgdGhlIGZpcnN0IGxlYXNlIHBlcmlvZCBpbmRleCBvZiB0aGUgcmFuZ2UgdG8gYmlkIG9uLiBUaGlzIGlzIHRoZQ0BIGFic29sdXRlIGxlYXNlIHBlcmlvZCBpbmRleCB2YWx1ZSwgbm90IGFuIGF1Y3Rpb24tc3BlY2lmaWMgb2Zmc2V0LkUBIC0gYGxhc3Rfc2xvdGAgaXMgdGhlIGxhc3QgbGVhc2UgcGVyaW9kIGluZGV4IG9mIHRoZSByYW5nZSB0byBiaWQgb24uIFRoaXMgaXMgdGhlDQEgYWJzb2x1dGUgbGVhc2UgcGVyaW9kIGluZGV4IHZhbHVlLCBub3QgYW4gYXVjdGlvbi1zcGVjaWZpYyBvZmZzZXQuTQEgLSBgYW1vdW50YCBpcyB0aGUgYW1vdW50IHRvIGJpZCB0byBiZSBoZWxkIGFzIGRlcG9zaXQgZm9yIHRoZSBwYXJhY2hhaW4gc2hvdWxkIHRoZcwgYmlkIHdpbi4gVGhpcyBhbW91bnQgaXMgaGVsZCB0aHJvdWdob3V0IHRoZSByYW5nZS48c2V0X29mZmJvYXJkaW5nBBBkZXN0HEFkZHJlc3MUyCBTZXQgdGhlIG9mZi1ib2FyZGluZyBpbmZvcm1hdGlvbiBmb3IgYSBwYXJhY2hhaW4uAKggVGhlIG9yaWdpbiAqbXVzdCogYmUgYSBwYXJhY2hhaW4gYWNjb3VudC4AIQEgLSBgZGVzdGAgaXMgdGhlIGRlc3RpbmF0aW9uIGFjY291bnQgdG8gcmVjZWl2ZSB0aGUgcGFyYWNoYWluJ3MgZGVwb3NpdC48Zml4X2RlcGxveV9kYXRhEAxzdWI4Q29tcGFjdDxTdWJJZD4ccGFyYV9pZERDb21wYWN0PFBhcmFJZE9mPiRjb2RlX2hhc2gQSGFzaERpbml0aWFsX2hlYWRfZGF0YRRCeXRlcxwtASBTZXQgdGhlIGRlcGxveSBpbmZvcm1hdGlvbiBmb3IgYSBzdWNjZXNzZnVsIGJpZCB0byBkZXBsb3kgYSBuZXcgcGFyYWNoYWluLgDIIC0gYG9yaWdpbmAgbXVzdCBiZSB0aGUgc3VjY2Vzc2Z1bCBiaWRkZXIgYWNjb3VudC6wIC0gYHN1YmAgaXMgdGhlIHN1Yi1iaWRkZXIgSUQgb2YgdGhlIGJpZGRlci4BASAtIGBwYXJhX2lkYCBpcyB0aGUgcGFyYWNoYWluIElEIGFsbG90dGVkIHRvIHRoZSB3aW5uaW5nIGJpZGRlci4dASAtIGBjb2RlX2hhc2hgIGlzIHRoZSBoYXNoIG9mIHRoZSBwYXJhY2hhaW4ncyBXYXNtIHZhbGlkYXRpb24gZnVuY3Rpb24u8CAtIGBpbml0aWFsX2hlYWRfZGF0YWAgaXMgdGhlIHBhcmFjaGFpbidzIGluaXRpYWwgaGVhZCBkYXRhLlRlbGFib3JhdGVfZGVwbG95X2RhdGEIHHBhcmFfaWREQ29tcGFjdDxQYXJhSWRPZj4QY29kZRRCeXRlczB0IE5vdGUgYSBuZXcgcGFyYWNoYWluJ3MgY29kZS4ATQEgVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciBgZml4X2RlcGxveV9kYXRhYCBhbmQgYGNvZGVgIG11c3QgYmUgdGhlIHByZWltYWdlIG9mIHRoZcQgYGNvZGVfaGFzaGAgcGFzc2VkIHRoZXJlIGZvciB0aGUgc2FtZSBgcGFyYV9pZGAuAGEBIFRoaXMgbWF5IGJlIGNhbGxlZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYWNoYWluJ3MgZmlyc3QgbGVhc2UgcGVyaW9kLkUBIElmIGNhbGxlZCBiZWZvcmUgdGhlbiB0aGUgcGFyYWNoYWluIHdpbGwgYmVjb21lIGFjdGl2ZSBhdCB0aGUgZmlyc3QgYmxvY2sgb2YgaXRzZQEgc3RhcnRpbmcgbGVhc2UgcGVyaW9kLiBJZiBhZnRlciwgdGhlbiBpdCB3aWxsIGJlY29tZSBhY3RpdmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhpcyBjYWxsLgBsIC0gYF9vcmlnaW5gIGlzIGlycmVsZXZhbnQu/CAtIGBwYXJhX2lkYCBpcyB0aGUgcGFyYWNoYWluIElEIHdob3NlIGNvZGUgd2lsbCBiZSBlbGFib3JhdGVkLhUBIC0gYGNvZGVgIGlzIHRoZSBwcmVpbWFnZSBvZiB0aGUgcmVnaXN0ZXJlZCBgY29kZV9oYXNoYCBvZiBgcGFyYV9pZGAuAAAQU3VkbwABCBBzdWRvBCBwcm9wb3NhbCBQcm9wb3NhbCQ5ASBBdXRoZW50aWNhdGVzIHRoZSBzdWRvIGtleSBhbmQgZGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBgUm9vdGAgb3JpZ2luLgDQIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkAgLSBObyBEQiB3cml0ZXMuMCAjIDwvd2VpZ2h0PhxzZXRfa2V5BAxuZXccQWRkcmVzcyR1ASBBdXRoZW50aWNhdGVzIHRoZSBjdXJyZW50IHN1ZG8ga2V5IGFuZCBzZXRzIHRoZSBnaXZlbiBBY2NvdW50SWQgKGBuZXdgKSBhcyB0aGUgbmV3IHN1ZG8ga2V5LgDQIFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsICMgPHdlaWdodD4gIC0gTygxKS5kIC0gTGltaXRlZCBzdG9yYWdlIHJlYWRzLkQgLSBPbmUgREIgY2hhbmdlLjAgIyA8L3dlaWdodD4AAA==' -}; diff --git a/packages/extension-ui/package.json b/packages/extension-ui/package.json index 87b61bdd..b340f219 100644 --- a/packages/extension-ui/package.json +++ b/packages/extension-ui/package.json @@ -6,8 +6,8 @@ "license": "Apache-2", "dependencies": { "@babel/runtime": "^7.6.3", - "@polkadot/react-identicon": "^0.46.0-beta.15", - "@polkadot/react-qr": "^0.46.0-beta.15", + "@polkadot/react-identicon": "^0.46.0-beta.16", + "@polkadot/react-qr": "^0.46.0-beta.16", "@types/react-router": "^5.1.2", "@types/react-router-dom": "^5.1.0", "react-router": "^5.1.2", diff --git a/packages/extension/package.json b/packages/extension/package.json index bc769399..ef58c3cb 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -5,9 +5,9 @@ "author": "Jaco Greeff ", "license": "Apache-2", "dependencies": { - "@polkadot/api": "^0.95.0-beta.34", + "@polkadot/api": "^0.95.0-beta.36", "@polkadot/extension-ui": "^0.13.0-beta.14", - "@polkadot/ui-keyring": "^0.46.0-beta.15" + "@polkadot/ui-keyring": "^0.46.0-beta.16" }, "devDependencies": { "@babel/runtime": "^7.6.3", diff --git a/yarn.lock b/yarn.lock index 8d12eb66..c0176c5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1975,37 +1975,37 @@ once "^1.4.0" universal-user-agent "^4.0.0" -"@polkadot/api-derive@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.95.0-beta.34.tgz#e6c6a2d5ce89e371ad7d1afe537bc7bf1127b51c" - integrity sha512-sbChiYRHJPZX3AItdJcB26ECLMSdX4IVQ8Szc7YcXlCIcDc/McRXp1uaHFG6OSCYkFVdwoU3djDBgO3CamHcgQ== +"@polkadot/api-derive@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.95.0-beta.36.tgz#36f4e11766786cbc23bee9ae9d74ce3842816504" + integrity sha512-QjR4ZmAjrQexi2nRutPTx44azVLzD39WemY/tj2k3pgeKf+7e6DCAh1O6XCevwTw0g1WmFPUdAIcoVhMP08Mog== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/api" "^0.95.0-beta.34" - "@polkadot/types" "^0.95.0-beta.34" + "@polkadot/api" "^0.95.0-beta.36" + "@polkadot/types" "^0.95.0-beta.36" -"@polkadot/api-metadata@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.95.0-beta.34.tgz#7cb605896f1caf69e6b2d04e7c99e671cdceb005" - integrity sha512-ukSByhwh+/SbW6DAHaJ2l852Ka7vHdcVfjz0GKXmctlFmSH+7iyp2EguDdELcImuL0YJj4lq7Ly1hcB8wJ+pdQ== +"@polkadot/api-metadata@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.95.0-beta.36.tgz#ef8924312feaab0c523bf62c7b948dcf76dd26c4" + integrity sha512-w5XhOKAsqZTpMs1N3JK4pnBpBmf6VWKELZeF1TMxENlkw1X151bXjgB0hxQKVchxRKjI23iVT3xDo1kfNcBKeQ== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/types" "^0.95.0-beta.34" + "@polkadot/types" "^0.95.0-beta.36" "@polkadot/util" "^1.6.1" "@polkadot/util-crypto" "^1.6.1" -"@polkadot/api@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.95.0-beta.34.tgz#8d9a8352c85e043ce517194a485e7888db30c9ae" - integrity sha512-KEy5hz0bJqCJHaTbItWEzyLvw+cMoGYFARSwN/eBGa0BG5bQSEA+S7NmRhGQ+S6eePqUftdYC7MFbgYud+KLGA== +"@polkadot/api@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.95.0-beta.36.tgz#a80dc6bb8b695ac2c466f2b5807117ac756b13fe" + integrity sha512-E4+WgEiEw+MMBTBa12OjlnnfaCmacCLQEqkQVrBkAQP++esW1CwTu+PC0Da/lnyasBhqyP7DqDdHpQE42VCy9w== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/api-derive" "^0.95.0-beta.34" - "@polkadot/api-metadata" "^0.95.0-beta.34" + "@polkadot/api-derive" "^0.95.0-beta.36" + "@polkadot/api-metadata" "^0.95.0-beta.36" "@polkadot/keyring" "^1.6.1" - "@polkadot/rpc-core" "^0.95.0-beta.34" - "@polkadot/rpc-provider" "^0.95.0-beta.34" - "@polkadot/types" "^0.95.0-beta.34" + "@polkadot/rpc-core" "^0.95.0-beta.36" + "@polkadot/rpc-provider" "^0.95.0-beta.36" + "@polkadot/types" "^0.95.0-beta.36" "@polkadot/util-crypto" "^1.6.1" "@polkadot/dev-react@^0.32.0-beta.11": @@ -2092,10 +2092,10 @@ typescript "^3.6.4" vuepress "^1.2.0" -"@polkadot/jsonrpc@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.95.0-beta.34.tgz#35cf846b5d02f2036f889120d6b5ed57fa184f01" - integrity sha512-jfWXgH62sz2YRTcNpYD6kVEVJ4cgX68q4ibIMPpNqqs2efodKnT30BOTl+lSpCUbYMyOVehLUNBTdjdIDyOOXQ== +"@polkadot/jsonrpc@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.95.0-beta.36.tgz#2faade9b6c6158f98d3314b63b072bb4f280a753" + integrity sha512-Wk1u5J4Pv0cejuhuTQNU1dTW+Tc42xCVYIwjJ7egnO73fyZNbsXubl/TdDISgS6uC0ml58qVPyvDWnXfGNNWCw== dependencies: "@babel/runtime" "^7.6.3" @@ -2108,14 +2108,14 @@ "@polkadot/util" "^1.6.1" "@polkadot/util-crypto" "^1.6.1" -"@polkadot/react-identicon@^0.46.0-beta.15": - version "0.46.0-beta.15" - resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-0.46.0-beta.15.tgz#f4b139f4fa17a455e4f9f79e666f96f4b228c0c8" - integrity sha512-m8jijrd+06GHlvs6aLlsHG0uGOQ/q89Wv9EgKxh7cwt1sii+kMo6hkkVIE4b/tuVwVOC3k17u998VGpW60fFmg== +"@polkadot/react-identicon@^0.46.0-beta.16": + version "0.46.0-beta.16" + resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-0.46.0-beta.16.tgz#599f71e12c76f1545a27ebedf57e9c0707144c47" + integrity sha512-fo3Y5HkexXx8TtMMjmSxkcV+Z/q+CnDOYe4Q2hVRcF3GYl8O2ivxLY9IjPxIJ/ZVT7xOORDRorgKRfFgSgQwCA== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/ui-settings" "^0.46.0-beta.15" - "@polkadot/ui-shared" "^0.46.0-beta.15" + "@polkadot/ui-settings" "^0.46.0-beta.16" + "@polkadot/ui-shared" "^0.46.0-beta.16" "@types/color" "^3.0.0" "@types/react-copy-to-clipboard" "^4.3.0" color "^3.1.2" @@ -2123,35 +2123,35 @@ react-copy-to-clipboard "^5.0.1" styled-components "^4.4.0" -"@polkadot/react-qr@^0.46.0-beta.15": - version "0.46.0-beta.15" - resolved "https://registry.yarnpkg.com/@polkadot/react-qr/-/react-qr-0.46.0-beta.15.tgz#3bab27885f8b2256c90afdc544c1de165df23007" - integrity sha512-fZHsul1iKSmbcQKa9UzHK9IdVs6A4m7GWkdF/ITWbnzvKaF67036k8wLZdm+QpjUsxKbINxjq9CN35YA6QfT7Q== +"@polkadot/react-qr@^0.46.0-beta.16": + version "0.46.0-beta.16" + resolved "https://registry.yarnpkg.com/@polkadot/react-qr/-/react-qr-0.46.0-beta.16.tgz#a3de081c62bca9734439dea39a405f13fb426bed" + integrity sha512-lczCjNrnlb1kTgw5oj6/J9yP3VOAxsU9prO/iYaWPZ5jqtotpimWlbBfldNtbmRLaThMR3lOYtZSDJB+FExMPQ== dependencies: "@babel/runtime" "^7.6.3" "@types/react-qr-reader" "^2.1.1" qrcode-generator "^1.4.4" react-qr-reader "^2.2.1" -"@polkadot/rpc-core@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.95.0-beta.34.tgz#396946a8af3f7417196c4dac21bc878a4f29acb1" - integrity sha512-j6LKUa9VwsaPeJOmWKeY9HcWJdnVI58lBN68lfNBZN6EEw2CDufz+93qQTXL8xnU3nia0EqP8fJKsSFF5l8Y4w== +"@polkadot/rpc-core@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.95.0-beta.36.tgz#f21af3314f067fed3c47db5963643c053ae0025d" + integrity sha512-oQuPnxYVZVodc0cAR2sHQ38TZeQpoaNAfmB4U+JxQuO9iC357GVJlCzZfsSHlyEG4p9dk5UkE0sEg/UGzlbcJA== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/jsonrpc" "^0.95.0-beta.34" - "@polkadot/rpc-provider" "^0.95.0-beta.34" - "@polkadot/types" "^0.95.0-beta.34" + "@polkadot/jsonrpc" "^0.95.0-beta.36" + "@polkadot/rpc-provider" "^0.95.0-beta.36" + "@polkadot/types" "^0.95.0-beta.36" "@polkadot/util" "^1.6.1" rxjs "^6.5.3" -"@polkadot/rpc-provider@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.95.0-beta.34.tgz#43766213156da6a276b41c9ca3b9cb35d60f4ada" - integrity sha512-BkqQokCxE9i+nBH3Ndywyx3SYimOlg1Hg/f1d7AhA4ziYW0YEOmXOTjcl1OUYPgQHGMk/u6XkoWC82arYBAGkg== +"@polkadot/rpc-provider@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.95.0-beta.36.tgz#0b1e91c6a0e8dc6b54de2d575ca1117fa6bc3b77" + integrity sha512-nLhcFWTPt47vs1kd0rXjTVuVqPJ3FLf09JaxqFmodltlayMapbJ9AIVn8ahPm+CYvQewssgkyLhp1iCzTOav5A== dependencies: "@babel/runtime" "^7.6.3" - "@polkadot/api-metadata" "^0.95.0-beta.34" + "@polkadot/api-metadata" "^0.95.0-beta.36" "@polkadot/util" "^1.6.1" "@polkadot/util-crypto" "^1.6.1" "@types/nock" "^11.1.0" @@ -2166,10 +2166,10 @@ dependencies: "@types/chrome" "^0.0.91" -"@polkadot/types@^0.95.0-beta.34": - version "0.95.0-beta.34" - resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.95.0-beta.34.tgz#8369944e6c5e1ef5cfcebb904c88accaefe69b7e" - integrity sha512-knTI+5MpBfN39IjhNdm44Ecb5m0AKyQTvxFYcE3LPtNn8yn0BNMiEAYk5HAYQiYcv441Aw3WKESbeRMZ7Wk8Pg== +"@polkadot/types@^0.95.0-beta.36": + version "0.95.0-beta.36" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.95.0-beta.36.tgz#2b380a2e4fdf9df784023c49d803ee8dfffd7293" + integrity sha512-sdYSYq5WUREBg2XjxBPII4ovN+6W30+P+eht92tqjHGO+uPX8Pndpx13g5y4hOJ8OYcfXT5KiKoumEr2pV/VIg== dependencies: "@babel/runtime" "^7.6.3" "@polkadot/util" "^1.6.1" @@ -2177,10 +2177,10 @@ "@types/memoizee" "^0.4.3" memoizee "^0.4.14" -"@polkadot/ui-keyring@^0.46.0-beta.15": - version "0.46.0-beta.15" - resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.46.0-beta.15.tgz#5e33ccf9483305ec0d257dd2d8ee633452c99de0" - integrity sha512-fcsBCY3baZW+S3SUBro/Ed02RMb5wi0mjf00F6VJn3Vbu6bEi9UuPMalCMtKWZ3k9HYyPCxqUgZLrrZEc6WvQg== +"@polkadot/ui-keyring@^0.46.0-beta.16": + version "0.46.0-beta.16" + resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.46.0-beta.16.tgz#3a68d8bcb87aa08285b1f37f65b4f28405a4079d" + integrity sha512-f+xi/0dLBe5Y9XmFn8QLptT3Vw7bFt3uCIzHlQh96PWQiLa30oH8NWBpRWHhjiIJJGZV/cAKuCd7Cx7Mt1nYVw== dependencies: "@babel/runtime" "^7.6.3" "@ledgerhq/hw-transport-u2f" "^4.72.2" @@ -2196,19 +2196,19 @@ optionalDependencies: "@ledgerhq/hw-transport-node-hid" "^4.72.2" -"@polkadot/ui-settings@^0.46.0-beta.15": - version "0.46.0-beta.15" - resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.46.0-beta.15.tgz#249d5efed61f6e877571f95a8008ff68e472bf4e" - integrity sha512-E48frQUgbGQ4LL5ONrhXi/Ws8BU98edR8zVba1NhURM0AjKM7ZVrxHXowllBErIjkIWTTY6khOkrnspnkBEvuw== +"@polkadot/ui-settings@^0.46.0-beta.16": + version "0.46.0-beta.16" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.46.0-beta.16.tgz#e50059fa5f7c8fa3ecc541c0eb540d2a2f083a9e" + integrity sha512-PHfGc4Nk9nk8xcuF9oLEdd/zRx/kkp8M9L7sBPiDF1RQCzMYyoRK/bhtK8b8iwn6Y2hYyJnzPMjmRLG83blNIQ== dependencies: "@babel/runtime" "^7.6.3" "@types/store" "^2.0.2" store "^2.0.12" -"@polkadot/ui-shared@^0.46.0-beta.15": - version "0.46.0-beta.15" - resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-0.46.0-beta.15.tgz#bc1a1d75a4e5a0d73e292d91cebaae4d74e2d609" - integrity sha512-bkw+hoNxzTCV7ecpYe5Ky7m6xUXEUdLHNi6PSu8QFq/yly2GqLBwa+znF+05JY+ABy8oILbxkOQNhPcPraIVGg== +"@polkadot/ui-shared@^0.46.0-beta.16": + version "0.46.0-beta.16" + resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-0.46.0-beta.16.tgz#32d86eb0f9472600b28b41309237943d1520b760" + integrity sha512-6CuK0TXSaA8Tf9EQsuSVnukZPsfFMqicyKafZKfxkuKoEv4yLUC6VvAJjhNUHFu2nlR1yOl9qzV6rECaJKXWeA== dependencies: "@babel/runtime" "^7.6.3" "@types/color" "^3.0.0"