From 616a446832f1fccc31a9fce5617024726a5379e2 Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Mon, 1 Jun 2020 16:24:27 -0700 Subject: [PATCH 01/35] Use URL origin instead of hostname for permission domains (#8717) * use URL.origin instead of hostname for tabs and permissions --- app/scripts/background.js | 2 +- app/scripts/metamask-controller.js | 6 ++-- app/scripts/ui.js | 8 ++--- test/e2e/signature-request.spec.js | 2 +- .../controllers/metamask-controller-test.js | 4 +-- ui/app/selectors/tests/permissions.test.js | 34 +++++++++---------- 6 files changed, 27 insertions(+), 29 deletions(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index 9e95d5252..e314086a6 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -384,7 +384,7 @@ function setupController (initState, initLangCode) { if (remotePort.sender && remotePort.sender.tab && remotePort.sender.url) { const tabId = remotePort.sender.tab.id const url = new URL(remotePort.sender.url) - const origin = url.hostname + const { origin } = url remotePort.onMessage.addListener((msg) => { if (msg.data && msg.data.method === 'eth_requestAccounts') { diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index cf77ef7ca..f36da612e 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1487,7 +1487,7 @@ export default class MetamaskController extends EventEmitter { * @private * @param {*} connectionStream - The duplex stream to the per-page script, * for sending the reload attempt to. - * @param {string} hostname - The URL that triggered the suspicion. + * @param {string} hostname - The hostname that triggered the suspicion. */ sendPhishingWarning (connectionStream, hostname) { const mux = setupMultiplex(connectionStream) @@ -1538,7 +1538,7 @@ export default class MetamaskController extends EventEmitter { setupProviderConnection (outStream, sender, isInternal) { const origin = isInternal ? 'metamask' - : (new URL(sender.url)).hostname + : (new URL(sender.url)).origin let extensionId if (sender.id !== extension.runtime.id) { extensionId = sender.id @@ -1577,7 +1577,7 @@ export default class MetamaskController extends EventEmitter { /** * A method for creating a provider that is safely restricted for the requesting domain. * @param {Object} options - Provider engine options - * @param {string} options.origin - The hostname of the sender + * @param {string} options.origin - The origin of the sender * @param {string} options.location - The full URL of the sender * @param {extensionId} [options.extensionId] - The extension ID of the sender, if the sender is an external extension * @param {tabId} [options.tabId] - The tab ID of the sender - if the sender is within a tab diff --git a/app/scripts/ui.js b/app/scripts/ui.js index 88f3fba07..5a403828d 100644 --- a/app/scripts/ui.js +++ b/app/scripts/ui.js @@ -21,7 +21,6 @@ import { EventEmitter } from 'events' import Dnode from 'dnode' import Eth from 'ethjs' import EthQuery from 'eth-query' -import urlUtil from 'url' import launchMetaMaskUi from '../../ui' import StreamProvider from 'web3-stream-provider' import { setupMultiplex } from './lib/stream-utils.js' @@ -95,10 +94,9 @@ async function queryCurrentActiveTab (windowType) { extension.tabs.query({ active: true, currentWindow: true }, (tabs) => { const [activeTab] = tabs const { title, url } = activeTab - const { hostname: origin, protocol } = url ? urlUtil.parse(url) : {} - resolve({ - title, origin, protocol, url, - }) + const { origin, protocol } = url ? new URL(url) : {} + + resolve({ title, origin, protocol, url }) }) }) } diff --git a/test/e2e/signature-request.spec.js b/test/e2e/signature-request.spec.js index d76dbdfc9..76c0ec6a4 100644 --- a/test/e2e/signature-request.spec.js +++ b/test/e2e/signature-request.spec.js @@ -107,7 +107,7 @@ describe('MetaMask', function () { const address = content[1] assert.equal(await title.getText(), 'Signature Request') assert.equal(await name.getText(), 'Ether Mail') - assert.equal(await origin.getText(), '127.0.0.1') + assert.equal(await origin.getText(), 'http://127.0.0.1:8080') assert.equal(await address.getText(), publicAddress.slice(0, 8) + '...' + publicAddress.slice(publicAddress.length - 8)) }) diff --git a/test/unit/app/controllers/metamask-controller-test.js b/test/unit/app/controllers/metamask-controller-test.js index 9fd55d071..3201e695c 100644 --- a/test/unit/app/controllers/metamask-controller-test.js +++ b/test/unit/app/controllers/metamask-controller-test.js @@ -824,7 +824,7 @@ describe('MetaMaskController', function () { 'mock tx params', { ...message, - origin: 'mycrypto.com', + origin: 'http://mycrypto.com', tabId: 456, }, ] @@ -865,7 +865,7 @@ describe('MetaMaskController', function () { 'mock tx params', { ...message, - origin: 'mycrypto.com', + origin: 'http://mycrypto.com', }, ] ) diff --git a/ui/app/selectors/tests/permissions.test.js b/ui/app/selectors/tests/permissions.test.js index 74347d0f9..66d73b182 100644 --- a/ui/app/selectors/tests/permissions.test.js +++ b/ui/app/selectors/tests/permissions.test.js @@ -17,7 +17,7 @@ describe('selectors', function () { 'icon': 'https://peepeth.com/favicon-32x32.png', 'name': 'Peepeth', }, - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'icon': 'https://remix.ethereum.org/icon.png', 'name': 'Remix - Ethereum IDE', }, @@ -45,7 +45,7 @@ describe('selectors', function () { }, ], }, - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'permissions': [ { '@context': [ @@ -62,7 +62,7 @@ describe('selectors', function () { ], 'date': 1585685128948, 'id': '6b9615cc-64e4-4317-afab-3c4f8ee0244a', - 'invoker': 'remix.ethereum.org', + 'invoker': 'https://remix.ethereum.org', 'parentCapability': 'eth_accounts', }, ], @@ -80,7 +80,7 @@ describe('selectors', function () { extensionId, name: 'Remix - Ethereum IDE', icon: 'https://remix.ethereum.org/icon.png', - key: 'remix.ethereum.org', + key: 'https://remix.ethereum.org', }]) }) @@ -93,7 +93,7 @@ describe('selectors', function () { 'icon': 'https://peepeth.com/favicon-32x32.png', 'name': 'Peepeth', }, - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'icon': 'https://remix.ethereum.org/icon.png', 'name': 'Remix - Ethereum IDE', }, @@ -121,7 +121,7 @@ describe('selectors', function () { }, ], }, - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'permissions': [ { '@context': [ @@ -139,7 +139,7 @@ describe('selectors', function () { ], 'date': 1585685128948, 'id': '6b9615cc-64e4-4317-afab-3c4f8ee0244a', - 'invoker': 'remix.ethereum.org', + 'invoker': 'https://remix.ethereum.org', 'parentCapability': 'eth_accounts', }, ], @@ -152,7 +152,7 @@ describe('selectors', function () { extensionId, name: 'Remix - Ethereum IDE', icon: 'https://remix.ethereum.org/icon.png', - key: 'remix.ethereum.org', + key: 'https://remix.ethereum.org', }]) }) }) @@ -161,7 +161,7 @@ describe('selectors', function () { const mockState = { activeTab: { 'title': 'Eth Sign Tests', - 'origin': 'remix.ethereum.org', + 'origin': 'https://remix.ethereum.org', 'protocol': 'https:', 'url': 'https://remix.ethereum.org/', }, @@ -185,7 +185,7 @@ describe('selectors', function () { }, cachedBalances: {}, domains: { - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'permissions': [ { '@context': [ @@ -206,7 +206,7 @@ describe('selectors', function () { ], 'date': 1586359844177, 'id': '3aa65a8b-3bcb-4944-941b-1baa5fe0ed8b', - 'invoker': 'remix.ethereum.org', + 'invoker': 'https://remix.ethereum.org', 'parentCapability': 'eth_accounts', }, ], @@ -269,7 +269,7 @@ describe('selectors', function () { ], }], permissionsHistory: { - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'eth_accounts': { 'accounts': { '0x7250739de134d33ec7ab1ee592711e15098c9d2d': 1586359844192, @@ -323,7 +323,7 @@ describe('selectors', function () { const mockState = { activeTab: { 'title': 'Eth Sign Tests', - 'origin': 'remix.ethereum.org', + 'origin': 'https://remix.ethereum.org', 'protocol': 'https:', 'url': 'https://remix.ethereum.org/', }, @@ -343,7 +343,7 @@ describe('selectors', function () { }, }, domains: { - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'permissions': [ { '@context': [ @@ -361,7 +361,7 @@ describe('selectors', function () { ], 'date': 1586359844177, 'id': '3aa65a8b-3bcb-4944-941b-1baa5fe0ed8b', - 'invoker': 'remix.ethereum.org', + 'invoker': 'https://remix.ethereum.org', 'parentCapability': 'eth_accounts', }, ], @@ -412,13 +412,13 @@ describe('selectors', function () { }, }, domainMetadata: { - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'icon': 'https://remix.ethereum.org/icon.png', 'name': 'Remix - Ethereum IDE', }, }, permissionsHistory: { - 'remix.ethereum.org': { + 'https://remix.ethereum.org': { 'eth_accounts': { 'accounts': { '0x7250739de134d33ec7ab1ee592711e15098c9d2d': 1586359844192, From e1c37784466995426e9a3b83ee3ab45a47823c57 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Tue, 2 Jun 2020 18:47:43 -0300 Subject: [PATCH 02/35] Fix `disabled` prop type in `AddToken` component (#8723) The `disabled` prop being passed to the `PageContainer` component in the render function for the `AddToken` component was a string in some cases. It should always be a boolean. It has been cast to a boolean in the one case where it was a string. --- ui/app/pages/add-token/add-token.component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/app/pages/add-token/add-token.component.js b/ui/app/pages/add-token/add-token.component.js index c8ab780bf..f2d033212 100644 --- a/ui/app/pages/add-token/add-token.component.js +++ b/ui/app/pages/add-token/add-token.component.js @@ -315,7 +315,7 @@ class AddToken extends Component { title={this.context.t('addTokens')} tabsComponent={this.renderTabs()} onSubmit={() => this.handleNext()} - disabled={this.hasError() || !this.hasSelected()} + disabled={Boolean(this.hasError()) || !this.hasSelected()} onCancel={() => { clearPendingTokens() history.push(mostRecentOverviewPage) From 56b157f6926960d624941713b758e6a0b3af6449 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Tue, 2 Jun 2020 18:47:55 -0300 Subject: [PATCH 03/35] Fix hide token e2e test (#8724) The e2e test for the "Hide token" functionality was incorrectly clicking "Cancel" on the "Hide token" modal, thus not actually testing that that token was hidden at all. The "Confirm" button is now selected using a test id, to ensure the wrong button isn't selected. --- test/e2e/metamask-ui.spec.js | 4 +--- ui/app/components/app/modals/hide-token-confirmation-modal.js | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/e2e/metamask-ui.spec.js b/test/e2e/metamask-ui.spec.js index 6cb3981cb..ecee19cee 100644 --- a/test/e2e/metamask-ui.spec.js +++ b/test/e2e/metamask-ui.spec.js @@ -1223,8 +1223,7 @@ describe('MetaMask', function () { const confirmHideModal = await driver.findElement(By.css('span .modal')) - const byHideTokenConfirmationButton = By.css('.hide-token-confirmation__button') - await driver.clickElement(byHideTokenConfirmationButton) + await driver.clickElement(By.css('[data-testid="hide-token-confirmation__hide"]')) await driver.wait(until.stalenessOf(confirmHideModal)) }) @@ -1232,7 +1231,6 @@ describe('MetaMask', function () { describe('Add existing token using search', function () { it('clicks on the Add Token button', async function () { - await driver.clickElement(By.css('[data-testid="asset__back"]')) await driver.clickElement(By.xpath(`//button[contains(text(), 'Add Token')]`)) await driver.delay(regularDelayMs) }) diff --git a/ui/app/components/app/modals/hide-token-confirmation-modal.js b/ui/app/components/app/modals/hide-token-confirmation-modal.js index fdd452b35..5f8e6001a 100644 --- a/ui/app/components/app/modals/hide-token-confirmation-modal.js +++ b/ui/app/components/app/modals/hide-token-confirmation-modal.js @@ -65,12 +65,14 @@ class HideTokenConfirmationModal extends Component {
+ )} + > + + + ) + : null + + return ( + + + ) +} + +TokenCell.propTypes = { + address: PropTypes.string, + outdatedBalance: PropTypes.bool, + symbol: PropTypes.string, + string: PropTypes.string, + image: PropTypes.string, + onClick: PropTypes.func.isRequired, +} + +TokenCell.defaultProps = { + outdatedBalance: false, +} diff --git a/ui/app/components/app/token-cell/token-cell.scss b/ui/app/components/app/token-cell/token-cell.scss index e14aa8d55..38adfcb56 100644 --- a/ui/app/components/app/token-cell/token-cell.scss +++ b/ui/app/components/app/token-cell/token-cell.scss @@ -1,95 +1,5 @@ -$wallet-balance-breakpoint: 890px; -$wallet-balance-breakpoint-range: "screen and (min-width: #{$break-large}) and (max-width: #{$wallet-balance-breakpoint})"; - .token-cell { - position: relative; - - &__token-balance { - margin-right: 4px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - min-width: 0; - max-width: 100%; - } - - &__token-balance, &__token-symbol { - font-size: 16px; - flex: 0 0 auto; - color: $Black-100; - } - - &__fiat-amount { - margin-top: 6px; - font-size: 14px; - width: 100%; - text-transform: uppercase; + &--outdated .list-item__heading { color: $Grey-500; } - - &--outdated &__icon { - opacity: 0.5 - } - &--outdated &__balance-wrapper { - opacity: 0.5 - } - - &__balance-wrapper { - flex: 1; - flex-flow: row wrap; - display: flex; - min-width: 0; - } - - &__outdated-icon { - color: $warning-yellow; - display: block; - padding: 0 10px; - } - - &__outdated-tooltip { - width: 260px; - } -} - -.token-menu-dropdown { - width: 80%; - position: absolute; - top: 52px; - right: 25px; - z-index: 2000; - - @media #{$wallet-balance-breakpoint-range} { - right: 18px; - } - - &__close-area { - position: fixed; - top: 0; - left: 0; - z-index: 2100; - width: 100%; - height: 100%; - cursor: default; - } - - &__container { - padding: 16px; - z-index: 2200; - position: relative; - } - - &__options { - display: flex; - flex-direction: column; - justify-content: center; - } - - &__option { - color: $white; - font-family: Roboto; - font-size: 16px; - line-height: 21px; - text-align: center; - } } diff --git a/ui/app/components/app/token-cell/token-cell.test.js b/ui/app/components/app/token-cell/token-cell.test.js index 3d7136d79..fba52b602 100644 --- a/ui/app/components/app/token-cell/token-cell.test.js +++ b/ui/app/components/app/token-cell/token-cell.test.js @@ -59,16 +59,12 @@ describe('Token Cell', function () { assert.equal(wrapper.find(Identicon).prop('image'), './test-image') }) - it('renders token balance', function () { - assert.equal(wrapper.find('.token-cell__token-balance').text(), '5.000') - }) - - it('renders token symbol', function () { - assert.equal(wrapper.find('.token-cell__token-symbol').text(), 'TEST') + it('renders token balance and symbol', function () { + assert.equal(wrapper.find('.list-item__heading').text(), '5.000 TEST ') }) it('renders converted fiat amount', function () { - assert.equal(wrapper.find('.token-cell__fiat-amount').text(), '0.52 USD') + assert.equal(wrapper.find('.list-item__subheading').text(), '$0.52 USD') }) it('calls onClick when clicked', function () { diff --git a/ui/app/components/ui/list-item/index.scss b/ui/app/components/ui/list-item/index.scss index 987c01c9a..6696bb5ad 100644 --- a/ui/app/components/ui/list-item/index.scss +++ b/ui/app/components/ui/list-item/index.scss @@ -18,7 +18,7 @@ } &__col { - align-self: flex-start; + align-self: center; &-main { flex-grow: 1; } @@ -32,7 +32,6 @@ &-wrap { display: inline-block; position: absolute; - top: 2px; width: 16px; height: 16px; margin-left: 8px; diff --git a/ui/app/components/ui/list-item/list-item.component.js b/ui/app/components/ui/list-item/list-item.component.js index 278b4cd10..07bdb1535 100644 --- a/ui/app/components/ui/list-item/list-item.component.js +++ b/ui/app/components/ui/list-item/list-item.component.js @@ -2,11 +2,22 @@ import React from 'react' import PropTypes from 'prop-types' import classnames from 'classnames' -export default function ListItem ({ title, subtitle, onClick, subtitleStatus, children, titleIcon, icon, rightContent, className }) { +export default function ListItem ({ + title, + subtitle, + onClick, + subtitleStatus, + children, + titleIcon, + icon, + rightContent, + className, + 'data-testid': dataTestId, +}) { const primaryClassName = classnames('list-item', className) return ( -
+
{icon && (
{icon} @@ -48,4 +59,5 @@ ListItem.propTypes = { rightContent: PropTypes.node, className: PropTypes.string, onClick: PropTypes.func, + 'data-testid': PropTypes.string, } From 731efcb36d0fde8c12b0ae2e9f28499636870cc3 Mon Sep 17 00:00:00 2001 From: Whymarrh Whitby Date: Thu, 4 Jun 2020 12:28:21 -0230 Subject: [PATCH 08/35] Move terms of use strings into localized messages (#8736) --- app/_locales/en/messages.json | 4 ++++ .../import-with-seed-phrase.component.js | 23 +++++++++++-------- .../new-account/new-account.component.js | 23 +++++++++++-------- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 6ec3bb0e2..f86498776 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -1,4 +1,8 @@ { + "acceptTermsOfUse": { + "message": "I have read and agree to the $1", + "description": "$1 is the `terms` message" + }, "eth_accounts": { "message": "View the addresses of your permitted accounts (required)", "description": "The description for the `eth_accounts` permission" diff --git a/ui/app/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js b/ui/app/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js index b138d7e33..f62af2d1d 100644 --- a/ui/app/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js +++ b/ui/app/pages/first-time-flow/create-password/import-with-seed-phrase/import-with-seed-phrase.component.js @@ -268,16 +268,19 @@ export default class ImportWithSeedPhrase extends PureComponent { {termsChecked ? : null}
- I have read and agree to the  - - - { t('terms') } - - + {t('acceptTermsOfUse', [( + e.stopPropagation()} + key="first-time-flow__link-text" + href="https://metamask.io/terms.html" + target="_blank" + rel="noopener noreferrer" + > + + { t('terms') } + + + )])}
- I have read and agree to the  - - - { t('terms') } - - + {t('acceptTermsOfUse', [( + e.stopPropagation()} + key="first-time-flow__link-text" + href="https://metamask.io/terms.html" + target="_blank" + rel="noopener noreferrer" + > + + { t('terms') } + + + )])} ) } From cac3bf5c56aeebcdc20a6de69c1c50cf226535a6 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Thu, 4 Jun 2020 12:52:21 -0300 Subject: [PATCH 10/35] Increase padding of empty transaction list (#8738) The top padding of the empty transaction list now mirrors the space below the buttons in the overview. --- ui/app/components/app/transaction-list/index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/app/components/app/transaction-list/index.scss b/ui/app/components/app/transaction-list/index.scss index 80c0ff500..ad4359ce3 100644 --- a/ui/app/components/app/transaction-list/index.scss +++ b/ui/app/components/app/transaction-list/index.scss @@ -34,7 +34,7 @@ flex: 1; display: grid; grid-template-rows: auto; - padding-top: 8px; + padding-top: 24px; } &__empty-text { From b96eb55c76a9568edb4389e47aaf5c6275487dd1 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Thu, 4 Jun 2020 13:42:45 -0300 Subject: [PATCH 11/35] Add box shadow to Home screen tabs (#8739) This matches the box shadow on the asset page. Some CSS specificity hijinks were required to override the base `Tabs` CSS rules, and a new `tabsClassName` prop was added to the `Tabs` component. --- ui/app/components/ui/tabs/tabs.component.js | 6 +++++- ui/app/pages/home/home.component.js | 2 +- ui/app/pages/home/index.scss | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ui/app/components/ui/tabs/tabs.component.js b/ui/app/components/ui/tabs/tabs.component.js index c3c3162d8..17e2c2021 100644 --- a/ui/app/components/ui/tabs/tabs.component.js +++ b/ui/app/components/ui/tabs/tabs.component.js @@ -1,16 +1,19 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' +import classnames from 'classnames' export default class Tabs extends Component { static defaultProps = { defaultActiveTabName: null, onTabClick: null, + tabsClassName: undefined, } static propTypes = { defaultActiveTabName: PropTypes.string, onTabClick: PropTypes.func, children: PropTypes.node.isRequired, + tabsClassName: PropTypes.string, } state = { @@ -62,9 +65,10 @@ export default class Tabs extends Component { } render () { + const { tabsClassName } = this.props return (
-
    +
      { this.renderTabs() }
    diff --git a/ui/app/pages/home/home.component.js b/ui/app/pages/home/home.component.js index e655eb1f0..b8ddaa539 100644 --- a/ui/app/pages/home/home.component.js +++ b/ui/app/pages/home/home.component.js @@ -232,7 +232,7 @@ export default class Home extends PureComponent {
    - + Date: Thu, 4 Jun 2020 13:13:11 -0500 Subject: [PATCH 12/35] refactor token list (#8726) Co-authored-by: Mark Stacey --- ui/app/components/app/token-list/index.js | 2 +- .../app/token-list/token-list.component.js | 148 ------------------ .../app/token-list/token-list.container.js | 21 --- .../components/app/token-list/token-list.js | 66 ++++++++ ui/app/hooks/useTokenTracker.js | 88 +++++++++++ 5 files changed, 155 insertions(+), 170 deletions(-) delete mode 100644 ui/app/components/app/token-list/token-list.component.js delete mode 100644 ui/app/components/app/token-list/token-list.container.js create mode 100644 ui/app/components/app/token-list/token-list.js create mode 100644 ui/app/hooks/useTokenTracker.js diff --git a/ui/app/components/app/token-list/index.js b/ui/app/components/app/token-list/index.js index fb15adf7f..613fc9668 100644 --- a/ui/app/components/app/token-list/index.js +++ b/ui/app/components/app/token-list/index.js @@ -1 +1 @@ -export { default } from './token-list.container' +export { default } from './token-list' diff --git a/ui/app/components/app/token-list/token-list.component.js b/ui/app/components/app/token-list/token-list.component.js deleted file mode 100644 index 9dbc4b6ef..000000000 --- a/ui/app/components/app/token-list/token-list.component.js +++ /dev/null @@ -1,148 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import TokenTracker from '@metamask/eth-token-tracker' -import { isEqual } from 'lodash' -import contracts from 'eth-contract-metadata' - -import { I18nContext } from '../../../contexts/i18n' -import TokenCell from '../token-cell' - -const defaultTokens = [] -for (const address in contracts) { - const contract = contracts[address] - if (contract.erc20) { - contract.address = address - defaultTokens.push(contract) - } -} - -class TokenList extends Component { - static contextType = I18nContext - - static propTypes = { - assetImages: PropTypes.object.isRequired, - network: PropTypes.string.isRequired, - onTokenClick: PropTypes.func.isRequired, - tokens: PropTypes.array.isRequired, - userAddress: PropTypes.string.isRequired, - } - - constructor () { - super() - - this.state = { - error: null, - tokensLoading: false, - tokensWithBalances: [], - } - } - - constructTokenTracker () { - const { network, tokens, userAddress } = this.props - if (!tokens || !tokens.length) { - this.setState({ - tokensLoading: false, - tokensWithBalances: [], - }) - return - } - this.setState({ tokensLoading: true }) - - if (!userAddress || network === 'loading' || !global.ethereumProvider) { - return - } - - const updateBalances = (tokensWithBalances) => { - this.setState({ - error: null, - tokensLoading: false, - tokensWithBalances, - }) - } - const showError = (error) => { - this.setState({ - error, - tokensLoading: false, - }) - } - - this.tokenTracker = new TokenTracker({ - userAddress, - provider: global.ethereumProvider, - tokens: tokens, - pollingInterval: 8000, - }) - - this.tokenTracker.on('update', updateBalances) - this.tokenTracker.on('error', showError) - this.tokenTracker.updateBalances() - } - - stopTokenTracker () { - if (this.tokenTracker) { - this.tokenTracker.stop() - this.tokenTracker.removeAllListeners('update') - this.tokenTracker.removeAllListeners('error') - } - } - - componentDidMount () { - this.constructTokenTracker() - } - - componentDidUpdate (prevProps) { - const { network, tokens, userAddress } = this.props - if ( - isEqual(tokens, prevProps.tokens) && - userAddress === prevProps.userAddress && - network === prevProps.network - ) { - return - } - this.stopTokenTracker() - this.constructTokenTracker() - } - - componentWillUnmount () { - this.stopTokenTracker() - } - - render () { - const t = this.context - const { error, tokensLoading, tokensWithBalances } = this.state - const { assetImages, network, onTokenClick } = this.props - if (network === 'loading' || tokensLoading) { - return ( -
    - {t('loadingTokens')} -
    - ) - } - - return ( -
    - {tokensWithBalances.map((tokenData, index) => { - tokenData.image = assetImages[tokenData.address] - return ( - - ) - })} -
    - ) - } -} - -export default TokenList diff --git a/ui/app/components/app/token-list/token-list.container.js b/ui/app/components/app/token-list/token-list.container.js deleted file mode 100644 index c22e0dea8..000000000 --- a/ui/app/components/app/token-list/token-list.container.js +++ /dev/null @@ -1,21 +0,0 @@ -import { connect } from 'react-redux' -import PropTypes from 'prop-types' -import { getSelectedAddress } from '../../../selectors' -import TokenList from './token-list.component' - -function mapStateToProps (state) { - return { - network: state.metamask.network, - tokens: state.metamask.tokens, - userAddress: getSelectedAddress(state), - assetImages: state.metamask.assetImages, - } -} - -const TokenListContainer = connect(mapStateToProps)(TokenList) - -TokenListContainer.propTypes = { - onTokenClick: PropTypes.func.isRequired, -} - -export default TokenListContainer diff --git a/ui/app/components/app/token-list/token-list.js b/ui/app/components/app/token-list/token-list.js new file mode 100644 index 000000000..cc0a4acaf --- /dev/null +++ b/ui/app/components/app/token-list/token-list.js @@ -0,0 +1,66 @@ +import React from 'react' +import PropTypes from 'prop-types' +import contracts from 'eth-contract-metadata' +import { isEqual } from 'lodash' + +import TokenCell from '../token-cell' +import { useI18nContext } from '../../../hooks/useI18nContext' +import { useTokenTracker } from '../../../hooks/useTokenTracker' +import { useSelector } from 'react-redux' +import { getAssetImages } from '../../../selectors' +import { getTokens } from '../../../ducks/metamask/metamask' + +const defaultTokens = [] +for (const address in contracts) { + const contract = contracts[address] + if (contract.erc20) { + contract.address = address + defaultTokens.push(contract) + } +} + +export default function TokenList ({ onTokenClick }) { + const t = useI18nContext() + const assetImages = useSelector(getAssetImages) + // use `isEqual` comparison function because the token array is serialized + // from the background so it has a new reference with each background update, + // even if the tokens haven't changed + const tokens = useSelector(getTokens, isEqual) + const { loading, error, tokensWithBalances } = useTokenTracker(tokens) + + if (loading) { + return ( +
    + {t('loadingTokens')} +
    + ) + } + + return ( +
    + {tokensWithBalances.map((tokenData, index) => { + tokenData.image = assetImages[tokenData.address] + return ( + + ) + })} +
    + ) +} + +TokenList.propTypes = { + onTokenClick: PropTypes.func.isRequired, +} diff --git a/ui/app/hooks/useTokenTracker.js b/ui/app/hooks/useTokenTracker.js new file mode 100644 index 000000000..e06ec8a55 --- /dev/null +++ b/ui/app/hooks/useTokenTracker.js @@ -0,0 +1,88 @@ +import { useState, useEffect, useRef, useCallback } from 'react' +import TokenTracker from '@metamask/eth-token-tracker' +import { useSelector } from 'react-redux' +import { getCurrentNetwork, getSelectedAddress } from '../selectors' + + +export function useTokenTracker (tokens) { + const network = useSelector(getCurrentNetwork) + const userAddress = useSelector(getSelectedAddress) + + const [loading, setLoading] = useState(() => tokens?.length >= 0) + const [tokensWithBalances, setTokensWithBalances] = useState([]) + const [error, setError] = useState(null) + const tokenTracker = useRef(null) + + const updateBalances = useCallback((tokensWithBalances) => { + setTokensWithBalances(tokensWithBalances) + setLoading(false) + setError(null) + }, []) + + const showError = useCallback((error) => { + setError(error) + setLoading(false) + }, []) + + const teardownTracker = useCallback(() => { + if (tokenTracker.current) { + tokenTracker.current.stop() + tokenTracker.current.removeAllListeners('update') + tokenTracker.current.removeAllListeners('error') + tokenTracker.current = null + } + }, []) + + const buildTracker = useCallback((address, tokenList) => { + // clear out previous tracker, if it exists. + teardownTracker() + tokenTracker.current = new TokenTracker({ + userAddress: address, + provider: global.ethereumProvider, + tokens: tokenList, + pollingInterval: 8000, + }) + + tokenTracker.current.on('update', updateBalances) + tokenTracker.current.on('error', showError) + tokenTracker.current.updateBalances() + }, [updateBalances, showError, teardownTracker]) + + // Effect to remove the tracker when the component is removed from DOM + // Do not overload this effect with additional dependencies. teardownTracker + // is the only dependency here, which itself has no dependencies and will + // never update. The lack of dependencies that change is what confirms + // that this effect only runs on mount/unmount + useEffect(() => { + return teardownTracker + }, [teardownTracker]) + + + // Effect to set loading state and initialize tracker when values change + useEffect(() => { + // This effect will only run initially and when: + // 1. network is updated, + // 2. userAddress is changed, + // 3. token list is updated and not equal to previous list + // in any of these scenarios, we should indicate to the user that their token + // values are in the process of updating by setting loading state. + setLoading(true) + + if (!userAddress || network === 'loading' || !global.ethereumProvider) { + // If we do not have enough information to build a TokenTracker, we exit early + // When the values above change, the effect will be restarted. We also teardown + // tracker because inevitably this effect will run again momentarily. + teardownTracker() + return + } + + if (tokens.length === 0) { + // sets loading state to false and token list to empty + updateBalances([]) + } + + buildTracker(userAddress, tokens) + }, [userAddress, network, tokens, updateBalances, buildTracker]) + + return { loading, tokensWithBalances, error } +} From c8a995dd9ba38c9ee7f26f24c23d52880c2c47f4 Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Thu, 4 Jun 2020 12:15:52 -0700 Subject: [PATCH 13/35] Send accountsChanged notification for wallet_requestPermissions (#8742) * emit accountsChanged for eth_accounts via wallet_requestPermissions * add/update tests --- app/scripts/controllers/permissions/index.js | 70 ++++++++++--------- .../permissions/methodMiddleware.js | 28 +++++++- .../unit/app/controllers/permissions/mocks.js | 25 +++---- .../permissions-controller-test.js | 52 ++++++++++---- .../permissions-middleware-test.js | 41 ++++++++++- 5 files changed, 156 insertions(+), 60 deletions(-) diff --git a/app/scripts/controllers/permissions/index.js b/app/scripts/controllers/permissions/index.js index fc51c41a3..bb61831f3 100644 --- a/app/scripts/controllers/permissions/index.js +++ b/app/scripts/controllers/permissions/index.js @@ -47,7 +47,7 @@ export class PermissionsController { this.getKeyringAccounts = getKeyringAccounts this._getUnlockPromise = getUnlockPromise this._notifyDomain = notifyDomain - this.notifyAllDomains = notifyAllDomains + this._notifyAllDomains = notifyAllDomains this._showPermissionRequest = showPermissionRequest this._restrictedMethods = getRestrictedMethods({ @@ -95,6 +95,7 @@ export class PermissionsController { getAccounts: this.getAccounts.bind(this, origin), getUnlockPromise: () => this._getUnlockPromise(true), hasPermission: this.hasPermission.bind(this, origin), + notifyAccountsChanged: this.notifyAccountsChanged.bind(this, origin), requestAccountsPermission: this._requestPermissions.bind( this, { origin }, { eth_accounts: {} }, ), @@ -196,6 +197,7 @@ export class PermissionsController { * User approval callback. Resolves the Promise for the permissions request * waited upon by rpc-cap, see requestUserApproval in _initializePermissions. * The request will be rejected if finalizePermissionsRequest fails. + * Idempotent for a given request id. * * @param {Object} approved - The request object approved by the user * @param {Array} accounts - The accounts to expose, if any @@ -206,7 +208,7 @@ export class PermissionsController { const approval = this.pendingApprovals.get(id) if (!approval) { - log.error(`Permissions request with id '${id}' not found`) + log.debug(`Permissions request with id '${id}' not found`) return } @@ -241,6 +243,7 @@ export class PermissionsController { /** * User rejection callback. Rejects the Promise for the permissions request * waited upon by rpc-cap, see requestUserApproval in _initializePermissions. + * Idempotent for a given id. * * @param {string} id - The id of the request rejected by the user */ @@ -248,7 +251,7 @@ export class PermissionsController { const approval = this.pendingApprovals.get(id) if (!approval) { - log.error(`Permissions request with id '${id}' not found`) + log.debug(`Permissions request with id '${id}' not found`) return } @@ -289,10 +292,7 @@ export class PermissionsController { const permittedAccounts = await this.getAccounts(origin) - this.notifyDomain(origin, { - method: NOTIFICATION_NAMES.accountsChanged, - result: permittedAccounts, - }) + this.notifyAccountsChanged(origin, permittedAccounts) } /** @@ -338,10 +338,7 @@ export class PermissionsController { newPermittedAccounts = await this.getAccounts(origin) } - this.notifyDomain(origin, { - method: NOTIFICATION_NAMES.accountsChanged, - result: newPermittedAccounts, - }) + this.notifyAccountsChanged(origin, newPermittedAccounts) } /** @@ -410,21 +407,34 @@ export class PermissionsController { }) } - notifyDomain (origin, payload) { + /** + * Notify a domain that its permitted accounts have changed. + * Also updates the accounts history log. + * + * @param {string} origin - The origin of the domain to notify. + * @param {Array} newAccounts - The currently permitted accounts. + */ + notifyAccountsChanged (origin, newAccounts) { + + if (typeof origin !== 'string' || !origin) { + throw new Error(`Invalid origin: '${origin}'`) + } + + if (!Array.isArray(newAccounts)) { + throw new Error('Invalid accounts', newAccounts) + } + + this._notifyDomain(origin, { + method: NOTIFICATION_NAMES.accountsChanged, + result: newAccounts, + }) // if the accounts changed from the perspective of the dapp, // update "last seen" time for the origin and account(s) // exception: no accounts -> no times to update - if ( - payload.method === NOTIFICATION_NAMES.accountsChanged && - Array.isArray(payload.result) - ) { - this.permissionsLog.updateAccountsHistory( - origin, payload.result - ) - } - - this._notifyDomain(origin, payload) + this.permissionsLog.updateAccountsHistory( + origin, newAccounts + ) // NOTE: // we don't check for accounts changing in the notifyAllDomains case, @@ -438,7 +448,8 @@ export class PermissionsController { * Should only be called after confirming that the permissions exist, to * avoid sending unnecessary notifications. * - * @param {Object} domains { origin: [permissions] } + * @param {Object} domains { origin: [permissions] } - The map of domain + * origins to permissions to remove. */ removePermissionsFor (domains) { @@ -449,10 +460,7 @@ export class PermissionsController { perms.map((methodName) => { if (methodName === 'eth_accounts') { - this.notifyDomain( - origin, - { method: NOTIFICATION_NAMES.accountsChanged, result: [] } - ) + this.notifyAccountsChanged(origin, []) } return { parentCapability: methodName } @@ -466,7 +474,7 @@ export class PermissionsController { */ clearPermissions () { this.permissions.clearDomains() - this.notifyAllDomains({ + this._notifyAllDomains({ method: NOTIFICATION_NAMES.accountsChanged, result: [], }) @@ -583,6 +591,7 @@ export class PermissionsController { * @param {string} account - The newly selected account's address. */ async _handleAccountSelected (account) { + if (typeof account !== 'string') { throw new Error('Selected account should be a non-empty string.') } @@ -618,10 +627,7 @@ export class PermissionsController { async _handleConnectedAccountSelected (origin) { const permittedAccounts = await this.getAccounts(origin) - this.notifyDomain(origin, { - method: NOTIFICATION_NAMES.accountsChanged, - result: permittedAccounts, - }) + this.notifyAccountsChanged(origin, permittedAccounts) } /** diff --git a/app/scripts/controllers/permissions/methodMiddleware.js b/app/scripts/controllers/permissions/methodMiddleware.js index bd6fc8450..76dc363bb 100644 --- a/app/scripts/controllers/permissions/methodMiddleware.js +++ b/app/scripts/controllers/permissions/methodMiddleware.js @@ -9,6 +9,7 @@ export default function createMethodMiddleware ({ getAccounts, getUnlockPromise, hasPermission, + notifyAccountsChanged, requestAccountsPermission, }) { @@ -16,6 +17,8 @@ export default function createMethodMiddleware ({ return createAsyncMiddleware(async (req, res, next) => { + let responseHandler + switch (req.method) { // Intercepting eth_accounts requests for backwards compatibility: @@ -81,10 +84,33 @@ export default function createMethodMiddleware ({ res.result = true return + // register return handler to send accountsChanged notification + case 'wallet_requestPermissions': + + if ('eth_accounts' in req.params?.[0]) { + + responseHandler = async () => { + + if (Array.isArray(res.result)) { + for (const permission of res.result) { + if (permission.parentCapability === 'eth_accounts') { + notifyAccountsChanged(await getAccounts()) + } + } + } + } + } + break + default: break } - next() + // when this promise resolves, the response is on its way back + await next() + + if (responseHandler) { + responseHandler() + } }) } diff --git a/test/unit/app/controllers/permissions/mocks.js b/test/unit/app/controllers/permissions/mocks.js index d83e95cef..6b8fad89f 100644 --- a/test/unit/app/controllers/permissions/mocks.js +++ b/test/unit/app/controllers/permissions/mocks.js @@ -446,6 +446,19 @@ export const getters = deepFreeze({ } }, }, + + notifyAccountsChanged: { + invalidOrigin: (origin) => { + return { + message: `Invalid origin: '${origin}'`, + } + }, + invalidAccounts: () => { + return { + message: 'Invalid accounts', + } + }, + }, }, /** @@ -477,18 +490,6 @@ export const getters = deepFreeze({ result: accounts, } }, - - /** - * Gets a test notification that doesn't occur in practice. - * - * @returns {Object} A notification with the 'test_notification' method name - */ - test: () => { - return { - method: 'test_notification', - result: true, - } - }, }, /** diff --git a/test/unit/app/controllers/permissions/permissions-controller-test.js b/test/unit/app/controllers/permissions/permissions-controller-test.js index b085e0bf7..1f511235a 100644 --- a/test/unit/app/controllers/permissions/permissions-controller-test.js +++ b/test/unit/app/controllers/permissions/permissions-controller-test.js @@ -1163,7 +1163,7 @@ describe('permissions controller', function () { }) }) - describe('notifyDomain', function () { + describe('notifyAccountsChanged', function () { let notifications, permController @@ -1173,11 +1173,11 @@ describe('permissions controller', function () { sinon.spy(permController.permissionsLog, 'updateAccountsHistory') }) - it('notifyDomain handles accountsChanged', async function () { + it('notifyAccountsChanged records history and sends notification', async function () { - permController.notifyDomain( + permController.notifyAccountsChanged( ORIGINS.a, - NOTIFICATIONS.newAccounts(ACCOUNTS.a.permitted), + ACCOUNTS.a.permitted, ) assert.ok( @@ -1192,19 +1192,45 @@ describe('permissions controller', function () { ) }) - it('notifyDomain handles notifications other than accountsChanged', async function () { + it('notifyAccountsChanged throws on invalid origin', async function () { - permController.notifyDomain(ORIGINS.a, NOTIFICATIONS.test()) + assert.throws( + () => permController.notifyAccountsChanged( + 4, + ACCOUNTS.a.permitted, + ), + ERRORS.notifyAccountsChanged.invalidOrigin(4), + 'should throw expected error for non-string origin' + ) - assert.ok( - permController.permissionsLog.updateAccountsHistory.notCalled, - 'permissionsLog.updateAccountsHistory should not have been called' + assert.throws( + () => permController.notifyAccountsChanged( + '', + ACCOUNTS.a.permitted, + ), + ERRORS.notifyAccountsChanged.invalidOrigin(''), + 'should throw expected error for empty string origin' ) + }) - assert.deepEqual( - notifications[ORIGINS.a], - [ NOTIFICATIONS.test() ], - 'origin should have correct notification' + it('notifyAccountsChanged throws on invalid accounts', async function () { + + assert.throws( + () => permController.notifyAccountsChanged( + ORIGINS.a, + 4, + ), + ERRORS.notifyAccountsChanged.invalidAccounts(), + 'should throw expected error for truthy non-array accounts' + ) + + assert.throws( + () => permController.notifyAccountsChanged( + ORIGINS.a, + null, + ), + ERRORS.notifyAccountsChanged.invalidAccounts(), + 'should throw expected error for falsy non-array accounts' ) }) }) diff --git a/test/unit/app/controllers/permissions/permissions-middleware-test.js b/test/unit/app/controllers/permissions/permissions-middleware-test.js index 80f995ea0..7988564ae 100644 --- a/test/unit/app/controllers/permissions/permissions-middleware-test.js +++ b/test/unit/app/controllers/permissions/permissions-middleware-test.js @@ -1,5 +1,5 @@ import { strict as assert } from 'assert' -import { useFakeTimers } from 'sinon' +import sinon from 'sinon' import { METADATA_STORE_KEY, @@ -58,6 +58,7 @@ describe('permissions middleware', function () { beforeEach(function () { permController = initPermController() + permController.notifyAccountsChanged = sinon.fake() }) it('grants permissions on user approval', async function () { @@ -107,6 +108,13 @@ describe('permissions middleware', function () { aAccounts, [ACCOUNTS.a.primary], 'origin should have correct accounts' ) + + assert.ok( + permController.notifyAccountsChanged.calledOnceWith( + ORIGINS.a, aAccounts, + ), + 'expected notification call should have been made' + ) }) it('handles serial approved requests that overwrite existing permissions', async function () { @@ -157,6 +165,13 @@ describe('permissions middleware', function () { 'origin should have correct accounts' ) + assert.ok( + permController.notifyAccountsChanged.calledOnceWith( + ORIGINS.a, accounts1, + ), + 'expected notification call should have been made' + ) + // create second request const requestedPerms2 = { @@ -211,6 +226,18 @@ describe('permissions middleware', function () { accounts2, [ACCOUNTS.b.primary], 'origin should have correct accounts' ) + + assert.equal( + permController.notifyAccountsChanged.callCount, 2, + 'should have called notification method 2 times in total' + ) + + assert.ok( + permController.notifyAccountsChanged.lastCall.calledWith( + ORIGINS.a, accounts2, + ), + 'expected notification call should have been made' + ) }) it('rejects permissions on user rejection', async function () { @@ -252,6 +279,11 @@ describe('permissions middleware', function () { assert.deepEqual( aAccounts, [], 'origin should have have correct accounts' ) + + assert.ok( + permController.notifyAccountsChanged.notCalled, + 'should not have called notification method' + ) }) it('rejects requests with unknown permissions', async function () { @@ -288,6 +320,11 @@ describe('permissions middleware', function () { ), 'response should have expected error and no result' ) + + assert.ok( + permController.notifyAccountsChanged.notCalled, + 'should not have called notification method' + ) }) it('accepts only a single pending permissions request per origin', async function () { @@ -695,7 +732,7 @@ describe('permissions middleware', function () { beforeEach(function () { permController = initPermController() - clock = useFakeTimers(1) + clock = sinon.useFakeTimers(1) }) afterEach(function () { From e85b162651e887d79bfd15469289abc2c6753cbc Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Thu, 4 Jun 2020 16:22:45 -0300 Subject: [PATCH 14/35] Add `MESSAGE_TYPE` enum (#8743) Each "message" requiring a user confirmation has a unique `type` property. These `type` properties have all been added as enums, and the enum is now used wherever the literal string was used previously. --- app/scripts/lib/decrypt-message-manager.js | 3 ++- app/scripts/lib/encryption-public-key-manager.js | 3 ++- app/scripts/lib/enums.js | 9 +++++++++ app/scripts/lib/message-manager.js | 3 ++- app/scripts/lib/personal-message-manager.js | 3 ++- app/scripts/lib/typed-message-manager.js | 4 ++-- .../signature-request-original.component.js | 12 ++++++------ .../signature-request-original.container.js | 7 ++++--- .../signature-request/signature-request.container.js | 7 ++++--- ui/app/helpers/utils/transactions.util.js | 5 +++-- .../confirm-transaction-switch.component.js | 5 +++-- ui/app/pages/confirm-transaction/conf-tx.js | 3 ++- 12 files changed, 41 insertions(+), 23 deletions(-) diff --git a/app/scripts/lib/decrypt-message-manager.js b/app/scripts/lib/decrypt-message-manager.js index 24b8e8dd7..cf67ee03e 100644 --- a/app/scripts/lib/decrypt-message-manager.js +++ b/app/scripts/lib/decrypt-message-manager.js @@ -3,6 +3,7 @@ import ObservableStore from 'obs-store' import ethUtil from 'ethereumjs-util' import { ethErrors } from 'eth-json-rpc-errors' import createId from './random-id' +import { MESSAGE_TYPE } from './enums' const hexRe = /^[0-9A-Fa-f]+$/g import log from 'loglevel' @@ -124,7 +125,7 @@ export default class DecryptMessageManager extends EventEmitter { msgParams: msgParams, time: time, status: 'unapproved', - type: 'eth_decrypt', + type: MESSAGE_TYPE.ETH_DECRYPT, } this.addMsg(msgData) diff --git a/app/scripts/lib/encryption-public-key-manager.js b/app/scripts/lib/encryption-public-key-manager.js index 4055104c0..a714f60e4 100644 --- a/app/scripts/lib/encryption-public-key-manager.js +++ b/app/scripts/lib/encryption-public-key-manager.js @@ -3,6 +3,7 @@ import ObservableStore from 'obs-store' import { ethErrors } from 'eth-json-rpc-errors' import createId from './random-id' import log from 'loglevel' +import { MESSAGE_TYPE } from './enums' /** * Represents, and contains data about, an 'eth_getEncryptionPublicKey' type request. These are created when @@ -114,7 +115,7 @@ export default class EncryptionPublicKeyManager extends EventEmitter { msgParams: address, time: time, status: 'unapproved', - type: 'eth_getEncryptionPublicKey', + type: MESSAGE_TYPE.ETH_GET_ENCRYPTION_PUBLIC_KEY, } if (req) { diff --git a/app/scripts/lib/enums.js b/app/scripts/lib/enums.js index 50a8ccf68..4e6efc07e 100644 --- a/app/scripts/lib/enums.js +++ b/app/scripts/lib/enums.js @@ -9,11 +9,20 @@ const PLATFORM_EDGE = 'Edge' const PLATFORM_FIREFOX = 'Firefox' const PLATFORM_OPERA = 'Opera' +const MESSAGE_TYPE = { + ETH_DECRYPT: 'eth_decrypt', + ETH_GET_ENCRYPTION_PUBLIC_KEY: 'eth_getEncryptionPublicKey', + ETH_SIGN: 'eth_sign', + ETH_SIGN_TYPED_DATA: 'eth_signTypedData', + PERSONAL_SIGN: 'personal_sign', +} + export { ENVIRONMENT_TYPE_POPUP, ENVIRONMENT_TYPE_NOTIFICATION, ENVIRONMENT_TYPE_FULLSCREEN, ENVIRONMENT_TYPE_BACKGROUND, + MESSAGE_TYPE, PLATFORM_BRAVE, PLATFORM_CHROME, PLATFORM_EDGE, diff --git a/app/scripts/lib/message-manager.js b/app/scripts/lib/message-manager.js index 387ccce47..228b407a8 100644 --- a/app/scripts/lib/message-manager.js +++ b/app/scripts/lib/message-manager.js @@ -3,6 +3,7 @@ import ObservableStore from 'obs-store' import ethUtil from 'ethereumjs-util' import { ethErrors } from 'eth-json-rpc-errors' import createId from './random-id' +import { MESSAGE_TYPE } from './enums' /** * Represents, and contains data about, an 'eth_sign' type signature request. These are created when a signature for @@ -116,7 +117,7 @@ export default class MessageManager extends EventEmitter { msgParams: msgParams, time: time, status: 'unapproved', - type: 'eth_sign', + type: MESSAGE_TYPE.ETH_SIGN, } this.addMsg(msgData) diff --git a/app/scripts/lib/personal-message-manager.js b/app/scripts/lib/personal-message-manager.js index 88cdee44b..1050abefd 100644 --- a/app/scripts/lib/personal-message-manager.js +++ b/app/scripts/lib/personal-message-manager.js @@ -3,6 +3,7 @@ import ObservableStore from 'obs-store' import ethUtil from 'ethereumjs-util' import { ethErrors } from 'eth-json-rpc-errors' import createId from './random-id' +import { MESSAGE_TYPE } from './enums' const hexRe = /^[0-9A-Fa-f]+$/g import log from 'loglevel' @@ -125,7 +126,7 @@ export default class PersonalMessageManager extends EventEmitter { msgParams: msgParams, time: time, status: 'unapproved', - type: 'personal_sign', + type: MESSAGE_TYPE.PERSONAL_SIGN, } this.addMsg(msgData) diff --git a/app/scripts/lib/typed-message-manager.js b/app/scripts/lib/typed-message-manager.js index 346051e30..147180ffd 100644 --- a/app/scripts/lib/typed-message-manager.js +++ b/app/scripts/lib/typed-message-manager.js @@ -6,7 +6,7 @@ import { ethErrors } from 'eth-json-rpc-errors' import sigUtil from 'eth-sig-util' import log from 'loglevel' import jsonschema from 'jsonschema' - +import { MESSAGE_TYPE } from './enums' /** * Represents, and contains data about, an 'eth_signTypedData' type signature request. These are created when a * signature for an eth_signTypedData call is requested. @@ -118,7 +118,7 @@ export default class TypedMessageManager extends EventEmitter { msgParams: msgParams, time: time, status: 'unapproved', - type: 'eth_signTypedData', + type: MESSAGE_TYPE.ETH_SIGN_TYPED_DATA, } this.addMsg(msgData) diff --git a/ui/app/components/app/signature-request-original/signature-request-original.component.js b/ui/app/components/app/signature-request-original/signature-request-original.component.js index 01bb0b8c4..b89d6f1e8 100644 --- a/ui/app/components/app/signature-request-original/signature-request-original.component.js +++ b/ui/app/components/app/signature-request-original/signature-request-original.component.js @@ -4,7 +4,7 @@ import ethUtil from 'ethereumjs-util' import classnames from 'classnames' import { ObjectInspector } from 'react-inspector' -import { ENVIRONMENT_TYPE_NOTIFICATION } from '../../../../../app/scripts/lib/enums' +import { ENVIRONMENT_TYPE_NOTIFICATION, MESSAGE_TYPE } from '../../../../../app/scripts/lib/enums' import { getEnvironmentType } from '../../../../../app/scripts/lib/util' import Identicon from '../../ui/identicon' import AccountListItem from '../../../pages/send/account-list-item/account-list-item.component' @@ -208,11 +208,11 @@ export default class SignatureRequestOriginal extends Component { const { txData } = this.props const { type, msgParams: { data } } = txData - if (type === 'personal_sign') { + if (type === MESSAGE_TYPE.PERSONAL_SIGN) { rows = [{ name: this.context.t('message'), value: this.msgHexToText(data) }] - } else if (type === 'eth_signTypedData') { + } else if (type === MESSAGE_TYPE.ETH_SIGN_TYPED_DATA) { rows = data - } else if (type === 'eth_sign') { + } else if (type === MESSAGE_TYPE.ETH_SIGN) { rows = [{ name: this.context.t('message'), value: data }] notice = this.context.t('signNotice') } @@ -223,12 +223,12 @@ export default class SignatureRequestOriginal extends Component { { this.renderRequestInfo() }
    { notice } { - type === 'eth_sign' + type === MESSAGE_TYPE.ETH_SIGN ? ( diff --git a/ui/app/pages/confirm-transaction/conf-tx.js b/ui/app/pages/confirm-transaction/conf-tx.js index fcbf28094..da5345084 100644 --- a/ui/app/pages/confirm-transaction/conf-tx.js +++ b/ui/app/pages/confirm-transaction/conf-tx.js @@ -11,6 +11,7 @@ import SignatureRequest from '../../components/app/signature-request' import SignatureRequestOriginal from '../../components/app/signature-request-original' import Loading from '../../components/ui/loading-screen' import { getMostRecentOverviewPage } from '../../ducks/history/history' +import { MESSAGE_TYPE } from '../../../../app/scripts/lib/enums' function mapStateToProps (state) { const { metamask, appState } = state @@ -111,7 +112,7 @@ class ConfirmTxScreen extends Component { signatureSelect (type, version) { // Temporarily direct only v3 and v4 requests to new code. - if (type === 'eth_signTypedData' && (version === 'V3' || version === 'V4')) { + if (type === MESSAGE_TYPE.ETH_SIGN_TYPED_DATA && (version === 'V3' || version === 'V4')) { return SignatureRequest } From 8e1f40aedbd4db4d9d0ab781058264d986748bf4 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 5 Jun 2020 13:07:23 -0300 Subject: [PATCH 15/35] Handle connected accounts with no last active time (#8746) The "Connected accounts" modal was throwing an exception when attempting to render an account that has no `lastActive` time. The component and related selector has been updated to no longer expect the `lastActive` time to be set. Prior to #8653 there was a guarantee that all connected accounts had a `lastActive` time set, as the time would be set on any account returned from the `eth_requestAccounts` call. But after #8653 only the primary account was returned, so only the primary account had a `lastActive` time set. Fixes #8733 --- .../connected-accounts-list-item.component.js | 12 +++- .../connected-accounts-list.component.js | 71 +++++++++++-------- ui/app/selectors/permissions.js | 2 +- 3 files changed, 51 insertions(+), 34 deletions(-) diff --git a/ui/app/components/app/connected-accounts-list/connected-accounts-list-item/connected-accounts-list-item.component.js b/ui/app/components/app/connected-accounts-list/connected-accounts-list-item/connected-accounts-list-item.component.js index edb8bca5b..11b30660d 100644 --- a/ui/app/components/app/connected-accounts-list/connected-accounts-list-item/connected-accounts-list-item.component.js +++ b/ui/app/components/app/connected-accounts-list/connected-accounts-list-item/connected-accounts-list-item.component.js @@ -42,9 +42,15 @@ export default class ConnectedAccountsListItem extends PureComponent {

    {name}

    -

    - {status} -

    + { + status + ? ( +

    + {status} +

    + ) + : null + }
    {options} diff --git a/ui/app/components/app/connected-accounts-list/connected-accounts-list.component.js b/ui/app/components/app/connected-accounts-list/connected-accounts-list.component.js index bcc601ef8..78627c160 100644 --- a/ui/app/components/app/connected-accounts-list/connected-accounts-list.component.js +++ b/ui/app/components/app/connected-accounts-list/connected-accounts-list.component.js @@ -24,7 +24,7 @@ export default class ConnectedAccountsList extends PureComponent { connectedAccounts: PropTypes.arrayOf(PropTypes.shape({ address: PropTypes.string.isRequired, name: PropTypes.string.isRequired, - lastActive: PropTypes.number.isRequired, + lastActive: PropTypes.number, })).isRequired, permissions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string.isRequired, @@ -97,38 +97,49 @@ export default class ConnectedAccountsList extends PureComponent { <>
    {this.renderUnconnectedAccount()} - {connectedAccounts.map(({ address, name, lastActive }, index) => ( - - { - address === selectedAddress ? null : ( + { + connectedAccounts.map(({ address, name, lastActive }, index) => { + let status + if (index === 0) { + status = t('primary') + } else if (lastActive) { + status = `${t('lastActive')}: ${DateTime.fromMillis(lastActive).toISODate()}` + } + + return ( + + { + address === selectedAddress ? null : ( + + {t('switchToThisAccount')} + + ) + } - {t('switchToThisAccount')} + {t('disconnectThisAccount')} - ) - } - - {t('disconnectThisAccount')} - - - )} - /> - ))} + + )} + /> + ) + }) + }
    diff --git a/ui/app/selectors/permissions.js b/ui/app/selectors/permissions.js index 7ab981833..7f8b1b126 100644 --- a/ui/app/selectors/permissions.js +++ b/ui/app/selectors/permissions.js @@ -222,7 +222,7 @@ export function getOrderedConnectedAccountsForActiveTab (state) { .filter((account) => connectedAccounts.includes(account.address)) .map((account) => ({ ...account, - lastActive: permissionsHistoryByAccount[account.address], + lastActive: permissionsHistoryByAccount?.[account.address], })) .sort(({ lastSelected: lastSelectedA }, { lastSelected: lastSelectedB }) => { if (lastSelectedA === lastSelectedB) { From 7fcf62554989ce72ecd7110df32abc39947bea3d Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Fri, 5 Jun 2020 13:36:40 -0500 Subject: [PATCH 16/35] asset outdated warning inline on full screen (#8734) The asset list item and transaction list item do not make great use of screen realestate when in fullscreen mode on larger displays/windows. This PR adds in a new prop for list-item for displaying content in the middle of the list-item when on these types of screens. To facilitate this, some updates were made to styling to allow for the list item to better control how items are laid out in various breakpoints. This works makes it possible to display the outdated balance warning inline in the middle section of the list item, and convert to a tooltip when on small displays. --- .../app/asset-list-item/asset-list-item.js | 28 ++++++++++- .../app/asset-list-item/asset-list-item.scss | 20 ++++++++ .../components/app/token-cell/token-cell.js | 32 +++++-------- .../app/transaction-list-item/index.scss | 5 ++ ui/app/components/ui/list-item/index.scss | 47 ++++++++++++++++--- .../ui/list-item/list-item.component.js | 45 +++++++++++------- 6 files changed, 131 insertions(+), 46 deletions(-) diff --git a/ui/app/components/app/asset-list-item/asset-list-item.js b/ui/app/components/app/asset-list-item/asset-list-item.js index ffd2028a6..bf2bcc656 100644 --- a/ui/app/components/app/asset-list-item/asset-list-item.js +++ b/ui/app/components/app/asset-list-item/asset-list-item.js @@ -3,6 +3,9 @@ import PropTypes from 'prop-types' import classnames from 'classnames' import Identicon from '../../ui/identicon' import ListItem from '../../ui/list-item' +import Tooltip from '../../ui/tooltip-v2' +import InfoIcon from '../../ui/icon/info-icon.component' + const AssetListItem = ({ className, @@ -15,12 +18,34 @@ const AssetListItem = ({ primary, secondary, }) => { + const titleIcon = warning + ? ( + + + + ) + : null + + const midContent = warning + ? ( + <> + +
    {warning}
    + + ) + : null + return ( )} + midContent={midContent} rightContent={} /> ) diff --git a/ui/app/components/app/asset-list-item/asset-list-item.scss b/ui/app/components/app/asset-list-item/asset-list-item.scss index 4cb68b6be..230659ac5 100644 --- a/ui/app/components/app/asset-list-item/asset-list-item.scss +++ b/ui/app/components/app/asset-list-item/asset-list-item.scss @@ -7,4 +7,24 @@ margin-top: 6px; font-size: 14px; } + + &__warning { + flex: 1; + margin-left: 8px; + color: $Grey-500; + } + + .list-item__mid-content { + display: none; + } + + @media (min-width: 576px) { + &__warning-tooltip { + display: none; + } + + .list-item__mid-content { + display: flex; + } + } } diff --git a/ui/app/components/app/token-cell/token-cell.js b/ui/app/components/app/token-cell/token-cell.js index 2408f4290..87b3210a8 100644 --- a/ui/app/components/app/token-cell/token-cell.js +++ b/ui/app/components/app/token-cell/token-cell.js @@ -2,12 +2,10 @@ import classnames from 'classnames' import PropTypes from 'prop-types' import React from 'react' import { conversionUtil, multiplyCurrencies } from '../../../helpers/utils/conversion-util' -import Tooltip from '../../ui/tooltip-v2' import AssetListItem from '../asset-list-item' import { useSelector } from 'react-redux' import { getTokenExchangeRates, getConversionRate, getCurrentCurrency, getSelectedAddress } from '../../../selectors' import { useI18nContext } from '../../../hooks/useI18nContext' -import InfoIcon from '../../ui/icon/info-icon.component' import { formatCurrency } from '../../../helpers/utils/confirm-tx.util' export default function TokenCell ({ address, outdatedBalance, symbol, string, image, onClick }) { @@ -47,25 +45,17 @@ export default function TokenCell ({ address, outdatedBalance, symbol, string, i const warning = outdatedBalance ? ( - - { t('troubleTokenBalances') } - - { t('here') } - -
- )} - > - - + + { t('troubleTokenBalances') } + + { t('here') } + + ) : null diff --git a/ui/app/components/app/transaction-list-item/index.scss b/ui/app/components/app/transaction-list-item/index.scss index b2d344f36..3f7af9586 100644 --- a/ui/app/components/app/transaction-list-item/index.scss +++ b/ui/app/components/app/transaction-list-item/index.scss @@ -10,6 +10,8 @@ } &__secondary-currency { + font-size: 12px; + margin-top: 4px; color: $Grey-500; } @@ -46,5 +48,8 @@ white-space: nowrap; line-height: 1rem; } + &:empty { + padding-top: 0; + } } } diff --git a/ui/app/components/ui/list-item/index.scss b/ui/app/components/ui/list-item/index.scss index 6696bb5ad..d4712a6ab 100644 --- a/ui/app/components/ui/list-item/index.scss +++ b/ui/app/components/ui/list-item/index.scss @@ -11,19 +11,28 @@ display: flex; justify-content: flex-start; - align-items: stretch; + align-items: center; - &__icon > * { - margin: 8px 14px 0 0; + &__icon { + display: flex; + align-items: center; + > * { + margin: 0 16px 0 0; + } } &__col { - align-self: center; + align-items: center; &-main { - flex-grow: 1; + flex: 1; + display: flex; } } + &__main-content { + align-self: center; + } + &__heading { font-size: 16px; line-height: 160%; @@ -42,10 +51,36 @@ font-size: 12px; line-height: 14px; color: $Grey-500; + margin-top: 4px; + &:empty { + display: none; + } + } + + &__mid-content { + display: none; } &__right-content { - margin: 0 0 0 auto; + display: flex; + flex-direction: column; + justify-content: flex-end; text-align: right; + align-items: flex-end; + } + + @media (min-width: 576px) { + &__col-main { + flex: 1.5; + } + &__mid-content { + display: flex; + align-items: center; + font-size: 12px; + flex: 2; + } + &__right-content { + flex: 1; + } } } diff --git a/ui/app/components/ui/list-item/list-item.component.js b/ui/app/components/ui/list-item/list-item.component.js index 07bdb1535..5aca13d21 100644 --- a/ui/app/components/ui/list-item/list-item.component.js +++ b/ui/app/components/ui/list-item/list-item.component.js @@ -11,6 +11,7 @@ export default function ListItem ({ titleIcon, icon, rightContent, + midContent, className, 'data-testid': dataTestId, }) { @@ -18,28 +19,35 @@ export default function ListItem ({ return (
- {icon && ( -
- {icon} -
- )}
-

- { title } {titleIcon && ( - - {titleIcon} - - )} -

-

- {subtitleStatus}{subtitle} -

- {children && ( -
- { children } + {icon && ( +
+ {icon}
)} +
+

+ { title } {titleIcon && ( + + {titleIcon} + + )} +

+

+ {subtitleStatus}{subtitle} +

+ {children && ( +
+ { children } +
+ )} +
+ {midContent && ( +
+ {midContent} +
+ )} {rightContent && (
{rightContent} @@ -57,6 +65,7 @@ ListItem.propTypes = { children: PropTypes.node, icon: PropTypes.node, rightContent: PropTypes.node, + midContent: PropTypes.node, className: PropTypes.string, onClick: PropTypes.func, 'data-testid': PropTypes.string, From 456684ee7d612e47d69556f4b2a6f66e3a271912 Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Fri, 5 Jun 2020 13:36:55 -0500 Subject: [PATCH 17/35] move activation logic into token rates controller (#8744) --- app/scripts/controllers/token-rates.js | 31 ++++++++++--------- app/scripts/metamask-controller.js | 17 ++-------- .../app/controllers/token-rates-controller.js | 5 ++- 3 files changed, 22 insertions(+), 31 deletions(-) diff --git a/app/scripts/controllers/token-rates.js b/app/scripts/controllers/token-rates.js index b5b40f0af..6724ede3d 100644 --- a/app/scripts/controllers/token-rates.js +++ b/app/scripts/controllers/token-rates.js @@ -17,11 +17,10 @@ export default class TokenRatesController { * * @param {Object} [config] - Options to configure controller */ - constructor ({ interval = DEFAULT_INTERVAL, currency, preferences } = {}) { + constructor ({ currency, preferences } = {}) { this.store = new ObservableStore() this.currency = currency this.preferences = preferences - this.interval = interval } /** @@ -50,19 +49,6 @@ export default class TokenRatesController { this.store.putState({ contractExchangeRates }) } - /** - * @type {Number} - */ - set interval (interval) { - this._handle && clearInterval(this._handle) - if (!interval) { - return - } - this._handle = setInterval(() => { - this.updateExchangeRates() - }, interval) - } - /** * @type {Object} */ @@ -85,4 +71,19 @@ export default class TokenRatesController { this._tokens = tokens this.updateExchangeRates() } + + start (interval = DEFAULT_INTERVAL) { + this._handle && clearInterval(this._handle) + if (!interval) { + return + } + this._handle = setInterval(() => { + this.updateExchangeRates() + }, interval) + this.updateExchangeRates() + } + + stop () { + this._handle && clearInterval(this._handle) + } } diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index f36da612e..7787601a5 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -170,9 +170,11 @@ export default class MetamaskController extends EventEmitter { if (activeControllerConnections > 0) { this.accountTracker.start() this.incomingTransactionsController.start() + this.tokenRatesController.start() } else { this.accountTracker.stop() this.incomingTransactionsController.stop() + this.tokenRatesController.stop() } }) @@ -281,10 +283,6 @@ export default class MetamaskController extends EventEmitter { this.encryptionPublicKeyManager = new EncryptionPublicKeyManager() this.typedMessageManager = new TypedMessageManager({ networkController: this.networkController }) - // ensure isClientOpenAndUnlocked is updated when memState updates - this.on('update', (memState) => { - this.isClientOpenAndUnlocked = memState.isUnlocked && this._isClientOpen - }) this.store.updateStructure({ AppStateController: this.appStateController.store, @@ -2032,20 +2030,9 @@ export default class MetamaskController extends EventEmitter { */ set isClientOpen (open) { this._isClientOpen = open - this.isClientOpenAndUnlocked = this.isUnlocked() && open this.detectTokensController.isOpen = open } - /** - * A method for activating the retrieval of price data, - * which should only be fetched when the UI is visible. - * @private - * @param {boolean} active - True if price data should be getting fetched. - */ - set isClientOpenAndUnlocked (active) { - this.tokenRatesController.isActive = active - } - /** * Creates RPC engine middleware for processing eth_signTypedData requests * diff --git a/test/unit/app/controllers/token-rates-controller.js b/test/unit/app/controllers/token-rates-controller.js index edcc74120..8802c5c6e 100644 --- a/test/unit/app/controllers/token-rates-controller.js +++ b/test/unit/app/controllers/token-rates-controller.js @@ -13,8 +13,11 @@ describe('TokenRatesController', function () { it('should poll on correct interval', async function () { const stub = sinon.stub(global, 'setInterval') - new TokenRatesController({ interval: 1337 }) // eslint-disable-line no-new + const rateController = new TokenRatesController() // eslint-disable-line no-new + rateController.start(1337) + assert.strictEqual(stub.getCall(0).args[1], 1337) stub.restore() + rateController.stop() }) }) From 799536c35f2caac68eac7973703a15b2f6b57d28 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 5 Jun 2020 16:01:06 -0300 Subject: [PATCH 18/35] Fix 'Remove account' in Account Options menu (#8748) The 'Remove account' button in the Account Options menu was broken. Clicking it would crash the UI. It now correctly opens the 'Remove Account' modal. --- ui/app/components/app/menu-bar/account-options-menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/app/components/app/menu-bar/account-options-menu.js b/ui/app/components/app/menu-bar/account-options-menu.js index 9c7162cda..6158c51a8 100644 --- a/ui/app/components/app/menu-bar/account-options-menu.js +++ b/ui/app/components/app/menu-bar/account-options-menu.js @@ -118,7 +118,7 @@ export default function AccountOptionsMenu ({ anchorElement, onClose }) { ? ( { - dispatch(showModal({ name: 'CONFIRM_REMOVE_ACCOUNT', selectedIdentity })) + dispatch(showModal({ name: 'CONFIRM_REMOVE_ACCOUNT', identity: selectedIdentity })) onClose() }} iconClassName="fas fa-trash-alt" From 9a1f27fe048bf3e3c830c9ca475119fc2ebd6837 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 5 Jun 2020 17:19:27 -0300 Subject: [PATCH 19/35] Refactor `TokenBalance` component (#8752) The `TokenBalance` component now uses the new `useTokenTracker` hook instead of the `withTokenTracker` higher-order component. The component was converted from a split container/component to a functional component so that the hook could be used. The prop `withSymbol` was removed from a few call sites, as it was no longer used. An empty string was substituted for any falsy `string` or `symbol` because that's what the `withTokenTracker` higher-order component did. --- .../app/wallet-overview/token-overview.js | 3 +- ui/app/components/ui/token-balance/index.js | 2 +- .../token-balance/token-balance.component.js | 23 ---------- .../token-balance/token-balance.container.js | 16 ------- .../ui/token-balance/token-balance.js | 30 +++++++++++++ .../with-token-tracker.component.test.js | 44 ------------------- .../send-asset-row.component.js | 1 - 7 files changed, 32 insertions(+), 87 deletions(-) delete mode 100644 ui/app/components/ui/token-balance/token-balance.component.js delete mode 100644 ui/app/components/ui/token-balance/token-balance.container.js create mode 100644 ui/app/components/ui/token-balance/token-balance.js delete mode 100644 ui/app/helpers/higher-order-components/with-token-tracker/tests/with-token-tracker.component.test.js diff --git a/ui/app/components/app/wallet-overview/token-overview.js b/ui/app/components/app/wallet-overview/token-overview.js index eb57d6159..67f5783fb 100644 --- a/ui/app/components/app/wallet-overview/token-overview.js +++ b/ui/app/components/app/wallet-overview/token-overview.js @@ -31,9 +31,8 @@ const TokenOverview = ({ className, token }) => { balance={(
)} diff --git a/ui/app/components/ui/token-balance/index.js b/ui/app/components/ui/token-balance/index.js index f7da15cf8..97bc9bbc2 100644 --- a/ui/app/components/ui/token-balance/index.js +++ b/ui/app/components/ui/token-balance/index.js @@ -1 +1 @@ -export { default } from './token-balance.container' +export { default } from './token-balance' diff --git a/ui/app/components/ui/token-balance/token-balance.component.js b/ui/app/components/ui/token-balance/token-balance.component.js deleted file mode 100644 index 60bee381f..000000000 --- a/ui/app/components/ui/token-balance/token-balance.component.js +++ /dev/null @@ -1,23 +0,0 @@ -import React, { PureComponent } from 'react' -import PropTypes from 'prop-types' -import CurrencyDisplay from '../currency-display' - -export default class TokenBalance extends PureComponent { - static propTypes = { - string: PropTypes.string, - symbol: PropTypes.string, - className: PropTypes.string, - } - - render () { - const { className, string, symbol } = this.props - - return ( - - ) - } -} diff --git a/ui/app/components/ui/token-balance/token-balance.container.js b/ui/app/components/ui/token-balance/token-balance.container.js deleted file mode 100644 index 10a23961a..000000000 --- a/ui/app/components/ui/token-balance/token-balance.container.js +++ /dev/null @@ -1,16 +0,0 @@ -import { connect } from 'react-redux' -import { compose } from 'redux' -import withTokenTracker from '../../../helpers/higher-order-components/with-token-tracker' -import TokenBalance from './token-balance.component' -import { getSelectedAddress } from '../../../selectors' - -const mapStateToProps = (state) => { - return { - userAddress: getSelectedAddress(state), - } -} - -export default compose( - connect(mapStateToProps), - withTokenTracker -)(TokenBalance) diff --git a/ui/app/components/ui/token-balance/token-balance.js b/ui/app/components/ui/token-balance/token-balance.js new file mode 100644 index 000000000..e439c2d36 --- /dev/null +++ b/ui/app/components/ui/token-balance/token-balance.js @@ -0,0 +1,30 @@ +import React from 'react' +import PropTypes from 'prop-types' +import CurrencyDisplay from '../currency-display' +import { useTokenTracker } from '../../../hooks/useTokenTracker' + +export default function TokenBalance ({ className, token }) { + const { tokensWithBalances } = useTokenTracker([token]) + + const { string, symbol } = tokensWithBalances[0] || {} + return ( + + ) +} + +TokenBalance.propTypes = { + className: PropTypes.string, + token: PropTypes.shape({ + address: PropTypes.string.isRequired, + decimals: PropTypes.number, + symbol: PropTypes.string, + }).isRequired, +} + +TokenBalance.defaultProps = { + className: undefined, +} diff --git a/ui/app/helpers/higher-order-components/with-token-tracker/tests/with-token-tracker.component.test.js b/ui/app/helpers/higher-order-components/with-token-tracker/tests/with-token-tracker.component.test.js deleted file mode 100644 index df31629e8..000000000 --- a/ui/app/helpers/higher-order-components/with-token-tracker/tests/with-token-tracker.component.test.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react' -import assert from 'assert' -import { shallow } from 'enzyme' -import withTokenTracker from '../with-token-tracker.component' -import TokenBalance from '../../../../components/ui/token-balance/token-balance.component' -// import sinon from 'sinon' -import TokenTracker from '@metamask/eth-token-tracker' - -const { createTestProviderTools } = require('../../../../../../test/stub/provider') - -const provider = createTestProviderTools({ scaffold: {} }).provider - -describe('WithTokenTracker HOC', function () { - let wrapper - - beforeEach(function () { - const TokenTracker = withTokenTracker(TokenBalance) - wrapper = shallow( - - ) - }) - - it('#setError', function () { - wrapper.instance().setError('test') - assert.equal(wrapper.props().error, 'test') - }) - - it('#updateBalance', function () { - wrapper.instance().tracker = new TokenTracker({ - provider, - }) - wrapper.instance().updateBalance([{ string: 'test string', symbol: 'test symbol' }]) - assert.equal(wrapper.props().string, 'test string') - assert.equal(wrapper.props().symbol, 'test symbol') - }) - -}) diff --git a/ui/app/pages/send/send-content/send-asset-row/send-asset-row.component.js b/ui/app/pages/send/send-content/send-asset-row/send-asset-row.component.js index e9dfbb2b3..a4d33d2e1 100644 --- a/ui/app/pages/send/send-content/send-asset-row/send-asset-row.component.js +++ b/ui/app/pages/send/send-content/send-asset-row/send-asset-row.component.js @@ -146,7 +146,6 @@ export default class SendAssetRow extends Component { {`${t('balance')}:`}
From bb78512bd632d42316a6268247c19bd43636bcd1 Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Fri, 5 Jun 2020 13:24:38 -0700 Subject: [PATCH 20/35] Fix permissions connect close and redirect behavior (#8751) * fix permissions connect close/redirect behavior * improve permissions connect fullscreen close behavior * fix multi ui perm conf redirect; consolidate perm selectors --- .../permissions-connect.component.js | 73 ++++++++++--------- .../permissions-connect.container.js | 15 ++-- ui/app/selectors/permissions.js | 29 ++++++++ ui/app/selectors/selectors.js | 31 +------- 4 files changed, 79 insertions(+), 69 deletions(-) diff --git a/ui/app/pages/permissions-connect/permissions-connect.component.js b/ui/app/pages/permissions-connect/permissions-connect.component.js index b43005c86..8507ec24a 100644 --- a/ui/app/pages/permissions-connect/permissions-connect.component.js +++ b/ui/app/pages/permissions-connect/permissions-connect.component.js @@ -6,7 +6,6 @@ import { getEnvironmentType } from '../../../../app/scripts/lib/util' import { ENVIRONMENT_TYPE_FULLSCREEN, ENVIRONMENT_TYPE_NOTIFICATION, - ENVIRONMENT_TYPE_POPUP, } from '../../../../app/scripts/lib/enums' import { DEFAULT_ROUTE, @@ -20,30 +19,29 @@ export default class PermissionConnect extends Component { getRequestAccountTabIds: PropTypes.func.isRequired, getCurrentWindowTab: PropTypes.func.isRequired, accounts: PropTypes.array.isRequired, - originName: PropTypes.string, + origin: PropTypes.string, showNewAccountModal: PropTypes.func.isRequired, newAccountNumber: PropTypes.number.isRequired, nativeCurrency: PropTypes.string, permissionsRequest: PropTypes.object, - addressLastConnectedMap: PropTypes.object, + addressLastConnectedMap: PropTypes.object.isRequired, + lastConnectedInfo: PropTypes.object.isRequired, permissionsRequestId: PropTypes.string, - domains: PropTypes.object, history: PropTypes.object.isRequired, connectPath: PropTypes.string.isRequired, confirmPermissionPath: PropTypes.string.isRequired, page: PropTypes.string.isRequired, - redirecting: PropTypes.bool, targetDomainMetadata: PropTypes.object, + location: PropTypes.shape({ + pathname: PropTypes.string, + }).isRequired, } static defaultProps = { - originName: '', + origin: '', nativeCurrency: '', permissionsRequest: undefined, - addressLastConnectedMap: {}, permissionsRequestId: '', - domains: {}, - redirecting: false, } static contextTypes = { @@ -56,7 +54,7 @@ export default class PermissionConnect extends Component { ? new Set([this.props.accounts[0].address]) : new Set(), permissionAccepted: null, - originName: this.props.originName, + origin: this.props.origin, } beforeUnload = () => { @@ -69,22 +67,25 @@ export default class PermissionConnect extends Component { } removeBeforeUnload = () => { - if (getEnvironmentType() === ENVIRONMENT_TYPE_FULLSCREEN || getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { + const environmentType = getEnvironmentType() + if ( + environmentType === ENVIRONMENT_TYPE_FULLSCREEN || + environmentType === ENVIRONMENT_TYPE_NOTIFICATION + ) { window.removeEventListener('beforeunload', this.beforeUnload) } } componentDidUpdate (prevProps) { - const { domains, permissionsRequest, redirecting } = this.props - const { originName } = this.state + const { permissionsRequest, lastConnectedInfo } = this.props + const { redirecting, origin } = this.state if (!permissionsRequest && prevProps.permissionsRequest && !redirecting) { - const permissionDataForDomain = (domains && domains[originName]) || {} - const permissionsForDomain = permissionDataForDomain.permissions || [] - const prevPermissionDataForDomain = (prevProps.domains && prevProps.domains[originName]) || {} - const prevPermissionsForDomain = prevPermissionDataForDomain.permissions || [] - const addedAPermission = permissionsForDomain.length > prevPermissionsForDomain.length - if (addedAPermission) { + + const accountsLastApprovedTime = lastConnectedInfo[origin]?.lastApproved || 0 + const initialAccountsLastApprovedTime = prevProps.lastConnectedInfo[origin]?.lastApproved || 0 + + if (accountsLastApprovedTime > initialAccountsLastApprovedTime) { this.redirectFlow(true) } else { this.redirectFlow(false) @@ -99,7 +100,7 @@ export default class PermissionConnect extends Component { } redirectFlow (accepted) { - const { history } = this.props + const { history, location, confirmPermissionPath } = this.props this.setState({ redirecting: true, @@ -107,16 +108,15 @@ export default class PermissionConnect extends Component { }) this.removeBeforeUnload() - if (getEnvironmentType() === ENVIRONMENT_TYPE_FULLSCREEN) { - setTimeout(async () => { - const currentTab = await global.platform.currentTab() - global.platform.closeTab(currentTab.id) - }, 2000) - } else if (getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { + if (getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { setTimeout(async () => { global.platform.closeCurrentWindow() - }, 2000) - } else if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) { + }, 1500) + } else if (location.pathname === confirmPermissionPath) { + setTimeout(async () => { + history.push(DEFAULT_ROUTE) + }, 1500) + } else { history.push(DEFAULT_ROUTE) } } @@ -135,19 +135,25 @@ export default class PermissionConnect extends Component { return history.push(DEFAULT_ROUTE) } - if (getEnvironmentType() === ENVIRONMENT_TYPE_FULLSCREEN || getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { + const environmentType = getEnvironmentType() + if ( + environmentType === ENVIRONMENT_TYPE_FULLSCREEN || + environmentType === ENVIRONMENT_TYPE_NOTIFICATION + ) { window.addEventListener('beforeunload', this.beforeUnload) } } cancelPermissionsRequest = async (requestId) => { + const { history, rejectPermissionsRequest } = this.props + if (requestId) { await rejectPermissionsRequest(requestId) - if (getEnvironmentType() === ENVIRONMENT_TYPE_FULLSCREEN || getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { + if (getEnvironmentType() === ENVIRONMENT_TYPE_NOTIFICATION) { window.close() - } else if (getEnvironmentType() === ENVIRONMENT_TYPE_POPUP) { + } else { history.push(DEFAULT_ROUTE) } } @@ -202,7 +208,7 @@ export default class PermissionConnect extends Component { const { selectedAccountAddresses, permissionAccepted, - originName, + origin, redirecting, } = this.state @@ -216,7 +222,6 @@ export default class PermissionConnect extends Component { render={() => ( this.selectAccounts(addresses)} selectNewAccountViaModal={(handleAccountClick) => { @@ -250,7 +255,7 @@ export default class PermissionConnect extends Component { selectedIdentities={accounts.filter((account) => selectedAccountAddresses.has(account.address))} redirect={redirecting} permissionRejected={ permissionAccepted === false } - cachedOrigin={originName} + cachedOrigin={origin} /> )} /> diff --git a/ui/app/pages/permissions-connect/permissions-connect.container.js b/ui/app/pages/permissions-connect/permissions-connect.container.js index 4ac227868..04cd4b36e 100644 --- a/ui/app/pages/permissions-connect/permissions-connect.container.js +++ b/ui/app/pages/permissions-connect/permissions-connect.container.js @@ -7,11 +7,16 @@ import { getAccountsWithLabels, getLastConnectedInfo, getTargetDomainMetadata, - getPermissionDomains, } from '../../selectors' import { formatDate } from '../../helpers/utils/util' -import { approvePermissionsRequest, rejectPermissionsRequest, showModal, getCurrentWindowTab, getRequestAccountTabIds } from '../../store/actions' +import { + approvePermissionsRequest, + rejectPermissionsRequest, + showModal, + getCurrentWindowTab, + getRequestAccountTabIds, +} from '../../store/actions' import { CONNECT_ROUTE, CONNECT_CONFIRM_PERMISSIONS_ROUTE, @@ -34,7 +39,7 @@ const mapStateToProps = (state, ownProps) => { const accountsWithLabels = getAccountsWithLabels(state) const lastConnectedInfo = getLastConnectedInfo(state) || {} - const addressLastConnectedMap = lastConnectedInfo[origin] || {} + const addressLastConnectedMap = lastConnectedInfo[origin]?.accounts || {} Object.keys(addressLastConnectedMap).forEach((key) => { addressLastConnectedMap[key] = formatDate(addressLastConnectedMap[key], 'yyyy-MM-dd') @@ -58,11 +63,11 @@ const mapStateToProps = (state, ownProps) => { permissionsRequest, permissionsRequestId, accounts: accountsWithLabels, - originName: origin, + origin, newAccountNumber: accountsWithLabels.length + 1, nativeCurrency, addressLastConnectedMap, - domains: getPermissionDomains(state), + lastConnectedInfo, connectPath, confirmPermissionPath, page, diff --git a/ui/app/selectors/permissions.js b/ui/app/selectors/permissions.js index 7f8b1b126..b18b5e8ef 100644 --- a/ui/app/selectors/permissions.js +++ b/ui/app/selectors/permissions.js @@ -249,3 +249,32 @@ export function getPermissionsForActiveTab (state) { } }) } + +export function getLastConnectedInfo (state) { + const { permissionsHistory = {} } = state.metamask + return Object.keys(permissionsHistory).reduce((acc, origin) => { + const ethAccountsHistory = JSON.parse(JSON.stringify(permissionsHistory[origin]['eth_accounts'])) + return { + ...acc, + [origin]: ethAccountsHistory, + } + }, {}) +} + +export function getPermissionsRequests (state) { + return state.metamask.permissionsRequests || [] +} + +export function getPermissionsRequestCount (state) { + const permissionsRequests = getPermissionsRequests(state) + return permissionsRequests.length +} + +export function getFirstPermissionRequest (state) { + const requests = getPermissionsRequests(state) + return requests && requests[0] ? requests[0] : null +} + +export function hasPermissionRequests (state) { + return Boolean(getFirstPermissionRequest(state)) +} diff --git a/ui/app/selectors/selectors.js b/ui/app/selectors/selectors.js index 1e98b97d5..ab6e15043 100644 --- a/ui/app/selectors/selectors.js +++ b/ui/app/selectors/selectors.js @@ -6,6 +6,7 @@ import { checksumAddress, getAccountByAddress, } from '../helpers/utils/util' +import { getPermissionsRequestCount } from './permissions' export function getNetworkIdentifier (state) { const { metamask: { provider: { type, nickname, rpcTarget } } } = state @@ -282,15 +283,6 @@ export function getCustomNonceValue (state) { return String(state.metamask.customNonceValue) } -export function getPermissionsRequests (state) { - return state.metamask.permissionsRequests || [] -} - -export function getPermissionsRequestCount (state) { - const permissionsRequests = getPermissionsRequests(state) - return permissionsRequests.length -} - export function getDomainMetadata (state) { return state.metamask.domainMetadata } @@ -339,31 +331,10 @@ export function getFeatureFlags (state) { return state.metamask.featureFlags } -export function getFirstPermissionRequest (state) { - const requests = getPermissionsRequests(state) - return requests && requests[0] ? requests[0] : null -} - -export function hasPermissionRequests (state) { - return Boolean(getFirstPermissionRequest(state)) -} - export function getOriginOfCurrentTab (state) { return state.activeTab?.origin } -export function getLastConnectedInfo (state) { - const { permissionsHistory = {} } = state.metamask - const lastConnectedInfoData = Object.keys(permissionsHistory).reduce((acc, origin) => { - const ethAccountsHistory = JSON.parse(JSON.stringify(permissionsHistory[origin]['eth_accounts'])) - return { - ...acc, - [origin]: ethAccountsHistory.accounts, - } - }, {}) - return lastConnectedInfoData -} - export function getIpfsGateway (state) { return state.metamask.ipfsGateway } From f5ec16c65af201a59116e1821ecd343e22811277 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 5 Jun 2020 17:24:51 -0300 Subject: [PATCH 21/35] Fix account menu entry for imported accounts (#8747) The entry for imported accounts in the account menu looked wrong with the new connected site icon - there was no padding between the site icon and the 'imported' label. The entry was pretty crowded with these three symbols as well (the third being the 'x' used to remove the account). The site icon has been made the right-most icon, so that it lines up with the site icons shown for other accounts, and spacing has been added between the site icon and the 'imported' label. The 'x' used to remove accounts has been removed. Accounts can still be removed from the 'Account Options' menu on the Home screen. This seemed like the wrong place for this button to exist, as it's the only action that can be taken from that menu aside from navigation. --- test/e2e/from-import-ui.spec.js | 14 +++++-- .../account-menu/account-menu.component.js | 37 +------------------ .../account-menu/account-menu.container.js | 4 -- ui/app/components/app/account-menu/index.scss | 1 + .../account-menu/tests/account-menu.test.js | 13 ------- .../app/menu-bar/account-options-menu.js | 1 + 6 files changed, 13 insertions(+), 57 deletions(-) diff --git a/test/e2e/from-import-ui.spec.js b/test/e2e/from-import-ui.spec.js index 6771dfd6b..b65786629 100644 --- a/test/e2e/from-import-ui.spec.js +++ b/test/e2e/from-import-ui.spec.js @@ -3,7 +3,6 @@ const webdriver = require('selenium-webdriver') const { By, Key, until } = webdriver const { - tinyDelayMs, regularDelayMs, largeDelayMs, } = require('./helpers') @@ -278,7 +277,7 @@ describe('Using MetaMask with an existing account', function () { await driver.delay(regularDelayMs) }) - it('should open the remove account modal', async function () { + it('should see new account in account menu', async function () { const accountName = await driver.findElement(By.css('.selected-account__name')) assert.equal(await accountName.getText(), 'Account 5') await driver.delay(regularDelayMs) @@ -289,8 +288,13 @@ describe('Using MetaMask with an existing account', function () { const accountListItems = await driver.findElements(By.css('.account-menu__account')) assert.equal(accountListItems.length, 5) - await driver.clickElement(By.css('.account-menu__account:last-of-type > .remove-account-icon')) - await driver.delay(tinyDelayMs) + await driver.clickPoint(By.css('.account-menu__icon'), 0, 0) + }) + + it('should open the remove account modal', async function () { + await driver.clickElement(By.css('[data-testid="account-options-menu-button"]')) + + await driver.clickElement(By.css('[data-testid="account-options-menu__remove-account"]')) await driver.findElement(By.css('.confirm-remove-account__account')) }) @@ -304,6 +308,8 @@ describe('Using MetaMask with an existing account', function () { assert.equal(await accountName.getText(), 'Account 1') await driver.delay(regularDelayMs) + await driver.clickElement(By.css('.account-menu__icon')) + const accountListItems = await driver.findElements(By.css('.account-menu__account')) assert.equal(accountListItems.length, 4) }) diff --git a/ui/app/components/app/account-menu/account-menu.component.js b/ui/app/components/app/account-menu/account-menu.component.js index fb9ac9ac6..f6245f304 100644 --- a/ui/app/components/app/account-menu/account-menu.component.js +++ b/ui/app/components/app/account-menu/account-menu.component.js @@ -7,7 +7,6 @@ import InputAdornment from '@material-ui/core/InputAdornment' import { Menu, Item, Divider, CloseArea } from '../dropdowns/components/menu' import { ENVIRONMENT_TYPE_POPUP } from '../../../../../app/scripts/lib/enums' import { getEnvironmentType } from '../../../../../app/scripts/lib/util' -import Tooltip from '../../ui/tooltip' import Identicon from '../../ui/identicon' import IconWithFallBack from '../../ui/icon-with-fallback' import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display' @@ -38,7 +37,6 @@ export default class AccountMenu extends Component { lockMetamask: PropTypes.func, selectedAddress: PropTypes.string, showAccountDetail: PropTypes.func, - showRemoveAccountConfirmationModal: PropTypes.func, toggleAccountMenu: PropTypes.func, addressConnectedDomainMap: PropTypes.object, originOfCurrentTab: PropTypes.string, @@ -176,6 +174,7 @@ export default class AccountMenu extends Component { type={PRIMARY} />
+ { this.renderKeyringType(keyring) } { iconAndNameForOpenDomain ? (
@@ -184,45 +183,11 @@ export default class AccountMenu extends Component { ) : null } - { this.renderKeyringType(keyring) } - { this.renderRemoveAccount(keyring, identity) }
) }) } - renderRemoveAccount (keyring, identity) { - const { t } = this.context - - // Sometimes keyrings aren't loaded yet - if (!keyring) { - return null - } - - // Any account that's not from the HD wallet Keyring can be removed - const { type } = keyring - const isRemovable = type !== 'HD Key Tree' - - return isRemovable && ( - - this.removeAccount(e, identity)} - /> - - ) - } - - removeAccount (e, identity) { - e.preventDefault() - e.stopPropagation() - const { showRemoveAccountConfirmationModal } = this.props - showRemoveAccountConfirmationModal(identity) - } - renderKeyringType (keyring) { const { t } = this.context diff --git a/ui/app/components/app/account-menu/account-menu.container.js b/ui/app/components/app/account-menu/account-menu.container.js index e6f64335c..a9739dccc 100644 --- a/ui/app/components/app/account-menu/account-menu.container.js +++ b/ui/app/components/app/account-menu/account-menu.container.js @@ -7,7 +7,6 @@ import { hideSidebar, lockMetamask, hideWarning, - showModal, } from '../../../store/actions' import { getAddressConnectedDomainMap, @@ -54,9 +53,6 @@ function mapDispatchToProps (dispatch) { dispatch(hideSidebar()) dispatch(toggleAccountMenu()) }, - showRemoveAccountConfirmationModal: (identity) => { - return dispatch(showModal({ name: 'CONFIRM_REMOVE_ACCOUNT', identity })) - }, } } diff --git a/ui/app/components/app/account-menu/index.scss b/ui/app/components/app/account-menu/index.scss index 62f76e10c..95755f2d0 100644 --- a/ui/app/components/app/account-menu/index.scss +++ b/ui/app/components/app/account-menu/index.scss @@ -78,6 +78,7 @@ .keyring-label { margin-top: 5px; + margin-right: 10px; background-color: $dusty-gray; color: $black; font-weight: normal; diff --git a/ui/app/components/app/account-menu/tests/account-menu.test.js b/ui/app/components/app/account-menu/tests/account-menu.test.js index 9d03c7616..3ed2005b1 100644 --- a/ui/app/components/app/account-menu/tests/account-menu.test.js +++ b/ui/app/components/app/account-menu/tests/account-menu.test.js @@ -99,19 +99,6 @@ describe('Account Menu', function () { const importedAccount = wrapper.find('.keyring-label.allcaps') assert.equal(importedAccount.text(), 'imported') }) - - it('remove account', function () { - const removeAccount = wrapper.find('.remove-account-icon') - removeAccount.simulate('click', { - preventDefault: () => {}, - stopPropagation: () => {}, - }) - - assert(props.showRemoveAccountConfirmationModal.calledOnce) - assert.deepEqual(props.showRemoveAccountConfirmationModal.getCall(0).args[0], - { address: '0xImportedAddress', balance: '0x0', name: 'Imported Account 1' } - ) - }) }) describe('Log Out', function () { diff --git a/ui/app/components/app/menu-bar/account-options-menu.js b/ui/app/components/app/menu-bar/account-options-menu.js index 6158c51a8..c87416cdb 100644 --- a/ui/app/components/app/menu-bar/account-options-menu.js +++ b/ui/app/components/app/menu-bar/account-options-menu.js @@ -117,6 +117,7 @@ export default function AccountOptionsMenu ({ anchorElement, onClose }) { isRemovable ? ( { dispatch(showModal({ name: 'CONFIRM_REMOVE_ACCOUNT', identity: selectedIdentity })) onClose() From 1eed8dc1673b5667cbd174189f911624624da7c8 Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Fri, 5 Jun 2020 16:33:51 -0500 Subject: [PATCH 22/35] use grid template to position list item (#8753) Using flex was getting out of hand, I noticed on develop that when a pending transaction is coming in the speed up and cancel buttons cause the icon to center according ot their height as well. A grid is really what is needed. This seemingly greatly simplifies the CSS AND html (removes unnecessary nesting of divs) --- .../app/asset-list-item/asset-list-item.scss | 9 ++- ui/app/components/ui/list-item/index.scss | 57 +++++++++---------- .../ui/list-item/list-item.component.js | 44 +++++++------- 3 files changed, 50 insertions(+), 60 deletions(-) diff --git a/ui/app/components/app/asset-list-item/asset-list-item.scss b/ui/app/components/app/asset-list-item/asset-list-item.scss index 230659ac5..af104e623 100644 --- a/ui/app/components/app/asset-list-item/asset-list-item.scss +++ b/ui/app/components/app/asset-list-item/asset-list-item.scss @@ -3,6 +3,10 @@ color: $Grey-500; } + .list-item__right-content { + align-self: center; + } + .list-item__subheading { margin-top: 6px; font-size: 14px; @@ -11,11 +15,6 @@ &__warning { flex: 1; margin-left: 8px; - color: $Grey-500; - } - - .list-item__mid-content { - display: none; } @media (min-width: 576px) { diff --git a/ui/app/components/ui/list-item/index.scss b/ui/app/components/ui/list-item/index.scss index d4712a6ab..f424bc4c6 100644 --- a/ui/app/components/ui/list-item/index.scss +++ b/ui/app/components/ui/list-item/index.scss @@ -8,32 +8,28 @@ border-top: 1px solid $mercury; border-bottom: 1px solid $mercury; color: $Black-100; - - display: flex; - justify-content: flex-start; - align-items: center; + display: grid; + grid-template-columns: 0fr repeat(11, 1fr); + grid-template-areas: + 'icon head head head head head head head right right right right' + 'icon sub sub sub sub sub sub sub right right right right' + '. actions actions actions actions actions actions actions right right right right'; + align-items: start; &__icon { - display: flex; - align-items: center; + grid-area: icon; + align-self: center; > * { margin: 0 16px 0 0; } } - &__col { - align-items: center; - &-main { - flex: 1; - display: flex; - } - } - - &__main-content { - align-self: center; + &__actions { + grid-area: actions; } &__heading { + grid-area: head; font-size: 16px; line-height: 160%; position: relative; @@ -48,6 +44,7 @@ } &__subheading { + grid-area: sub; font-size: 12px; line-height: 14px; color: $Grey-500; @@ -58,29 +55,27 @@ } &__mid-content { - display: none; + grid-area: mid; + font-size: 12px; + color: $Grey-500; } &__right-content { - display: flex; - flex-direction: column; - justify-content: flex-end; + grid-area: right; text-align: right; align-items: flex-end; } - @media (min-width: 576px) { - &__col-main { - flex: 1.5; - } + @media (max-width: 575px) { &__mid-content { - display: flex; - align-items: center; - font-size: 12px; - flex: 2; - } - &__right-content { - flex: 1; + display: none; } } + + @media (min-width: 576px) { + grid-template-areas: + 'icon head head head head mid mid mid mid right right right' + 'icon sub sub sub sub mid mid mid mid right right right' + '. actions actions actions actions mid mid mid mid right right right'; + } } diff --git a/ui/app/components/ui/list-item/list-item.component.js b/ui/app/components/ui/list-item/list-item.component.js index 5aca13d21..6f04c5590 100644 --- a/ui/app/components/ui/list-item/list-item.component.js +++ b/ui/app/components/ui/list-item/list-item.component.js @@ -19,37 +19,33 @@ export default function ListItem ({ return (
-
- {icon && ( -
- {icon} -
+ {icon && ( +
+ {icon} +
+ )} +

+ { title } {titleIcon && ( + + {titleIcon} + )} -
-

- { title } {titleIcon && ( - - {titleIcon} - - )} -

-

- {subtitleStatus}{subtitle} -

- {children && ( -
- { children } -
- )} +

+

+ {subtitleStatus}{subtitle} +

+ {children && ( +
+ { children }
-
+ )} {midContent && ( -
+
{midContent}
)} {rightContent && ( -
+
{rightContent}
)} From e82a8a5f52ddc1db1263aaf9675911ac9608a55b Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Fri, 5 Jun 2020 17:06:15 -0500 Subject: [PATCH 23/35] Fix prop type mismatch (#8754) --- ui/app/components/app/asset-list/asset-list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/app/components/app/asset-list/asset-list.js b/ui/app/components/app/asset-list/asset-list.js index 39958fb2a..e24aba22d 100644 --- a/ui/app/components/app/asset-list/asset-list.js +++ b/ui/app/components/app/asset-list/asset-list.js @@ -57,7 +57,7 @@ const AssetList = ({ onClickAsset }) => { onClick={() => onClickAsset(nativeCurrency)} data-testid="wallet-balance" primary={primaryCurrencyDisplay} - secondary={showFiat && secondaryCurrencyDisplay} + secondary={showFiat ? secondaryCurrencyDisplay : undefined} /> { From c30da94a417b27085fe997809c5bbf9194745317 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2020 09:40:28 -0230 Subject: [PATCH 24/35] Bump websocket-extensions from 0.1.3 to 0.1.4 (#8759) Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 498c93cc3..941b24f9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28248,9 +28248,9 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== websocket@1.0.29: version "1.0.29" From 7af788138b2ba40792bf2043e050de6b6ddc2004 Mon Sep 17 00:00:00 2001 From: Jenny Pollack Date: Mon, 8 Jun 2020 13:21:05 -0700 Subject: [PATCH 25/35] add gif for loading dev build (#8766) --- docs/add-to-chrome.md | 2 ++ docs/load-dev-build-chrome.gif | Bin 0 -> 693892 bytes 2 files changed, 2 insertions(+) create mode 100644 docs/load-dev-build-chrome.gif diff --git a/docs/add-to-chrome.md b/docs/add-to-chrome.md index 9c321a1a6..8f0b2dce7 100644 --- a/docs/add-to-chrome.md +++ b/docs/add-to-chrome.md @@ -1,5 +1,7 @@ ## Add Custom Build to Chrome +[![Load dev build](./load-dev-build-chrome.gif)][1] + * Open `Settings` > `Extensions`. * Check "Developer mode". * Alternatively, use the URL `chrome://extensions/` in your address bar diff --git a/docs/load-dev-build-chrome.gif b/docs/load-dev-build-chrome.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b4965fe399509eea7cf8f14ef0a2dceea1051a1 GIT binary patch literal 693892 zcmaI6Wmp`+w>~&9Gq?p3EXd%l!QF#raCdhC1P0CE9tiI47CgAS1%kUnus|TeVV2+B z|Gm2(_HKRXsyh9?NBW$n`su2EuOKHNXa)i5BHthYT6+4710sjDSr(SopCYSszaLCY zOw>&N{dN9K_=+GnG>k*1d9TpKe*7LWem1&x`_#tzXK@Cgzu}#6c>bdfaeBk0Ka?Uz znY~`G;LymVKNXtXDJ3n<#Kc5nv-qs3!o$nA?ntw7c<5L4d;IW`$8zMU^AvIT``U+C zF?xf}a$MGP$trR~!*i6_VsZTj0gXEzb| zI?Q*s$SN-3^IUOwN9dP2BJVZ+bh4xux~Ac~Hnp&5ld_>5HZd`|$olEHI_#6ag#|s2 zD!;U%zP<%w;|6ha5>>pvxG;%>gJY94scxUrm=yLgW^_YWliz(}GsoC>h%71 zzX8>}-=|GmQe)r7zJjDFeL@F!kE4xkS2?zhtjhh(npi@(W^Yin{tRe+@w-$SX_NJ<(S9uDrpf|6WJT#6y{>I(83 z8;9!Z>P-3zot<6P)z#-WH;3mh7esM!aZ^*%i}`Z|A}J|JoRjJN2I21Ret3iM_4R#` zW@Tj~Ub=;g!^3mL3*iPa|1#Uy*gSlJ`7RvZGN-3>tS&CjO-i{se;J-5rfxPi&fR_8W0GR(hME-B z6-OHCeBIrPtBc3F8sP4}ryZXG`iIrkMfw){U$c@N+#O`nPA>mmo&UL7+1O(>nz_Ec zNBmc#LSU-OYHCPJLS?zxIe|z30N_QWs{)0{n0c7J^djOgS2GI-D-Vddm5rUVDD`=J zH#Nl0Qj}VUSA|o>RocqdPTt4OO2bE0)56EWLeP?0Tnr)t6M{LpI$3#`L10df&hA1m zQED?w7jrA2m+^nZ9Mq8if_ONHQcM2l2IN0BrCr>tAbjkcY!;lH+z@_2b}l}icYK_z z5N=LxP7Y3P4z71>oLoYj{6gH^kpI)DU#z)VS_`Sm$o(H%FEdeUTMrLcAr1~NFE4hl zckC{1HXK}nf`b3i!OhL~f?#v^cJ?rXu{pcb{I>=fD|ZVwJ68`o7iY+SG@6;aeDV;b ze)07G4#COwf7Cj=v;S8(>=rIg956Fi4lZ`i|Ah44Koyn$f2fnw|DfGH)UEy>fB!!f zyK8#8T5+gbxx0LFv#@%B)BMMjtB|ytm6?Z&o2HA4<9|OzsI7~Ki@U9hD}Hc+6qMqY zl9A>X;Fpz?65x{M{%@{~i^V4=D`$`Y=34$gT<-ss`=4rXa(%HZW94S&X=N$r=HdkT zuc(FW{#RdkB;fYufv1=z1^Mdt<8<~wbhm7rNxE$x!IpH z(?6yrC&tG{M}~(62m1SZd%C+iJKEb?TfR3pH8#}O)qbm~uBxmkFDor6E-Ea@&&$op z&dSV4PfJZnPD)Jp8Xxy1HYPeMG9o-IG$c4E5dJy9-_O^_8|LNt$-~|4qpORvlcR&Z zovn?vm8FHbnW>4fk)eUUp019zmZpZf8uWvzin5ZTg8X|qSs7_5NeOW=Q4wJwK>>a~ zUY>W{T$~*2Y^*HIOpFZlbhI?oR1iuEae6|!?sFOIp&9py?T&cNgxxsd}!f3p?diA^O?pU_c_nP%~ z*wyj+`1fy{-Ebf#h4PY9cV7eni?I)^Zg)7IX4Q$6gl0b>Rl%B~RnPKp%w0VA_0!kJ z_p{_`!N!wqO(%<=I10s-eN7Lhn!r=nshM8=8|^NL>+1HcgN;EFWPWEn!9Stn=oFuG z$nM>@C$#vxryldJPn%yrsl=ikH|JgBI{aU{_^eJRS4;Uno(+zMft3dfE%hb;EdO$P0d!B%*Rz;l160wHd*-14)m=^MWu@-c#AtdlRn( zp{`tSN8u|ntVefyFPVowN{$pr(~`nAzVIH{QpF416H|Vb)=q;Y5IDD3#-N4%GV~IS zLd*2xwkDy2{~HaVHLso325g*I8)L2Rir2e zE?r0anV4U$wH4lW-27ImExmX)aP45dWce0$MO~HGhns6(*iRs>Trhy`N&KgCL&))B zh>+p*&k&@$^0JH8!nS^#ad>>S9{0T?*8oHK%J~GHz2CPk^8PiqW@H;b>i&P1jt#zO zK-S_Z0Ua{;5y?feDqjU9?51v2%GmQ>lJNEOanjA0f0H!tR6Lh@sWF>}P%%|L4o&G- z7DzDI>uu?^EFk1LKZegdZgg$jCwfI_(ga*=io9<*-DY-HekU38{YhX}RGhVDo97zl z-JL#*EpXV6LLso1Pcvn{&y@Q`@QZoeRNG-qa7|`s&;wulZqxVmmZQB4W1+*a!T{fh zR$P&ev1Wv---yU;TgwH-jxOC2IqzL1yT0ZiQbj zT);>y^S}tN5h;o(&WMnPZ4@Q67KpwRTxKs1JsV9DmHlgwTox4uFKm!H>>?1&&}>(m zaS&Ld;&y&Ty?RQ>$F2X$lMU;2duak(U zmcTcoBj|hyUzJ$)XcXub$W;?Uyxq!i|82?Ml_w( zqbkYh&P?z6;zSiypy+s4nrOoEH9r$e{fcQq6(-0D8{&FjTXWyRCM1XI(`{ZCbGM_Z zU~yk18+2Hsr0U6=(z~UXIhMSOWEyq*qG4&}Yf;~5&PZkcJALPIkEWMNMf~Sg!i}Ys z$k`EM-2472_bF*#3>5<^eL#>?^OuhQAJcRgzDHb6I8%wom;-^xFMi6gnJ+$n z3nAF$^6wRYCS?3AVpJ&?sb1iIM?S`g;vqd1$f^0!1_vRu_`Y&J)AHp#Y9Q_a(( z34H&zOkSlzJ#}oZMCf1nyrp&Lh}U>tqq`M!vO@d&*nEx8ze>|;>$RkxwJbuslvJ`T z^7Et%&29gxMXf5|@2{w}UC-1AHR)}KB@{RYy#974QEB?XrQ4TKRU6978j0ti+f+Ya z6Q>0=-yhQ*Vor(r(#dK>WLD|2}%=%#Ifx5jhQcWq2RwRwil4xfdeJq-;#erN5}v(DFOQHZa0 z|BUSuBHH-;@}?Dyg7b4}v=R7iS}#zJ9sa)xes&FdpJfJ2 zz3Igca1Q)FZiKBvF00X86RdyVraO0Q#c=eJiMque)36+;VL8i8TZ0cW&b zhxsd9?|wRp`o!2Q^JNOysEYMPBErEEEjO+854JlO-O)MPWgk+6lY3f`~#MyMzsF0QAu6yk)gdvu=j#Mb6w7A z^e)5sRp|WkTSd6y1kGVvKZhr0y}{(Em9W9`kKeUrg=|jt{HxOoUCj-pv1g9bzRR-* zo{e!&PI_Let2@n}ZRKqHj$Zd`qu0%?`$o>5v%-Tbd^c_9vCdvPnH$JM+QQ2RAQD#IKl;1o#eecrb(D+PGAC$67|A%s`|slw`r#LitmbgT_;+~S-Y{Z7HX-(mW8 zJBb;voaXYdhq`$;l1P38Cwe;MMcmE==llx~_d6z_yc;8UK94wjICC)ZY5O2{13whm z_1*OCs0{cQmFoZNlgne<_ng0BE&-=zalVTh-IwEW&%YWzyD0JV`1G;IB9>n(=)owT zmQz27?~hMCU$-NkF5$8e(s0J+b)+Y3F*q2k+J!nsy=vFn-5~i9KX5SL#xD@6rfbL2hZig1G zDu5o37w(Z3?kOMcr5o-w67E|T=GGDpyA2Ps4G$9t_eqP8Vhj&L$VY_#3J-)ue9;Y$ zD2oV%MMe-uguo*GBO>D>!h?T>=cR?`!=efpBg%9mW96el<)dOp!qZwJGF!sF*hZ!N zima25jB1HW9Er$cjLuDq&S#9u7zqo$jjk(;hTleg9*HT3#ndlFcFM;LqD2m)Mfsz} zwv9yh3B-)w#^eaZt}@0fFU2+reA&E>bzb`NdnwF~!8&Y?ErW}uf583DH9W}`lvEq{ zWD9t<1t2S+1DN7b>;UiK@yO}%sLSy<)Yk86r*1$ zBERA?B~a=m(CQ_;iA-Q_jb~X-pej#bI7%R5N_^#=z;%?sk5EX&Nl&CNPZU!~5K;Kb zhaQiv5HB|x_qY_71VHDqg{rH^b!vW)Op1GA#ITFNREv zX?aGaU}`!^dJIXb*>W;91S3%bl*nlo1rl?A&0tt$eFp<2nr6DT;0}3b4KraB)Z&gu zW=-8?O_OB*6wIE}%UE#@F=ln{~Id084UCucu z&+5}Nifq)O;tD91H4K$NA3Vx=T+V&I%LS0;Aq(Y!^z%@B^3XE!z!>2uJxSaL@2Bts zVCI@>ycY4MfQRxt(zblEm3)f(d%>O#doTeGm4 z9WF-{yxm_V^>QaCS$?(wXbP2B>X%sil-OpJte0o$=sW4Pso+e%Sz;dU_84iXM9o3lH#MQ^GyXvAQtq=E z&Xs#>2d^@sv9f}A+?y5B`@CkDiwy6x)G#&QQURr=>fQ$3 z_GT*5#x~nJXZ!NM`lO*B?+k5L<04B<=O>q>T>kzgBZwd|TRB!c>dsztS|k9}aL5 zK$ptQ{&51CS^gqGDa>x)wIkhRv+x$(9a=>o-?vuod> z>nO7q$lThR8KP@n{lhIcg~-cA7vnY>_5P%rd9531t>foi2WnLh#suK?bkFc8CLU|= zt4EZz`0TwCyv;o9vkJTqdDxq-y-pvyNIM38jrNjPwFgEC1l2cc2zGynj-ijqwsh@a zSsT;=;95emSMd6|t9mXa(0`6%p5*mAcHn&T%@&`)n}&kjp35Jr|Ab`sW$IBY`78ITQk)9ud=$Ck7`K-8njwmH-L*JVxraQXe zJxN*Jr-S!%T5yPtt^abme_CORiM;ou=O=dW7+2>MkI}4<|B_fO+J}qT98N6h4h+od zc{E8-RxO6|89JbL4v2(KhBvRV4(jylZQ4Sw15CG3q2_R6t{^SUmQO>br!AdEto;{Q zqKmOn`M_#rDh~^ZWZ`Z`*&arVtTBr?kCVRHJq%Baf#kg`*u%JAafN%9zB$fP<&DR5 z0;T=%BoO{+#?@~noaWkkQET8>C=k4)JOJ4iW`*nAQ!Pdf1hsOSScPo`n2&+UHvbGo z0~w(f*FuUpH%q38-JtW&J@eq_?}?m%YV6G_QH-NAyjr$wbCuPm&H>5F+^MoKg7pbi z9&L7fdBd=ok(QZ0r|ii{GzzCR$~^GMS=L6!+Qie)4?7e=vZWTLb)2u53O!3ic*wl5 zvn%AY3Z|rvoPa_JETANMnaW1|7G^jnK(Q88Bp#!98k8l9*;)?pXx&1*?fP7MTWOk#);|cI)@U!+_r_A$cb4Z z;c-gdK8`o%%ejq$HxGc!C*}bvT`|hGFn#0W09%;0gQyLVmv5h~cqpoG-ZGI0y1wxo zKEI4a$$Rj@aCRfL0Mae&+!=dx|opKxmja0;MU4B9wtx%eYxgs{B&GR4^ko=L$M1Z z(G>$og}OV16c*5%#EFr^d5W)g{s70q?7YUrMt1C;4u@O-O)jcn7j~2FM#z)ek6}Xs zYx5*XgW01Y5=i+t*@=0JbZof1BH3$jq`+8|fXQPwG7uJY)&zo*mV24Tfnoxk#k#n} z*`how4`)B>J)J_PMr>qnv;BgW11&8N$MG{zmU znjO}MYMzabTi2~l%%cUTRlZ{NN?BP6S_w?53w;oTxjRHPJL!F3(9lov$vh;I zOKj42{EhFX=v+#Ea15X!g>tl^Nz!Ln$1@NOEI}m%RF}5$UYBHDzQ@5i9XnxClvA@R z))#qINh#PzTFHuk1CYS^yuuwipmu+3lY)h*R?Oi7|1$vS&X~4&)0z_OC{G>Db16@2 zLOnwOfMr<%CML`#Iu<3aEP0me=iHRo+y7oFajF$gww0Hyst9euX`BTP?#J!}puQk@B|ZwrZBl6b_(Rl*o(qA_dpF@ahvlrVVOQtYd|?*`QJ_|Xy!p(aE*MsZPsfKAzBR?ExCbJfUc zLWH5!U1;N12>aCTfEA9(_Cb|~(D7buYJ!$=!x!FIN8ebYFq2FkF54VaNC*e=Yp6yv z%X3g5172cb%09gr4a;XN;;nf?8@mE@!Bg`nY(Dy<;Upwob}K-gv$Zp!pj1w1Uw~$- zB>=2QGC`@RNnuLZuIW9UEA@Ir*`T7b86ji9j*9Pt)0N8pwG)AmFA`3R6F0i*!+FweA_J(;iTW`}oE@?z(I<_Uw@VuttRd+C zHqmf&?AwB$`&9JAW6jWr)8twm691FOoQ6$o^UBD8yYc2vtl!1~Mmt33pS{}?&rj(8 z7<_7=RAnW?XomPjvk}YhB&!&g2O;gnp;ovbSAKu?IgNgu&8sc94ItU-C;I$28<=18 zY0>N(zq8+wGn49C;cRBSV@elr6mpdotz-OdP1UO0pkU+9Fsbir@`JL`q@Gjo7+dBu+!B$ zEQqvXz4g~PODh&5y-xWO^^^vzO**r*()GKKo=pTg7*EOVY6o&roJ9jncIBk6I@Ht0 zEv@HeT$OF*G(I)Y?NacLD)1pD*`lW+O@7PkjhPpyXXNzCzMJ$`^$)otC5uBrqXMb=Xl%7RNe_?jQuv|qnpYM8JNtTiVJ|Sl`!ctW2hy~ zmRZnMzWRu?P+anK7-0#;rRxZBl55~7cI$c-AF8*h} zCXXAb!NpdrZqlRUl^bWR)}$qlHkqq`>2-TCtzCnW+BeOa7pm2sXb9cgG)x1oa#3nh zf<+(A@WOQmV%J;@9!@q}M(0%$-WKtrKWb=Dzy{uxe2jJS+oerzX(5nvR?#Y(+=r`& zCjPVaD0VO<*%dG-M+k&+Q9xsXRoeiyocg44KPwiS)-i)2?$o9=E6&e)6UOxJY2zZ+ z?@CD~9mL!-=TEKqy7i_$mb}Y46FC%KB>CaH;GTQ+Xd?z(8JjN)gy6xq{vHdIFo817Zh!)kj(k(&fFB z_>8R{cz*AEa&iqfSlgxdYMu0V_9!)2Ke6^|Uw?9j4I6A+m3Vc|R-f^Le3#}vRVb?& zm<3RwR#y9eM4X$y-KEv>l`qeeYnJwhqrUt|Q456)vKd2lN6d+6(=PiRAg3}{?JdtG z42HqGWLc^!tsz4f@wq!L^-e~DW_tzp++YLHdZXQ+ZRA$nqIntZ*>o8hHLAMsZw9QFk%Lf z(=ue8unEdG<3h3ZCXCK~U1(SZDC`Rgb%y`!aj9rvZnfce?6aRkCdwz>bv0?`=JRgn z0|LA!Y>clm5B&~B5#H0`#(%{ReUC_%qEMH}k-i3pASs$*;1KTok)!pkt5%q4Q2G>d zhYxG`h(N7Pd2nz0!takw|Lv-Betl!y=DDRZ&~NsAw+}7s_7oS0uCc|ey=s$=RCV5? zPQ2b|{X?`~%W(cchwcYL3Z*B8(@vyl zMSzLP09wQqndKP6@gg{>F4h>*q8hYBhN5vvtNt>GMfIkyP^xqbmLHb9JZj3H%1JIT z9Wel-H^mRyj|4#h_JIBKLiA0604N{>3838A>{yAyGm(Mh3QpCFQ4RTy3`hR(myb~w znHj>*EDz*_@M~%gYF35n-en9i_9Np752b`nqpOLWV@MXEHrq&QFGxE0o?8cifZ~$@_`9oQizQZjWyb(sdcC32zAGWHYLX^l98tg9FBa0H`m@}m zfVJ$cm~_aHZEs*-2SsYp=!SZ~6+mt?COO|eX4M0W53U5x3m;1BmdgvGlpm9eK!RE# zD>KT@fq>T{AeOXxN&%4g1(4o0_fO+HtG64FQb^0mhLs=HLx*@W% z07y*)PCPyAR2U=|0d*Gs;G4zGDe(j0C$==v9RLq;RS(sV2uJim5 zkC;!&qguoOL0vHWCp>1u80WGuMcp7pG!=2(AnBKr3DY11k3fi%#jLb#5Z%Qv5FSKd z7NYn|Hd8o+X9-AWiY)Fr3j_r7m?F~)geb}f3yXptszT7LG{nK0l9R(C$r|E#gYzL{ z0c620{ee77(*c?qd~YU!ut~iAwi>1$q}n$-uHb6c9z9d_)VwYrTE_rng!pl4UmgsU zPy%L!{^CgpaP2IhO(0*dYh&%6Q|H=jV8I6VK^_MKA_xJ*0F#SQ-4<=9&IR2xunQIb zXhf*v`ht@c5ZN-=g*<_wH}K2@{j(3&JI5G-7|HiZ@3~Zhk=fu}jB_vN;q+yoOdwF) z^#}2-P9_ULns*Rc0CZ!hD_$%3K@^m^3KtvATaT_T-Egg33X*cFfVR1^cH=|;8-fl&LvGnjXemW_}RYS$0ANY)rudPfvv+G0F`P4-~%8=O) z)hJRbhJAEe306>M`B}OP;1BR5PZ{Vd_WHbXFpn;B|KKLiZJ_;@uCugeX0+a{Y?=B9 z2oDNgeg{_@2|=pO;mI0(-;s_a@iP^$f{eE^&|?%%1_VRG8liBc5Xn{EgiN)daT)xL zPd%HWs$Z3-sM~pLou+cD(#fYN6kQ3mT#XwpLf>lRzxKd#X;E)|G6tZT^w+Llf}uj$ z+|2SOA=Mx{Qy?=joC}JKcw#d|$=0BU261i84h$lRPj3QEEzqqd(b+TwHiAE#2_U!3 zf(d0ym4P2%Ca%(JK+{?0h94MRTlEPoZk`Cu;3N7k)TXZb|oZcEsKX$zz zvVxq2sWwgYiV>{w<&DY3^6)QIYEHlzTLQ(knYeQEmP&_UJ}Yq|AB`v09vDEeHF?aH zq2wAys{p2e9Q4aaefN*~eY(-QKEZW1K`gMz^cE<7vC6}{b}I^C{soVFbI7vyAT+9q!`YT8P(EC%Coa*i~yNTgY`>tcsvFIM$k%Z zk^fj?5hu?K#7`p53P;n<=Fd*j`4Yy>PK^Td8LrWdHyzlNu2x!nMc2>f>7n5G-7Ff; zMF&^&l)R7$mBkb|$Z%$F06ya!zgjTA)3;@Q_hkN2b+i9pup3IS^b!;U#X?*H%4j+p z@J9FP$w1@OWO9B}H0QY3S&@eg{`_god4msm2`Y8A*zsnrN7fP(=U4D?xb6r@cO%O$ z4eY@SPSXpefsme5nrHT_3=kjasvQh$1)l-!0ZB*6TkEAlHF5^p1BE<9{VXjkGP`v6 zdrrs{(9=QA^yDc*v9wVRt4K{-C4lYvFm&7G;)q!0G_`h>uE*Mm@UZLOA|Ls*1n(ep zeHi-}9HD57%&d!yCtx!ud-%jV=(zz9hwN_UX!z2?-)X&kK(3*Oj$sqOM6!0Nb;vYp zh}hFmcXIg7$0+yMC~0tv+= zO-2LeGBhot&W9zh3)U#}Pzo145gv1Yw>DEW?CL83BM@>SaN&5*z-g2B;hAKg5v<^G zmI4pO2H6hEgE4>DW*Va_x`q-BAlZxHo4Z=2Z>aSN*Hvl}K<4$W$TlPmUEj(a(f)~@ z`oo4n6eYz8u!I7N*g`Ye5*DkGR4vE6g;fq{{;BhqYW$$k+1g5lg9x;+-iY-N351$# zioI;k66=EnN2a*qe@e@s=(PN!dNn0F5%GDpcjPyHj=ra;pn#~yb?2^l=1C}m733B5 zp5Kkb%Ua0mDC@+DKSn1;jZjm1B{rE0aJvP%D5RM}wWNXr>j%bbZJt(4Uk>9QP9|qO z4l8ecJ76(7^s!#W0l&oYYpuw7b{^%zj5mJ?4@>q7i{R^XfxOzqhb1Hrg-1c-lY(Hz z)%*4npPECTk$*mQi2FJY-+F{kBfoEx_(R=?hicTB9C0S_G>{1ZZw;W4gbDP7#TYu-Oxe;DD3jJ@!otj^Bij|9DJ>h)$mSO(6V! z;QCMe@SEZApBDF@qI{Z-^G#y@3KB@y8G9IQOwmAN_?G8a`RW$H07Jw#7f{N|CA$m# zvX>LZ@>oOEegi34SoG3djo!w=mnF_LF1rjOV#X&2=2=may@F%_=bWr8?+-UUDXMQ+v&Qz{K>nW^6FBpAC6fA;GHqUp|K;2BzArF4g25OF*H zx}X|}z-Lgevi(Cn6hq4IcKYiN%}6{o&Das=rDcBrnmri=1}7X#%6`590tkk=eS%`Ke8DF3H2E_eTy%d zg#W$Q6MLS_`hNKsLvU()fUcXu-&pj9A_$$i1rm%cbPEZ2r6@oZ`bHl{6-Hv;LKRN# zbGsdkO8ZWNz6uLO9kq=vhv^MW2s2iVI%~|a(3a(+^iMJJq*T{7YNGsX_JVkfEy-O(ngDGJghYw3H_rRdqW(xn>t+|i|(MF}G4)2;Yg$1x|dAhHzXfU7=C zr3{4wAZ^EV!Pl@}*lY}sxs`>V3fJIkDder06kg>wbnWd)rY3=1~s! z@g9TP96fJ(rJ7wk+xKSce`n_TlIA$a)wwQ=YKeiywM27|8sIB&sqz4#o; zTiZRM8^bqjZ^m++$3Y9o*w=?T-lV39fOGcavpHe($EBnE^t_<&|AucjISKNB5Gt4H_%>$J$yoZ|g8% zTU$Z&yx%G@#YO%MzNK_LsZj#APjj)$eL9Qy{gh<2JXS$+F5^G`#;}x1OEP<>-M4SYVvvO)6$dKjSxpXJs`TJr&GHEsyIZs+um+)^M4yw z7=$j4FKT5qcb2V($OAecDDTQ7htN6wLnE@=p~)36Ca631p5fthN@uC0ipSO}1j~Z4 zpG3PNcMn%zMqb}E>bln8rw)mLaZq+{P*bF zFRH&JB)z{xXpScr2HgyBCDg@O7s~NU?WHAj2-j=^8X{fJAmllU&9LO^$7>Sy%ULF>>%Sm@mN(coxh8v zsHF-*VUIbqY~^EG^*=q*iY7>N-;a!wa3i?0qj$;L8GF&AYFw)y={SS!T67e_;h%)_ z9yV^JN1XlyM%L4`#KQ>aFd8xzI!cNo?p{k$xTeTqzSc4%Ql!F}`68ZgN>Nun^{IYV zc14pC%_?14y6-$uwU^NP*ND8W+YjF|M+ONX^Yqp7yZAqT8zKa-#-J(O&^E`t0*a&Y zK=sA~!m|i$rMpBaRt`@`$KA#af-=?v`L7fWLbYI_WYLo#A5xfeHrYGQ?}>G{wqjxZe8_z$AK)lYp?;vLXK7`)f*-+RDpCg zYVAfNQI3EsgSKP+)K0bl)^GdnH_DdikYgh%fAQh|1c^fThkL z###A>YpU@526G){7gs_eSvh{ zCEhg(I$uU&FYRVOr?rCuq66O_t!c1p)3%oNk@evP8pbTMw%*DKd)7v{CACg}v8va| zuCmUq*Q;)}V021H+2t7fC(hF)k4Ly2%4DvbqSweRd6GbELw0jn=1-BY}j3_kjHQ7FgTA6|1cw zTpp2ARZyO0PU(fu{k@$K`T^myPn_$%_@;>EeV!WF6!@@ggoacXOAboK@L&aiH8sbw>hOpRuoHW%#m2-{0xQpZub5?(Tb@pmLb08Sw*)YC92 zyscL#=HU>~eHdT&xN8`^p`&2Yc#s(*phA!3N>r@Vro{o%A~wpa_y~k95@7Vl)C90g zw}}kgdKKsb%0E*5>@(XW8Td7|c)e!~K`P-vgxb8djUqbHMnOIssK^r^l8^IW$BHNM4oWj8=`e{q7Ly+;x zZvSJZdIsjf2*JVD4Z_pJ^qeji2}6qGekOe5ivGjDgK>CxZ$npxiHVCw1dFiCj!LzL zY6f+ByP2DC)>LZA2mxc4x7n~iO5Xe4KZ$XEKTJgbEiCz*6q+c|YiR!w&Jq2)!T^>cL)mD(d=fzHx7Z_!Zll@AL04m#ZK9m zb%+B&JR(8UgSoYly@%wKmyr~|Iw{8nb8%^VQ|EKR*J_dE6wg{SXfv~>Oh4SLlAo}W z&&ihGO9X#YfE;$N-gB8=W*dWsOh`hI{%Xlka}8ii4FF_A{CEdt_8_tnvWjT=*!bJB zj?uU%X82+QAB+&D66>2g{;%O5-@0wTf7F!=6x0x$Oy?m1v^fp%+vZ@n8KZG-{hEZ2 zimnnnlZrToAWa~X^-5v0kY%WM%Ih`J0@l|^RH4sJ~l!)>9!K_JC6wMqm{!&V-dB{JW! zq{ITXFt*|J)~16>a$&DpeoNHvPf7qeO%4(ZnX*joW&D!mQ zo5a6+9<5|}Q!G#?wrL#|1uyrcd8{Y~g2+VZEv4vrC4*RGN|1j^$}&q>j`h-UQ@w2| zWZ*;;3m;3`s0InE(#h5a3*!JH_WLPJEhqqRW@sOCt)z-4Ku8G0lY}h8E+ZCUC7Xh* zm|@lSx^IH~P!+56y@Z)~EuHBn2)dS5d}vX$%Er{6pD?CUY1`n7ShK@qs-t`}wA*6P zl;m4`8D4EGsj46;^FnhWkOe92dkHB``W^}oYrH878Nz{qx^U|KjwG9f0*!wO)4@tGd|AwMoR#rFfMJn!<>m%JqAYa7Dm zgK?o>Jr1hruD?EruBU_v4&V#gH~&e)Hxwkk2LwFsic`?ZxLP2`7Ym3nsTY`|#xv0Z z0BCSH-!Z+5wVh_feozHdcn;26cv-GzPc8~`-f^!Oev*bfVaCx8Bz7J7&ZNlfgMYfE zXV^gY(XWd^@&~~@SVmUyy%EVN{Iju)4?SEp=ZJQ%zhtkMF=97_TgEQ{M9Wy_A9noN zxR3!VRW4R6!(&BXWl!M>poR98SRw;-Edq~CS@Wm?%2HDF@G^NBHdBjCK9G(KwX~)! zGN+PwiJoKO2Zq@OI|g9{w@2-7TdtrgL= zSXGd*C-cHb{ds>$5>k`PNqCQbHimX@H@dY-269kFkPtnbx!yjJ9-dgW4<~B>? zJ7_K_V9;gpdoEN`^;Wlta#gB@ZzOd975Lb~)Qn1}iK|Yrvsa(HG2JLCgKNQN4D#w8% zlO4gik5bHc2aRQ_jCYgNLuw0l#7N;|s-SN*eHB6u1Rh7G6erTqKB4-8es0Ux@}LG| z3;L=`S<^}u*UGTptUo9!^lN?4llJztZg{+Npd6I zIF1`~+-K1BmEo=1fayUXQyMa}HFC;9Aah#zskS22~n351<))Hq55dcMlZ z4j(hiyzXPgvt({Vel)K9;0ZvaobOBo<>7GU;Z$7rg+@IiP7`@IIyNZSBk_xz-{^R3 z-xj~+3F*a2WAAnTbBt3JS0I7xyFujm2iYX6&r{|!EHoi%m+^1#?}TqsA%!2>cGcZ> z9O!@HyaRy`CCMLx{}3M3@VQW}aq)%i{B66CQtlJksgW9ylnqLIJ6<99eDQw)SwN=0 zd9)({0P*m|0ugUAq0WW;h8^u`pPS9rqvGo@N~-wnYehuB7HqKtb}@JsY#57i3vTfi z$b(0WDo>UzD!PI{ym3!rBM5K+F&8s2`?4LgZ5}Ix3cn*WXYa0}us`%8Y|_IoQzZ2= zMBqw-K^j1sRzyCif`ZcH0OWC^E;dWf>5$+Ke%gzDeATf zZ34m3Ct;X(A#J`E<48aQ1u)|)mz)BcUJJ5c0rOqSjd6I+00TTQ!!qe4+$JjmGX}3h z{X*zO3@;v2M6_D3V?O3(V&g2N52QRaIlxjEnB(QF8J=#aJUh*|3KsGBx zA@Jv3k0St}K%VDL=RTvCLK&3YX`|rnj&}yEAvFuXPh%cQtH9? z`a|8OIbkERKR`l4a*9KQZ~}n9L!hdyTB~rg1N^4=LYM-JyLh0d%RS=+JZL+&<3tny zx zB$O~8Kct=Fq$&7$I)nSQUl60S59PksqqUe^M)5$0HlSxUGxFuXlQ9`LBhb6@X~#AL zthLv=`j%@sg(oP7H~7;x!H7r1+A4TN3?>MCykX0#0_f4NV|=hf1T}jCNYmjSPxwNp zqfO3&E6hT(TCdhGgtY5Ai=+L^^O3kWC(trARRNiD(GSjZp{2=prtf<*9)8eks!RU- ze%p6iqc*EwG}G%ktXJ$Dmt(J!_;2U`aX+xZPwNrP{_4~(L`xSobEm`|vjG#XF?Acb zcEhGZ`fyO6vr(@&$-4aA^H0nhoa2ph9NnwJtb6#SvV7-)JZu5u4}HI*cF+Girz`)^ z2Ruf&_0q$!tPl4%ia@Pf{X-D@H7;+*6ZZFheM4ZlLlnY*pRJxdL_Z+p9DBmIM#S8g zKa1OV?mto9&+p7fkKY4CKY;`LgNw+ zNRcB+iiAdCONcKkS*jHC^5vHqGf>o=NwX%3nK@^MfEklz&@UkvJSllpq=8s$*cdo! zfN4{trJ`1~%Crztk^NjTb@dVdDWs)rCL!%NmeNtGY+{uysg!Nnl9QOmf`oL^(zaUr zm72u{02>9Rz-pxw)v4O3v)pQR{1|d%$&)EpwtN|LX3d*9clP`l^ifC(1sW)I8a3)k z0t>Aw#nC`Uj210Ql<1IQ?uEMv_V(9XVeWhnZBL{)E%bywH7o`Sa=5w|^ghe*2>b8gQLjHGv>;4L0R6 zI&PBUB6_G0hIS*Zw~q<}ZlT;5R1iT*kjn@*1DfOP2?nYgvAXf78;U0Ga?+{060swZ z#4Uo*kH#8pyb;G7b=;Bv#~ytQ3qsQX46vU8U)#t)*^W~Xl81x~F2aEf`fZ@#guAe~ z3}x$3mBKWGMjjYReDTEXW)Nz+8OF>G#`B8$5zaW}oRiKv?Yt9D{!06A$kmD@kfY=f zOt3fxb%QX%-w>*@LJNtrEyE2p;)ppfGlM3Al*FV?jO$|TVv|rs-Q1tRTAhnUoIQrJG^EC>-(6|alx zwqQVjITFYtk8QhsB@70((A3juWz2=vbk$v#-FDqo*H-^>)m1=1V~cGz1etX5P(}%w z(%56498TFRY1453OJ^<3>dn(MA*jhD~VR@v2FeDl??Hk$c;@aBMzZM30+4L*)TgIDf=XK=wIpg5B$}( znjJ(mLUf~aRBlM=PI#kIy8JA}5hacwh$o}?NX-Ll*VyN<~3OOe?f82}eJFAC0plX;;K$yi1+p7Apk z>=XEUH9GPw2sa#r(i1}{u(-7@B0huPMrKDNXgmRsfehpr(O5`B9ukq4AtHc`$SWiw zjC>IP;g`*#&#=teR3PK1`tYzu9rE63R{ zWTp?3`fL(E&3RFvVUeRTmFY~s7NnN>sWsutAVcBUM4d$mpD9fiMVo0tD|!f~G*#;V zQkmK#kDdmnWfPsgy6Md)N=TwAtz|z?2+*W96|7+u>wFFh)p#m&p&Rt+H+vIQSx$7T zEp;hU$68mr-gP}sby-3~I;af}?4(evBiyi5QH$;omv~j|Vi_x$vhEe6JEe%)eCosx z=FEB&Sno-eh^glk;S`7`Xk7r+4)Wq0NOt4)!r z)uC)12$kF>PG*+#upL@&aRppq3r8@%2^F14N7~c-BI}-10`bmT`?{`r_QEMvu@4E% zSIN5ewBx0t+u#OV>dMu>>|ODWdCa*COLd;kZ72sD1yR)wOP@q_t%+S4&>lY-$|q}a zWLH_=A@BC8<~^^HefCd2QaH+C7IUnAtkWu6*~2o1=wSD2SR5nP$zzuDobzPU&n*|X z9fsp@Oq!^OzICW^eP3teOlLzM+DB!6q-p<3$q-{Qlfsa2K^dO3yO^r~6ixgdoNo(0xss6~A!=w33bzl& z@qA_>FKC41MdqJ#U04Wnmbk%|_O#U#Ur&EJ$hoy|pC2t$%?f(Bu%-66$(@-gn>pKh zZqh3QYsm=BQrF;qUx(;{>2lwj+=@n0U$?2&QFlAn@n&g%;cRbwA3WISUbJ7I`%vHf z8Qymc?rSlMaEo7D-}@dWn#=d^L`^7)tX1-oJ2`K0UmT6z;KB`VUJ{F?r0=oU9V~&h?cFtga8Zp)XoH{sy=z|&yV8wrbg`Em z?<#w0Bkh$ONOIhCAO<+k1wL?-$4Fp>oQj!SbyynMYSa_|O@C>g&#V>S+Ai5;NJ$|J6O` zijH(MaDnzAv3=6bVD{xxaM){<^>-P4<$-0{+uwHlQMrD7lz9X8xbH*sNAh~5_rd(^ zdZ%lA|H!o;+et)LJn+UZ8+yxxMuKKj%>&TA%1`t+4PwK2pk}6BV7EHBt zM&kaj?(B{MGlvVpZv7mi0FkcqHgHyc=|AcZt?p0V67Q=2Kq&ld4BT$1{7A4}ZtnxN zA_UQ31Zl7Vvk#TL3%6nnmY}P_dJY4jEuDCfYi#f_auD#8&{Y;GY;Mcgv`xI6=+@%S z)cA?uq74eQrUOOL`jCPPVs8Pza84XB2pi7f(#Nf&NaAknB2H|=&@gM<5BFpaDZJqZ z-p>x}tUpfh2W4#ypKAiass93P{N`!~{}5LA&N;S_E!4~6j(`{Slq1IVhd(RORupeW$~ob4C8@Z^~BUBICaE6)sAZu9oe z^3ISObtLNgiq_ih!$J<6^lQ3ekP%Pu9OZ=Q_HOJd4;Jf@M?w$yIIiu6Z$f^f!9?x| zfpHu8kzFzmAH@y>WKSV~B;z(L7j>}>b*=*85C#{qvw|)n*JbuJukVZw<|^?cO$ie} z3f;1evK)%M7EdEL(#=o}HX`pN)5Z2Kj|;c}9L(`1ZDb{-XQ7hN7l%TS? zc#7(VkQd9c&1N#(yoxRJl9ZzEAK8utCs0xU3eqgk61>Qd9`zD2vnTB~tou67C0kH1 z?{3}C}%7YeeoCPZI5gcGf$JnQqrupuQQ!10!wOGz^^Pt z5xtlUD^U|Se~2$RQO_m`zw+w^v619B>(X-5I3>s}-x9{Q4a?>-CarQbX%a7wlR6Db zGY63~Z|<~+><|@23l-5W4YNAO^LmoAB6|w3j0_&*ZPJFbFw>GFOp`q4Q)>nNHIAa!dteHVUCP zH0-<9F(6Ct9gFb1_)AV3u}*ZM0?Z*ArU4Nu)lw~W8loW@Dj*khp--LiPp?W%qmm6F z)3-=0>ugg%*#%Ogp;Ao%R%2CGXSGr@wE|KBT|PA;L-mQW^YDyR|A)3Uh~yb_|;$Q)%>iLSX@j-t+Zy?hPNUL^=h-y zfX-2OL>J6~S<{tb)wNcowOtD-y6)8=7NuivbV8U-=RTI%M0RBV6=k2uWKniyQx;|M zPGF$EO%-=gMoNI93_>Qjd0jQHI&1H_2j`gFD!RKNy5V zScFHIgiE-DbbXiVKs;^bsKE8AKaH+)Q5Ogn2M{|im#Z2^~wLLn9s1-ii@|cT=-r!EYE}x zmUt^NHSkGj_VkYA=m-V6^I?cj~}>?({~%9;RHCfT~POY zeoB$q20|8DgQ1s^Bl(3FnL(Bef{{K9bk~z_kvrclDGLc6}pobI*J(jp(EO% zCmN!&nW80ncprDfB)XzInxkj)qJMLu<8|D?85+Z6ixv+qWTn|nyRb% zsTz51%f+N{4Ct+!gN!#b_K8miwKtKqt<=bEhBTB<>8tl7G( z?K-dj>sqh z*wOyw4W*Z{5i&l<)jfI`R+*KL`FWRpnxCEfv!^?=JDa*Wdyk8H8wwg}d&FD&A*vrb zx5t~j%iFxq8@E8M~_9K&%N-rBpQd;5RK`3m6{jZZah-K<0Z zAA3i7n7Jufp8=e}UmV6`e4wpcv$xwC3i*j`1i~F8yn7?Ve;mkzoT`0X$Y;AkxD#jG zyIu))aV_!?hg&1(&c0)Mo#g{)iRb~m68 z9Mr4b+Cg2^3z^hILw!!2o3-H)&cGVV0Z|$`AHLxk-~k@Uz5hNsq!n6V%)vH9f!;;H z-bKOQ^IhNf-8S}J1egTi0iNCip5O`I-issO>-{zw+L|HZ4BBC81i)`jV4D^BzTS16 ze6k1M8>L$lE)N!ATR8lL^XKrpM|5EufZ4M-{n}gJtF+vL5TJp6k2b z>%SiCydSuYu|Dh9zUqTJdPdB3f^Whod;0|`c z3m8BP1Yqz5z#5*wbdN>k0T%Qj86rROPk}`}-2NIfE<=7n11@glP>0*tNAyAE zlX}Kq-tWt=aZlcCWZof-}fm%0B}F|&w$}8 z8Ihm<-68@PMtRPgpI-F=5<~$P+IGe=F&z{zD zMLk*wX3VH4>)O4GH?Q8keEa(K*AGFmU%!|!+r^B8V#BijI)3aJs#Zv=N*TCJ$pEFz zne2Y|MQI@A)#w{c|^ykl*jAsYkyajHAaBA$2+4O4=yXa&d&>WFRlSJO&KRS9z9eDb~02n|4L5 zHNXD-{IlL)y%Zi~okieT0z`md1jPgqUsE%YW|~pGO-Nz?g%+L!3j%~0#$jR}lE6%3 z7moOsWLZ&W8E&;vG8<^ILGqeQGEz0tRx-Z!A|x$(wjyo@l%mRRBvz=)G{GHd9CJ!C z2isjk1X0ctK?DKknc_icsYpX^%IT&V zCUe*>qK--`Vzj{0X{sohh*cq#`B>W|Ebb^8Y%!WP*HrNVM$=qnz6M)tJIdN4Zn~)o znJ!2UL|l@|odfMT4&0IuwaPhn3$<5T_Z*j4R_E>ix8jZ)Zn)cI*U>lTgoKxkW}Z1$ znrgDiW*BOQL56&B5-MN6xEQ+9DdG@eh8ZIG+3#ry&*W0CgED+ou7A#F6m0wAv1nP0 zmbC+;Nx%bX5EO(F!D>w1Dj~8eudG*Kg^k)FhoW*w3(Lr|dKHR3YR1{Hle~DVua+jo zD{C_T8rO@%)^;0iLE7AxvPTvtkh8~0JMBQ!TB~)|TYC+5w$pB{t###E32wP+ug$jF z9CgH$+;#38j>IuNW-buvqP2KQDoN!W*;1aM17+^pL2J6^?uuPZ5 z^dn81!S!P)KNm8I0sGFUSw1XQ%y>}{&$T)Kzf{%vl~nDRMf;+(m-TTF0(jv?1cnzC zqoq&}Z*wZA3>I_pG4FyZ@tfjomCh=zNGs4m51o{14&E57Xg(KvSt-Xlk5?{83TL%M zU#}lF+1b7ifBf%{O@G_=-;aO(Txu5$cVc=24V5(LR}h2OGlEiuF!V$oeq$iu!cc{v zw4)qNLEOX~q%at*q#HG$Ljy4IK@5mPJV1JiDojzQNr3KWI*LglEc3HcY{qjjX<@KH z2NkF!O-C*4hpS8xI?;XZGEb?K5nEU&A_B}PDqP9WkfOot#bFS(!yOf`h?6jcfp-FU zLIr&&m$#5_j6;G&GLnH9#3)aBwD1Q18Ak-Ysz?tru^N{3!k8=k_~UnWI~tCJwIlH5 zMs9C3iTQ#v9D<~eAnQBF`p8DV`H5|kkffyi^oPkzYO-8j>K{nx*2i}Z?FkfUAWzam zF9xDg0M_tgR7Q6}09}w(sCb+$F;D<$R4yN-SjA;lv5HCb5;whE1tok4Oan~96f$I{ z=YVM$X9ANFp3_V(O)*U$mSUSJO6D}9NlgP(rkR!j<|O`92xayobg?rEE>btNT!f)f zYRbu3c;^KQQ~-Nm#MMePRmgxoMlhi&l|g5gMiB{gLUE+Z9O>AZ>cu8#dDK zc~3{PVG(DVHpqpRBo*jG-!zc_<32~;LZz0JpG#l*(oM>ArZV-Cx?tj#yG^AW6i{VP zPRYPiHqdv2qLWHk)r|vy(1VZDB~5S@oiaM6oNfshzQir97u zMj8igEU8YFSl%>rDy~W^&+6EsI~tas0-TB;cL>N92~vE7T&VesWSo;aK(z;n-`HRZ z+t|jGOShn@ZEwrTw{7Da>M}>1av`$60nU^P{96PFTh!M@u^*?f!!0pzfNn4)AJ){W zFfHpD(Y+9cKgx_SuX~&SbZ#?ry$tJRt@<-xcFr?z4W==#D?`y8VVlQP93|k1r{#7w zB;~=Kn#jVaja7jHx{yj~4jb77m&A;;*hPay)!+y_c)}8nu!0{mS*bjfdJ?UbVI}t4 ziyAGXpnb~sKI)_KA@-2XQY~uTR<<;*F^zGHV;t*t8xc?j8Rlw~Ttq;XtMq9q z)kA@DxCNBSo!GyOA`LSX0GAkWDqVvGJI{C+U>t>w3Uipkr1{V@Dg3fVxm-gSkvSie zD3lRX2qQyvPd`RX4c*Rg2ix5tD0@yqo^kT$B;bLMGLeh$F09~gB!d znlBkv+^eRCSr<+JR4!rUER*%+5@0E9X(;y5(-JE+X04VuCvCOYYz*sI!!*aVw(X9$ zfrtncE;T&$sd|3>Yrj#Tl}%ReQC?t&WWOL!#csBDli|j5QyP|Vximy0npx`|&C?CiURXk1V%Y?e zX~a~qNOgg0;JA7qu8y&+9}a6<)HWCsueHTDsoMzTdfcgb!jMzBz$5#_fei9=v2k%H zJaK^w&u+QPmjVfWP$d`Jpg<`fQ7|)LpkR-S93AMujeV77X!2g@r`nD53Nu>LMaN5} zp=j@W+flRs{*2Qe!SdPe30$v1S6O=L%>)^TNAqP1# zNSE9a1AEh*7Z^s1-oX(rJ?T#`dPXHXUG1G24$me>6zzQWMC_}Kj=G~=A8Ysw zF4Er&r{QRyhVhNhcKOL&;xJu)bZkL!TS%Yz!I(bu@s9Um1Vj7Y+HtNan7!Z{o&t}! zgB%82%AXMR(=UfzI^m*nQVEGQ;6V>y>^$dYcmn|lFbuw4BGI8Hb(&rLTE0>6)*vRZx|>q z0STx;f4Y(jWKar~mvfS%1eM^2ekcjEkQAlh33{LhlF$Kqum|Vlc^^0ukWdRvzyW%Y zh>6Gn1E30!z#HBm7^$a$pO}H6sCtfg7mN3LmbD_YGJAKlZ~Fombu(Q6r*&IL8!uS@ zaE(|<`apwYhY>sIi#*77PAH7SXnji<4AZa(pP-D(sEn5|4MTW+a3_rA5{1=hjn{~c zQg|KN$c^0?9oB$_+rW3JF)2^*1R+rlWH1TZpbg)U4plQ&6vHtB&UNfM?gf@u|d zouP`FW`Z+fd;cUPOR<7~M2j6oaK?g*Z=?&qv5PdAgTE+S)Av$NxP(hcj9pp(j6@g; zpKyp}$&#LM240CB(ASM^>6UK^mvLE*=#p_-ICFKAQ!Vj3YxsVrz=FU6n1LyngGrc$ zX_$wJn28x7`*8~0APv%xY`hQ)hv<@mh!li~h$Oj)D#4Q@Q3$ipk}fHldH@2mFq3{! zlQ*fFt0{V`*O?{ZlSegzm*q25*DzLrd#wQz0cT|I zFq)Qm6r}(HEm@MB$&>vsne;iDE~y8C*cbi4ngM!~2oP_t37Ztz4-ZBEn?p&Iqk%I1 zL^N0@i?hg4q~>)_6P0gN0mW&Y#)+Ii2$tFMoLL#2C29-XU>zN;Q^&_|;Z9Yn*j0c*c37CHKsRygj7YHDrUD}!kdJ?gjps<&U9TplCB}=IxVxh#8-otfI`6J^XrR0+f(ZHd{ z`Jo~TjWha{d^(Kbu%d}roiC}Pk>IB`ild3DsMesPZ*!hSdKCr`npp~|m1?B#If(Pg zq$asCa)70ZsEHIZ343s*dN2x-Xo#Z;0HK-}4CbW*N}ynB5@M?VpqbX7FhUxJRzQ76 zC`-wkCw8H@u?%xcJ{#Jhzi6j+`kaT#tR@-_@j#ZDnVBxx3DMB3h^naB8kdc_5q4>* zQ(*w3xeDJ(uFmG3^qHh9v80;GsVbuY)7k+Xz^c7LrK&1Abz%ynDw-fr3VXq&uPUIf zDXacKt7K}cw|XmX2uuD(CZ)lf6-paS1Dr7^QgvFKcsdQqnz0)zjLvzj*Lnt)FsPL{ zsGkrDXF!Z?8KY6SvNBqY*Q%}9$f(@fqve_u;Yy$5YO^~lDCb(4nM$9VX)_8ypYmEE zO)#3HFbO6>h@vS8a^R$}0I;x1tPWVPmbIW$cc#E%l=YYYlt$AUNRuPL>U)<#4^`_t z6)>E}m#opywr&fzA1k-RNDgEysi3&2 za1@K{xQlBQN7|C65eu&!-r68`@o4Al`6p#D3k&CI9>A9DCPBt@{n>(+NQ3xO~noD~UrjV*H z*#u7ducxb;0z0s)%ewehf?NAxvdfvf(XbOrp}txFYL{_p7pArv`?hc!x6v!NXJClP zD+!S>2xggxpAZfbEWOj4sMV{Z`^1-)>I(XKxZJD4R3W*QNV(bT3Da7iEYlAFAj6#7 z8;~%+mAJkmu?qUx1gB{i0E)k=i2(X5tNeR!9`(Nf+=??tyJ5?MV~fCLYXB6BSW^kN z!u!B+3%wr9r_qqXBWa1sa0Yh!k)IF`U+lp+>V$H60>u!=*C@i^_(_O62>`IYE6m4I z;j<+9!txok=esh3tiBY|5AI8!pj#6CK(y$Zp%z%gI$59t`-liyt39K&PTVl`hI_tx zz*X!c!8vJl3c+1`%5DqBe2NDt%95FhozYUsXCIL(80Daoh`|dhG2cV%%{0*3&<>eI<3pra0ZNU2^`=Fo&W+z?FoCZ2ytMZ zI_-qHYz^eV2va@PhH%U$unpmG2c2;L36?MbXAl8~Fx7WJ)prm91#K4wpnwXvzz4Y2 zwO{}>G6}T+0DC~x9KZp4FbiE}7m%O|t`G~PdZoVb);)}prJw+#P}D~a0!2Lvav(ar zG1qTh3zTpdxuDi>Et7Xq2&SOfWKb8pGz)vM*rZw1dM#IZp#blR5`;L&dU1dQK-BZu z*q*=+3Xs}$K?$`W2Ln)uqp1gSu-2*o8LLg7!CexQFaS>L32}`V8S(d=O4{M>ZXKH9WM!L|zDILKp9mWF?sHr*%)}YI0 zzyY*OotL1?Jnhr}E#S>e;7%R?#{%LBWErgrzKpNX1aW}h1)j^>u-_}XqMm>UClC&c z00PP=2{73X+i(ezu#6x63FLs*tFqihE5wFOlCj`J3NVQyi>0G5t|&nXg?ObdiM$=) z+;ve3Y+#5xysxof*^prXFaSSZ7xO&1 ztxe_Z+Ag)=&mI|?&8r7&5alIN3p)ai~Cxf~5~kl@sb>l>`1de8|OF5${x=hTUoWQca3r!L(o`|tf3jSQB9?9)PJ^=7r5|qFJwY;CA>E*Eb$kD#z zFzE^@z88gnv_XrDl(6U5eiyFbv;aVXjcf|@ndblA0iI9`xMUw3n;3r!zcT#c zBdG_A(9{G@;ryNdh@L>~lxggezya-W0%R}>Pp+kSA>^WY&(*Hv0C473%Ab1B1mJGa zrw;e@dG3!m04^QzE~x+y?-z2AnOI8qCQ%Dkx(9|m5(3Tb9l+!!VG1$a_gD%7XO9x1 z>%wAg&xKzS{XF>OUaEZ#@pnI(at;}jVD}_x)cXknHGdZ)5Bsqn=qE34Vp>`K%jjAL zyO;v$NV%qy?iw;b^TA5WMR)T!59-j#^vkadDO$_b+RS7y?zLT?~#(w1oN8X0MS8@ zK!O7e7VKdEz~4fKkecW@7!jewSos)U#F)_^C4vQAY4n#5z(j!{R)L%(QIEol20$2$ zco3mL4lFY&m^e#gDNhmiOae)1&p?tyRqBz`?_w>LMLS6Hq!i@Ti>o{#lvEVN$Eo>L zN%aRy)>yJ-&7M6Amg-uzZQZ^F2`OJcx^?Z|?FVU9DFc1`QUVNk(qO`n3?DXJD4*hd zjpyRM>+i1P#)T{wLTs4uW=fL+Q}Wx_lv=o@O|#WiA=+xzty$ZG9b5JZ+O=)p#+|!% zI6a>_f*6N;Q16IwbRRz+j>9KCk_={r2=SBi4%K0j!>w$&bMDQXBjgZ{wz5$YL6n-> zPY%TYf*^oiEcMbU%%%ppE~M0R{zRJ#`ziSDsF&)~!xhrn%4ev8^kBoHj12Gux||O5 z#}xL6+QY$x3K>8qgFFF%4FEW}upk9MQb59ibjpY)6@Su*!=pUe1AskxQpuB(7-DL_ zh@v`;p?+Km&?yjV(J-SSK>$lEw4Q`=ELei1vPvuEf-K9t_6iNOz&6_~Ge|CDtTDPC zyDOJ|a*?dAxhSg)Gcmy&>@(0p8_h~RsZ7l^KV^#zIYBERv`|8E>x4OiB;kOJ+bRg> zDuS51L{Qoet>A=AGp)^*iR!`Pt2&afx6jncjV8m!hm9}yg z5>tkP=_vrfdRST#Y1PA8b|$v+zxrs}5u|=pf#{TroQyJMvZma#WtTO=QcJw_;;YNg z=oE8I%iu&4GRfLJvmZFgoRdyFLn|fEmzQ2EmlOPS&C=QqwT;uM4W;_fGe|5*l6b17 z%^Go4^yCapvBp|cwOi%X5cwh+03Jta`$id8xIX9;>{=ybyP`O_#2p1@83d32+LW=R zyXrhKcOjCE>VWYU-$n?8StbFipGjufRw8;EI&2bg5i%t+wHzvOpgmTBS4c=|iEtt| zdZo(61w+;s)%tK>Xp&JXNAIFoB&taxZ6h*CqZAP$7{1sK2G}1+E-q-4QVyJC_{u}h z2Qi+&Ga$1)tx~a|Jt(2QA5-L0s~?r$mxX1f=fARNndze0=9_WO>@qlo&XSsxG8v&c z<}x`mnr8wN8UrYeeh*|wE}$kg+@Nh!7R2BQ$YGvvP;F}DNEIW_W~jB5kZqbG0|0z8 zFfv%}QYQ!p48@mF#zN;28oOG<988J1xWJ2hKbzg zA_6N25EsG|pG0qo?YW}#MiP-TW+V!dG6)CQ=rZ;7>xKYWhtJwAD~hZC5MQr7*ZlPsvIkmuR5{ z@nA54d}0)=+T{sP$eZ%9p@k+?+Xi8>he13uQ+-=udm`}-4`wG6MN$CN5+>%uARm*f0wH z6ci%|J;>)U($9nF(I2*h9!3h$1Qiu%E$F04BrlR5@QBn(`A|SUNz#Pq?U9@Zvg9St zBEMMH6lSKB*(VL)r7zKG5@Pb-|Fop0Ha+G|m08Rx5#v(@0%oUpqMc2xG)r@wz#LVr zs%~7EOs=909x7qP1+iugHuw@E;^}Gz838${l!9%T($q670g(Zy!f|{R*!6i_JGE6xOs$&4?GrSy?GD^)%0$u5sq*>Ow zr^!WDvx*$Crq#agP>BJ^V2%A+!@vF|Lyx>8kWP#+m&$}@d7zV(0e~$xh9Ji?)`r*R zfaeTwz2$A5@u`wtWD@z*gDF4)(t*^1E&Yh?K>z?*jv^$rdjxSHt1^*hnFfq8dF(l_ zau8Fbafl<`F+uiV(i1}hG^QAyL}oEtCGUis83UMw5V8kTl)}na#2JCHbzF~|cc z?w*KL#*XM=0PD(+L?{$pShU&AZ-z6RS4PwK#uB^#oz&@0_b1B3_>VE;)slbgVqT)9 zSG`_Bngi?HviQoEHuJ5TeI;E1JnSJW3%W$6HNELe%r#cc`2+_p+}E^{;hPQz7DJn(_fdC@k#^ZoK{C+`+!l;M37pz#7U0P+mIOKs%>Lj%i$ z@99vGj`XA_Z3s2`@DnFTdCF7g96gXjfPZxXo!Tz5Ghyb)v+i~N;D zOgv(O*84%`IS@QuJQZOhq}$K#`9MT$8WOw5Kg48^QVv>>srQ4OT7r zWzXLoCC?;o7s;S<&;?BD#X|?C&aAgD?M-~kbfFJU(cJWey2Q9V)E(B7rL^3&Htmz${s~ zFKIZ3Lku#Z3=5<@iZdz$(mc)o$T&pv3yv$qAjt(2G(81i4n?8AkNJdIpt)!8L70Gt zCy2FO>cl6gfKDWo-HR0(gvDDV6jn5pav+p)2);#Gi8MkUWrMMZ__?;=KIBO{=R>Wj z(6v{~9MB-Le#pMCV+%-d7Aoo^!7GT_VTgb#h&TdAgRsWy5% zt@bOJ_v6Be009ob$9&YsecZ=*TZsD$sVgBjNysr_>BAgxr>PLcK^(YEe3?UpjP0r! zzj!>zo4_&=uloU-h@(Ue#5fMrxX)8GhlH;RAVE*GFY@S(P)WlwvV>=_uTJblGH@<| z=)G9nC0NWwoP5Ptyus)Hph20e09?$4PCOf4EC*#!3DJ6rZu}@;BgTs$8H6CVB+5gA zaJH#bu}CU}P+|zoz>L)CfYPxD?V^i95Sqgf8o+Q6N&v3&u$PFiMoN$fA`(JR*u#r> z#s$#>0C0sWn}pU8FnClugc>I|#E8Kh2)<*u#$>p9t3xo$KevF8^0^}NnGZd{wYOl% z!vjH*TnmVtnZ|>_2m}-GA|>&PIJ_V#49vhv^eKjeD$wK;Su{zMOr~7822uPFe)P?J z97sJd1e`P!p)^jMyacRZ1D-6(=4?)zivv91#pBF{pL~i>FaYBeN?0sPovZ*}oQ0#9 z!Kajna?}VE>nksiX(O4RZU%fOuY%!|$&6ToO4ufqyC$U;vL zsmNLsPcVh3YY>h26|C5U>p74y%cFP{Blp8CjF7T}P_A=n3xHIW$!rS}>i}Z33IfqY zx9Cj6`%K!rsqFG3(k#tI#73Y>O*6qMx@b)|!8}UbK#+7Q_8LhReT&qg36Gp~^ETN}lx6Tv)3;aEEX(2P^eS4p0$E2ukAI z&Y{Gba)5_}9HM`k9EkwJwQx(%VX=6cib?207U_r1FfvHc9C(3*vZ6|h7>vLZ8qC4Q zyl~WY$xtExBe$pX2MIlx)Vac{$R|LI7bROm!z>uYYzg2hp0(HALPgqXpEV-nL0kB7fz{btUho2f5fR%)b(3~;B97Z*a zydYF;yof?jsg5$wG|Nn76E<4eP?!lLZu=)_lSk*F$B_+x=MYbib*wy{`)Ean1t?`gi^>p z5Kslepo`7WSdG1`&%KDtO_%7Q!tyyjXOxHqH6F2yg}`(jIAl9g)k}Dz9mX;WsK`tF zAU8em*S461C+mPy)hJ9Q2~VJhuDys`Wk~8}(O$I+i3BCj@F`)H+Myz#9rehM^wC8B z!`@xhg(D@sLJ`}!tyZ$F&V7rOJs<;hrCaT6PBL5+OHhWwWn28!%@Sd`cz{Xg%!gID z1hbNaPMFT3oLB4wVEK(j?#u-<2~TF(O!frWL>fs*kb`?G$b^a6_PCz7Ktnwkg;mHL zp;3i{Y>>r}ii&HK8ioeCkjgSL!;DZ&tk~40AfA>IilwB4NP1X;tu1uBP>h%!dsKjW zYc8xPECwA&ma>wEV50sA)D&|U1WjK-J6as}+G|`|$ap}f{VDJb-z|*GdP25=!6LWu{B8m z0eDznd5t)CB#VTbi+3kR1WD5~B2oPw3TG**lkc0AA7-G!e9~l4zP=MUU(0lWQ zSXhNRF@*uRH}|xXA!e3@+z96VkU%271&IZbau|rA2-fuvNOT7@V%H&p(U>RY)3T0cDvG2p#!i{|Mtc4$U$i&54ZB@1;?s8ZVqO z)>MiU*gUi!^@|{tXR0tM;u zYr$D41aAF?>?2%@j>RekPVww0`02q<_aNMcr>CXCTRHfgR+z+S_ zX47CZy6}dwHtVyli-L{|dcF(prARxGz&=|Hp^_Pjt2ks$);jS#0{}g>c8jvzTLHFc zJU~-~7zMqx=;kEs6{3!^N$lo~1Q3{x8!9s&`lb5?=}aDJi>^{OG1t3`%3h;CIqbK| zl2e0_r%4z9=s1c6A(!f~T|I&6rbudxKsJf+M~sMOb|W)O^#{0Jk!gPFF=B@$ExD#} z-rIG-cHZi>unMP`4*)QLE+hy~)sv#di?c3kG4|{0Vr#otI6Y&kG;Tx+|1=XeR+D}< zuYb;Ky$;C_?C!SEg;aR#g`ViRt?%ZXqatw*M#%4cAcxLjY1eiRD=OTO=8yc&1zqq5 z{xyi3CQq+MM=M^7bt{V0@|_l}Y&9~o(1r_UI|_k)&*K${;;p;WcF@%EZKl=(wtHFl z=(#kcvt|h?R`;uX1KW48H}{i02&}2RV9GV z+P&`U_+E=krf&rY>9HvYPly67&xKM*(@@6j`Ywf`Sm(W)1ON`{yWQ-^_PTm9apNlp z0FVP>wnxA_mtSnQxCqZt1OWwj+#u%TKU zYKY)~Rq*uZ#SvqJEK^|R%mjc^K=ia`cQNK}f0*clhy}LL+@~1f+Bx^5;5%wGY$9WE z7q4`fF+b>r3R-rH>=8?-2=|Z5>X=v^($G7MIUo8_^|Ib|>2Y=ZXBQV;-g$gOiEECeLG5$N!QQNU$HM+sGkg#l;+0B8a>kOL6S2UD1ZEfWX;m<615 zcM8Gbv`>4W@i3u(`J@M7nwNt)hpbxQ&n{oe=vLk9lf-+gX{1UxW+Rj373*b7P+ z_TrD|>G35=U<1Ve*W-&M&GEp&cxUZ8jD;7HN#JW$|2URX=!~-TnS@FICr9}`frhS3 znpIeZodW+ldsx0Uh5R>vLah>j$X5swq(c4tAxx-nAw!1!AW<@4pp=10lMXh_sBt65 zjvhaP3@I`pq%8Sn?-lmM$eWokVG=&7=i) z`W)KXU%#Lzi5As~6enrXqMb&RSjv>t%)UXw|6N-)IPv1fk0ZybY!qF(cK7u5xVJBL zz`q|$U5qhkL&vQbBfc(vJo)nG&zIlac_pNlPhrliZCZBE)a$js?kRgVZPHD1>&6>; z=jozVS_dLHTykwGxL_^`LU`bD@WA$>eeQ?BSeqqfC+^ zUmJEfq?TK9*`=3Xj&vf5o;~$nZKdHvUr#jFXk%kS6?K$pkoX5AfV)Kp=3rSh*{7dm z>8TM|xs=jeU3$ndm4?*?7O10-LK>;0|B#7^qKajPMjDK$)ps94If7cBY;&FoZ-20^4hDGmELzLra#J;l$vY$v|36viaKgiKAQSc zRK8Nn>vXaz0F9!!{$*>m-+~*ixM8+Arm&!8s_9Jw?bm6!D*2NOYx%Jm8;{S{iQB1p zj@$2$Y#2%x2L@2JXt(|%oUp>Z0=wS1=*FZen(H1rBWLrzR_{^#-2|;nPvN<+$RAST ziCxZh5DUN3am%5%Bf}iC%pW$~*~4b4yY6W++V^fs@-D0K#vId`uT%TZoOEXW$YG&f zdJs$%C9$wEK-Fx>k&n__bKSLM|21>=Fnkf`oF=EL`TX5auCEU3XP) z*R=9Spwg(f-G2jKH`qVjobHRpo~>GESP4~c+dX>BVt{@JUb*F$W1e|rgR|$}uw)-@ zHqS&Yz7lNu6$E)r{{biw-I~K5yX>>a&bdm3#}~S>ajtnEj-lF1G~P@_JJIX3BcHtT z%PVYqN`-j-63)8s%rl#PyNPkeI^Nr#(XAVBJoDp|U%vTzI-g?nV}oAPoH4q~nQPjg z{y4s?$1S<>l%Ls*rrF5_Z z$!MsTle6_LZ9vmr2zS)I|BiXAbs@VT3tQ+y3T6;@xpN=lK$y0ZaA$iObJqQcSG@2^ z@P$GgA`t@@!}UcZVjZMm4RxeIpx_61_Ilt_{u99>Vlj(awA&Fslf)S^kz%7u)&enx zwm9)nDG+Skw6^HRH^LEN8HC=740u2Uj_!%@GM&)mq`E5VYi>b|BOwcENG^5pJ$AIn zrUcTv8x{sm!K32pinqc;Vv;;7q0AVH2?lKDT z?FyBtY~Lyorz6E}|ME>zw4e7XDK|mtGM$)F#a!CifmukV2?6T>hIHkMb~Yy#CF+L) zPF5E=401gEh{av}0)kouG*H@P-fESRRMCNtepC=#WkX8YL4cUbQ#;n#tSywF4eG`(A4B-w>h(bWx zQd$Y+C{s1UPMnSuGV;VJO6^GvYVnCqaIO` z!%#VnoN7dBQi0giyLObTS$#}Nud0Wtx=N*f-D`+m>emj?)TOiFs$E?1t%b60iD7)G zj3T-o`Uy?0|HGr@$1=Lqq_xKsq7`kGno5b$igp#B9nVv*N?5^6^{RkP)je_g+7E5j zuU;LJ91eS-#|pJ`bqtMU9r{owLh`NKYt|plc}}~+&HyH(jvh>L*WPZ31Et-PNBtUA zzH)W8lM?KPZtEe#;xw@&vgu)U3fwWNZ$%9KsTkvzHrD)3ic_4W55d<)%}LjSuv?vv zNf;zD4=IHzT;U2;tik|;oCHC++G&qWg59pDMN3}xs6yVVyY{aOd@Uu{W-zK4e!Yjbv2$@7J{9gAam_qXXsD3VT;be($bOJ6GB6 z_KqaJ@Yr7n;S0aatP}tB98duAJ%sH>Hxajm)9*CU#xxf#joW+B!)kF7C9r`fpqgKK z0vlMwVeP?2f`Hyk!Yp_~4*JE( z>>m?~M8)+(DX_z#FxLL1UqWzP@Ueyg!~z6bVRo?~Nc5PnS=k6q;0F%j|Ej?qLHX7m z99|*FLBd5KPI*EsFrm%ag#sAB09YY)0l@qrVcI3)Re=Bi&>=(M;a%JXncb5m+66$F zLjG|e2VmNOC>@e{Sf^Z;+VD-Y^jf8XOu79=Ke$56aNr)S!tQAVB(MRWJ>jf)!s~<} z5aN_wnBYQCg6{32lnel}6~Z2H6#(eXDjZfJDn=~mRdf_WSn(MUf`BVT2PAkRb%1~k zX5Tm31+y`P6O!OA>OmA{L?;5HUva>Y2}bQrp90*JI@-l3h~q;1o?QfAKd1r-IE^~) z!9HfhBmlrWHlHViVnRsYZ509=#MJ8nK>zuJ0VE_ox|nr!2Zc2s{{V>KF?s?cVh|pt zBV*A8Lv92$t`sItWFczV6aEzgeoc|Zm-Nh6*&G*g{RDUH+BZ!a)jgLhW=1~1lt$*1 z1;U*~2BSK9!Z6-mNGc>=G=u^8okDKNDD)qqb%1+iM7yoyRN93nAk;h_Ru$G|S6U=Ol%YoCgFVJ!B8DMUR^=$@ zB{=qF9oiN{Ktft}UH^4qHT|Je9uGflre1nwL*xTfKITYj1X!k;WM0)CK%hc`07;%l zPtlrA?j*95j+5z!ER|D#>5tVBom=9gEjC1LJ!VcFVN?bt|5Yx8Hzw!P48Y5jLh;=j zB&3*My=F!jfN#AF4xXe&dcvsvqDe_YXm&?+&I%hyP^qaSJ1#^(z9dr81zS#qdKRb4 zWJEvy)yKtUebNeSf}m9DC9TLOLOkR`809P)qydOvani~@hF^UaA-}-ldrsvjq#rf< zl}kcsuK1r#643h4T5&O5#XOy35MX9anz(V+b2TJ+m_lo=ohMWwFkT=-D5!67zyK(K z+;N|P{U=g}6jVY2B8D1u?Lq3rLKBo_Na0-0&ES{u3l2VElQM)`4gfJe>0UO$Ebyo- zc2$*Hp|vFhcly;_(j}1IMRXXzJu;Rj09jtf6i9J^|9^r6eNH3@ys1nwUPBb-4JxJ{ zxG4vC>2nO`kfxwrfWV*v+CmWFUL9s47Gy(A!d2E?qVA%FE(9SeVHJKRpeCq!=9G@| zXd*%zYL3}(sw1GvWOdPuhiVYSs1hFK5v1*r=}giA)>75AsCeW9Ia0?8mI6hXf`qcm+9YR2Yd*ajpyxrun0RT`d0I;cxRV%fMBboA9Eo>L-A)@)!3Sul4JVq;G zU?@s*K%V5o^3fo%C4{Cm;|J!0JNgx-Dn!X#;YV>m`sG9U-D?o7LbkFWb&W!{HbHN| z$|t(Q(M<$3p`P`*c=nTN^(Vq_`=JuoAV zIs}Yj)wwnyUtAS=ehQ5+C3WrU_=O~O=wo+qt6!L1LO`QmNy0vcpgO{)f<~a;QmS7( zXG5$4oOXa|A_j26;NZ0kt1=wO(X9^poWYH0BD%tHBE(^O>44Vh6AGe3xWecbVxIKr z=2{^`=1FDdE^IRANfu-`hLr`5TBEjQ{~``d_R+2$3;^SrVMp zt?9}dD@pj)=s|*G@)@1>L*J^{MilNk(kVhb@4+NQA%N=Po-Pn}Rdh({h77=Q=7Y)3 z<-#@}=;o_=N`hD>M7d_=7@pmXikf0L=CFw=YY?F%RPKCoARDMJ56Y`w?Sa2}EM=PP zS{i2fPG5Aet-%haVGWyn7AQbkVSj1_vTE??6@t`0jSULzb4VT~_$mmfZ^`K2U{0!a z`ll7=r)p-GMdojJ4yJf0-I>TL|NM5_yqu8#_y{|JKKKLYg&R-1-I1E=2eOfa)S*-f~L^P{~3#viKs#Dkwl9_eB$^ zE)Rxp=PCqO!fQfI0`1LC)k@;=@!;`&w$Gb_h|fVceX zU$*i10c=jq0`eJeEqLji-eQ*ivPO`lktzU}X{vHI1aO)!%qppsp=?9I$`XU`VQHve zvGPJ>@KrVNb-b~NhAoLE7X#%;MIB%Q-tT$PWAbW7MsA28^B^geLc@L>B~UV_WyEL> z+blQkLe4X5SnsU7vOmOg|4!N9FK(I~II9JLCWx{p@5gK$yoEy9KVPg8ly&Z4_X0$?NCr*KY0@T7~V|Hd= zHmI!>l}=tm+r@yP;}u8eU`aMii$r3pLf^$Hb+q)SxH2OSFbp$bEw`{}hVs^~-bMGt zmCmPj)*Jzw6e9EE{~wCi8taxv^uv;RHZ(?{Cqw~as{$pME*cvcrvf5fD}<&+U^Z_A z?hT^S7GWyGvK5-?L+9HtWocylL-@9HAgeI#GO`=Hstnn4Dca`Z(6N5`b(Epgc|7yY zd4vH7CkEzQEzBJU$mpNm8$|QjEGzY}S>l9G_&~nprZSY2bwg|^&eS_#C zO$@u(P>G6D{{v}O3jJDOSHa>B}UpLY+&g6lO0Fs?X4gt8@D^dGVsEwk{VQl_0>r*yOzdBfjfMfpak z!XIKU85%b+mZhf`_F-vwh_gCm5aAQf0{FSZVR?2{cxE5_jVzieK$_mBS@>anIXjQ9 zU%a?R*m(!cH$9{I*Djsgw0Y^2ZCugs@Z>7^5M^Z$^wff0foEzda9>jbVS|VCEcZHu zmM}vU!pdS_?RmNj{(4YTq^e)!CX?Wy1L3CodkD9b3-Yp6*fyyz#6H_(}N4$4)MD3OExf*pj@_Jorm}2CjJ7Y(W4?9C#d3UgTg^1NVez{v$ zwO>tpM!fL;a&6bz_kDZQl8F#1F4xf9@rowVQ~a%O@OB5hyyfQkIRfT8`j%q{y5IgW zFb3mFtrP$>#M9$kKk#;kZ1WY8b*UNrR-2R)ty6_1$sbn6i^ROA;CHJ0u#xyw6#G?Gc|#!k4OV@jzbj5X zyWv}R2kd-9RQt96#wgZWZR&Nd9eq)x4u2_qE7Cbtlst#V28-eb_@N&*OIH$&7SJbo5E=K76a?~mg=Kv3eKrvpJro(%X?xR4=3 zIRqhg7|?H_tAZExuxYrFV@FpJL1M%R08+<(vqVZ#(2=D{1tRq*pvV#g%!CaMcmf&G z)1D@=6sQ6KQx(TpFl%wN2$D^{mZM;rYB`l^RezB3_0zhQYuA2|R+Ta^b}S{clqRKB zI|))-w~z|O%~vRE-K<{w<-%)sZrnm|-L6%8)-2hvre<1IY_(QM4wR-AY9dMG|DKKg z0O;AtL4jDdGuebJ%CR3C$`JL8=2$A^9<`9jyaqhG5J!O*3xY7v7$oF{tO;I>RY)hs zQME6d-swrfDg&PtDhMg3Woek~W}UtWAo1dcl!`;-FsWmq0We)zm7|@YW$y}Ah4j>& zWoVHDHcl3ql;Na3J6Ex4fRHp=D89;^dT*nTU@Aznko1rPnvNd24><)F>PG?gI*^0D zhCm4EriJpk1UK{c`DDsN0eEOPAu)zp3tQ5p_%+dhOFpB9zh8ly(J%(88K%`kp;;0Ft|2oRYKGam( zh!QTvBafy8=rrAQOJQoq)+<-`s&Ms%YJ|4|Dsw`pahvmn>n zYkxH4Fx-wVRhuCV zgM(;kjt0H@#r>8Q3EqxE7Kz@7-@6yzt@IVrfPSZ(4KBY3F1X;Wa?y+Nt)A@buZ7oY z_$rHE&=WRl**@;CiCtTv zEtxfFkHr_tKBBifx^2?J)4z!99GgZh@P;Naw*yHAfVYMe{~}eRy4I?qH9G$70VW_2 zpROQszf!^( zTa9`gNBpOUwUwrWl7Jpga)>p5h$@2aV#);@A}@?6aClZR-RZs(B!01OEv|!I>;%@M z3?Xb_1XCDb{6!c_SV?$IR7^ewk`g@tpcbn$z$#*4HBE7Vd4wC89yE7H&mr+Qk-JC$ zSz>^;6+{vrG>Op66p|*euODqo-z;3hA^2TJI(Ez!pAw0iX0Z=L8RHNW7lKHL4CiCe z3P~*ZSQV{Bxn=m587IAJtv9!@N&FGyco-TD{5u?BU z^%f+>ZeRw}%I)fzu(-Gmo(>~R8Plms^5rZ<^^-)P7}q?IjN(hC7^n~#hZ2y0;CQ5g zpo5yQKZQ^tgSY`&N0bSZA1(xE4U$AKqa!8(`onM#8YxFsG0^|bDqsyfffUl0<3?HU#v8x2l1Uxj@|6Q9##q;@;xd;l$b?LIOI*L zVCFPOd(80q5xSl1VE|3w4nss35(mXX6{RSJD%g<2f)ogW4RX*P4rN!+MXSSt^SY-1eGU=H}c(uTg98`R!V6bNPpa4^>q891J zqi<{{-s~l%cb;R9Pp!+Udq2`RlP*tfyqV!WX*i z^Rk#7;~4+R*&2hlx1cRZtUw~#EvXRzvyj6q1_0$uMufG$M4DFrH@be179$|wz#eoK zWlmESOv_L)n`viS3%x6Rpw8 zSgsk1*<~vuV&roi3EdKxY~#e@3rPE7Y-7{ny4NL%U`v`TWxE(VB7>1(nY|LAgUz^F z7&v_`+nBdzi4n?p8bXxz2dY#}{}2TlO;ccI76)+Jkm8}ICG+l*Qd``mOm10LPK041 z7pHeA>0uWcS(Ve z7{JA&<+Q7goFH^%NQuGi-VZ+-;`t_sQ(fEZjm$VAhRya>hP|X5uWrY!1I!h(81${s zkc(dQ3qJ+pJ2#T$+CQIeYSWAn<`iOrQC>|Nk9IT%nH5+qsoJBNI0;xH?a`jF7*#0o zE3L;{A#$5AT&KcO@kYz7G@Xin-i7VOg!j^nECtwQE|O2M1Eq{k$pEr`X_qTx(nV8+ z^qdS50MH$pO{O`d0h%{I|93=}YJH|pedcJV1yimDnY==B_)JSD9yNcvxluq|k-$DB zDpp4<6j8U>vY3TPMwjP2o2?`*A`FXAn)X}5m{|jiL-0RGtt$qAW<7X<9RqO1Bq$P7 zk&J?B-0ol^6BiP{Uq%%dE(j>|AqNm>hvuVb`~Z*YX3k=@LF{cwPErQpW?>QnuPWw^ zASx!H3W4KLW6g|;{y?i90?s=ctuqFxew>A~!tM4dg&i^_^D-j2E<+BAE8*xQIQF0v zE=JS>3G?)CBOsxYFwV{5t#Pc0#6$$9+z%u=!;%<6&^YkHVC3U@7-pTlm zulbxUFP@FEobTz1|E&0|E%c0#M3f~T+TveeMyR%?BcLI9_U>o+#_o7cPfDQ)F3hk{ ziw#^b(KtX3G|nT+jVccC{j9##YwoKhAfclyC&qLH5^CX=AZ^XALKS{3 z>>LCDRKXlb2MkNAZ{n!qwl5YaLCMIji2iO7K??+C3lY5q>p+V$>aew70+P^%d?djY zScnhfQ1SGD9ppd+Tkn4eY$0N=Bi1nNDrXP63Jpi;L-4ApmgR_A;@>tU3wHzw@nYzR zj`*0+Es!qS@CBc8=ZmN<>V5~w4x{=Gi|gco4FHKMIwm4U4RcJP52I=izK@1XK^5>3 zAMcMuO2HLk|A7tuQNu)#hDt#W>Z{BKpcW>OB_`n>^AR5hQcxT+ACu*bOaTt7Ypdko z6BS}2@e$uTqR)!3#u`!qV&NZS!4=-FB^q)T5RV`@U=}KJcqZW?@$n{5%OJyp0}|2z zuQn5!~pz+ml9Ga{eco}QWZEaA66kM%j;tDp&+&EBEBblsKNlE zlJoq*BO#I{AVC%65l|G;9&Iw1z|tm%t0ryIC(SM@TQS>iOz4DfNQ%Trjt;US%SV{* z$D&PlpiUeMgB-!q9L)$Vb>cz9(jN$DdWxnHj%*SNfid-jD;DENCV?zoMl+@HG78}{ z%_1}F|7B2MViY2hbh@H5zXHiVLo~Al8nogs?!xy51`=d5Gij3{Y%?D|(=$+WG%IsB z(IP91lQbaVGoM2_moqw@h#I}3*np?#{IV_n0_l8AFqtpfkYsnDuiAcx>ag(V{>DsB zO&GIDhotj8;WM3pqf2NpKJD{9@iRa5b3gMlFMUJ_u`}7?NgKJ7I&)#NzL5&Y6ETnM zVSck-nhS{Q~=;E`7=YM6RRAfH8u1@K{P}~bVQ@mKa)`St`QrvlRyE}E`SVo z3UdmpFfGK0j2=`=AjIuhh!R4>ac-1EffPdwheOscNR9MJku*t_^az1ZD*zPPlI<^B z|CBJjf^iO}>7?!Xx-ja9q&$<%IP<}+G=mLF0W-O^W$7qo>Mxg|3$+m36 z6=|I`RH5`>myOv}wMwC|VI6ixY1B*Q)ok%LZ}oO>0TykeNNH2FFJ+@orxXdJ@Gi3S zVGGsB6cbVT_HiLMawV5e{WixE(_jaeMU|CGX=f$^6^p1g`rv^Yle955sFfj4ad_gDqAX?^U3TQ+g&|F%YBwTP*>immvt zXjq9QcsmQ1bGc%No3)4Em43zdip}_pUzmpbmw1Z@i>ne zf^`>5j3QWq+qj9}cXowLj{7Mwr&x~_d6B7DjYV}pN!4k+_>1>qYJHeNN7scJd6PNW zgR{6_{#e=MLXxR*cBN2v6nA-9IEXvBm0kIM`8a(=6?O&rR2jBin@@RvI9?O@m3{e_ zefN_=c|{SHl(*NE#kdOL^-%2?n4S5VQP+|86m})~Z7CT+b6I&+xo+!tgQ5AG!8v4w z`Fc?{VU;B4Y{wgM8I_~hZhJYL;W?hg`H26vV9B|JbJ&(G|9DlkIbs{vo8>v61zK0f z`HvwvlHE3dJ@>~F6oa{0gUfiJC3>P~n4T@ShS#@6wYMv5hlic7fFTx>nOT!5x};5- zQe)YkNtiawnK}0cK$q6rhc`nyBk^oNYK=6WW?z zGmN2FnVWa0&ALsg67o#S69!-<88Q|Ips)M7KB*E8w`&&knk81jult%z>n^}}2>>>7 zF(5$>9O(q<5ntz8L<`!W0mhi2_MY|vs2#d_6%(K@|64;*tG-Zf5*HFY=r4e%DnvNM zLG)k%=rR@)&K2^(6f`Efw2C=evmaLBKg2G|NV~N8v!GX+aNE~F)%k+q8h4FbNmqdb z-0kyHkR_r(X8=gIKkvyv5=_F*737ag5|32w(i9@K6o)ptKNPu>JCbWzi=>vHgIc6p zIHKA6=jK!O93$XZ+iB{xuP!DJ|6|-T@4DDC(b%p7K)~nnJ3~|2b%z&S;R1*M^hMn| zJjWQ3S^2?5bP~2wr)2KWI3l|EZ(`sHB>r~iVfmR6$~=baO%G?{}58gP0sd!kMb}_IiOx&3aZ8{w|2w! z^pMCanqAFRvwO^q4Q8J~7s!L0rokM-wM;xr0cI32hhECWgNqGTp<&?Y77L3bYQfPC zB5`O`CM6cv6eKwDJ=oLchb0G>L#61CtK*nv5a?{@v(kUE=+ZRST`j(+hg;$u4 zXS$hnT|e6oBrsK2z6QBA!p<87AuguQ8bw+*qRJ&=(;9Al_E@`TJZ37mgJzcW*7 z4+2~y4E^8P!xPpN5-4VS^04oz|Dw@Gy|q+rR2ZDLC4cg#Q_TB#jfok)19SP%oY+I! zQ01ESM>7U>qPh=U?i&T#ZH!{fC+{)h9b2M%H1C26L7EI|ZZuu@vk*8?Kzao z93b)u>_@Pm!G8Yw0PI8!Rnqo+g9o*jI07%ZOb^-OX(32IMCo~D+p zWz{Eum#(@>YLc>_0XYD=|0?Afm1)kmaO29IOSi6FyO0_l+-nfhs!|^*8Q@4MW5$XT zBNlr2u%F(83r8Mg{7^As!xsw^{^(Ja$h)9Jiylq7G~H63f-3bCs}!WgA}8%x%fW3) zN}eQjE#=bG+76!bnXL6&&*znFezRHW*nlfGqd2hrJ?psX>)5kv-~Ki)-|zhj{pCzp zvth&(6*C4;aN*vDlqI6atdZkj&LO$$-_O5)_I|N+)d2^kST_=GwAn_IQ)ayj956v*KrLzg^wTI>`DfyZD5fZrckCVH7hvRVq!DK5DYh78j(z8k zdk#6qn2qz%S6@dT|CN%Tiby7@q=}HsW|bbbs8q^twVi~UZc0_Tk^$0nr2vHy_B4QS zD)mF0g(&4i$zLe-BL`2bUAW|&bk;cLNF!o4uJ@RZ1wB@oWkF`7nSDii zX6K`jMrzX}PyGafoG9&-U{k5BrAI6VlGIOfYOO+{fO>#n%1W|{&gs>n)v> zV(AkIyrFbuS6bedn_3;nL8eKC?4%ZnV6yAUDxppSKylTTl$;*A0ava`{p_pMrQas3 zu!_XydF){2{|Q-RvjYuE=z9=VTL^j<8CKqX9vKIq06$*%z9FvG->?*VU=83QVC=e7>k^lf}Nzibqs~$0%to7EQ zHQeIE5X)HDc@sw@D0`AI6rX&TVfHa+^o-2)+;rDeNE0->a_dNt)UpS=SSxtox;=w1 zfE=zU&;$t6tv2;=zjei$9CFN(v}#tdVVwcfK?T4nWcE|aD4pwJYu%`)UX$1Cf!*iW zhn3yzvlbhaP@&U8WGzMXl_yxp+^R18@F}@c9M%IsCtc5ha|$@rR{^D#swoA{Jo8rV zQ6fqC|L{CL2LKGPM{1b&v?}rFr_Xoot&fK+>|`%%_SuBqp8JoxPt<$1A33W2|Eilr zm#~LD4lvCh=OQ3f0H=VF5odu4Jf5jgVt}L^&nMzy%O2zgzz&j(b>MMbpXgII9I>w; zxv*c4@VBwHxs87y;h+a+=q*z)j$LZm!@jJtG){SHfX@?=0^U`xELAFqySkT3a>0kE zJS{>wJRl9H_$?5A2W(-3-$g94tk=x1V$V9r?NkUK7PjzOFJu((WJtv}KFUl`4AX#0 zVLYpl%Swb3N-1{OGpKmN6+|o|RM=n&Cti<09PGy`@>sxux$%*~vLauwIKub=ieh2> z|Bkd)s5`c~Ff&8?-A954$x=dUkC97aET*E0(w(m)PN5AX`r!&E!E6@WtDahxGl^KF zOe}gBMJ)oUl1V6FX1~D-E=|eINJ(-p;(?Jzd`H4dQVfjHQpkIJq%lwOE{%c_r2+ic z%yP~N5~g5-C)T;nJFZ-SFE zBI~G3lVq%m5c4ImvL||D2W0 zZL+kbE>#o^w>8wHdUZ+m#2Qa;QqVzu^{lD;s6nFnJ}quhc8ytTWK_yc-6hInFpMc$ z_X??;{$!_d`DxAgN?4PrRZmTgn6l(oE&A<6g}5{0T`{sKB8{@Eh0Sbs!U|Zpl(i>8 z)vRcNby$KtESwyvrZr6np2#qyuHEFA+d`==QjYev-0|x@1G`Jy`u0(!J(@JL=%?7N zHm)a(3}jc@O{{hduWB@aUVls7>u`3gHYqDmtIJ&^1y_V4#R$i~c+zZ=@qYQ!-~KEc z!|u8_G`bZlZ`Tsq_u6+m-)$;!7aLVf%GGF`T$^*j$=-2d_Pz*S$#ny(|C|In_&WKO zCTgDwRgRIcJ?iTtuKjJESKQ2wXOV3Ph;VO;esre zxpti_Wut3g7Wn$PD^a;|%=$xG*mTHbsvuwg3fYMcAq?mhOcwY}|c?^>Hs&RBZI zJ)^Cb8{PQMw`lh~VG84#vDC`bpe1YQxAm{i`cAmQO{s248&`h*t#PzA4BK$iyWY`F z^ujmJahYCw-Q)c;RWBCVPUi2!oQ8GBSI%-s)_S0l3gof_`% zx8|CgsJ?Wsqx{JoXZ+q`kGtHRY3aTscHQjmZ^YmITIbTPyy!>2AE3i{(v;RUWURV2R=b_O z8YjK%XCE4}3n}jydL*GYy}e@j<_|1?;97npz=ICI|jSc3Li;1+HX z7* zK8QatXmI!UhJM(HpQe3P$bMjSLboF=%vES@hjI2df{xgU8)t<5XKEw&e$6I;nYf2S z=!vSBZ*y2-fij7t$ZJ}MiC&l)Z^wwMn2Xkie!`_K%x8rgsCp^oZN3MCnzmJ(sEf*2 zZ2Ts5IGB5OSaSfjgW(5!phSSnn2ob`fu*)>|L$jAM^_p1cZ#Uk8Mvs8=y+d{*o~sd zfW%mg#+ZqfC4%^uj`oOU-1v-xcxq|4gn2lCw}>6aGD``gWC&LXMMD<@Stb@id=qhC z4M`LEkdP))Qz8+ObI~%`br%|GG6;E7Tho!a0#W~Cd;0i_yO&(D_=C=MaZXqy^(Ytp zpbBgN08P*u-jWaDLy|602$u6oaj`RFk`j>62>`&8qQ(XTAUF|alw`&na61;tE~Xo;Kkodr+1$F(t@3m#NX9CCQ86 zg@MnRdUnWruSJ~zSzr@b7qX!T|F6^!-T5W{fEq(-H_{=Zp-~7}lb+XsneaK9ow*|O z37~BpQV4wdsCl|E;h_1vbVD5AE+bJ291shtzyTltB0#|b+Jh3klpA`m2l-(N954#yLYExy zC6&nrs*p5NDH1*^sR>~UNdp2+FfgUC2eIHcy6F$T#2fkGORjL3a_||D5S4o132fjB z9H3(UfSEjyG+R40|4rHtrocy^ldPsdIy?aY8s!hMIud3(vS15yhj!6irww*Es2;gh&Lu?KRnH~q;5dmyW* z#1mv08?kUhp3uAgU_)5K0S9~f2DO_?m%hLq5u`_UDGZZumY;Y@F!Um>7m^tK3;zTR6C z9$F%^zyY-|3n0J&TIRgNB0gHNtpHOqQ_-D0;ZNriw7Xji!TG5BOT13ArIVTzsz5rx zu}nt02MSUP|3@pLuPe0!dMmQA2Lsa&rF*vp%s9bxBm&yD(y^p;af9%~MT&Q7h1hp5 zIF2@Zvjs+&IibV5s{pG&ky~j&I)qR!^S9~*B?z$!aDp|eKr6dD3QValQ#$|v00K+< zsL3HU{?MII%bE`i07;{mKAIIH@g^WJ3QaH@956wpz&NYBDlfAt-Q&J^%o7t-2t0F9 z0N@FX^A)6;6nEUlpCTObX(o*Gm9s%TBT);CqeIdGnz5=#NwKp=i#3h>#+>WQp8?3%u%UAgCe7#+=TR983l> zw^#!mREkhMGZamb6pBg3!NgBf%M`Rkyn&1r=e)P0aL-LJH5D|qfea_RnGY|s2W-F& z_>8~@OA%5viqnIBFPqH!o#x6O#soD zIva|a5Yhq6C1C)9+|x;+IivC^7nu~RB0y{0#-eNrQ2_!ybSEu4T>HgeW$JD`$QLWs zVI1RmAvcxDL%J~n4n956b2r2+$ zgMtP=yJ9pgxJa}pTIwVE=uz+-dP1`^<$>s2ZTkah*k z)}l3(q}p(5h7Y$K_vcIW@u5vZh$YbtF$Rzq9?wc}%Z85$X}J()j!@k2fJrwfFk~Si zGcu3RP&*w-pw;6c6C<_9p9j;IaPz@P_+44vlg`2E>?iQdM3*&mu!P>?+MO6--W`iS zioz;KE7Ow}%qJ}}@qxG6*c%zy3h9u+vj)pUtP%v|(*zc|QV2rgIxva0HJCU1Pu|L)Wkj!y1sG-`wNo?`~ zTfUoPjt?`kw<{2(Nsuj_T5$Y6Tg#6crFC%dNr^-3NXXr%avm-O&ckyG953?7CAK*u zcA+a_`2LWWp$GHj8@7jAyL$kxD}M>t#k(T6Dik{>bBTztv71On> zMB-dzD|=Iv6N0SieSwMBn&1j9g1D|`oq8h8#cw4wy9`n+Z~O`kYXu8AusWo$40|@S zA_>pL)^tqhKJ?{7MJZgNSQPY>cip^T3+iV?PhTe#3X-3`T|p^LJn`~@@WDWq&uEaSYlAP_g58G(tNr@KjJmpQOR79Il(wi7cZ$ z-HcWQIg7f-K#Ram|es2c*Xe^txs?a zc)`HE)t(C}G)k!i93n-r1AY^au&=DD&*+^rkQ{;EEj-&n08c7w3^C68@YI;7~;0`edYFi zFQi!Ra@MQ^;;h(UJrt@|-WZ@=A{10|wBS!!%kyY=L5AxmpjDRxFZ@x|?X=#LZni94 z!4uQ4&9Na%qDtZ(U)*1SmL(p0>3z83DukeKT<1$LLK@KOS#1H@(D{VDow3MY8 z#9AE0NQ2xfjleTh4iC$Wm9Z&SFuV^aGg2krVk-*N9cD;UpLr=ANbYzt zKvs(i2);Fqm#rvZA1c<13yOJoM<*jRPP*q&0WpAW-mTDlmNhwyIB6q40G zAz9Hl^u~2)3{%C@oofRCzcxjbU-ICfoz9ni6a)U|w$^!peUC%<`MpjH{H9Z3tPNip>yd*rAvWgj+L8&TLsO{@NPMhCFk^6Nj{!vI5*o#B|is=eUC|iV3kVq6G(03WljJvUU$YhW@UM zMrE|}7gw~Dl8Yjj+C&2oWyoquqNYg80;)+!o{~_usSwWykTlGoa<0;ammp_&VeijF z>_g_KwQ+)&-|+_nWqORqSU2Oa{eCb%X_4*R=K<)X6|gAKMW$Z`6$uvLX)!u%;0-TL|TWK~4&%0Lt;)A)L16EdN|x%jd`X53_S9H?yTdhG7b!5oBg%<$GD=x8F4AO-WCM&*r zYWpiqT~hutifa0S2GDwl-7Hg zfAs|HblX$NQgNE-om7_ajsS;(;c0bR9-b~9LA4ar0>P(eqojAzFUw7+b2j{u*lvBa z{`|Oxwi?egTxUdvm@7)_8p}1IaQY`ZsVa&H1Bolyu8QU9+&Geav-REPV^GU<@Te+V z#;d^K{m7Z=BKQkp`L_@qOi1~te|^gG9!U6k>y!5bmU%hDFtzywW|0hgz~qMd7-#Y1 zZmYAmtQIw36G43asF#K^e1N^ebp&t%0yxn)t0vExP(>8`5fo#!?DIr^)|c1M%sLJy zupt!pPyK*o(Fd%YLvD_%fCfgpAJ_sD-!s3)2eGVC*#wwbSr)V89H%k`Q?R$WaHfn&2jE(2)eTy+Yrd$O+2zT*{ZPb*oVU--&qc@I1V}sWrUz% z1}dA<4a4Z`l=v_sUBB|$)r|x^7Y@b^_IlDFRtrJbl}8fNgb&EM$~P8vqf23`l-?Y&Tu`l1<(vk*}8SxY8USxb^RA1sW6$7+~e z&E(I4MKwVu$Hsso$n*>LcB7O8;mVI0UQK`93My}?jI0!=4a=AHcolV>C{=*&UxFAG z!^ucP$bhP*Pd$InUI&WxOi>%zL_+8N*O7U#w$ z9$_HSNCq1L%t2v}zWDv-OeeeHCr^wxClq>;deT=|_Mf6f^{#5WGryn;lP#8Hp8CZ+ z9X_0-;5h0Uz-$Q1hIs3uFP-l>OX{x|1%Leg&Kv24Z>Kn#RI*QbkR+|5%3I^+t!|m1 z#{<t#ropB}rgcu{51Mp9UiWJxRNUlX;-ec>LCN_@*x@>Pco52c5{lebiv zGXWZP845pExKHyPkk$NsSc4m@(AJm+d4b?l8$P=+TPw3J`l zpTU*M?@d(>KV3`LuS#2hj?<*}?mhsg%U0l?V?E{@VSCXyFf9_q)AwKML6`?J2RP)45=RzQik;t{Ce%7K7s3wOg5! zvJS1{0!VNHE^mo9`noRrB;(7VU;U-NUsEZA#Ae`9*e^d39Ci~1OU(vJtaeLwd(zHH z#dP1|kn$0e`4ST(b(h1T$2a2ZefVpYz2px={g^|5{i5e9{Zq7pmco>vc+&z-R38HdVB8pJg?m z(KcD~4ps7w4gI;Jt&Xz&x`(_^T*>s$X}17$k+gL6B7D=weGIH@Qoejl-njZ=ov%6u zyTki!d~vQ^ALf*W$Y&{hsA5w6EE~Pn|AAdGNNm_bHDOF@SouJ{##n9+GW2Ff%%~wv zqF&C_iq3<*Q#v?S#%fqgmd~N8hXPG0lvs(D7Aw(IDaC1|H3JQ($)1`d=H@#r60K+u zoE8y15ZNI|fAerd*VpKvuZ@E9tz51u9@bAA?wdCLU5S=w zXgzP>8*>A6W}v{0?fGxHnM|Z|gQ`lSsY;WRN^@3ag>IUjlbpf$=u+8m&1Oa3VcJu0 zKjVgCLI7Kw*jO{WYM+>DzpCm$!(hu{MJA3yM1P-D-&n3LnF$}AJHx0M!&sdau7#;8 z0!QsLrP{;DPoXNMO5btOWugJQVh z!Q*XK6ExF(Mre4k5fk|{rEsv}JGS#?n(zwKl5w7YOVo{wbCtHa;bxqp*#mvRE}SEjsF{s)4Ph zwI9v{fM6>T66lfn=Ww9|KrEMN$tcWyc%xcL>1YBb{9kXmytO~04roqa$tG z*Jqd-r-?@nozW5w4>!+M96(ZMLa-rMU&q#*knek?f{O3LHDOXj-P7ytNZg8i~iaf((-#a#5-ekH27 zhi;pl^rz`8r9srTr*VDHC>(Q})3DuQf2x!Ah$_6@(q*(Sit+W>^8U#rX|6}oeLCGQ z*qkIMQ_JJcgHfF)D#+#4j*jcI-7l5Tr@A_CFOR>Ey+ot_4Blnb(7f_3hR}$ZX2iLn+;N*TZN+nK!~2QtbYav&uFi*_(DZ zqPPZ`zehhz?)x4iv|aW+R_tQ;dmI#lWfLY#V!s*x;AU+ms0!?DCThyFY$fUH+ixWs z+LUjln7Z$6rCNltY^PbJ*l(xXm6UI1I5q8UXSxis>^!(x_B+|0+vQ9eeTREHx&9ax zk1zvC9Cq`=87p>^C)oFQAKWa~y`m(2hrQx7n~J@XEcgAr(!5aC{j#DIhyC)hl8XI` zs;2$@O86j>^`NR@*5RPKWxL{_rsHD&;6ct}JB0U>I3CsxGgcnfjSCzc)+6NEel*PJ zJN{^#x2gQmwCsNHqj@cq?Wkol#qp?hx1{o@?Xc@*j7DE^Yb`78KMbeKOJUBbvhkk zF0DEpWp6$_9pf5eKO5(pb2^(4+NnC56dPN3J@xJ$=NutR`s)0%B2)GGw5s5b^DmkQ zcF-AJgIB-48roLxQyY8y_%&xy$?i695Ub{%Y?E7kvFOzN<6_BWh~x6X&3bjY;<;0O zx$1j~{BilsACvQHEtu5#YCW8(=4vBa@aXD0Oo8)yGs(dDdMnMg=6XBJ$_j`wjb{ayT95@eSLquTl(?-=CJwa{q6D4Gvx2{ zx!1_MtDTR?``?#8Kcv~;<^m=*{R4Ji`h!&SP)UcoF+`37AklefOo}~V@&?RbIRH!=sDY zWAsLi7Ee=J#)~;UM#ju7z!*ZA8w}5z!@lrAiYH#%CGx z<0S&kBNNWvXPIj_r9wkWldc(OS-YyGB6A~??rmq;$I+!?J4#dDi)T4k9dQSD(kH)W>QQ}QLy#9Xw=SJtl!y6|LfT`GxN`Cww zADylLiP0%dehLd$EuteG8J2&DPFQr&zlqM%#5|m0W(B2D?SC7cwn}5h|JCT6*jqP5 zLHS#nJqJ($%22aW{wM^ITL-B>bN{IjJf`Uhh0v2zG9xS`BXFKsF1H-h_Cyg2N1iKk z7Y)ZSNaau(9lsn%Cc|uE$0FM9%OF#_Z;v1(zqwNhvrM{p@gKYFh zlJGkCmem%@L{rJ&Z8FzAEI_B#kRC5RE$9#Cpr}J*dAl+Gf!l1_YWVcqL>Bn9w{N;D z(`Ym_?mfGaR+)UEvOz&s*^K>6rD5EpY8%X9s9LigjK+3RF;^?lx`E?(%r4hx=o1-y z!23ftUZ10m!_ocOw@>~+Y^vpVW#2-bk&KMKsV7oH^!TJnAhLYxTo~`CY&N6+d7<*Z zpt}rKHT`#Ym;WK5lJFnhUH*55%JMooRlA+qFgC{Dkv+)6F>OJm`LmM$_OBMBBsYAA=x+xP5QC{Ru(V?*e|!n*IfXgmGN_|K!=1q>YB=T8P7FO@ST(pc4aS;NJHIGyKK|$)xon zs^B4hUh7az(En@*@}E@6k6V(Tr46f=@TC3+KoIhOf*@s3Ol3qM`JWIZiaEmL?=M3B zXchGS8kfJu=KgFIsK!g-FJuDo=w$v8NhNC?;KUd^=*#kr6PdNmg zTJ|I}m_!Eey;)OA<+GO_A35FbPZg8AS$@n%r(PiE)2nMlSguf_!E}n2(Lnz-gX{&W zoKa(?e!O~TWU;XJ{(PMA6l13dq++od|6?x)s|V*omHXNL3br8ow@(7sH`TiruccFI zffNs|!iiB$?Ek7(;U9?0e}owahROWNjH_{jHWLo``yQC_b{RA&^M}ko#EflI3;x24 zm5CI21ZBd06uUoqqT3h$=BF=JFm^WsP<#Y4|Tk}-?Ab-9Ye0$3pFk9s2Y zvFt_{^vYL-jbG89HZ6!}%r$M^@R~@fsrDAPEY><2v@YdT2Dh2CMP(QI^i)=NoZk%Z zDqrZ6!e!AR@BnVUJ&MEDz5DRjO8C!7Pvk!V@&mz|4D1dPl}QC$LrHw#2v(S>gP{bt z%+g@!Ok|v+pGbqWUUrod5Qayk`dOI`5cM!9&-J|UBZ`yfco~b6s->&+H5uZkA%<0N zPo9z=uRja!?JdtZ(pa!wnjfJlOTglp7lbDsZ6=Gd;>ou^C3WDa%&vUvGPdj|Q=LR3yp`1M@1>Bbz7dI9Km5WU;X*;9a9HVP9(mhX z)bw+(_KYQdIsym?yueo+MgjN${8`NlzyLA}5}$eC3LXy@<=}Auk$oT~63^1# z(8&c*?1?q2%pIi_O=pjpA58Gl@KX@flB9nZbHgEtHA1LH_#5y!mMK)?H2vAzw1f=+ zF%70bFoIh0B@kgsfDJ}<0XSI%Q96-giEZG{)V*uEQ9_sCk~SH7F(_%ee9HLP#H6mrUMMvY??O4F1^@Mup0HK8HRkc9Gf+IY7li$3;PL1Yw4RUpmv;S)e+ zp1%?VjnFHr9|}$t{4o6R@&=9BI;RkXFf`h(213PP`ar zEEJ(Ntm3Z)z`3O$CL9_Fa5vur-D{8C~L&!2;~&6C(}f7>NOzfc}lN zk>Fr0H7OCGXK&KyaoM&&L4Q0Ny+`Sad(4-|fZt-F~eqZoH3(ZvZEt&iObxOPxJxghwyYyh3& z(WJ4bdY}RE(?Z4o*$>2)_>@9bGQ8`xzHq7JbS_4r*BS9BNSD0lCBwm^ZV|dcEd{_z z=oUYV)FUgrHEM-j0EIu@#M)>+@Y`=pL%ozGY=NSHJ2Kl?3;}p(-do`}ufo~2{pUu? z^8l;IbS2>>k&1pbTKIa0HgU6`<;x2SU-g?wV9;QWrRbyNM2GmVFpDY@#MHjkA!j&8 zplHC8fZm87cJ$G+%+pOF%;&+O&8;(eHU-Zs{GB19hyZcsH9t*pXO`Yb*rRs340G{t zZ9T@Xc)LCQ%=bgjuW2BS;Bf7zS_6+xid8ofVcKe%*Iw`ZYtM7ub~@QTD_R{ZyITF6 zFj@A@4|h#dU^n&CqkbnzGp#7&vV!r-aN=o~IeY^?H)M}Dpgha=MT4&=9g!0P^pq1P zLVUM}^lgru%R4Mff@X-l$1IRrn|+y-x_^M{sM;l8m`A{$CIrEbPGMKEf{G$MymEUa zC7Ye~vlkTwy<6HVJ}*KRQSdSCrV`aq5NktwAs-0)_!Qe#6kWP$?D^5NLhugvgz>a< z)mvSl?NF#WW+ITVA!5ZQAJe`6f<~d`_`NuaZWJ^afr)jpR_7RR&9ev?wRUFAT0+Sn zw;DwC8bLL~iou_hrWR*p3J9$twS6K?TO^MsViFIew|L=eO^JeKzNW9zqn_0hHSo*% z)mFVRAz=iuxn#JFp#`tQr(Wl(Auy9t`^wZy3ZzDX{oUj3wqGwv^2eQNHxa?GYH32Z zFI=693&A?8)j+8+PGNw*t_y|i^7Ic2_a9kU@-mjhG>VoQv{f}bZKCCEcbHhkIrtQ> zIUnXMHq_pWld9yORIkdklZ}Me6G!KPJO&o7$(_r6Pv>Be5PF26!O8XXC5&>#ExGge z8!r6zhF8wL?7I2>vaB(6PdKuk@(YU+;{n1vIfDgi9U@<#e#roMu6=1-?8meC(icLN zg~ISTz>pab@`1O8=W&*T?d*n!{s*^NgBLF&u-}HSyET*i>U{lHZt!rIzTFkWJaEK5 z5Uma$B^nU!Jjxjg`^4E;Ll6h4^o+ zonEsfk%29E=c$vYDqU%iuLe331ShU#z4qLDXYLK(~`UEZWbo~B~EfHF6qR6 z>rE8S0u1jO23ZgpJBz&?j@vAY+#`r5Z;hv1h;Pt_Ju1f}Eq`{j9?$5Nz?`0dcZqvs z82>08i#E}zmj`Ct%iM;DMIzS{Xoa!bxZ?P{n8AGUBG(B?Yhsd0i8QToUU`@_YgoWF zQHed8G2UcduMj+~WL+Zy!}Mgr+T^jqWOMuE!SBfyN+|>Z;1@d)x2XAW-6$VkPnr9meM&zvY{e-&>g zj*f-FZlsI*|ef;{rzS0_KbYR^@zBc!8rd1}AwTk4Pb(aiM^Bp-@JlNL!)UVxh!MA(XsG zTBJzU_+g(-kzz)Xa$AvV285Xlh&(P*Bd6D7E!GjC*Yhss3`9l3ijBearu)UuE9hR3 z7i)@?m>3t^MwT%00If$$T*ymZMM~X_OWnOoJu^zZ+e&>GOW)s=`jeLhij)N#mxX$l zg=dsSwv|OA7t3OA%3$Q>2_of5#^ovASZEckuiiLZ7#kT6@#p>0Y>NWD34Uw8nXr_u_+9@DV@(M-_#mnZPl8;Gj%6xE+qO1joCDLnvwq zMQe#oYDs)*$ueun+iNM8YN>8(X(;OGMC%w#>KJ|Mm^15G+w0hu>Ns!fxG3s*MCIINK^+K8TBJK5JOZ5`B^-ziiY0(B*lLmR82F1(<<@N^Er3Ure22F}aZP7+ulSX}? zM#IcT_ZoBb(T0!3SbOITEa71BHLS{ms(~2gQ>@~@$t3@0u`1d6(|fbO zid7Qj1!iM^u><}bdbQH-skBWu|N8anU(mOcAgN(*IME;XX>aCz?@o)O*$Gc2N04|r zGwcbjR`3)V?ed0f`chV zrCWDnW6z((9kikfZCPAz*5(5YK7w0?er)DRdLXAJiG{C&-%tIWSoQq)Kq>V6Z(&Gdy1qa7zkCc`WH;`zam!2eEIP&#Hz>A;r~LcDrqwN`};KT z{L2Ti>Y6yfrlj1)Lb>KatkMeLXMC^&ScozRV{9Lo;vgSWT=6fKe_;n0rVwI?F)#TraRoH~jmfgpyn?~yBIN2m)E2&G?dYP2lIHbmo+KD0#sN0S! zN;Ram1^AA-PWQ)Ne*)iSzV1d9W#H<@dg27{y}xfi?)mK+b?kjqS2p$sQ&f>A_ZWXO zME(Kibbv0dgIk(0G1_&MiMro)gud_aWRzu$l4pYZqbP)}14_v~1$_XEE#joO=LjjL z7`JJ8`d4mW)OkD4zbGiEHGb8WnW*04BE9<)7dmtqQTL)Z-AdIa-iJaB{FMVncdiJ+hH zNOS`RmWJmus#kiL$`X(jKONxGeiJoZQSexaL5?{m^0i}8!73uHlD>^Q7DQ)ScON>$ zlyV~G$pfLh6)Ko2dt>O!P!x`lD&M)H7EjDmL`CqhRbrJO0U2LJg53)={V|b{c3AL~ z=^Ec^b2R=z6bPZC&whFlgx_&vMax+}dUsw3ndZi+l~C%Zo7IN3I2C7k4~!Yb_M;!= zZ^o(QP!oul=LRgR*HCJ^|cLqyZniCE3$9Xgd(R2)ft<5h0CAlZUJN#HT zV~Wz2`MuHB+$;`+uWG`8$cJ|dT9gK(c+O#U(-u!Zk7y+_6tZB@*s9`HjJ{7hPw&uX zVUwDl#zLV<5*V;!i{SF_hR%qKJlcg~kEWze_Gdm5b|?t+o_?PtT`0<59;axmoxjiV zNH)AQhoNCQg0rE(sKcI(ACv{PaV-Xlvl-LNezkRnm1nRznqqSsv{fW0eG079zg^60 zYvK{NAegN@7cuPR9EN|O1aVqfPYsF)NWtV-tkK!##w;&BW|*bH(GiAXS7p^9uC zc^COsYkGOn=3V1wTy^b?$~q&n^MZo3U{5Bg2qoXkj$O5n-g9HC7j2iF$1xv$cT~RJ zJW!phiI49u$G+X)Tz>lYND=jsAOt|s(z(g;(^Kw^xw+OxPm)j|iuC!~2bbMml1Z*m z!K!t>GrMSN)9Y+>r)V8zl8t1Dvtk(YEa0$-i6;3QTgx3aaV^r&&Hi zGKZkBR(+@YIp2pt#uLoqWu_Q?IieX`msF~{#cFarYB*V!(mcM!>2p11fmfe4q`J+M zc|EQn(Cv?{9j@Ktg&ekvJxf;e)~*sTn)IBk&$%4mk+{8{^2cjP{>l!cPb#2+=)?1- zs`U4=PQ!aUcMF)*_LNO-rqd?RbFkE~9$rjrPSt8C`Q&73j6PGPPSsdpFtM-Se)H9W z^V!p7_RYX<@39#99~87P`zE(HbKQ7N@DtSt27KX>JoR7jLeqVtY>}E#^QMM}p;r#y zj7K&((8DmK%^foZo8$CfHFT;SxjqcN@)qdM=Qy;{(r90(^S2}qSvk67N z7EGHcI``#??(_bbpMey=*S2Q`vyiyX^v=4|ptzQPruPS!xfH8WTl@_ylP9r0zrWiJ zwp4E7zJX=_-eg8c#)wdcHbD?g;_vk9REJ4nOz&pzii! z&QuTR;g#-afldp`2i&GLpm?s~&|PIb;$B1H8jN~pn`F6Lje$W1azTTW-W`6FxG8t$ zw9yK;q{f7x;%GyGQqi1<+i(=JZa7ALvp23!T!5z>tveSn&8(99Wx5S@?62RIZXgF^aUzcnh$~e+BGWQ_o)JADE8IS0a?{OASg^4+ZB$%6_pJh z8m?!aJr1JQq(AM(f6Jn)70FBieN;*FuFrAc;#pxIm<1$`vj{`o50gOGVfOzvHV&q% z3IJ*41|ykGr#!SE>mUj0X8?uNPsbh~aH~L{JcoXXokw|4E5MP7LHBp(I!45j05p9~ z;Ko-RGz6-oi+7^t2SES3jg9vhd{`B>o?xL5JDBhB$UaDUpy^*){Ve^Eh`{031fC9k zpb^4av3*ws`*1J#K>_jM0l*9?_-Y9F^6gqX*s>~l*gj_j33GYOGWpFY_$`v!V!%<* zV8IkFXd8k7=-ogiML;*i90LlV0N^OLpqzN1DV7DxLd<3TgSjC^IUEZGTnm5yPl8zfm}qk0@3dM_Fc3Jmh!C9?d?!ydD-aq7Ecm$~mL6G%IMe%X zq(z7!S%?DUeK8^gw(C9w3$`x{Qx*!@kPAhFW0FMIXrMH_!r#{- zC8%K9*NhR&00Vv|^^+mOP&1&=DO*jW$; zH#F|JSv|>(!y>c<}t9c8RZrh0|j7cY638fk~CpJ zBQLaxHE#|8dRB9E*BlN7ENQ(FKV}Csuj#Lgh4G2&eXM3mmMshofiuIEiVjU~n8R@d zpod-o(V=Mb7BFE=K#)<=glBZrNOJ6BpwUPgIv}2#1|;PL@bXBNbO9uccuYW(IV{lS zy;2KWQ(|2JL0B=z;R!6ZK^2qbT%>YXb zPxWgbegL{8JYJm{v#r3|7y;F+wQ^;3ZNKKBw3tUUxD^EUX%?|`*vNnSo z^T3l_Hg#mI&lVhCFoN+l(K^ebph6xRsgci9yx(4VZVX`G!o217+(%ncW*1N?7J_3* z-?3EWjJD>=d&fENd1^h5p~i|cP{Lggi6dq<_qX*-qzS7Obf*>$QFRCh3b}22dCF%b zE46r_3MIt~V`0Kjv{^y7p3$WsoCyR@W(2N>us=2u>J&-k#Ct#gFWy;WJ!U8tnT{U=x0Ikmfn)O}BN^pXfjNxCblsn_%-_=~AXpjCCkFp+;i{lv?18x97-;25 zH9Meg$h-COqLFo>j)rcZX!`R&mgz3&TQX?a_}7fF6${t26;hWWbl@Ia-)FMlAV8S2d0<55LeF zNB=U+5iiVLP>Eysr@83ZFkB;~A<(xXIrO#(g9*;B2zN8l;}{Au-wv9_1Qud?OWj0S zZ#VRo#W=3jhBCG0JT6uwFYXocISx;zph2|}sj0)n&@;ikNdII#l3JAB*nQmKCKC41 ztL{}sbhb$k$S~(^3rcA-#>00!#FccB7A@SJt}EIL1)y>J_fq&aVJN2;jO2{$f`)`M zDi!<(TiRz3HP@A$+hcF~=E}eGKkP5)651j|Q6Tdgvu;j{if{o09s}t8D-<1UWLje^ zpuk(7*m1kCRm1F%=7FtoA@yDJjH{o}pSdYAFo*2Qi` z3GE8N-j+1}yp)$7fZs@?AyuIyhblia_UK$M@5!`S`;5l;4v&So{6{R{z{g2bhJXZC zFa_M>6H@{j;N3i6)Z#dO%cLK@)JD6>#cVd=Qysj`%bJg+mj1Y)Koi%M)X&7p2CQ5^ zlb0P7hKDKQ8J02r{?h%oaQrUK2k?H_Mi}0svOJ5O5k3>(sA(bp>(Cq{#Y{OvuXXJQL>g4OxafizBkNZ=XOkln!+!=V$b;raB`+HyE zz$Z7Oa7tgneHN__>n}!V5ipS4)fh=Oh#s2jxs5R0cDJ@c(BWE-V!f;LiPO@bCe1{c zY)>0td@&xJ#z*49307Ey+um3(f*25A&^gS-eta2Qwx!9oSFp&kw+o|y0I8~N<;=cl zKCu&=U?KWptzq`s3So`c{$U0>Md|TX%g?<@j7_-O>xJK}U5u+vCyQS8tn=M0M)Ry! z$e4@SoO{e`*KC$oesjJnbA1A{Npf@V#pi>cIC;Hd@iCi^?3_<=pHJ4F#TlDV5MPMe zo|iwx6o{Ws>Ria0u#tk%(lF@qsM_+-iu8z@BL-rbuPD6l4xdhTWzc3t z{2YJ(!e$zoEd%3ntUP{skFh!^fW=YdGWbL0aAo!AZuR)dw^Q+N=Vsq7{Jvdfe>=Q0 zJ2X)!D*_;4m}*c*GbecsxB(*`DO^J{%D(-8ybfGH633CtGpg@;7+B8MI-0ZV zn(`PgH}I9szeA+fRh$7{yx&>z2Q&T^k&@@TN7?RwS6 zx#_-&KVg1of`o`o?ce46SYyrGk>%3;M3Nh38zJzhn!D0OJIldAJdU@_m7nQL6Pl(Gm6PIr{=oi0yrVLWzAR6~4 z9-LNPRys#HJ8w@fUzeQFXqcQkzm zq)yB{<{5!N$c|SIgi_b~x7D(Q-yLl(eA&^+lM2CmYCN;6m3>FkGoJeK+m|54V)bIcWjxRxcw%%9bcxHRL+nauD zN533zcJs4}8djLXtZ0SUmH~Hv?tDX*?oDq44_Ln5vp6z05ZeXfKDX3@;ze#clu>_R zt%B39IAz5=355d)^C^7&+CWSE$vnkI@H+>EGFQ z&zwGHi(@pccQN}AD#x75QvJ0$S7}qTc&tmGm4!N;&TP09@9~zM%w~?VA~&9(Wtm8j z#^NMb&+em!TqDZ}2SNdd+T8*rG!=FZW+r<}_84+~g6E0CZEo{P->V2|4d#zMm{@F$ ziXo^fJ@v{dxUY=nsCC|4j``$9J{nKRKl2h#{LG_o{pwD~eW9$f2}xe*+>WlM{??!} zOc=hBEsMe_K6*~ALk!Ux>el7Eg~yDeS|p+149gA4F_mxW2y^jtCo4^xzdO_dq&-#8 z(f#a0BB0CNO)Tm7*v(%&L$ljoiAG6DEbx@YikN}G;g=9lzuXYTfO)?($;csIDS75y z$hB;jkqy1@k26Kva@Jx z<=A}-Lz@vh(;JPpMY|;QWDI%DKuIa7Olf*f*GFYo&g*&5&=h3%d)almr_(Fz#^><( zG%HSq8PK2@3aW;iKQJetAAr$~A1b2$NyA+DM1P`vk-JRgU-6_)I z?gdIIv_(scOIsvBky5;9ODVQw%*b^JyX?MlnfPT}9NAFY|gib36fqSR~)yDp49_JL~7OEW1|65BjMo2t!XuKbEc3>JS=ULyfp{WaP)u zq)|VO@)m64TJ-st{@yR+k8zra-`A!Py-E6Eg41G5Veiw=w#v>pUvs{HR0Nv^_-3Yf>@|(5uY9EJfD$S%a90jo$4WkJ$YN4iacI|O#wKj9l=Vc! zy^rU7`}j7SfY1+jXS*Gj@Ayj?vgjQHc{{nJBMaG^xOhTt^ieYii?4K`D!0jp7{Z1s zUE#?O0O#|pL#Ha7e25L1eNK+Tgkn1VoSA$k0Dvi>8d6=9z;z`Cm%6W}q#JXU<5JW} zrGf+f;TRV9OJnNd258kns?1hZ;OC(H+B~r1!<$e>VWrNZBc@%8k7@&uMSs%cgLT;T zmsE_fnJ3tGrQA$8Sz*)Yx(YYy9Y-rU94Vj&{tdO-xpmncDMZN+!^o;q^<5V$bNtz! zaGZmOdVVp=Yx8GxT52cEwAe#=Mhpr%#kqwSqIX3%yk7k(4O^&U#dQ@@pJ~!w=NB}4 z^$@QeqgvF~WV;Nv=-p|1fQd#<58GHc_?JJ%SBc(dX4P*DQ?xuDH-`Qg(?UA?=MQi7 z{vh7b!luhSFv-Dfq5=S3z!Qfl*{Lv(n48#@SvxEM4LOV7|Cd&Qs#UmJBTyb zOU4?;J(}2mj7h4~psE2ud(F3;3pUQ*@h!mMBNlKIe3hz!PJ!+)xz0O!Ve2Okuf?@} zJG031@pF2psj3X7rO9|cBxY zCSIYGOHK=c7sJ}P&ccF4uU#%rqZwtvTb3X!7N($L1J-KE8E6`-x^&|zU1@bipXra=8M>ajLsoaV9e45QY zG=`UMto4Oeg6)zhfY5eAk6MDcPtTbn2Fv}G6=~I4l!U~(WhO4tPAf{xaKKi{FY`p@ z0*aP)lwu09TnxCyM2@TIY0!q34}aaS9^J+5)w5})ANMGS9zBhzxSEc>kB3W7s11Gd z_ZIE8W36QjNr%W$3R<-wSx>)TUXzn3rC^4FBEla;exkp(zzil9{xDSfim5V+OEN!= z*yi<{GXR~(5Vz9PKCnA_j0WaIvO)tmape|#?nn9>>diq|R#mYoc@;=R%bKsn&v%e7 zP9xZXoB9%+nPRezR8xS|5SJqbZ!#BH($SfUpxqY5b7>Io8Z6H}Z{c~0Io(OEA>4u= zo*C9FHN^C!K?v^gO-cht{=(sPNA(k7nYZm)uYWeDzBw#MR?l^E_+lDw)*I^Q->%9p z8YUmR(;2(QPSOsl@hI$k$KUhk;%lst@rVse<`9Xa7R9XvPv%`ol|)q3ton8(9I_P; zKSfRbq9oZM?GPzjF9)bxNI4I^I!B-Dog^J5=9IFwR;xk9Qwz5SL!4aw&b)2r0KZRuX+}S>3^bhrNyk6x`zmK#M6gmJnTV_UY4wpP zE$vUzT+>DsO18!?XW2i60Fu?}2f+5Z@uYqKW&@!bWL!mjqQNuw=Mr~e4|UvPW3@Ys zwv&yEMp;wv%-DM850gBIHNxhL>}e#b_sM9UCM-%)W_%UhIWONUrr`NRf_nW{I&{49 zm8KO<85kO;`KCdCP)5UArl$Fnh8Oc_wdZGcS-Ey;96;FvC>_L>*TFl`&Nu06@HTiP zRSs?PxkBykYH~8Oc!|aniONX{l9#*E$*C;GV01wDNOQ8?le!O$uiucr-Uj`GX=OCL ze!HE#tEC-3INqt1x@;kxIY^C~?dJJFS7|BS@7h!{M>oOJT_{=IDXR1QA<=ik&Uw%2 z20L}HT--Ssd3{ZgAr+wRYd4MiOJN*ELtk7ggai^6IQ>DhbDT|gyN0MMeR}(Iiu4CL zOqtgjOjuo2L@<2`!@ag!Ilw3Qj!ru4FPe z@gD7_>)pK3yCt7oaGbq8(yIXJA@Lz-@ASUXL4c13ep|f-LLpdUlXF|MSWrlC*A%D~ zf_L1F-3K8se&Sy_OK=Av=5NI(_&~&7IN#1Q#->jJ{m@XUCmI8x^qTF$dqkC?Pur)@ z_PqUu>GkWO4_K;`o!|AD=?$7ekLrX-SY+oo<3uoZ3^*e{o_`Xbhkr!Vf#5ak^Gq8s zFW}R!iStj-QbSXBuMI@_KYf`i5rE3^i5Vg63N_?wZmmLkI);=m_f9hbHl)BTE zRMh`a(>k^Mq0SYzna4<3)<{LiNEK?N=4GTFX#~zN(kM03Y&FvAGt!e0`E-p5U6TpjqSe^4&)90(7`kR`eQa!VXKYJg zVn=Uc&u`)&YvQP5;siBu_A+saTy#n>&X6+3Tb&hy8h1UFk-sxkcx>WxXW~m>>PK(t z&ujiEP-d4&SJ7Kk^IO!&TGZ-T z)Ilxky(}6cEgCZ{no2F2TP<4pELx{6+SV+d9b2^DS#%Isb{boxy)!I<%9Z|HGI`Pd z9J>56!?L&3@>Q$l>psgj)0TZ}mi@<;19z5#1Xe@zR>S;OZzEUTDU4E}mRtCSFJ-O9 zGOWf+ttMKnCi|?Wrmd!BKaV_?VQ~7q{g6cIczK#1`bic#uLE6xLKk(`W+L?$F`z-@ zP>EynaxduTY3SM-bp05*v9OAC*Rh-j;4Q1_t|WZgyo2sQt#`ew_ad!_2-cP8=il*L zFX5-ntS-7ISf3nQpWa!YiLGt2FXyhAej|V$(a$T<+gy6t{ED=>%CPxeYIEIcbJJ&Y zJ8g5fW^;dRgS@jrefFR+Y@(G}Bl;G9cy%7|F8pM-#g4KCW!mDD+2Xd@;`Q6&*VzJ1 zJ|T2AmrMJP#OCoC>_`Rd$mHzEb?qnw>{R#{4u05P$Xfq|8WjPIY5VQyX6)$K?HEq% z81LZvw__g!b&#_8i{!oKf~%nfBb>JZ$eJ2?gxCF~7_x+Y6l73*Orc z5jqGnIEV;1h{`!U)OA3LSv!b(J3NYVkjQk9EOU^Oa~NT@=kwMjTiEhn-jcd^P#|aHuqs&pW%~7l0QG3QwXWdcv#8L0w5klys&){Sr z;AD8>sNOwmXzgU;?PMCYqitRAsL#Q?&dKtb8utgCdA2=5D3fpymZ;H;v_cB$DaG!A+vt4LEN@1T%(KV67 zx(U1=m+6WjP>f7W+)wfDPc?B3PQ>z=ONd-dG2Gu5n4J1D<{HJm-`wMxZ|$~q;gZl3 zQz8Tu0E2R!-JbTlxv2p&irh+0+{*9WDhS;xoeg~vpdu5H50!hZ^`TTkVwJOdL#BIU znR`>4dvm{g%Zz*Lx_jG+`?GuZc0!L129HhwkLPk8UAi7GtUbEDJzhq6^kjPUmU+Bt z^LX9w@n*)OZ{4H+#AD#zW025uh{1DM!1Jw~=ZLQ7J8RGP-kzgTo@1Gw<7J)`ZJv|; zo>McP)9aoyC!VwSo^ym=9~ito3V3~z^P1Q7TCnz7^!8ec@KEth$%w0W)edwrhq zT3h#8Kk-6t+jdVf*Fm!kFlD(Ahe>%C*`z3c70=PZXC61-#`}2P z`{d;01|x0j()*mj=evN<4>_L;U7w%UK9}A;zoLAuGJSrR`CPa8-1Ph0&iLG|``n-S zAn$zuM80T@zUYF!KzUybJzq>4Uo0PA>}X#Mb&PlkH<0?7?Od`~G8}iqHy)8lxaW&C z;ERv#N4(@qs^{y001?UiQTq5ji1wq(@}n;Iqj}~>JK#q*>qo!g$8hS$i1cG3@@HoB zXL<1POu(N_&!64KpTozWGuodk%b&a4pXZrB?|?twtUv#Tzrd-#AktrmC_tDoKtwP= zR6YRtP%l8tCP3UL;8ApdL{@-gd4SZj0O^4Mnb`o@jR3jR0C{A90#TqMW1x~?pt5|R zie8|q%>_uxUk%$!JvvaMJW%slpw>X3_H3ZeMxgF#pdK<1LKLLW7-S$AWGEkGq!(mt z6J+8OWEvf0mK9`P9%S(>$Z{aaYBmVE5oCQDWP=Q{B?`7<47L{xc90Kt)C+d933ev( z#B~dP(f<^jblDc{>Mrl`xc{=U&ex0cTl`6|FHwjeV~D?CNPv7upk7FjO$aK@91^rnkyKZCm))x7y8&Hw7@5{Fgmm-E3~*g^vSc( zrvsrSv!SIMp=GC`<;c(qqOeNFuqwf@vkF*smY$nl7|wKXUHMwQ55zkw40#*eG!WJ@ z8`ioJ)^-~93>nr=6yCuY-YFRVTt2)@FZ_i~c(+gZ%joc)tnl9Q@K?{mUk`-8nGNsT z2=6})A3z4yAaA^IBZdSc-pWUe=taD zVip-OM-=&iG4i8e=)EnlFXnaY8 zyx?EA4VmC_F%;aGmkwD#_fk&pzZDLj#XNW$7;SZMICxFL#^};SV5SdeVCI6jlX1hc zV_1b77NZHaLLjgrr|nHmVx?f4=zrSUV+rQ{b89d4#TPZv_kV8fnSHX6`j@ReM?GWy zzi;g|8t0k(`>nm+64cgSv15k+U$^%5@&m(+#>!A<<}6wNv9Ce@o!suQ0<8S zYHRPG&df_szMc-;f9Gv~+(Pc@I|S?yIUBa1;hP)64`@CcBIH#O9-*|c@>8N=E%6)0 z3u-wVrAfjU8GrDUPvm{e*_PkPMyE*16jBP~Y+8JS?o3H)X)0h=5_tD~MiEtynNere zAs*zkmv)xFyJAJ1nLCW@FPK^O=`R{bkBBW;NAm|E?DM97z9q~$nj1l-SBO`=lRjU5 zcAq5pwHi2^@oUXv4+(wwF6xvX_Swq^f6H!O4(I0UmJ0=kA8ox_6Z-3W2^~2 zVUZ$m`Z_E>^63sKlSX`hwOWouUQ2_J_j?0qQjTymawY&y4>5+)NDQ`>Ejj`E5SFG8 zOI1aDsY!SHv@srOc&tr74NIRF$(O%u?SU~8+EH73j+J;0U}dVA_CyKoF9ZSLw=pB_ zOq|b`bdfM+rTL5#)-j+4X%4s#L#%^UE0E>KetasAMMo-^Hyi@~bsdroA9IM2lJ`zn8dCb%)grlsgBPn9}Q{o5W+hBmriAR!7#Vnd`0`3S4JtC+V8cZ zTD92~%`}P(GhOp3Q`sK}J51Wq3p2LQ?_|LxwSsconTE)Bg*Fn#-rs5z>+@g;ud)~O zDTzMmj<0?4#at@$?(6hB`sbcXojmvl?d)8&xctB-G;#Xf=XrabNJ5JjR`GJ=~FlWE>hP z!* z`cR(ywHfnWP&4FfwXIZRHEZIt$g3D=!N zc6Pt0o@VQ1xmjLVH&Jif+3_}fYDRqDtvB5B<^0k5Bln4Atg1Cbe)mx0j0oFjyu*JTPo$;=thP^?ZXaiiEE1$2KSp zqAx#eUORG|N~AGK()Fxznf_+|CkefLs&z}GO{;=%Zxhp7yII#irCFZK{DXvg$@uh; zhu^Dn+eYrVCz&trQJA*vTzmSUNa((9NV|rWJs+9M;x5)p|H5ycK`0V>HS?$*+aOsh zM0)M}Oj}RR@~Z#0n@x~j&+rFNc;%B}@>t`Sor=@bVS=|?RI?Jpv~os3m7#Ssm*5xg zb=))lB%$S($v^17TYg>H;zp5B7u^8)mk}>9)B~qOP$ATth$*u2UxPoJew5SR?Sq%D zrVj`LB%iZjVIT%cbR&n|OxGq=;Nm2Uz8EHKci;A`rR>=*HtI%y1E|m7xKW!yx{Psv zATHI_xJV2~Vq0o!aey#rFv*sT87sqegl13|=AIUL1d3`|UbPZpAqU_|oxw@m=dLt- zn9fFvq}v@TlGQv1zv&T0;CG%l0|7v)vwl&M7N+ar*Xy&5FV7}c=>lU|>zc(Uo((No z0cf-Le!6PEaY~$5T?6o^Yb`Nz6!vTUt&KV%q64y7E!dAj-YMgU#XojT?d;` zA*oQR^lae%*4sJ(U7KXrcubL^>*VxU)adeEeK81uA~->V$on4~Kr;Ylsx!a?fbXFY z_Q^ET5*y#p#ZCqFT<@!7r5>gZfnz5J5mUve55g%;V(385lnA(k8b%8M3ojcjPCYiY z9bh{LCvt_efMT!|Vu-Kc@^c`(Ga$*n6GKlNy;&R{S1i35obd|o;TvPE7O%t=_rL_M z1jfK{g-;|!snvtp2n-A`nu}HO#kbu|^yLc4w*`dspwap!+1kRr8bE2teK^)&l20;l za4xt75EEbulqdq$VB^n>20!3P2{B7i8B8)F2DU&_L#~3UHzQKvKw+UIVd7*TFo1vx z80nhSToe?op4JPFl@Us{4#B8`rM@XjHUi-1f>W&3F=RH={3H^L_5_t8-RXy<4rE?1e$nKlCzmM(?bAb@UP%1VRk}@37fL=&5flsqFc+KjmAL7Rr;;I+qQC}2W=WnmwrK1L!Ug?qEFuCnG_08BX9^XdRj z3@ogJOuV@)@`Fr~Mo`?N3}e@f8A!$o$mIp6KdVc$>w8=xIHoT=(-jQ-$mOEmo{Ogd z#LNcHzeGa_Wx3#Bw)UU^B_`i8`a=Mw2XT&TV*%e7F6LnFm??VOez*t@KEf7rCaEBB z8Dt9qirL0yoB;{JfSF(UDz^El5TJ^09G(y+CJHJh$9hy0%i^EQAW z*#+~zfL`Od5WtgpY|IvgVwX@rU?Zq=JZCN>6c2z=zWikHtZ1eX4Wa;SGXtpG#^M1m zv28I^D?kmP$LjS7iwzl{lbzQQ{A@47-H;|gY+r!t*<;&ApxGwKgel%P5p}={%zuex zk`1J7FD`E=4(tVB_~y>+ffgV_Y}DmHmQ!PY5sjM@hz*wD*FMR8%}SkK{azz=mZ0*sq?$!Q{X#ZN@2;7phdY03uQXU)W~&Gr4Tw zlvxxzx6I)$RNx%^j^@dZ2zZZsTohN4q!dU6L~O!l3W13BI{ECNK(43x@REgJL=qq@ zM1_z97}zM0)x4a);FjGmhO3SQg<-bGR)BGYHzUwt7|EKL0BYd8(9?1AD9Y|4&m;oc z_N;}*Y!0`EX$73<<%)Ts3gMI_bqG*Sqlyb03)DotBNQ`?H|ic1h-v_qLTlvt*C`JqD>5{)vBKhK zu(2BV>pidQ$irf>H;X)ME4ds2(#ZrI$+46sK;Gpp^(Sc9?O0;%FX)O2PiTs3TK;~fV@g!2gqLn;0$LQ{>Sh2#;urT+FihW?$R}`lcnRKI$B&|jsMjwtHzOjRc1pkO zq;yUYm~@7|LXk2Td3OwP+r<4M&=GERfLc{Q4n7hLD8Y@)-%P=1%F5Niv0QpW3jwr@ z#;VMJD8yhoJBtYMC?CF3i5#<}#Ksq&? zpjTPiIFXpkuNgdA*?NXr-78S=R%Nih{MT!;mezoVDoUAp&fZvl2=I8UsGBAyqoRMx zZ3qh|GLff>@#rm{c^0IiV_~#G;HXU~qWE!djzrIsdpy9h%}{-C79j z@sxgZ-Z4wOt;b2QBv5USK18^9015%i=vUyJ1)Rv6v+UH(q01gLo87le)OjP^RZ&wf z^^i-UX|K@2r*IJvK#pZ@P};j+SJe{xjkQ#HdXh<$tNB6U#h1xhz3y2+jj?pA%(Qr z@3I4n_aJVlC`<*p3I!nWW3HVrpLZjfI$`cY z=T@QFEfJWkGpi9f?%%pNU28FVW7Rf;nDNIwn!BfMXJRyC?VijAxK^<>%$?xR5<_|E9XdBsZ-u&8gW35#7rC&Q``-6GfzDkRXHD^CQ?Ws- zpV#psGW@Yi`g@zhrFbYp9(&1L5|P-4NH6tIE=3qoe9Dkr&d>1AqUZOAEs75bZtv^ z-G0|io8tMrPGFra>-(X_f{H3#b zy0(E;wu#%niNC%{c)v-^@P$u~G zEt>NkYr;MInH?uz^By~FKoP%ZWr<&M<70oj+m0A%LAi0)qM%wCWj zu|?aSVcx#k$9-o8!^;|KQ2N(|``w(f?eg`nrg8^L>pK&mR5GG#(+Op`T-X3)T8=y?>FpN6)xTMInK+40Ti3_eB}Lf*CK8PLAx> zO|^(tnuo2%?spkRzH4lpHtQamKl@2K^ixRh$MD1NHVq7UzQWqXX%ZrCs=&^N@1#Z< zGuQ!&2hsFwK&b36RSprVS=~X5_Z)&3Ax4TTg!lfGI1?#&H}8X6u18!uhfz52Kx^PY zM)2nYI{=UgJ5T7KLkMuz_U$#}8M^*WA^e6`51C3tjKsjbFrBO5CCZWhffytM zW%^YXDK;jBnD=%=$6SjAy=rE9kER}XE@!o;8{=_8DF?pfu&mi6g*7w_>mB!Qx@BGt&+o zYwcq@*Qzkk<>6v9zNfZTjM4r*3W(D#eg|KdI&&CsV)YIKa7YxK$q)#zy4on1-o*BsaA( z-(fV2Wov6PcF$3M%q?b6i}Q#d*Nq9tC4&sCh%oU}&9o>|=}i$qt#glHdSk*N$YMx{_HnB8LYrVj-ePyDc(;vG#3=02e~R@4e|o2FYfvmRZUC^c`JcjnpNbuUt~;3<{_IVo|a8nIJxu9_P~vGc*U>RP%81g*fn zch3!ObH%ddj=D1kTeQaVQNfYq+cZqq6skPv$UYqtdY$87rPlGSdyn-h< zE8;e#AkKiJSaZ#osj)Rq=xO^EcZ}=33n@TEaRNXL5UL;s+6rLWB>6mWr6hE}sb?fq zIvIUTXn!6-p?5jQZ(({(tw6eF=osfchJE&ioKU8be@ox_ku4E%HV=E=8(aQk7`!mjwAg<4Io?$LBa> zcS}>VQ$GJ>Fn@XZmQ%6TC=@fuaxrXVMj(xXLUNuF2~l65ZU5WmNCAnBs4BgGOm<@5}w~g z(lkD-fU|V9>o1B#BASFv>H7Sh=6DGuDe%bUiba->OxJ5{aJ5ET-6-;$b>DdKy<4nL zoe|zc=7~a@UWk`B+2A^|hnq3<(1`4#1P6p$*gL=hpY$EhOXE_*(mlI*OIIqbs_YB~ zir!+Lsp5R{4lULcNh=)bY_cu8@0ld}3fPcgezs5%HP;9S4uB9Kxm!0<6)mR3oupr0 z3creY2cXRV5iLm#BNys#ip_xgA?`Q3J&At8A=5cOVY?zlUc2VC)Iv|LBMaM}|0f=i z4^UIy{a=TqMsR{dIba=``&Cn6h1xPU9{X6l5fkXhvD+`h#4o{%z7aQz7EehIEUi zsf=r9*0woiz%l@^83@Sl_-Q96MFUO~GGIFS2=sikQk9I^UMm(yIx2#OPQ5%|PozYm z3p}hWCsZN4%Uv8dL5nRpeoy|gMO6aZ|M_$`W-M1RrZ3VjujLv7miTsPn$^XL9HeMF zSOb50b6|2eF+|>sZc&$>zqIr)nYFfI)EV;|!ic)tJ1)UDf&cbxKgCw5{qH$7dPkSoS`*HcKft?R zB_5y8rDYk^49`*E5qH+pMa={z2elJQt~@osRREqZ@&4KzsBN!-@E$RhJ*hZ|&gN$m z8(~2X1sURfeuy)7`l5mtw8Q)(wiObWo17Y)@Jy1#uc=n{oagHT$ve7U3?G&!#h5n zQ-+z%CC`ND8Fevwh1Zgi+AU%(i5-PiQz%{&W_^RW3SWK?K$;v&#Reb+&GUcP&$cpu^*ETFI znn>B@F5mtIJ4I^_5yfB{tgP+s_dx|SP7!)zjTvY)9eN*{1iuEf)hz=jJ<%I(lk>N1 zN3%H2b&Ws(l{In-ygW1umx$#Y@#C#FYNd3WH!I}m`M^ficf^UcmT@l)_TiM0n38jG zH)(inKUnK*Q^H(h%MdLZ5@et$VzmPTkYgM%Yi>nvB5Thxb3i6e?BIigWCH*$$P*p! zLJBv1@QZ(s^Kkw`KodjkAiYw~0BLgWSJ}?NzLl?vO!!Ks?wkaoV&96G92UNx6;S}dB5PVi1%~FB5>gN? ztCW~f6Gm`V(Z+9-kxwiw9v?6LIa$uL%J4>6(40Vme7NIGQCV9>l^n-_cUVX}O%Pv+ zU#t55tKd3b6XEhxWALjIc>F5pnW~ja{*NvQ-#bWP?}D)E=@s>6JB?)W$XazgEjLS< zYn`(@gE60~%9N`0cAr{JrF9LVBL4fn%2EraM2~%5dyHYI)%&_DMHk0NsOvAQ9Rt)oAL5&-j6PRT-HcNYYf%pmOqJhy z&+$e*3ZG&lV8s1MJ%$b(*pi_Yt{$rm?n>tKHv%U`jCrV3MtI^Sw}3n06v&s!xbq$0 z%%d??E2YK?+OKEe+!h>`Ph(^}8jr0s@{~)nYsNl1XcQmO=GSl+ztJc$;vAn)=cFAk zG14$wPH8YJ)qq!)%V^f5(~|p-)3Ls*xd0o`PSk_P>svIN`C1xF#=PH5q>g|?R>tM+ z)!XQ_Iz3s)M8}v{Mmx2^94sOPs~X}p6E8}%Ud<<8>w^mUC=465VsBO39hJpDXDA6_ z4?j$5kodEMYNh?&Q+qT*dn{dhyhMAVMSJp%_SBU2^k?mvBkkGSKRc-L7*?<}1EBUB z6|Ec@@qTjf*aUdIiD1x3d`0_((QCfXQ#w;0r)O7nHjZ>Qw{?(TZl}NC>u$;De$}4Y zveMml)ZOva-H*^c2-H1HpE)ei{Whh0^m*pnk?!$@?#Zq0IlkU^480#0(5d1X=(J_R02SRc;M?#>#Ix>4vg8>9hy$PH>gU?1y$s!zQ zuZ{G{`}FCi^-<`N;aH#XPM?Xu07XJs_zhTP4cK%H*r5g-ItF(#A8u51s&1>};`O^d zSrVr-Z#)eIjtvCw41@>_h3O4N_zguV47p1u-j<{y`??IGE+)BK^=V}drCJT8`wV5K z4Q1Cp$?AOSwfpod@KYH6#D+5cJW9m<0|{l9HKLi$Tp-s{JXS5N){|T_0RKTkjZnH( zU)DgQbe@M`UQ2aUyY_=lEe4B%5k+l0mk`{%)!3rX*mBy~YRwpWY;1jJY(rpTOK)Pw zZ(=WN;-F*V2t^$$nK(z9xMY~PmYTS=nz;9wcubpkmM$to^$dSL_4fyB@sA^t`Dj+g zyd#ZGk4^rGgtnT7_nAgan?|mgMje|*-B(#rvod4w2QIC1*DALNtz=n?rdEsQK8u!Vi`F%ZwquKD zcNXmgmL2q#o&1*1Wi7jOEMGt^yD2PrrU{i+&C@QH%Z&+Ms!U~h{R;{8T79XrLLdI2 zO=YZ}Jd;`3{LRl-0G@v!p=(wH^lc*#b;Q@q6Mw3`>YLbeCHNFE^_E^|(F?j12}NW; zmrJ25t+GHe5$G-6I>_TY%p|fF|BQ}y#IxS&e#&H+Y+AG65ZPp6MjJkS(~!hqP3}? zSFDq%QPlIK*YR&InGtjseaWe@TkNu5eajd6oc~V}%6DlmEbvvtSw$2@LWR^E#JnBI zg1?H%J$^BkBsT{lIqMSTaFAGckUMdZ{~HOF6R7_%z2&d%VBpB2#^K24y{#JTDA|n* zF4)${bd)J@)b`$%d;irancyJ;L;~5?>~=Jib28F(GPZUSKv~kLolGkVpEE2dm0Hdj zmMcQZGSSKU#L0$(NEDC+y?3$~aCVS$c5EXw)!nV4N0Crx*G%V_Gc316=Y!V&AfdaR z5q3V5w!R=2e*u>OIhR0Pmmq7GU~iX@C>L0!OK6!(Ser|Dze~i7OXRvs)QL;_12-gL{>Ld$pW}x4E}qX;ww8%vWr`yMEt7=+Qu)Z2bE$$M|#p=Gwu#!)D6AkzL(I)S${h#sKczs^?()aU1uK$IEGI(zZ{4)uS^4>>%^Va6^cM{6r{bAkv^!{Y*((CO10SP^u zHt_%n9$7WOjT_-O>YjMBzJ#Z~L`Yv^B0myFKT<(IGI>98z4Oc?ZwhR8lnSk^^QQ7S zd{FLJe(6b@^^Iosyo5nyZTD{^G{j@-PZC;l>&O0IkYs z`?Fw=fnd+sV6Tl}?{a^a)64RFKi{Mef{g!X68ejBFCem9tC{#$6pDlj`oS4tagPrD z1tFAZz{M-p1-T!#!Zp$_fPYbh7}_au}vENb@V{Yp?j zGJJ5!nT{wTXeE5uv}#B`;+@OnKWk0~)Q^@A|Fh=&vz(l8$DpZAXyo%O(Tbcy+FH>wDxT_17ksYBXJ!npXs}m-<#*8{FF54W0%A{r)sr`2FqW{ z$=X_%@$U1rss##hl(L#Z6=SU+JKddeQIC%WyqvMBu0MC)y~H0~SXznX32FcGHkoXXyrswQ(|{fGqt+Y!PQ?i_ezK!)OKi@G=_Ioe9>HfWRdQ*$ zGgK?WCev7Wugi3#f2^0g@%2Z-k$8-K}va+@HD{x$z;^M?4p zD<_jKS^WPhCpXY}%KcGJ{=TgKKPe}Nk!Ak-a`OM6ZN**v*6Oe2WFNYSzn7D*^+lWh zPvvCKCMQCVmV(~fyrYh(I@FE&oZ2K*;FS@ooc!ux!g2Sq$UFY-l_(Fdo~_{5M!gHU zH?3XCmwA)Vxqq^v@}Hg3n{qdZ=F|R?SKm%wPs;r~9WWxm_ZjyYUR1!)1qdeF77$73D~nX0Ynqo3#ezn*01wPX5o)AbysI zfz)`XWD1f;lr;*hX1SuC~8nYX9EB zpi~mu71Paa-Y!YHFWq^X;{7TdtvTZQ@K6yb^^HQQKeP?{)>}IA`9_;`2!mMv&FSP% z!rQZz0~VR{F?AR3?^C=R5oyol|0pMaRS)}#_!T_yb2((zl4m_>!17|NP@d%1ZoSWw z>!arcp*LqCKcjAQt(UfLFO&~or(Erw%4?wpKC6V3H2ZaE}Nca%3XS$=KybOq(N+~6d?VK5V6GW11md$}1 zpDH;;O2syu8XxG#W&|0dgqmdw%CV=TqrDZGN+uVliN}>S0#S6svL&2zR8(Ma2eS^e zluaS#NGk3a@bgs-1r`uf8P^dPTOWhq-fq-b9HRi~ z8l%C2qbc z#YmU}zr2Wc{Qfx;g01$krx{W&QAPAI2n~zy1vfFw#6Pe5Hc5iS{+-$dS;fiis50`) zu;S&144fEr-l;1fYts*=vWH-~2knUo61ln8Q>4@szq3MF*lN%v2j$5+;Z#u%nQ3me zbZ`s|VkCw^nN+ci@*2c}9EJ_R4m*4#39yL8u@3m5h>3cu*Rjq>=kv&W1KRH&=!jz| zbi6Rgc~T*Qq!`tVmBWmW&feACS7&Lz_(IggoGnJxNrE|t;D~NF$mVd&)*fjrVPPI3 z$X{S`Zeb@c3CngTjHh@{KK8(6!YsbXuO4^Yg#z#6r#Rw@w8wo-`7#wxf$e^e#iwFO zD&2|egZ(;M@30jg#A**BcXL@WZP|Fpu5*l2U!?WYI~ic3nID5g`YcpMX;jBYag$msY;0A$v`|e{ zK_#a@>L(+?w4fSii7i2hssnr7S>lN~G38!8z(nSK1V_sjVGfBSx3}JdfFlN)rK?c| z!tW(VoZBq4zsJD3ow;erH7Omi{u!Rdft|a(ArM$-hH|0sFJ~tZF7_G;_Gk8~YxwJ<(_C=*U6T)`Q ztfKWz?bGVHpQ+L@qsG%$;;30hY?&C=9-SwP+>P|jUgUUy1)vg~&<6W+yt_+7n9z_e zm|r~KlPBO>(JOeYYVTvdo6C%niri)!*_EfY*!67_)b|H?$de52j_6xE4R0k_z zvjOeMmlrFK-aYE)$_R+i-@DZ7me>7Gm{=muiBx~7$C0@k%gVLFE|@b(@X((k)M~73 zQZiLSv^szEvy6YD^=qG#vL{OfeE7)UVX$A)_K}00EZjm&xu_rq^{5Z9&Jx zzF_lHsrs|rtj@GjBbG1M%gt||yxU}B@jXrcyrlc9e52w7Hv1Z5p-tKcrhHoST^c)u z@Jjl;?<|HzX6pfwOP%Qbd3M&DZBD)46PEYii)P>KKAQbK6Mp}rf~ap_UGMti)BB4C zy}m=!+3UsE_dnaS`i@-mZdO+BFMDSDPC{mH)^DssOpuWUgd4n}IMLdEzwlT0yk7)L zvzec!ig;u`qOEfM5wU!9Kc8MfLtp~Bjki%lA ziehMbV(1Vt3|BEsRIw})v213s9I#lfF&X@#SUxa!$YQLJ8PD2-xP7~rhp;$_qBtqD z=%em9xvMw@s(2-dconmFHINc7EdIrU%03b~;qN4x41vBkQutFrT zjs#d!B|29n*qbFf!xCMK65V?eJ;4l)h(up1HVvwzK(nM^SQ4x#DXb?c0+AGTl?10s zj+ID`H%m@LP?^AzQ;Qfydy@H(Imww+6gd(pbl(&6lW9@cPEUGLN)Rb!S1A=#sZ|oG zHD;-Gu+#=HLvc|m|J&5Aj?^})v`&e%F0-_5SXxg}+N++lH;AtKK#1S3}l!MArRP7Jxb%T{0WPJR2)C8&sT)+nfE@ z3I=r!sbmhhc@AZ04ps4=6^!xdw}|u!L=KB&E}MDoUn&?py}77sbb;TwLezN@S2>ds zks_ga5(33}QYqQF?Rj#)^AxD_l_c|3%=6Vk^TEaWn!OxXuBo?NX*%YqdN_}n57Pf} zBOe_Vl6&x9K0<#PjQV{o$yVfJKa@;~Y2pYvFCU4f6^$j=@Mn6T%c57+)!<+Iwm^V- zIK9!ALnmI`hh{4Dd9_NJluneRIVqQJE^{2upO4V-8lr@e*N~c#MzSQe|Bt=5;L3vC zx<-+1Zjcb9yQM+8ySr785ReWD=`JZnQo6evq#LALkxuD``@8Mp+536+e&6q$GmgLE z8snO4&AH~B!BbH*!_RaR1Y0G`H@jaM4iC*ps%9#bBTP3hty+OPr=NffQPV2hLzONA z&;@s^K90~nzB0WWTXKydKNiWk*f9RkIqg`O@~v~aA_#R4H6P^grvI zzP3oN8Ke1~7eI9Nwl$in@x0G1!>oBHN$lEXWLSO{hr`)G&?HPQ;@KAO%#oK0lUktJ)ga;zcs%Ek&hD}G_i1fk; z%aO^yk>tUH%5d`%D33W|nwDQM2aEbTikMOXtxDv6Sf4yJ#5|y-TL60w9m9BPmWqaT zwVa>iRVq?6@v8x-N`A|6KnuU=eR{yuZFO5G(Iqq4{s2CwJsX>f%^M1X$H& z!*->R?#Lqs(TF?|;LlTTLP@zz)uCA9EX8pH8PDBGNR;D%Tf!yM+eMVmHgqt7wD_6P zQQj3p!+vX__N9Qld*~oeDGDSM>b_FvDKr|lcajXM|7~$*6Zt0Z`(9KiX0XTPLwroH zEmT zi-%1Ipj9e#`v!1?0)ULu`UK+w23?-GB?4@akk9zN0Q@^NV)8Uwgz)!a((_RShSc6s zaLMpM#wLO&6rvj};%Im!?GxC-j;S|Vu!BZ2GoBPH@lZFR%)1x-e(sFq1A|?soLzy?hTh>ZHW;XR zSy-x9UKmbZOMH~!?QU6xj%06=ZX%>edEQ@eEO_XT8Nd%GgV}0Xt}M=M8z9B>f-2$# zj)$NVm{*CkH8Bk{`Mokn-p6y^XydkU98dkrSG@P62QSb$>NWb4(n=FLohZ0N$OhiZ z8z+kAQ1JSs0|(~J%w7qtXPR%r$&I? z%$E0aA__;fWutugnlD0fM2G5mwhY;jdMIaHrYMFQ<%yq)zEV)GDpjtQ$PjH^&Fvz3 zmF$OY>q?;DjwDZ0XhRGX7-D8Mf)Eu72N?}KJFh~jYU2Fm2bms{$zkL>2l`Uj?x}k7 z0JaOSVt0{X(xX@srCXRpp|c2BB7y4T+J&rOCt~Q^%q(6P&(jlTdns}DCK0IEN}MI~ z4fw;t$AE&yrA0h)-l#6GQ zH6wlK_5-D}n~8pp=a34YQ0UF>Mjf6vHYSf_VEB~w4?R+B49D0C%JslBw$X}s!- zVrR#B2QHV1a9c#lx%GJoFfYyCQi|ombkJMdkc#F7Bl6eH@`n!u+H^kI=lTd@p(z$=%Ys zRLZ9jK`y=IPDQuEvm2cV7TL@A*IJ#8aqI{@M(np!4UOxMt%~E z%&Oq+vq68^vY!l5Uo-N{GT8gpWSwi2Ij(F2dui7dxy&*%Do}Hj5=azFrvx9l9{Rt) zHPx6t8>{LsFL3y3h^i>^liAd}eLm62E1eY?l7!BD{>2crWukRHHPK&DQQ5a;?tDJ| z4!N?bL&h9PTMIHoRo0C6ZQIwL&+dd))~$Tb$Uo_?Y&Zsu(C6oG!9Z~?I&?dr7~~vi zIgVtL{GC-m-8|r9M*g<>j^al{R8>3s=Zt(t9`??s!^`0yL(~Y+iKAPsW#{>d=n_4J z3@~YQX<;M|v?zsQB z;r#N0yV}c1h{DM7o32D&e0A@!22R?!ei@;;$Knbcy{qc?llXd9g#OkDeRbS~(y-$v zck%u<@T8L*{dPB= z?{d}X&gI(M-$rQoDtE*Q_d5@shE$p$b9kVudth?7^VwZDLK{0L$(R6yA zV>$miia|o$xrWW0Zvxc=-Hp#;AQlM(03|NQKfG@W#TSAvqZ}gXia?i3vCXn31C3%d z=E0}d|*wQpF>wWsGgJhdt5!IODO4sT6a?*!5)K71oCf zu_`_Bv~C(pmp&Yx3(ooMO^*-2yPQh zl&&sW>Uqg*I#;Jk@@*7*-JF4&f6{$Y@q0`rs!-Xp2`FZe1HnW05>hmaO*-ix-#lCve6J3thR(`KQ zHz9Ti6{TKFi&8aNOMm&fu4sJ?1(p_7o%A2W=Zcq8^u0)(>b9Z)%Td& z68<)dL2PI>chdJ36(jRWo3)}LNLjVP>vI>kx9IjV7UH|*nRXH{NLqJQBnC6(QxA`g zc8gVLPuDZ7P?q*!qA8SWu@8vaBu|h|+nAki2QLg38YmNy?c6P)9xAx8Oim-AfTxTE zRQI4B>7|ZP8Z7q+As^oxO4=7;Wf2k*L}1wy%6>>Q-Kjs*T2x-Cdv4b%a9bUSd{7l1HAKQT>sVNKv{>e^LF%hfySG<4P@Ny*Nv;ryAk-ncLbe6nJ)XmyeRc4 zLvj|EhZ9EM>x%ANoh*K?D=Kt#;LiV4S0p!uNO>XDco8(_#&;F6KERj4eBuX`^a=)+ zQ@TU25GDhR8_%c!?q@ddAa3}8L(A@X-s(+)zCGlP629+Y zAV$rOPuQdRbaxmb#y3U2`VlzD4xKIdXFGoUh_n{ePG16OEAYjvi6d3q#bx^i5MeGI}N|WG>XSK7H?1q>Jli;pUc5n{u zhT8X%;2&po@b2wCb44U2grVvbMB5AVJxH}PUnLj`HxCM0gC*HY6%-e2r@xVtMuxRt zA|ojADA5*;T!@NPK0=WrwyvL2uB-b{Vkj^_IGxr=qDOOT??qK_I=w?zkM4R$)CO_N z9lz{o6|{d-fleb+5_i*+jH3g)z#?Kleu{~L6N9whu4X@BCpeRPMPk5dYCrL$H6Xo#&VjiG|iqYL88JvgN@*z3OnUbS9nuj^+ zeL1R?-J=Cghq?EWa@9K|$4X)k^NeM3HOIThDrye%$F(T6S0u-4rVb09^yTUvcaJxm z9TvJH<=uyonrOy3D)N`f)5GeSXy-gC4hzY9NFg=Zt$9@PvM z+PWgmuF^JqXS|`mPV-wgBabOx>yv9W? z_7{_Wj}~{*N-0|$sMh-)v-YG-zKq_=08tyzGS1&# zbRRXnPber*Cr!GIN7s`@0si!6Rks<3&cAzTZ)> zw(`T<1|5iRD0r{`!m@p`?<)$1Bk8PBe42Ov;97fmAw6aZcty}06z@f!JshKn&Y=^#+Swr?W^ytNW#(RbHUJ~K7vrO&rwD!<0p|%o~@8eaSQ}qe!T_O z)6D`OhK0?-qHeR7BcvU8&HJe#JXr`610}Q+@yI$>2i)VOpLT{&@>*UjY35i>i#9)7 z%gQX^6wJ%tKHFejMmpattDJD!V!!8J8(T7N)VJLPbLV2G70cpcx09mqVy~C|!^QrW z(moIho-~A99?fi!+aJI4`vC>7&NeH*mi8TtTL3RlS{fv;E{+?wj<2}T!65u8^8tUU z>D9?oF?GI1?w51M2ch7z;Yw6%LwDvBZ+=N*!ILK$K29}wVal*At(N(|PuB5}M@d`o zVkP`|XOQ86`@=1SniN=~WookgFTbOpcpJ6mZlJn0HlVb#EefMJ=ssfVtq$>arr6zJ zW9d|!@y>R(n%xk~;8ffd@eW(0;!svSV*F#uLM{*rZtjr~YNT}t;OvF@OQ#WIb#;nz z?uCa1r;$=fbV+LNMZD~NSZ|mjfnik=Nry&CNuk`SAelv=#ga~~*43?Av-iB{cN9F^ zi*7>9VDOXZ)x-H21sC6ArAqXfXevEQsmox?X6bwEv>*2lF_WW1qTf1pKYmp@lXJYQ z-~L~tAdKXog+XbO_gzXstnNWy&Vyt?NS5$lqu?)u1PBH7?OI~Kq2O@h*}*?R!E%Z0 z3lqr}>R(aNG9>pC3SLPjGtw^H@F6a=K&xl3&3TD@-5pa<93y{`lH%>J-xfiR||@rO-oApgfrtNd=^ z*SnD)HZ34sT0{N$@y^1}7z0{%p(#IMOp-(z-hZ%ZrP>zveI&h2I&?v#_dmy&e{?qz zIK>di_6cLU(O@FJZCcK3E&o?Ht^WpN{BkwBfMfn3jL{EL@TBXY-S1@?|9cn{?iU)jogOp1%IIC%uiyFnSV58R=IUFEvN{7JYzfl_;~ioN`7TL#RuTlG3aiD z{^Xta@rl^HKSjaG`(XC%lg}6vrDlE#N&zc4U5%h~4i zh0D1@D6(7h#=xDWhetMDnpbLL1C5dA=l7mpP&9#?Y#KmICxK&iHbHalcmRS4hvz6> z!(SoTVYZ?|F>{b0TJLzB!xO@ai8rHxHZ4l&WO%jCW=zng#Sol~Xe8c(GqvN((VP5z z(@FsV{ltITwB850%W@Awr;4{pCS(Mn)(~S-v9!^xgUYft<#>f}{RPI{7Ay{Z(wmBZ z+}XiFU#n`>5 zENL<%=Im}&v@E-VU^1U3N~uZZlFyq~0PWiD4;W+PkjG7~Y@Xd~$Qdcn>q0JNOeK>h zTpCNbOU72&)n~p3>o$j&Y1c{l9b+ERSeNW4R7jBj)usg_S!{}S@M@$rQ(!)3(2H{< z0sL{+b(@wbht2}GJQdc(x=edpl!r18-XQ)2W6JDP87yjU}!br{5H1q58KE$ zr1*ScxP`A_cuZ+KWu|{&{-!dSp@q-7Qf6VsZu%*%us8(JuX2ttWoO{6`v4`!yies5 zj#(QDe2%#guEh6g&%U&aEelu{aRL#v(q|iL4S=mdgJv-@p&5&sSdr^%cLH- zaQVPXK)5#aO6KX|=3&TF*KvziiAQs9$Df{b-<9L_uy|GYeH&?fx;$XP_sX(kqc8RF z?JJ$DD+I!%CJ<8m!wbW&Na1ASLeC-t)DstiP0shNs3t1PKe zFXL#*n4-HtNU*eVJDp?q7FhdZoGf2O=Vh~dWh+@6jb!{yPEO?k z<3Tto2AQnQ)aWmqoMnhPA9pSrge9sVQWc_dv#ZLPY$&ph;XW$5bw{N>ID%_`<48IsoT;lS*#bO z?Kom?l5nU|EMEyHl+<9*GLTtmJ??9QbTsjh;8bkV_}emI*+KVx891JEIsUi|DDOdn zmI18(J&@kvRW)x(-oUY7&57(7$9zF@x@e*5dUx5#q~OW>c%^NQ)nvB-&z1Ddg0uC! z${&^iuBMC`&@vF@+Q${%0Mvch+x%CA6G(Qc*VME4aC!W01JmV%%ASSylz7UgA&{U@ zF12U7C(HGMyjhMfc>isoThp>bBWN8(Oag-u|MtaO88q6S>U$vc5(9g_8jO!$KoQ&7cakOERJqMhkXLrVrb{Tn6ai3If(0iP5K(TBsyp{8ZCq zd2wF;#TU<3^G15h`4i#v7hgQNm?!9qzm{;iei^uqa1zfZ{v^A6`{I8ioPPe|KQ05G z2qy}f15PwFF)9|b{x{j>3*mH| zbik}+IGs-C7un?#;RHpN$&>Cs5Dk79*;<<^zwrn)Rg*bG>{r=EMOx4tvVe>J25<6!q4W;)2j$WS5W20Om8PawGlpU+4SlKmY$hwE^aT zKyA21t=r*AAR5XU^P#T;Afsm z*&|)K+~=7S-j9#Ieg15oA$2@k;MROnt$YR$Nf&tFNP$eWU70#fN;GC}BJK%nOnVnnoE{~;V=wCF0((ELV7)CHuue^DEH zQ+}QAd0|-%M*uj(6GRjxR{RPs3+`uDf_JZ<@4quazo`wMKL5_@;!jKv@UTlEwnUVM z`?}BntLFZfpZ^&R8H)__xB33t=l^%qhV0AN5PSQtz>u=|zs>hQfBt`|xyO#!+Hq&I zDdl`VfBaQ*A5N4Mi~SIs%B8e6e2wNFwLknmcW{DOW7A8p`|Ht>x9WBR}^)~P?* z!2fTxfkm-1`_t9TZ`#20ip#~pF`Pr)95<)i<<#r|5a}#R=`|j}NQb}yJ znf3dn(sjfURURAYUe|0s4h6NVvxc@L+|uLorP2!u`xm|6i6ieYA}Xp@d60@Mm7PLH zuqL4*%S7-}_|v^^(f#5VRg17RHlTamFS`RzNzVgNC3?Gb#&y~NWIWAn4QV-h=E!N% zCHB(mFO}d@tTdV8!^$Xlj=KhbBaRHnnaDJ{y(5Z~k^kAHQr!;KFw%NtR8!p=>7#C$ z#Ie77siZ0X3Lh;cd1Ott`nP*s%aBpQ+W{?ApHyVi@`I#bFO>$-X-MlO#oLBhUl!*X z@c&d8h!1u>LG;Izas8>#A9dhw`eXm71Ao+kuctzP)PXcGJ;!7C`%YDzg7x*k3e-_?PmX>>MlkmH~ii4GO`5=k1#UI^F&PxJKCohX+1lYv}3(48oOZy)GRRO{uF zMWTEB)h|K^jQW;7--%wY4xDewn9G3fL~kzJeZLdEMjZg%iEh+Lf*g4t*0-kyx}F}} zMj(B65D~<JZJ;rw2feNb*LW(1+PEv@9Za$Leygg;A!c8W{&2o^(i=d4ute0h_7qy@B zcm^=Q3ljnu6vUFb^G1Xs#CAyVPT$WSHPBV)jokL~9#&VnqlrzuD8g^5@zM0PCqtk8 z16bxKpZx7r|a7;m}v8z%-h{e^9%umOiFSu|5QjIgqKNK2GTp`^507luwj#}hyX^s2cKkygK zkINZFGurl+J9*yFk>V|Kw30!|NJpZVO%y_O)kVIFDMZM{wk>#PmS%?M$v^oAV5(Zl z^|s7pFHqrAJ4q-NcLQmLiGEd$ul1;1$NYf&19Js_zGj2yH@n2;6EeavoJdI-%Q_{l zIs#vy%k!4K{M|qBSv5X`3@`YX9<>UX7oV7)(-KLh{TL=e@*l54f53%DRDD*lkpfFx znVhWNU3OFLG25S<+Hz)8ML#*U@n|Xdf#3rkpsP?!YD&TAp?)7ukz`~U3BGOYPfl&| zKq680bv#+?@1Z$tJ*ng}Yvz!DsTvC+r|=?~hbP+n^Ppa{E zkDBpUkJ|4}Z6s%ltPVET#<1(SGf=^CudIhu}LUVRP3SCyD z-uA?(X5`4MJ=KrBcge<{`D;wbA4|ed0`(tD!ha@E|FI-oYhL@?mV`gD!ynnU# z3+f+cLH#i${4phbbSVEZCHyfZ{4pia{4pi`@0pH&ccj%F{5L14e@qD<>7_rWgx`Vy z|Ckbf3IhCNO86641WM`ucQF)y0*n3x7X1k<`V(06IU4qVBCrSy3 z^}WU(FQp({c&h~?AK{R8*SpnQLL($MH`?=SXgB7Xr1r?UV)v)#DcxYAHK*TiED>4^ z_{!GT9Bxd&5D$E+M6`bH^)W=8dv?pwRE~Y%TeKbU&e_??{>HU^E{NBMh$nk*Jf(c^ zPfD!%K7cYK>wO??g}*!z{g3gf|H9DB>J{PSV;TikM!KYKd^|{bX1vJnU>g@La zWqj%;W)(cUHhK%PSg%q&8cnZg+bxoE>2_R#bnjQ_4zwi_&cSATa+!&^_fn}VwQu&= zWNel=W+f2=2$)wchNw8lr*O5Q5eJ0_igZ2HOYEe+^G2&+?4) zkpEI1Lf|%RS<_mf>0&1YBwq5R5%N!z}^NlnZJlkpL>uF_Xt)C zB^6z0c(5xD$;~%E#ixFercq>)3((egpV=Rf{1R>V7bisxXva zeE9ZyEG{TSym-z1`FdtLxn;JCCN<#ZpmN4;akdQ9&`{iaTVBS?H5X&a;RJZl$&yaI zY$PZ|ToxHs77s;PD-bqCR3!)8V_l^dVl>D6IXCa_lTYUGJ+o~2cjGEhPFSv*F* zxk9d{gf&89GX}j5PXNTa(|ARvUBT0OS(VJ)XO++u?87fytFac|jsd*k*=Q_+x*Csyx$9m=%V2%?tq z)&igq@v0_Z6@w2M?yQ&SYBR2Vfgi!heXCH8)?R_)K;X@{7@!bwhS1_*Bk2X4>63Pj zYeK}oRU(peRa-_pDT&IIHhAn)*^Nka=LMGa5}os1Nu8?_fo9rernuAIkClkyy~}L1 zryG4A`&=Nz3|UMy`s@-*6OTcai07vR?#N|7_qiAoBvic#3oT31qFs~JIvaY~|E166 zY&fZ5J5@+#T`}%#BulnDN3CyNwf1bZD6~A!NM=J5)aT;VT^jQt-cTnxX1pGnt>9~) zi)=+nbl;{SSDbi*YeiY6%wP1m6f4yHoj#YUCKynk!0n57uyR$+sc2h1Zsqg3m=!TZ z4F&;nxam)ke@L?e1498Lgpl|h|BI4a{7^0h;;+O1MZN&?Px!yo;fnrX+4HoJK+>0m zs6U=+Fry_N#bM}R60j|~St<`w2E%#fNWlipnZIO?eNGID`@xN7r5P5`Z7 z@q;dS7H7cLq#L(s3G3=n(qN*E&iZU_$vvGgw>8a#TUAMKbI=#i3bJnLJ@E7^Yt}s$gDk50yU&+;_NU!SA}5$ zwa)cmrmh7JQ|yU$)q^GZaZW$P`ikv$J=3a{u5r%xTTQ7e!0mp#bFm4A2c^1=yNrf= zHH>a=@n2a9y$!)zHqy1^69Qghv%Iph!(b=0fr9T;_q;*gPWV(Hy%OMxFgN~A7)(|@ z*%yo2`;`kOHH@BV>0#?!0N#@FJAIf2)@kSW>5wD=#C^tb66TX9GwM|4QAFZ=uILW~ zpt8r`-aF40ix1^a5!VTl6?F{LcqUOcEW?hvB*!Nd`x0B0OJsFYN!xlYR@Tr}L+PdO zF8Zywhb0mTYT~ijeehrIys=7#>v>3L#LZC@1DMTWouBGDZ8UW zPNf@_XqO%PpbrLA*8cQ(Ej~GP{Xwi%Y|X=Pdu)+7J)2YDaFno?Idr75s3bO;WEqof zWWJm1>0FAFD-~vOIHvDrEGAtLwXeWonXzBH!18n)qoawM@|2V9Ry^L*TusZ1^tMNa zLMo=_k!vq*6WfX6-F_TbkP|od^4@D_MW@7?Y*Q(;r-2lTf#eyek&B60diQAR{TP%L zWe^x!6nUg6GBMwp7$U>hNeyBDcq)cN$4XP3Sa2P#qE?U*45YbzLxs z-LGReowDhqiLPVr;q!7y9ZXR$+<(Ie?wDnCW$VoNhE;JjwpB<8beaY%_GbNDiA+Mr zPWV`}8W(jE&aLm;X_^eXLG=_*!Iv~E5dJ?A*LxHnIc*)u{WaQl7}s&(v`G0>GFpq* zQ6MIBq*~%tH2RrP>K$b#p-hS>PVro~5l*qdXe70{n)XD6rOSt|PTSQ$CC6pGC5Yjr zx?!L55A{ITZT{x-Ii-CLs(Vhm4Jbg)heNNRcs`t_&DHYv84*0)PR4rccrqYo%PrGP zFmSQ6b{mpsWuWx!`SB>%z2VjAjXBlxx6Jo0IM~sF9)(O`q`D_FF!&d1{jP8aJ>bVH z#4rsgE;9=Wr?)66A=aNcL0-JOXn$U}xMtzFI!zEWGtRp*-*3C4lzf3{*o@h*V>50# zuuPA3r^J27HX#U60H_H|f8O`VJE!YD+?!QB>YJEGe*6)hyG2cXoTCA1rS(v0&sSVfO{ zRHUDx8&L4(nGk83pmhy$O08p8|3$=RD71|6tu13Y)rV3FT=wsV_{ zg!Q&A(aW&Z@6{tm_B-nX2&gDSZ2dbi7**pO)1fX)M9DGWHBzFh3uHTKGeas`m&+&ZA3HVIIlxQcmwe>jeM% zDBx;Cj~*67zorosj2`n7$4v8*fqQsa19+V{kcrJ4ocbaVrZo3=IR z9+37(B|5&w4n(t;;!l8#I<06A>u?1u#Cx^E#*l?;*9~B8R20W+uP{p9j>bK`X|1yz zaa<3EEaAeac<+iFvO#!sjoRQqvHliSfpbi&BarBUr?g=6u*i-FYKab<^Akc0OmSZ> z?g!%cUlI}Niuk#u-3Jr0F`*ln+4QQ1btLar})^z zA7|vj5<()mptlGDHr89b54KhwGxl-?{qOCL#oy6c1hrzJt@c-T;zX>Cx}OuA%XjjE zml_@85SVTfdJ|J0a7b8T;&V(`6VY{Y}H3Hyf*@sZs6Bjdt$pj5i$q8MS| zk)MtaMDrB!S$hZsZ7A(~6sZ6&sno!(=Gz?>UMCuzW4VLBv}SIW4j{8H-Feyz^Ay5Z zo3awnvTLox4o@P0va#Zd^u$V1pXEb~yWk1}HU}ygz!MWo!rlm$kP!^m$_@OrC+SPH zmL1QhsqUCJ5SiH#aKqu5s=Sa^l%SZ=mdCBlc2H#q0fYe8#3UMyCNKMaH;V8(;$HS} zCn&d`0H`@o2?yOW)!;W7U8OlVSUkuwgtTXx5X^);U=@7sRrz9wNogoP(f9L0Wb`a( zf-`%G)8*h7xD3x&wbTWN6Hv9wW`n$S%8n-$i|_E;-SY+LiajDZ*YV_ zL<8!Ig4o7`-uT;aX8AM8b*98w+7D0PAl6^9g#4(a} zGEy)ma$v#{Vmu5vAfP=Ju<8?rqaIH5AVfJkia_DH3LKic#B-(U=Ll=4x~I<}1t1?v zyuf(<94E&51j@!Y>yEF!q{SmHt87IQ8^(6nTlNys+)>en(I{MG4+M;z3^js>nR%r< z{1m%Ts}1f2-vtCuzI=uq6Vas>x%M)mS~D^xCdx6!!Y(E@JLV;JOu|~sD~*`v*s&S@ z@HyGBqU3-a4Ye~s+-)Ov$S$H%;cytgxPV7ak0ory%Sq&nZ`D-CwK}S_NU)oCV#bcE zUWwRrXv7ygM1}3UI}f8P-cVkLPMGSl9Kya^G^%P2^&ACw96zm*n2X9=Re~A4sMcwm zxIO7l$>+yYn z#4STS09rv2z-cE1{Pm6CGr&Yp^5@J!eS8~xAi@+5SE;Jv7-jbEY)^}BcH?xGJLQ6$SMyLyXNG^b2 zs|1hh42XtD^%=~9E`~wac)T%R2=UqnFP4)Cc#gtO!|`H1r4R0rhYb=wBb*6!Xv|U` za^OsfZJNtVOZG|26r%X z5h}~mYrTrJEG#JQ(X!VTgSvii)U-aYanjI%f8YxJu4d1-Ry3|weKeCc^6q`ByB+T= zc}42lg6aU{6~U=>PnGh=+5kgAmhDpYAAlWoaG4yzTG~|z4Xe3mP1fo&TGkzL4UrVt z%oDO`ty(+?jVD}oZzWKdOf5geH46CDZxS_@bz!&(G=ar8VX}+l?Op71$Z@htEj>KCkNWa%5e)xZF-2|X=Qd}hiPS)`B_};X7O_7(x_#s<&U{Lq!BT*SZy?Z`0B@RC?{^Bc?GNZ<8~crv@fQ0 zCC1xiywn>!OA6NS1nPCas0<_aww{^ey0klRD{3O&N@sB09JtEDfAI4fZe~}*KpDajhaR3 zAfK;{iX*K>APG4E28o~mPX53PJh^XX8L-CF^&~hc_OYMfXKe9^m%{o z8(4&<5u_Uf;K{HPv;cX2fXpQd%i~emgc~7)1ExvC5R9Xgmne=e0Wx%Bu;CCe3ZtrY z0PMjrAj7C(A3%0?2wGv>=@uNcMd3pxNf4}ea76lQ0r zjTSHwjAS}E3e7k=VKxa&nuN51WF71a*?~yP2;aLHL?jxw$1{af7*j$TyBpHSngn3k z0Tk!^y~iD4Vt>8$qCcn)2Qq0)p9f$nKMg*g56$?d^%6z({wVch)cS-8L>WLvNZ-=( z6p$aHBp7L_eG(S6ZyY!a$SaybM4f~XKj^XPjHBSE5Y~8uqV7X*Jb;3FFet+MTJW6XlMfoZP%dbRv?2HQXqfUTbTLo+YfwU!$V$d4KK05UCoZ}=MUek z4GP@ArnBbS%piK zE}oYVZ$@t*LFoWxAW$ApMc_e{&yK3T8@{-hXX1GauLJ1i1Z?Kb@P@d#YpOs>;vdtp+FIiy^w{|yc*1U3fQ4tf)kh%gcxPH0-*p_ zWVi``Bcpn576a8gw|xMh`<`^y)}pGrip_R-vz-1Nc&sJhCIgxd&nQ%wAAmZ^;;lz6UHoy5H?wirGS;UO`ps1wnB*P&k3&2d#U|JtMYuLL-k3Jw%9YPT8vAPXG zh94Q+S%skAqC@2*UI(lM_Y-*_@#&h6215q$qm8Ps!-T)XMSYnh3YUvK4x=!T9(n>G zIzcCT@uU$e3UOkK#$KpVNL9WE{LM_%fE#M!sjS|XXkQP%`jJ2EjVV7&M!4;PtIYwQg%6wxn;n?p zS1?Eb=qn^r^}%-n-f$T74<`oah5VsyMAFpXycY?^W;I`&c(WiDMkEqSsxh=E5d}|_ zZZ`2D^@b#^0e%_V@Ul$&UAyhY$>9~bBmsgKIO1gw8$84{WYMP37lbnv(q+>%N7q&I zH0Y@9u&oV*RW#c|$+X5cHOh<-(&;4kas{F#C;MkP0)}*I91pjbrjOriHj*sa(@oq_ z<8vdWf}=H|X6V!?g=P}1THiJ3jbSx{3LeYqbMc0gMXz@>@pQ|QDKwm&D(~;N;ftfy zd7=l@3y-=N*IPDyZ1L_jLOVTIT>6ZcypQQt{miM&s&jzYGyf`5>2=&Vqm{W?=ixOV z=jv(V#jE)s3j`**LMvzIliejhNNq08y;G&PD=Tl`Ha73nv=lOgQ9k&<=XWGzDF8i> z5LW9NR`P*irXS&P6Ev41gAg*8_V(*-V(u&!L|2jO{+!i@Rck=?Hr%5c-;7BAza|))M4xInR=IQ$~a&Ju~7<$`M3tSKIv%Ar-sG zThN(vz#egTN;5|`4>i;va~27Z!hqXIb8gH$>R1sx_v=ADje>`YGz3!~Oj<76mlswb z1{Mf@xR4%@iHF5|B+qXbxKAK-bJSMp+0Mlsu^f5~TVDwvQMtUVl8Q>&8t3Xe!aco9 zzdAMjgFSKy0nSn7MEX9K6c#(J@)mVp16T&Jn|t1@Y^TJwYGLy3W1078_Q*2HgQ2Lj z9w$h5Qa+))=}=-$=TtFdoOzi&m30dvdot)~2iDtd2Cq}M7oCIhm2%GdF^O^T!X0ko z5(pI{7cMl+bS0Z5{}BZrJ$C9@Xojq2jbK{w61PQ$&IJ$B+9+c5wuR1^&_Ee=qOKun z;}<@1l6jb6NN7HU9kiO&$wjWPSQYC1d(!%Y;YzSTND~{2q zz~r1dw^+i_<$drnE~T~Puw%#b07}Es_XSWtoz?h|A#So#`}Y0oLDm?7HA#tZIoMQXRIz;rp77+xWOFc*_mcMzawbcBO=QH~ zJl6>%ZY<#~!opAD3hH(+Mkpf_2O&frc`sCZKY2#1L^7*gv4e7)+~!6ha9=1^3CJAM zWNHtS{Vorn$MPbomx}O0>;@JSLf8BNQK5ckd6Q~b{pEt@WsWusOhk(p#}1$1rYt?$ zewlyp2NCK#cpx_i05g`BXhI4W?aq7Q8YFKSPv+Z5B=3t)M99351QaNs--~#moBEOl zwDLh`HO+HFhVB#TSyoX*qM1mBa4QgEB6!x8suUC6FoWGeR4m!?W~7>o)x@JpDI4f4 zB9ct=2UlHg_TVlg3~KQ~CeSN(nCdbQC~V-`7{+!X``C z*HO`CU}D8E5T{~IH@)Yvs9GE~O72hwdk?itt&yBf+FfPSI(SOGQ?vp|;)xOT;BsHR z%TTq{h{%lH(R;GbSGDXOGlIUDv*w7Z0a=pB2(;3<=EU40jZr!>U8dyp#IkB72Aqzh zcCFSs=y8&&r^w2rs~X<-pW8GWnA=2}pv}rx@KAFX*yL+XB4dY>btAp8s}I8N*@LO1 zMznB)UhFG;Cs?0-VeafD$T{r0mTjvSd_(fVz2jvEiv3w7fgCNB_t1rPTaQ$`^bF(A zucQg#40k;7^6ta3b2Ov8u=JsFnTIn1Ig{IWe0gRb0BqD-3Gl7_C0z7wW>&S*h%yGL z%;?=}RBxxxunIQK)APG;#M5?A=!U32y+30|G~(00O!7yPJD>SSS(D$+x^M(UZA#K21=)3vj8^%YK{DpBP8d-@w};Ts~) zWO55a=vW^v#7ZRi!0J}Jm>K877wl*6XKc1D8XIwmmp`!2anFBjeCH-#j(sSqh|-o1 ze@cdhE};4~(uPFqZ6ZoE84JF{XB>8M!~>xN?y{HL>TX=TehQ($rtn!(2Z*|!uqOx= zJzk0MWZDw~OjXSb+PfcS470D2$^&rCtyXG;-vjmz8)Cez!dBF%DE*%CiT0<5 zqwMvJn%R8tE?A5e?Co#t*^6q))=fb;bE_f@O)+YnV+b@Bl+4&n;}TmG2f{$3HTz^e zGnP=byB~g%aM;I7U)=^Oa z`u6XT6CezY2ugQ%Nyh-v9ZE`rfOI!Q51qo$jdV+Q2?$CmASp-*NIDPCx##@udGFr! z-db<1`Fm#8#2c270Mlls`@CCi*H1OZNUslK=P(wc{RG z>F)c!7Nqyt?nGE?mo@D-AIqc_PUJ40@J)ipoM|L;Ru7zg%o)+tAa>CRY-N9T=DWQ6 zr%A#5gRU^@z27=elBS0w@U(2%?>m#}HN&;*@`BCIwqlR*Xud6?BVO_Pf+h(;Ctfm z8SHj~a~DYle;Lu)wxci^*6tz>Vf4%d|Wr`!J9p>JQnY6>kg!abtpKq~X%%Tz*Mn5yFEX zrNOH%GEru7lv$GdxAh5iQaujoNnom3gOXhcW6a55ZX0n<<6zACz#ohnusG#+S^QjH znU!9l7bYMjIruX=;p{N^(9xln)glj%wz}@nHu*?oyV<57rJ;hUi71{wJ9rHA=uXyN z90z0%COVYSIR}%=fmR0Kj+4)$w43crdYs(jGjJ5I4ivUFr39)Kwq-HHxzT{kAYXcr z975Kcc;In3o{u}g7kAW`9UgKA^ks(u7b64WB+qYozw{1-FvCIzWrOdcV!B|cm`PZ4 zlVWf+ENpdjc$_e-ypi39*`1BiGaQ~GK9*Ydq10zA`SAS{ahYy}Vr1KhFD@)}Mk(@P0)iDxDi!9A7QU#-SWTG=Rw~78DUFLQ(;0~sR@`SBjD+^&2gCgCVEKomKJ=q- zT$Nbj38XmOZ+<+N9h9>gr;`G0ZGyHrPPCmc<0vN@Q(`@ ztz|UoyUFNIgKQ0Sv|(^Mg8bpr{1{s|{i9e7g*z2Kquywybd}3$QyuG;tByt$J0}N< zxQnu7o++0dfYX6T=fPuxF(H^5Ey6-mZqeExO@cHHf46~{HVwj`(P+}c=rxai`Vd_^ z_N+Uy5Y&~z4PIOk3#(eiVok+`;}Tu4MpI*fb(ponn6-4sK_*gImu{c{kS3*%3W8eW zsWbp{ugmvNF~@P{GYA_9ibU>B%kIZ5q^k7e%Cf#IhHPn~8u(-PUx2uEW2Xp1){Dov zX+pY{HISKVoZG}a^2F_Mg|U9^r}b5r%u`R(rca++DNd3aky5Vfv$1W5BW=#E}RK^}z2oez2VX1C#>cY~1@nrho{zP091 z#D{9YOwcM^n?YBHK^MraXX!EjLKptJ2CkzD&iKxwE3IHMrR%afpC?uR#~-dk1+#F1 z`^tS*XfD#V)A~@SysoXF{w_v{D%u#TYblVqn%wqMUVn{G$lRi&{7kp1eA>?YGb4{e zC9i%?o&K`yfJ8`MgG+GGJurYD{)Pb#ABwhKz(w)S;D(go$(b>c(F@z9@zqn~{zx70 zWPnGe83a>Bn;9&n>Gt#0Ne`=h>K)aJ{P`&bD<-{WaZ)NA1eM=mjqrfUKu8k&tri9E z^+j?Q-_0!bdTWHj0c9k$p3ES=aw4O}h^i^0>NTU9pUW?WW&M^GA^{8X_fa!)MnwY4 zcA3~E@4%%WK*ntmZOsw&drLueD{GL@5O2(|UI1TRhX)d)>VCQEKC1uu>U%08|0(^? z8l(R7qfs7T+S68okj4`=t6^;sEo*V*RG_YfnzDj0bATc?jmakglTRfPqS8!$3*-$P z(RT1E{GcyVn_Aa>e`6V*eqdP&U`3o{9oGMQKX+OKOe023pg)y`jx ze75j$iX%EYekE~z?Q3()xBJy5YJ*B{;3?I&Q{6dgfw`PI48FRs5a?HBSlYH~YH3bu z7<@KgV>GH{?HzI@Y~A$9T@RBSp)>=$wyO7w{Kt^YwIGf4$!5J6;fO$Qbs8%I-2t(0 z3#QR88}|XG1%5Io{5UTS%%aL)r3>oeAXDo{D^Yid=Ty|1f$LE$Jm*6m6xEA!I$n^Id4f&{f zOG)PpNj$3$>qFBi;X&M1ax|}`^P1z}l~{2Nr_e;Uf)qqHtNdI~+`GmpgYVZf7)qI2 zMio}agxm6h@kC}H_tu{&QNLb{u>>`>a~{QNf5m+Z2eB0pGIzcfR?r{8<+!}t4gy%i zrM5!bwzR&oqw#|XaPf4$;&_w8P4ixx<3&S+t$S#z$vj@t9Hm3{c7pb-T`sNdTXw#% zW&u~L4I_87)oc*u!9?Xd_KdqT6wi1RY*K7@Jk&nuFYOv1?J|cT#Md~y|Lk}&!oBl8 z1f*NB7}{DsjM<)-GAX25<5{C(@@%nR*b zg?opF1%h7w*^`lvCaD$+mDo$4&JWbvSLEM!qu!G}vdP3wE>&X93K$49NoE|4fN1t zW|#gaDv#6QDGx!nNVF4na%}>n+`!)d3EXYesv{jgJ$2|6`;T>>$yo?i-YBr|PoL6L zwp-h;LkA$e7P$IMn93f=VmR79@UZWwRk7L<>-+dku%G2 zIrW>!y{tp)BiYmj<^BT4~LK)63@(b)vw!gvE!ls*LJyW~F~M&s;0-E)MX zk^nd-k5DJ8Z(X3zPT^NJg!z?458}!BB?cn7>`=m*v_<`8ZG`IWsuyN_SFmn95dO-l6?TtzIOwwT5|N*e?L0= zJnhEaYTf+w7vEP4R0`iOFv?Bf{V?U1Q^8hi^2A@_dX;a8-iiV(!VSk?6rYJR_1VX3 zMO?q-4s;Y}I_K1x-c&f}+L2K3a!p#~RqOk%`0>5$`}1`TK%^d^zinF`uQqZJv^so_ zYq*{9HNQav5+rzXhUg#k2N9p1G#XH8?Shw1sVev01f20$U_#5PF2q|p>3Pk}@a=J| z35m)ob)Vt;%pLqukQU^+?5(%w>^eV&c>?BL1P9HP6^``Vw}J+G^plDYWF5U4J@L&w z;(A}(k+B)-S1WzK^n6CN8FT5Jm292=n~Xl|IK?Xf+lFkdS!s)j$kMl zG4KqEN_=hl1~p&kNp?=8C>c#G6dU1;h*!K?ck#G}x{@b(FP`l(-$+y4Ic3RsrJLCr zy-Ch^w*8QtXXY#Q72zb6{Vb%r{&3|UdlD`uiFdSk?P>wZf=581wH_6q1BY(ZVxm`ZSR-NyG` z{`tkiul}|j)o11Nc2V0efXVx~I-%|3t&Iu9g2|t<=~m=;flBf2$@#pdm;Vz?62a)t zj2XU?8UEXEDW-PkX%8FT^*CPUtIAjBR>L+K~1A6OqWn2ZeA#rN;}bH7g}F+*{8 z@GbBt(!2JE0kb6EbO4+n!p;D5r3{9qygdjUs3jliBUg=*Lr8^&1@b z&lp~W-``zeD6ue3=Zbor9q#{PnnB7$5psyS%qfImL+1E?oU_cAYn5r$*k7=YWurG! zu%Bzt^=lc7By%`ivM)E;f7$siI#V@JjFC}Wk{g`S6NoE5R*Mq1N%5cV{w;Cf?DQr%p=QT_B|vQpo>fzLKcp zj$|;9cE1vqq(2_7_xcfW{mFdWH#VHX_vYx%!=d+Mnf80~8m_{0My7=g5gBep? zRdk~W0SVF^sh(@$Epx)BsYMAG(F$83{rBI&DVk^7o3UC(J`Cyf5g7~_FMYuT(WWsX zsM4@j-6n=CyUNFAl4ms)OMqmT-;D3P`>xazJz_+1^LCqkEb~Kn>5GvO6u!)b(X1WJ zMR?o&W<^@GZHmQMT6S72r8*rfW&R78bX{IIgthmJKDH?R4! z&6a%%6wuH7mYs80pUmRJ**V{`4{cE*b+_rf_?*Kj>*eOa)pI{QRMdlp69@f(@g(jr z|MY1W_rNl%i2VS;8&(e4#u!$fVRzaJ25E}49G=n09ed3_nw-_`VWz6C1{rAM9f~&{ z(J%h1O5swGZ`yDbw_R<*BC**N5Nz+v_kk0E|Vw)*IK zn`4kV|5sZ*qHgcka&Iv`O5;>s8F5Cc2l{v*jPf+Tb+ROg?6Fry9ZPQ%P>KGSoO&mE z0DtVDeNZnnT&)OWm`^=yKhPx#5z?YcGU&kJ%FKDAd47E|CMme|d0Z?p-RYys8%x-D zjl}ayIr(pM-AjInB>UfDpDpcw&yh^)x5-BpJS{@{Y5sEk*w$?w@F|fX6wveqB_Tr% zKu9PuGo*f69PvHK$yWrNJffv>Va+a_+M(R}Fjj4$d6c8<bI`ImK)JZ~< zQ^Kc&$Dqf2;*ZtX3rw=WNa`2jJT|WiWg>=Q@yPVj?9+JDn}^{N5I*6nM}uJ$f??xi zVj}!5)Rx>9^5^=*XlK|l5?f$oc3U>JL_GDVN**Z(;c&%$F&O>EEKFw>jgYfg%(5u~ z;cNh9Ru0!N{DFt-)6cXUUhZqS`GVyz;~h`|NFG04pkBL}YtUYo6yQT99hmV%QEQGl zSqJu;wPLK2*)=7P7*6dvH>RGfm5L*6$)atitlMx#Pwc?J9@Ow*pqbksy=4%t*XE6Q z@wFiX9}USB)=mfurFR2&fPLEMaS$fv|KY&?J+`O%-;V8}bjs{|ZwiNkNVt?I z%L!;l67VELt(e`4`;-59Z2wTUqtfjETeee8=T*0u%tA291W5%vCAQ~g){G%aBvrN7 zWRWgY&r*&Dd905V>9Xk!wIw;|SH9{CUCZ{^)lZau^N+IKNQK4s!iZZa^BTe`WoNA| z!~R>l4cbJ_ZL9OAP8tFs_CwFAl@SC!Fi>pCWqXi5iS@Ii?wMIvjymtF!>qII$pXLh z7JuJ@@3TTwig~Iz=900k3_G8ny9&vD>+$4ZcYUQbm2AoqrjO zNotEUzNtxF4{XA;qMYBO!F(kbR8TR3J+QIX9Q3@zmK2VdfMxdnnuO zZN_r{vut-|5H7e={I zb33RKHUE5k*U~LPv_rM}Y3Z)7ULWC;+OTlhpQ`Dhw@3272iTobPSno0`^k*NKTlD< zzdLIlnD(E#73aD?j}=qDzmV^VyT3F>)l&Rkf9n)*wUzO}ft44G`+xAkugE4LT-U$9 z@uL3VtdC!|O3qiP1cP26A2_g5NP>-!a|%<8e@#c<<^JIP*L1XbEIo7oUrH163mPlD z@_y1+(Gi?+8!2YY0~E_Ak;4D$bo8iE*&t*3M>37@LZXND(7~yGx7T8ZB(2^=rY@(k z%}Nnc_GrVr3f6#Q-r&dE@-kdC=&!KNHYsW%Y6Tzo;GSLIDVxhiBqZR8fw;v+yq=sC z5I3i32Z*YjUW{_uL?AGSPp`=*q1!#us;wATSTb|Di?ULiDOy>uR#V|QGla) z$AhJ%9p;pEIy%UKCIq9czwNS!%DoJS5d)Ccani|Y7(g6aCyd*^W8cqRFUENy==6S( zP5#xR$YJ`&yp3B6FhMVR0Pd^JXBN2&_rohiv%^BRdmdwZ)_m(IbdKH>tLhN4$@RAj zzn@`D%VSbFO8nBg>L;JBixisNz|*T5picNPb{R7*wk$bX6ALjwncVEqc` zgz00+H{HIW@8f^zey6&<8hPTtgZO5>LG#5aOiQ=u$R(GXj*V+bE#Yt3ZkyE)uBXw` z@X4K>o+C(Y^c7xX=16WSd&>1>{7YAv$+*8|JJgi9EN|}ai(S!`>uGON>YQJz&Ch=s zIt2b{{72bNg>W+RXbn!Z)*{DyGpm=tQ_QsX`KQ)@mhJGGpJ8y=12X=rY!`3D+1O!U z8~E?CUE6eXt=H7StJ|9|y?CCQN*sp?1f7ecYL{OR3lED)+TXyP1-lD5euAJ-gU5L`&3s~ zw$kWx#m)V(?&IQb{MX#&q}}YARE=xUq}D+cjVl~~YZas5_d5y7k_gjEeO&zZ61gMR zjqfX1grgZ*s?=rF}$V`mNp6>h5z?`%IXcd;a%3VIpI9 z#kkk!1$4O_l!@kvDNS!;pA>Hrd$oUVRC5hk_oKnv^PDVd%F#9`*Rj^uT?RIIKGGK>UjXaxq@iEWFEgn7(GnBIX$`(I zB*rFYT}QSp>|VIL?7|L{qPq6zOiQNyB$N?l!V}s-H)$n#7XrR5J^qTfDMiO8dMN?D z$`QA>7kTy_DE;}LUGc-6I3(pKbFtv$UuySxFK%GN&{pZwP2+D@j$$`c#`uj5R6nlI zEEG`9Xct~N(Lpaq=N36^3FDkwQO}MOdu}`Nf&%dA$uIMper|^cWp<&c?-ilfpM!W5 zgL4G^L2q%^N`q0o!Dn7XXrlp+n}CDgP~t@o+|l4yv^J?>Dy=SfkhVZF;ZPD-C^1tg zGYm?SDN9K%$H5%TcBK~A6-N#hZh96fkb)U@ zg5U5-`O}HF)D`}xlQ13T@Fw$cJp;*ODSQ+ZuYul|GdV)F8K+4q(%K->);rQ3h7%|o zp)DMtMgCS(INU)#5@i##%-h-L>h{T_ zD$6@u$~$_j972+DoW&L-kbmiuf0dPg)1H5~l>g^CACN8ih8U?Qn3B#y_eCC=NR$7& zG1CbPz~P46tFR}u7uc^rl4loC7%|`)y{`9!PP7-$iWbrYoGG`Zx%DiJ$X4L*t z_)Xer1zf~$R3zwIBrHnABx*;NT@)sx^W0vfQ7Yx*W1U38V&SGDiH_nI%f)Ip#TpbP zTB0R7MkRW_B?j3gMja(4%Oy3@#jmnC%qU8&j7qJ2OKr1D?Xw-&J4&6GIr(l%-9*dW zjmkWI%e=G8as^9$jRFIVsQqusLPg8Njmjf^%i-DO?1b4dsO9p6n{ot2MY3o`s!>Jy zGJQyP3QeV6mTyJgO$Cxw_u_FSA5C&qcy5kPF;kPjyg+5~O(ow3vd*6H(pz+5zO-?f zfGfL-ilD6PrmB~sx?i-~f3CvIzS=XUda$E{LHf2Q;oH^{ba4!uiw8_jy6KzOGJe zGf^THDU4YVj8P|832bi`h>ogH@YSKmsb=;or#fg5eCF3EoYS~|T{l+QcqR}nF;T+j zCnWx)NuL!AF*Et^`1b$3puHg#gh$7D$W*^69Ye|o87!ZD(2RtVq3+CX^aII^B!w^j z0chd2^fX~fDV_WWpd|}R`!Ptu2YXFK$7VKH(UtK-`+1pml&YmdgviBf-3)zW>wy0e z&@$d&tUW9s^1HadLyBm5aK-)2aJLug$0J7q7xg|k+vb$<;=VUOO(swOQmrYDiN6P*)tpAv^yMnW)zD^D z%9Fv&>xN(N1W5$RGGi^R!asRgqsRibE{~{M-=cb0o^}nNZDo{k+2+0OIiT4%kihTG zzlvO{k_`9haoo9VdCr8CyPv{L2>^tKBTbn0g)~A6AJgZCp>%*7&V+)aNfEdk&D0*3 z9+?|*#99VVqMtAdBVrgMtu$i^JVt0jXb6i7m4pg~*B>i)oScw>Up(W~w5gvVVaQU7jQp`$R>(ML9{6k1%a6*; zlvgPGohprn@sygT4iSgiuE=(W_r2I`hjljh%7^u%j5xc=y(>T3^kXHl-ZT#+b`qI7nht9iIJLGrlcf`&#{LTKxARUq|I1_VXDHtyI2Q z7?YEw3(m`h+BpryM_M!C&HT0V51Ns1Vc72H#ovOq;H*~y$7c!aD&2REb}5s}D-KIK zf~!PtrCPPOvweS0xE-Q?&d*}F{`|cj{wCFH15Tv+vnaIlwelt+BaCZikoVxopqxhg1=k*iydO}&=++R*I*@-sK#&iS7nlDbBVziT`H)>-vW0$C;tGnbXqi> z>YNCYP9kU7!>R9ePQq3Sw|05@-HMMlPCD)#N*q~ zMiSQz8|MAH9YXnv{K2`TR}CdhvM-|Cg^m2jcE~J;%U#ib09x!C(s|C3bVYOL8<^=~ z-FESUx48;8k)-;I1c0di;t9EH5)C6lHOtBD?T+vd+J(`nwZ&`PxbjL_SZ<*uqnIEa zO?V)=8F3c#OLo6)rTRsuG=UsB4s7ZOMrLY!Y8QDH_OY-aokm^k^_K>R5&YU)(h$e1 zSBO=hh%&P@xHg+nI%bJP8&dPEepHUFMow+?6wP2r2TT7Ff#Mf&N2*-ht&yM#V*Px0 ztp8A2%R?$Pn(3Pg@XVRzKAz1)NAnpIzOyxCt(*V<_PFLSr$_p_E= zj8tr}d6x2@h5D990mt0mbC_;CBS2>n>E>Bp;dd5O-EI`MK}*c*Xkn1vrc^K#H|`a_ ze^oD5G+G!&q?ss>Yd<+@EG;Qw!%MeqU=gxM6z{!(rn$jzwS6KfInb`fwc%od>i|nCgtM@k6~}9`~?P`N)7gd!cX|1g~8@3OFbn8 zB4{u{psO#9#c6%b@FTXA*vJ@xVgI6xRpAo&!j779R{I{Pg0(A56jM^w+^A#;GIb{BvE_MeTSK#)pU#a~D_@5V+X&k2ToYGJ$rf00tb;>?>TXvd z1C0yes%4%%oyjMGbL`Wp)Xr67U$50tpR&_Aq|At^@jXOj1L#LCyL;{y7J`0w-3-L^ z{u{<;^1XeYu3oJxal1pv-b%&Om~Sg8TPQ%9#I2P>Be@v^*T~Ni-5m&=36k}w&nJ#h zD>ih!YvYM2(MCsLU zpKttgQTI^L&e6G9TKRKHH6eE7_3`#=Q2k_gl-XLCy3d3d=5h!v`{@cBboSYnYna>m z*@n&uHBHb>rAi?h=12cSKhuv3sBY9%zhv_8$k^Scde6<5Hw@d2`7TF6J$Jk6sGAkk zpR12Oe}2CyRuRcZ0pJpQzquE9g5Q;~VlOIyh2^eifM_rYp}JsedNzE65Yk10TCWg_ zwh&uaTT0;&!mE%23p;PRP#ZD=luan{TYDSn5LS>l%T*{eC8WgD-AvDqmzlLot7XD%}{7x}&h9FE$I6}uDLeC&b-aBH7Hr&Wt!tkN; zh#rxR7U{*OQ>7Rwo)T^=tmFU^8vYU~M;GA&<1-bGx~7ft%#8Z*JJNTN&%YdMvKYl( z6d8KO=V1Wfqh;}i!%2TVk42ShMhQ!B!Uz+~`PsEq=797`BXIAAXnVrwf>UuMxpdY> zw1Z~MVUlw0Xmrt@apPP}Roh!zUbZyy*p@cVS(jKPOLRxA*bZSP#&v-GSyYb!Gh;Al z00tjwW9qxYpW2HGGZb6BbNr_(>5pS*JF$AF4UkM`HNi#w5~&2gHs@;%bHB=WoksR*sKaf{Rl!H3pg!dJIsCRsFffmc@hoOB}0UIwYcC^wP&kbXGhX?pHA}^Rom8ECk!s zPzj2vn(?44J)R5%e!B)5Ne49Uq#TE)s#m$BQMuwnaxA1CH~=Bap%5s`_Eo4PdVdr8 z?uJqChORIhr&Clqc^!P*z|oq5Q#h_D0^ypvVV7ooFH2`%z0o zQl+T;o|vw>;U?hOW5JIdOrMn9NC@h_%~38;1Op1;C!saCD|M$aq*(;T(hw$06^V1b zS}vjz844zOt@?vc@5MgV;qc(0yVl(baas-)Q`0rz@RTsdK0IfAvQ$YfW+O4Gv0ku> zN2an^M2zS8P2>0FMj^H)IpZb;zb05tQ$2l=@=8-JW`mj^m%-!aee`A>V}o%%e|rCI>mm0po8jw>zBw=IRC^)5Ip=3=eVv?-oBt-hVD{wqu` zR$7B&xs0B)eb#E_G;a&fX^ZJ>3oCq|Fi{h#z@k0TRy!wrEZzR~tPYQ;X#z%+jl*;M zqX2%uWIxfKdCRV2-%-}tQN7Ypd)ra>q%-qZYlCrT%Zk08UnkW?L&r*|Bu~36F;3rj zWAQ|1_X_J^j$+ZRVu7DR8f~j{i@q?=`%!I{3BN8ev=56bj9)rG2p4?#iV}<6m|$BM z>+ZJbu9@T9j_rOq_u=q>@Zh%Fc(eP=IPlcC$B;IvDYi#Prsq*nL)RDgy9uUtv0i{f zZ>HPd8*|+6J-Bh9y1#k@H+u<9`qCWw$aDKBy80+r`<~wQ`8M@Xi}%x;^k)DA7;~Az za{9$-+u85>xhV&D#RvFJ1_b>FgmVW(y9UHp2hMD|Bq#}bed7b&TcrI5Lsa@;U4vri zT`wFTE3fuJ?gqJB+jY7a^8JP~2!=4&g$=8ROlO~B;SM|V3|aZNS?9t8TMgCxhi!R= zohe7$#7AW4``!IVjIxKlyGG2=NBr68Q?5oN3P-$OjD}W2o%}~N&qs%}sz)W}niK9Q z=_tmAEJjnika3fJS=D{%{$ql3V@bHj%dMPIdO(uu^CoPJ`NAJc*S0`VE_D@$6v6)PAQchJh zjFHDpovDZ{v-bq}LZcn0HdjgLMW-QdvB~RdEZWmbvLD_QcGNPC-(^fYPGFxnPG9AI zyqPqChD=-l2SZCIZ^dUYsSsEJGlz3ipogKu``)wa(LZrBgaHKjHKX6eXYu-`Z*a#_ zBWAbeo^IrRoP04u^HYfA=j@Z+8s?wS|89h!KZNH`|0hyy-9}F!9-Z?4NUHlcsg_zU zru~&#DhrRbd^UlT*5JOz?qrMv!x_DZyOm~=qAa6oTk5`QtSY`j+70oJPKMNb!ujQf z|Cv;)>NX|(+oGpKyTCM;I6bgXNy#6;lUk?E>mam8YFQnRyDC)?+q*}GiL@B010}GGq^Ay@Zj$wmu zG5m8j+8U%C2LB}0nlt@)nCO)2zpzMxF;;9Pzj%fDElE{@<$+ZDkMO(}^!jgjUJ_v( z_z<33oiSPcD?Ia>~LIp9_n}8J@2|=-u>;2?ZoZR9~_qsCRN^({+I=Cmo{9*F46=g3EcWY zQl5}{O)VpTCk16kcDLN8L2(2?y0TU4v12!#sB!MZF}DexFOy6Yg1cQz4jU|hec)>-R z_xH`q&aG5JGR{4ZelHW7uX&8$)}eTnK6_hm2(SBDZY6RKu~yf;3;Rvwxj~4vdfv>Z z?|i+TX;XW>lPk%N_!gYNq46E@WS+MlbtO~^e-QX_%K4OOg`~be_A?ou$?ty}A^!-^_cBl- zSMRxM_z%y~**-;=&%Z(4{~b|%7}q|2_yyu30YF$U`q6vp2-rh-Ufvso45hwMLC$x4 z>EqR3Z>ioh=D=y!!Xb#S4pRHy`;<1c%*uJyS#Ms>@AR*Bp~8>cq#R1DANBgsC4V4F+iRbL;R#D{1uuGk zrK0E1zT0BenVqvQv>>UvDhIvLoUtYCCxHZGDu0Plro|0@lPTdOO%4E< zXoB8c3=k{ZhO*r8=*P$uLm_>8v^0HTX#8jZM1&*Ju#2wZX8&VHTN$F%UTp1h-Djx) z08ibIk1z`zG{-A;0VbYEBg_V3M`jLs6-`4mlv+Pgmaq)&()h{?S`2`yMuhZFJLup} zZQ{TWJ0cTvgqCd!>7#%QVJr)i3TC~eUhhLox+jK$(2b7hK`eZJwy4)_v~?y^infYk zu%Qkz#5#kOzZcH88wuX3Sn(tYZr|m3wdM~|aqk0A6EL)c0f2J3BMtYHFPEViJ$DO0 z&dXjj>29HZvb>GJpHBv4%KJ&$knh7dx;DOMdm|8L0|0C&4y;XoFd}Y4Gmfp;h6Y3S zTUVl_n|bia=MDMN8Fu_Q!IxlKtMV9rfFqq)FwfxTn7U_#J<-02;2vpFD!D9?a>1+F zAF@R+v8?X9#iO~uTM%k};1pL6foOsVQG~S2^z?G(T5_BENj676B+o;Pnq@4;O|j|e zvnfVJzO+MMl7#568G$rmX$aa(-thOaxTqZr!bT0L=sw)h=NJYvc_)~x5NXr+4g&sH+M|RRNJ91U{3Sdi-8bVl-QGn;|2F z--+)HhTi^?wp!dO>Ht2zq;@R;Se*dcJdhj&2>`u1LGmP?TzMir%}p8p93XP-fR%VX zHYi*mlI@)r`y2~IcaoO0v0Og)f(MLM9*W<1B2P7A5M_uvK!U;4MoCy3tQEe5@RHb~ z_eKW4@N4P8rXFUumc|td(?c^x=?0hLXwE0-cU6@jWLZo$TulbWKarCCnz9MOl{t_l zmILvzTGK?;s#yRgpiPv3x~LBwJ|rl_K#?jMz^dAUm}+#8d67ECf4z|O#cnt{W5}!) z!0c=8;sBs6ZdPg3oR|{Yne&Sv7R}$2up1@@us=1#i0khvS{&%WFm!2qD}zU{dm$=N zX{CMATkc5B92?z-@$fJEyqCxG0yu~1s98mPVJkzGdusA#Y<`(_{E{}h7n=cKNj_*W zY-y<(V=kxnDMoGxkc#*rWzRodpj(f=gHYp1qh5TQK-QCmO;HXsWCaO@3lJh6=_Q%i;7tX}9f2jjFoe~ z8(o}tge)&*IPL+sz9oj0Qcn9ad|aW-%Z#vTEWkrJ?u%vE2(>~80Al&Uc;!w7&7MKS zKvimw8`Q&l6#^rIA<~S%WMQxe0HCB85VPm$&m2ucjst0QuL6ME5c-9%!00V=3=KDg z6u6NaAh#Ykc!J+11uhqe1qotfQ$t)xLwZkaszg0Kyy5%?*+*aK#< z2qXjp2{{=IXnqX=!h?zQ|7z#zO)>_7YPI){i_$y zYMXKGTteRp;${Wo01ppFXBKEK?Yc7@B7BMl*AUamzH`M4)82sX|k{rsR#n@bADG-&Y2xHVH{)QYB zm=^UO%jCe?b1gzUsTrn-#B8&H6{MwB3*b0^_RVkh$I#GAnZfKvzQRBP5*hu7;KAh= z_$;J2es!ZC6tab@TnD)Z1p8OuPY7X$ zD+ClpXqQTPcOwDLmoX<>9%o)&1Hrf_O(DD15UOB5w;4155?B$T*=80RvK88pmgI;C zCTlnCMSvS!%nDi{me-2Ga^VW)KoHop3Ykrw1+K3%FF^t=U1FN-TnVs~qf_xKPN3Xd zFJQyU&R;McHH^vj47@8~gSsX;LO4GCQo$RM!6k-%5l#~gDWfQCFnA*+xG4%C z6$+1t7`1>C8`VN#h1|Gm*KisTjP}He5txa66@x(yj3Ke|_c20ogPpf?vCAzEN}V1n z!cw3(cDfb?W7q_(xL{8+WrX{#VZ5&}-~>B3ZO9291XJ9FTq7a50@!M$7Wf9TANP!2 zE5`AhhZK<7`vO8OSsc8zuqEDZoZIQjE4+H@aQO=@fBi-2+>iL1?Aa z8d%Wv4J=Y-&{UE5L|H-PuK{_z*locOmPIs5D2_kEdyvIc#XK(?6Fj({s~@3x)Z$kO zutn1&-V#YUkl|R;^;oOW-Y85t4khw#gJC{4)I*i&510XFfQHu@ehC8U%KNX$8PG4U zQ?Gpj)k$3u+}Nbb0q8NBnA!M2#Q@+BJ;!y(;7MhzkzT|(GK{!@h{8006h>QFK>4GD z+Q`&r+lcl@*13W$Q#QW1R8X@94k{S883}RpHB;5l%Usa8t^?X30=n062DovXXS5L9 zfNO8({C#l9R@jU%?#d7U2(z$$EEqNtSPzv&)Il0gLOLGXG>Cw+W=dk3O91O7c7W1q zrBXIKNPTZO6*rFWa%o5^F&UN$VjZG7QxyU5Y}T+D8Y@F_r-%r$e%eeH2N0A5>--vH zhhh+X!A@TsPKgbN2!Ty_Z2;9sND@lGJGK}QDgdk7HaciFzVOM%Ueui+^C6LU(W}6B z7O1$9LKa-(S0gNX_WckD2Xg(uv$XX38MA3yfb+g-Fs6Zf1!ffZJtoK@pglv?A)T-k zFkn`V!JYryBlDSVDL?@?w8DUp0_KRo-Y=F)0l{j`64r#7Ia{ zp9TAE;|jlwFeZI72x!Vd#pGACm`&(5BZ6`JN}A9hrezRVWrzJF5VwdCGDr=yhrybR zv|eA=L;%2U+-d&UEvjNQ6hgBy?zEYScgFveFq!v=EqSs;KCyHh3 z#V3n!U5C<)D*T2l{3mc+T|aj!gu8}thq-8J8`Nqv80X$0qG7y4n?cr?Cb=d&FsTfJ z-G=K^k`}Myh$WrJd`4(X&slncKkS!_soB6RV^A~OW$*YhHZ?c_%S1OL8iA!BFBhG? z;52B{#o6-e9QC+cw$q%p*MC3**bNO(m9LE7Z#u$hR?abmtV7K9;8CeP+Pe8LLtuSy zs#aQ+c}@Yyx)<1D;bs=OU|Z=p;e`Lfg=~3fdSQ7I2c`R>f`>=78v5j;KF>LJ zbn@5Cnww=A#PJVh4NcEsn>3mMx?*9b+c>Pl*xkKAuMzCyj^sNs8#*u76e(OBBVgFr zTQU^PFGTLG>X2Lc5VmD626uFiK~-wrp;fb#Eq|*Gc{Aj;w5gsuFxWljixBpJMoe%M zB(cM^Z5@(sTd2Zdt2b3h@>^59Zr*?WrA6eY3juIrFWQ`cu!ayWr$Q$sHSk0yB+q49 zvJBw(6KssFUbPO!jtg(oZ^)ybGFB-DAobG301-}8;f$px*f6=?D2{EDh@W6#m!2C( z^IvqGx%8>=-k79aFAclOz^*faH~1A&m`hp>&2`$}v>HZ{I5XU{UoLGpI!WSnK&ipF z^>w)AB>){!B~Xmd5O}U|#xFVCA(nnTJk@6B3oJeSBWXi*z8tw);cgYmU1yYweK}eu_8ZY!<0gnxsoBzZdvXD zV5lY+0`Odnl$=Yene_Q+w=g*QYIboe#pTE92Y$yqs@fMf<0gzs=nCI>cD`OSn4Z2f z{qC z_V5q`RP=~Nj7J^!VJC=aCm~e5tE7%kLQTVUH%^wM#PfTKZVs0F%&-@QpS!`n48P3j z7MQ5cRoyaZZLL&pHH1zL3x$^Ti`fQWdJCgYb@-Gk%bgYPNIslk(+v4DFU&POb`QgS z10_HfOSe%!tIEFlqy5XzN>}yQ-TUDfKQbRwqK_c45|DUTu2Km|${J*wbf<30`IGuy z`P_aD&pK>VeTJ2&Na9%=L25^=oVjXtud8*h#IG3H!@)Ikof>t|DM%9!q$T#?MXcep zE0ufhuf5!(!^U3=%r+k4MB{5rdS?vQYjx!TBxUi(H{Hi~YsU`{#{l{hbjcG8ixaHC z6Hwj>_|pmA`r~VslgD{0@%pg|-*0ll*I~bZ@gexm)sJjzWQ>T98Nd9#BsjGw{QcdW zi}tvaRg#tQ6Cbn15jSd@1xEO1YwDE$nB{ja?t9m#g-}Qo|FNhBlda*I+%d$__Jt`O zzXI=>#q1DjW=Mvf?>rXwjaNP-_uTl?x#{}3IqKY!{=!=F!q(!#KJdaZ@51TRh0FSd zE9%0H{?bG8((~!1L=9uH`TmQeLqm(p0MsR%{wi4VD%9dCEbt1McV!uPIb8beeCjfi z{yI_eI@#hnHSjt;@7jF&N@4boZ}%nkhwDPgn_`Qb(!iVYN4M@@213(M%G7f!=x^&K zZyPOcn>DVg@>FREZ)yW?yHU42^ml#qw{4PI9mh8kYq$NM?k3jnrcifo7I$TAd~x(Q zGlBPudG|}xceAMD>n-j3u}}A#k`LP!52@?-A5f5w>zBLh4@ann6V%0C;N5=S-61{d zDi3w@5%q@e%&aY`@L!sHF4RO%)sc zx2cXzBMx1RU=I0tPpeodg~x8m^VR1-nis)$M*o=Vnp}65<_`>Nxk4VOIUtofjj!fw z?3RVtbt_O3VH4l*7Q-lI`;K-x(o%Z-{V@qyO&9kU>rqqfb}Ng&ZAK`+6XaCAi6PSD z%*VjO#rqb<6sA)j8FaX)$S59 zo%A0?1$D434 zhjpz}o?!J=LD-eHZe6oB(rB<)+lkMP^={(ySf1w13SrNfqZ4a588PWIX-%+W3>#yt z;TA|=K6tY)FjGtWX@Vg`Fi77}Gffp?e(Q9#2;en|vaHM}QEjb>#Ox8BY%4S2_&@s-C+{A{E?9$kgUHoi(!KwBL z+ey}#2}qs4VfO_;bdWsV-f%PxZsYws4Q`*-<+iT$fi@M}X_Wbj$G$F0)+)4u=?WQ- z97+2oXXGAcDVM?hE|KyKvxp#CMbF1BNuR-fUdh_ij_lUDQmfAB&4SO5NT+kMQhz!? zumQue<6mX=l?}0C-(-Aev3OJUZH3HxOi;$nfyvG42`7%X!|mkhVb7gv?3_>Y%0G4= zX_km(59|lRR5LpSy``6*L(?CIT@QNl?ZxB*uEGKDRcd*{s?!L>LS7~9KL0iRwOs#q zNl=0P3ps)j{@11ai}@Cutt!h{a-ec6*IFg)m+Gk|2G?_Xy8fU0^+(^QIIO(+dVf(4 zYY=2Ljd2Xw!zh4|u`%{Q&*-W0UF2o@3t&A&GDc|ACsGgWmiRmT@J%>94>O=0uP|@T z?YIE2*(dPz&jaAZg}3WTA3w5S)L*DoQ{6>odL!t^=P0ZbTx!Z%Eg+{U3`-QggjS0d zy=w=@!W5CgPyQN=4nKCAi;u^LLs4Dilr?~dLJHCaO#l?YfJG>kD)l@a_^S!-Uk#$4 z1LsQ|6h{Cwp92V3cArCQ9LbuXSVXV%ld^u>zf-YgjP=teanjwQXM*Mit9pvlzb?Z# zSyI3cI0>QD+*DdClII7z6-*CKg8_HLXsz-gd%FFg+boK?hhAwk88*MKb@|^3;Oq*? zmO`y#L1cT0;?&z4(zcOQorVcQLDfM)PvTdo78ITy3x>#ijY50sCij%na?D8*l#jo0 zE>4{c#hP2(A_QxO1d4B<6)r-;kntfjN5Hs?{vkqH?_mtqD5}=8H7Y0QxHqO&28Tx& zXQX!$vk(zGG{Igl?o@UgB~bLJKP+U83>`Evnlul0!V=0PVmKh(F#j_K=p4AFDv|y! zJ$I50(nHav=XzRBV|N&!;@d8BZ`Zl0vCX>g#Qr}oJEoOK;$uz zXQn7r^oP2h=4_NZQKM)vQX6m{fqx)^E_dr@Bi03CiSW|Q`FgO7b=9Pr-L0VaG>i6E zc?Knmu?`~w;-nSPK(v1E!a66VNhX-2nw3AL_)$w853i*~X)Yo8H_7KbFr>?8;WX~j zFMhtXefU=jAxOs(&7@2U*wTb$l$jL@Tlj*$ls^{|wBZbmw0Eb8|w@xaCk~-sx013B$gt|1!j7mRSYUlHl{wOqi@90b5>U5LxB`n9c>NOqcTY zMUz3_*X=*pYW4YVEsZ34fAv>aOF7hYIRcp!iJqsUe@T&@jh?B{Wu8M);jsnbn@(Xp zNA>7>wmSncd7cGi@oh=R;f%9nc#7M;rzqsr4*|-asJ|Kfi$@KNsekmBy1v>1f8rUT zp*mU*waBcC+62Wn1csOLYbAles^o!A!}8t~9L_S!P>$FQz`WtMnowDf;2qqVI{r}a z>vawKa(DA z0g|eUmPYBf;}~(C;TN;(;c-=Wn&njVmYT7+=$JmDjr8_%0jwp-uv93eYCdT2HGxb5 z`KOX^Jw%a(uKLGHG4Hx5zAn7lu&BNrwbd%@?2#I#LVrTng%eCArhED}X)r@t>lrii zSkU+K9)WkpY>*!P&^x-uu)%MCrOiwM%*nVCKc-j$d+e!@r0pswuUn_mVk~??Ra&C= zUa!`tc2K4GM`UT|p3Eg~gV9GiV)>QEnNyvT5hWJl_nXH_Dw;)NxFk0sfTi>?cTTL2xv zdwfG_5njg{tbu6mT3RAHrulrp&oBl-Z!KD0z?S)PUEXSbysH8!06t$3yq#GW#wg&g zedL^|+o2dTX>SRBC+@x8B7+00T?7b*L`1O%cn>&WR18To#%A%OIVqmeOFP9r_f4d6 znv>G{F>xfy&aBnTie2=A9Or4HkHXX^;dA1Ysq9V(;s}{CEW2%03VdG`5tfFyV&+i^ zSrmis9tKuX6Uu*I;jg=i5JS>zzAj4(ogv?O!RxZE&YyAi!W+J)f|LmVQq!97X&klwS`ByLm1=WKj$ELq?EO1kRIZk0@3{FI_d zfUb)JWR}G8BmDDH5|qq$?i&%CR8myYgT2v#B@n@MRVY|XXnDm*zAQz|CEe%U15%YP z%It}X>P|c<#;}!|6C;QolgxFKCYg|?RmCCIm8MT-C0~(dppjwp%y~R-&6LW0?02PI7uUQabNP1#&R9X2&ldk3@v@iC5U;o^2{5zUhv%7FKL!8h( z>~zZhkQs&7q!E-VNEukf01TsVO964Ba4V&V7{N}2iu(wF0<%Mrci}-aIH<5}g_vYk zZ_k0&Ma7o#VP9Fo#JgdSLxlvGQi{N+(#VLds?zIX)-cME#N^Q}L&fk`#l&jGWYf{N z#Ur6BN+C0&sTfK{)upj_;ie+WrH#l2#b`8ms7$(YW$_rC6d6!HCIiPvoEejGQ;LHt zc{_s&Nh5T>3@37pg~651YLyUB9K{jr*bU`dka9x&aFoD!>B{(ul5+RmcsN9<)(?cR z9Y#P@&L}5>@|Dt6n>q(Zn*?wMqa%|&RdPC&tM7)bCdQR|RD13w9u$>D0cx`Xpk4uR zdMK#za3bMEH5fLol+W5crxNC-2p<^9xKju{#IC^@^J^qDWgbI~a;a_l;eFy#-}F-s zri6dDMb7zwhPKrb+*Cp>C+4z8)^x`a`6`N;239%V?P_!eyM^G7zE*}6NvPY#R1JR8m;fy znpAcg+HYoV#FcmMuyJVtZOj_bLCqUKB$=Mdnj@pY?^NOMBe%-5xzj~b&f7FN1e!i<|IS1y+tyzM2Iy_X5#2dOzK81 z>ZrXQr2VDEi$MOsn@OhWk5HZNJOm9DhsIidK{(FFIL@J$Ov|Y$-ssM#PtL1#X_>uN zkW3lBzEg07j^7q5w^z>-+G#b4D;es6h;r0zUT7m>DylKyzW#ahN&T=5-Phc*k_fF( zO@(KMW3Nl*lPD*2bK-uIf&r77Nv*nT!AjEt8Y<_Lu3cY)Hx^cLbo{zlgDE5FFb(+3 z6fkloQ^Y?PxO|PGiL{?oc&j=ZLbljBFo)5lf|94j3HW88Hg6Eq)%TYm7}GKM#Z|a5 zbUytKlsq}btM;`VhUl>|AXfvC?2J8r<3l^`Ha{5vX&O9aSKj+D-)PWs)z}C_6qW0j zILb$Yw2JM(z>!6f?Zxgx!?G*GC>X-%>hTv2us|ZJ-!4c`er=Zhl8y*v6_NLPph^Yw>obGS_)WhABnWv7QO+-T&p%(;mXHz@TU8z5yO zAM-7nY-#XL;nu~B;up5wB9Jp16D356qksRkh6||#fPc1)^wR|BNkwUIz|%@VqKn3Q znuwqG#%0KrQL@ONuT6C{;f9WD6RRuwhbtjS^ywGkRXIpMH%v@Wgmey~KV`&=Y+6B1 zw?{`s5ou;vZ4qIr5H_KleHcCn`D}kU6*Hn9k3^us!2mZz#?G)(iFQza=nHR)2v2a( zV8&{E2&?x>$O*Oq60?vcN)Nh9$+S^4vxY<>61l+!>6oW)Uw+93#aM)wA=}VeZLv8`^^F})wd&f*a@U8 z+*7mD<6R2c+X)=8vlJQtrOeR9_R#A`^a=nR>1G3A2$%#&L=Nd7IHBZ-4mrUHI>ESN z1_CHCdFTLdQ$td#F?&}-SVgw%>Kmr(M%wmWZFS*W@gB%t>V*`!``xcOn z*-H!X+5i-$03k?(7A0KkB-BVz(8m=$Xcurbfvq8BqI~rejS?R2W$%0O3K5G~^Vnyl z{Q1Id_l9>ra>LF-2&8vneEHTYI2}{G+nmL8?L&-}sO5H`<#)ewM3d0L$A?`*XqZhH z*u2K}glt`AZ;dh*v;1PoNO4X3#CVWpb&YXVIoDj9X8_b?Pyb*L1kejPw|JF}S>!(@ zAg}cLZYsi75%UBClQ+&7fCktDrKJKZ?!pN+0LpvVzI3KeH$RPe0Y#Wj8&Z3ktVXCH zsl7?ESIY2E?Zps+bRytPh=sZ!CIFBTYF+PbK{FM;Ne2jW!+a~TMxcp^<%PdUM-+Ik z*-V7TtpVd_exh0GDMO5$1ppAm?Lb}t0n)lye%XlEG{_K>fYLPaJoJ4!VHrWE9w3On z)HRk(oZjwa%<`5^G_!Ls@e`$f5f7ptv?8)h4oby}MPUdV$J*}@ zq$A=^cF;~Xl}2g-aG^W2(r;?S-t&=QvfsS0Xrww+*fExd-2sLHK(8r zz&Alp2;BX-!ilnm+m#SVsMht%ifX8vMWG>L|AV=6@`0l+K$O)=J@xyisk1BAgO*fN zg19r18fQ7714B0}7CdK8n$=hO(Mni2wDib+R%AfFT@d9~P(B9ZkSyJ?J99NzxgN4V zY{w!Np{R%`i9g;J1OfIif|+5mqZeQ6bQ!ndxH!O{uw$vedRW;J}DdUNk;LM#M$G)JIVh9*M$kvA1fd z!OZ)Jd4g%82e80PbvC%V{;7v3gzctKTqyqK7K%JmN=I148JnMDJBN7pq+oGo75mp?_tV$jE;jIBlpfQ8=cs)O zTZ{g!voNkXxkd+p_#mykW|@z*#8B4sbxzuOF3KnG9SGHCjxeSCUi8(!$j(dL3sLay zO=8TMk~(OT`=Bzg-)T+Ja!~t~Fj#EpoQoA}(mwJyK+S1$o$NBSx#e-n0e|ZdqLuD@ zXoh(A^~Sj zzGXPw)7UVJLQN24&l9t4^!(dYXI=RIH;VBeQ{6}+n@)|35iepq?3iZ`7e~8bJX!nV zyhQiUCo~!?a;h0wj3)rP+xPX}_1~E_)Xub*zQ{uRf@oU6rkFAn>>AprRkI^Pn1eEuUlI`DF&X{?~KM;i>6U>@_|{G{yxe@2hlN3ReU4~Q%XHn?6?l4WAKv7wJO+!q|@wZsW z#ds4TJ(y-#w!6c;iQGKpSKTJ$4n_2XRSTn&G?+cZ8h=!TIZ?@YVcJ^x`SrGBo78B! z8@fL^RU)CQgAx0a(eGmb1{`LT$;*a0a;P%?==V`T(_B5a9}0tQ#*M?LP?w?3dozv3 z*O56skNvGr4h;=b4hKLp@|hId1yr0V!_3|TVODeFRZ+fWcTn~c5XA`gCDv-3rE3zH z|14ilo}Q4U=G{k+UD9xrLzwgYI1*^9hD!dTKo#7rt$5=^8bb3sGMDSm{9NG z=>aHUFLImc^*piXf&`)Qf<}&xDnF%v# z)6u-LXnC34BPKI7tUhj%o9>_;sVpAg6eo2_5!|)f+{s9YCW5HRd3Q3{d})!mncDu+|@IO_i~DbH8)my+=F37nQG6Jl0@p%+4j>l zWEj=W@pm=Ul1^fMUpD`x-@f}znAInF$#>oG_j(lJPC}GVP4W2_?vo#K_Z4y5Fb7`? zVfi95fXaSf5yDCVJ41E15sdP;A3yU?gj z)QcbRF;Fd$82crx51+1@0f(mGGB&)AY)w|K5>Ab4v-p&7tTs$&!W4(XvxNGzHeBMa z0RIJy9D-hlln+%Uz^&_NdR7;q?zfrj2$F*txkj$5Y)Yy-4sv_cMVXzg%2Ub6K2^7e z+fLAQH+l~V*4M=_O$-xc70U>dhbcjdZ9dH+hhLo5#cf70UEIM&E^&ATENPe-Nh(I5 zM2L59OqrR_^+vel>l0HunJs%Lsp`aulX9z7uWLO=G!pBRJq4I8pT8Q@Gylj*O|%ni z$Ubf)@f*ddZ3x8?F= z9NJNtb46jEP|8Wzy7kX7Bppc<0p<@K$$F6(SI;W5dyZFq`+9Z3Z>#OOIgLjv7aD2= zKe(X$t4y|*7TWq!YCJx0njcphbesx)^k1#A0OBt8J~Y(^3vyXu{?RRGgk_o*IO)AU z9S^j8TW3s*Z_8ix?Ep~HKsjh{lXY%5N$@7osJdK+{NP($d2>^ZKevkw=kmAN=H})u zZr3+e%d4l&E#3FrZXuj2--(5rtNopxr?Jm}j814Q<@zotEf(>$zPbHL*O615^Xj3; zyN9Y?42vC+*N7R70{6UItEq`EDHPeW-DrqjOf z;)V*-soo@OXdUDU;ER6hVvQl>k*!Ny$8~G9^s@BNz-l{JycqR118&=htVDf6QuH

5eM&?04!3jLxamWET0h<{pH6E1=uR!_q(qtKDe+r!q7vWt zcvB=_+9uw1H{|?@{_*0VZQAdlArFYZCym=a6DrYIKoYYj$JzclI-s$L3IC^(O8abb zcVqrE%@lz~(qystqQQm>iD**$T&aX$rOt-GYx%l*jrp z)q>DxTL~9GF^y^MjKc1S=e{2f?f5&sO$7)w7IFW2rE|NG;lj)tp{Al4UYCROCa$?3 zWu~s?VI1vD{*EPtd;UuR*2-RhF!!?mh}XW{u(zmiCsBosO_loE!-H@Skmn?bq;msH zQlyWh<^;jt`JEt8WPpk1cZ5#oCi$nUUh2(X@83ONPsnyW-)n^awT`jHDk(aqQ*)Zq z(7D4CC_2FwOY*+Tw{illZTP7V1>=&~;$OMuQz1vA@6f+^iBPn&WI6xIj594z4}3mX z#B*Mu)3vYv>G=Yg6H)21-{bSCZ8OdAr+K$`2lneW--Kl@1{aqV6(oIG;(l~Sy3rna zt#7Ry`@hRsmgO@4_6~W;5i$0YD zar5qXRvI3~fP0dJpSgeB<=v!QwCH3m-MPvu{{sW;+b_8G7mXSvzXXrHmcL3|#+~^e zzoEbTMo535otVfYuou&d1kkLFU4%F?fj_^+q3-`YUV%}P0IYlf0ThiqAI+G!&u|Tm z2MY8^3je7Ml+VXdhhpmIW12&;?DMf)q1aye*a1*bSUxBgij$g;lM4lx=7VdXxXt;v z-B7%te7q?r{z5+f8kAr+pWrAzet@3v0Sdt?fDkYckrxorF%YvB5c4pQ2%!o{Qt4-2 z6p)tYcc>MR+KPWFRkOpkriYEo9_jWD+W5l3-+(FJxBVL{smV z+yk=MTeFD5S-lvUMd3K!g)k0cSZpD?mlk{Krli}ZWGEwJHY1n17VJ5Iai)+vY*T8{ zn(L^Ltc&sK1;hJlV$KIfKJp^I*tjj4qGvoz{6bsFuzY@b8#L)60sSIDb0#5sCN!CR zA%ZVJ?IK99jc{yHj~kQd?5uF+7GdO;=xib_pOqxcOl*p2n>SQ^7R4m7TO@JBBFYIC*WFUrBi6qzO8njMyXQL-5bl8&Cpzdwp!@4H1qb=*6 zL*bSam`;bM99<6O%xLo&*T%iAGS%Of@ikTT`UH$NiuwFBRmvvk2CPHiGt z8KM$rW19EaCSly)9i$cfAeB2drns^tp!YtA|{2swZ+C>!w^tq^l=)tEY~*rZ1|eAGl_)KFknseKU3{YB`*7YXh;`44mI-1GV$=5I77iRGmL|E>DP1uz0|fi&m<5DI|8p;4^O?+pQw zaF~wN7W9Wds(%0XYel8dd-Y1we`}k@{#N}?W{Jq{DrYqO=#!BM0n;ismVYi%OyV$G zB7%J>(=1ZXQEsZ7uQF_KTK$){sYC{>(p>$m!STyKs^8@nx2>@pm6n>-4(~tvtK)yK z72!Z!I@Q+N?@`wToaPg)bz8&nOe(pmZI5fkbbjZxiMECx)A=u>=+xR9e|{;~sWP8z zZ#wu|Ycrm!*3tZHx%JJ#+GIz|@p?}PF1>nZ>+h|Rmw!~JI@|sr+j1Y*ie2sJ2UBS_ z>r*-J&H|S@qEPgNV&d0-_P$hEOm}zPUY=}?=Y16Adt58t@ABt;`tT7R=n2A^}A_s$n$={DbJ(Be_xglXI%P`YA$qBoDwU414~cT zzuA#a)gLP_ee1P9!(6Sp`Lnz@)oH(imLX!la*|~fTvbbjVsok{{H=8Gp>?>mrW?W6%_|p8uUj_4IFBAxzbZuaf`!XO zEW6FVX&h{V3`>Zkg^nj(7rRx*-CN(s|5p8S)pqO?xSZ%=_K$>o!Y)d6>wg@uC=HN0 z57zpw>;J9#eRueK7^>p!KEk{uq(AENGsMH3@Z+I}689&rHys?)F8oS@>(zf0M2}Ze zeb{cf8fEYOgf(YgvZ)cxDhuC3zNjmFfXrzdm_g?C9b!}#OyB)FmuU!iP0?YU_J3CW z;vn#^HbN=XO}U-u-IcH z+4R>85F*-#_P`+S1n7r~f|PJb`P!6J2^d*M0HmI5or2=|RC62aRA<2#&f8Y3s{^mqI6y`}>z(M*W$gDAwP-!P#+) zdWAXIaU;P}P+R?de$XFqVL$6^K45cM0nZZ#p$0K9uM~lPm)1UGP!d_b(&rt}EB zBiwc)i2A1uw4y;V*sU%GQ^|JQ76##fF$e2wu1P6dj_Jv4V+SLHSg~72v9&_X-f$st zQPSfX%$kg8RNFEHQX!GZ`qb@;Tq(u!1kws###;#4&x_tq{^AYHn=g0$>)DgcoRUno zZ|yrONt>M`|77o}mPO*_tEZjY*#5$xc)XjedAyr6dD2m~{*aH-NH~97E7E4Z06J0e z=d$ue@WG@Nie_fF-xTD(g2}QiB?R#d6_QR)dYs08c5!bk`rJOFAiY!_lQ?J0^rE7U zw{q6}MPteP1jnEeES)EHjiqhx+11~TeepS;<9)UoqaLU{SE#>RO8g}3Y4li8fzUwK z`;1VX^d%ZhMHYJkhGpFfFm-V=!ps9XD5qaWr{k8wcU`+LFP@x$R*R^n=yh7nUZMh+ zhJFZ3=vSOm7XGMgTg8U+cuGMkNiX|cuxbXOjIm6nLF2{ii4V51BQ>hKPT}|V$5W%v zN*M>seFO(_INRZ>WE8B{qoGnd2tdg zw~sQXDgB_A>L>0RkF@cX-RGBWGch%uWh$%t#uTsBMUUPZkgoiiE$>*v|L8revUZwz z+1dD+=l$35wTt!^-BJIiQJYz$Cu0UekGGR;hgItjHP3Jg8KN?k&ou`oy$}ZC0`CQO$p=eod~&45#W-Te69W-dvAc zx;~5OpP+i0)Fv#azL1_)zsvu(>enr{;r~|sPBr9SPW+I#y`F{>H2$OdrM{U#sy7x= zOzz2x-F%LZZ7gO}`>Aa5KUKfw3Tpe>S^rl3K5CmfZsu!a|M#lj=Gt(zL+eLvlkiKv z`XuW{JF(kuGqKH$Woo~iOm6>C{kBa0a`nAk-XLgc9acN?$huwGQ*UYiI(g*Pal3jF z+tT?%?XTV1hPA6^73@=gk{6ym>i|?s&$Ze~F!kLANTaonV(KJJjD`XI@|_K1_i?z% z-6rKzHCO&eBe(C}7L>4UL_z&DG3#y{_DRFXX;$1LHELytBd%@2LH$qW^4+e;blcRs zsXw{5cRz-LL}$X)&kCvU_Y^hSXVa$6O2zJfYR0wCsmK}@s%-9&5?;-#d%9!oa_X}C_Wl?iJ`yl-_oo;8 z;RLDCxk)j7H6-@%J3g*+n@!_-%;e!TeY$g3_$h5c;L4wD!md39jhor5hqH2xu6={) zn}v?tMFRzg|705UN2VbK3jGJuNCjg3ADLz}iTF>|6-aq`zxdT_9|&0 z-~V8mvANCZ(*I_fvfZ)&t%~yhi)s3iB>z8{CaI5d36)^0!833eV+3YJIwTT<;U|RJ10tXjLr~Ed6h|!`43?EXEobq3SYZq2 zNP<#YvzN4Lz%0V}W!`IvjD)MGI(39V8}8%&+sY8@$c-)Izt2K=Bsmg|vxsw0Wj${5bhagG8; z`=P7#^`}`qkZ`crwaZjWT~|LVt27~3fuyvh)MEpH(e>eI50tgT0ATI+!z_h6pcDyE z6@3&CjyE$vS9A4hj7}L30KoRp6$4{4T@-=afrmu61<3-Rx8WrMzwH|V`8Y}>s9L@n zzp+^u7|=kvIR?wEb%!!9M2d}-VG5(cdwplF;y7tEJHnraZ7wF(PoVeURK!O=gA*@s zR331BSvZKS8)A&gdatJ0#{sxh9v@<^fJH@1DyWJnNmR`B^>W;AFb+37h-@iwUvJ+E zRQXO6vaxyO6IZfTdE&rn0!kSbxB_l;#sT+@%+?%9wR}pZC`IUGf|U`n7>e-|s?2ko=zw+9Kd9?6*8q;k%R(TRqVu{}7JQpy(CzlZ5aHJk1j z%FS91hIxyBfHeRc2taKb4_A3!pmZ>BCUcFv9E)!(B=v(Nf+%}P6dW@+u!y7h21cG_8>XT^3izy~PNIo%Hi9?3dgc7%JZa80 zB+vNZYz*b}G;RpVR4bXl{2BT(!ve|OccDs@vnI-wawJR5;DLybI1M7(%(9;o115rj zA};jUb44EvAEW2Wq)2{M7(`jb#uO{wnq5|xgMieHRD7e5LfQ^s8*NRRy{*bWGcq2r zS8KJY1E-k^=@ovIYl41}wRPI@+sR2Xrp_CQ(`k#C%+~g=Oe~DRM45@QO zXKsY4_^bAjTI~;Cd(4j?_YjEcM`4N%oy0je5-|)30G<&I^sr)#nQt8az$tsBB*YtO zpJ)vvI2VWnHC3wvtIQf@^rI@|%JWS*ze*~9k1+I$B<49_-=5=#8{!q`-BVKd%{2)m zVNQ`e4(GYVf3t^ynaMAo!*i-jxrp&?pZ zj#ec@(|^ZF9mp=nHD?2Lnv{_w{vgNUX$N*k)uB0cL?Hl@`aJqp3u?~zM^1S25cCw7 zD~M71rDmFG@HRI&hBk9D@)lyYw`u4gs3^h15wGhe%rHk*^R63LIutyUXhQn&y;`Cf z==~q|b<>Z2KUCIlmM*)mCO-yTHpD&Lw0uf=bsP}>XMO)p_ybVgO-uHK7QlJcE2eZ1 zMB5pUL-F{CytG#4S+!M&8)Yx$6z@w3acko6#Xgn?-bjXt&0NLue*EvXincVwR3QUH z^u51jEmy43_+;A{8uJrl&$dW#d`4I}>Sbc1w;9>56;*|J5;SbLVLI1in$4$))Qspv z>xRQLeD1NmokV;N+dX_(?r|2@#n(44QS==DgK467@qvbu&KJmpLe)K)|H(9-#qJDX zt&{87^r^;D;mM!kY_@|zN66y;U>fQiu&HX{mwz#hvncMsrxt>ye1reW7c>`XY5g?* zM@8wCgRN~Tb&$!}_iv_o`P`|{yQ%(frlG(6MkRVGSN$)h2`4v~IP3inra6AUe7klv z)zW=Ac^q)Nyt8On8V{uid< z@j3*HC>a=B4W=D1)&B?695_P5GJm}c?R=Aa>Blhf>-H~Q4{(>5?JuVvV#}BsH2&GN zzauon%16e%SIU_?Rl@Fi$v#2G4AxGU1^rT4==W`%0#5UUr`Q7~uEU~C7}nIf+-WTA zWPAa=7Dn3LY&WfX)l5K{ex<- z>M|S2Jhr)&JIjbR2#?&~A;<^+861%4Uy|>)av9KG2p>Tc(@Hf!p#>2y5((>=5?uM) z^97KnlT(h^4jIr@%dm1S26MH7OA}S-qSCwa1^jcU(ehds@_2JG1>{U|o=;dMF zUqkgi3x}e-siH;b@F;ElerN}cP=q0o-inUk-$*T@2(gindJ;R~D_Z*zNg*vquvTP2 zD|KjT#IFK&M;M8honzHr#D@{8B*h4sg}`6#>IUA#k_C}f=~11%hztt5GB{q4{rgBo zNWNoqO;aRONQGD+%5vW#f5tWmPOPqKm%L?R-YvkWT!lY;Eq6OGY?L9N8Ay?9-t z6rBnR!H6d&87aM1DgFgX$-h%9uc@s^Da=MGcV|*xi$YopEU0$Y2|S6 zyS6mHj5PR@^kC8SP^0uPpLAqKdSqLA^tbfb>-6|18Hu79$wnDrZIB>DMk;$oz_$!v zrS#kim|~eVz5# zE9iTb6&Cc|*(h}{HG8Zrd*WO6)OGgEs3RIh&YV%sf=|w3M$QsD!l3Ox@&!MIa<+YP z_cC(#+j6(%-43sFPoCtRism&t=AQj4UyzY=)b>xlfGU4>ArIX+AM1TSsL~N5Gaqj$ zpMWYK_a>kCc>!rf5kcp~*4%;_?r}H^uGp@-q71 z1_5?R_+v$vydT;<0IO>*%QKWs@OQ@i+{) z^)Tvs_jJgk+kqhq=j$+}22h_7Z;p;)z{Xv!%c!l#(*mFaH(y|t!*}`!afziG2v_>>?JV46(&d^^qr~m0RXN) z>su|OQDEY$F4uWw5e9QM4Oq8sk=yN~MIqXu(VUHB?l0+7lnFl*@?-(rmg{m%ATGZ3 zjoP@5QSJC>IILONz8iJLr~`=iL7kcu%X}0c&i59&gGL|zRs?P*$?sU&8JozCI`jm< zhzgPLT;0S0BpJ|A3P5kah0IeotEUhG@*AF;G-J6p<4CnKWPQSPZ}yo%6UW5?0MMZ` z%s4?EYPcN1xZT8fpP)WXL7?imx>nRo9TN>v{7Dzi%qRTb<}-c(-9a<|VO<6<7JuvT@!DR6Od0ZE#TIBrmUEnF#;rX)>?cj?A~Rh%`D=0vy&Gfk)JLLX57 zlacQy%R9*JLD!dMKb)0T;-=bM&B3{s~&yshm<_1`-^4_hj$DI4M0~F&|W_z(g{KE z;-XE~ZgO>-E~BLePpOaEHq4;C@A*u(`Wbrv`KD?7J$1bkF45D8Pf6mC+?hJI`|&(kYT zC*DC2<`ZS;ulGrNmj z!z=%ljV<4*>DQ$hnm#*t2+`ykh`nu1KbZX{_vLV_;d!T#Xjdc{KG6VZgRIu+ydJ7K z>7-Q&q0R1CTSoKEnp5tY+X+JFKOrntBZKr}%LZ~Vp zfbn_;!(CjVqt+1@P(9M&lZ9>h0a8appU*wu$h7o3Yut^f*wuZhqRaQ9qwhmk*MQ43 z7V7gD%ZG-6sL5%+hV)Rr`NL%(AC6U33oS1CR?J(1Z0u@h2qGJMs0=)rgQJYQ>YEm% z{x+iehHN2b)n=m4$b;x(j-<%`xAPec!iNpn!@9KBkXBmTUrY;lM3XP^zEc(Pt@=)3 z)@lA0+{{tcVC{QqaQD(D3+GQKacDbH;Ja2fqODP65xv#cdxlka>96KN=qSyNiuBd1 zgJk&RMsGRb*bKBhza2AMr}+B&&aZdq32R@)0a^Gs>bZo7nc0}-2$~HX!xA&YsoIoz z=;g1*%J?>!m32xwV&Moke)GPSHs?14vCnz7-mOuDUTpgEZJ42L%jAanyawQ?zr{rz z85mG@p-J@OR$=$~eb=R1z|0wr*KG9B{Ei+pjRQc>p&Yu^=;syRSG*6qG;nKJB^`!De^3=MVk`DlVo zx_1Px2vfs+)AR2rK2wZaHBBz8CC~20&BAe%VXVjRSgl{X%f>cm zvcui{<~2xM+OwPC_U*OT5B?g)7sJP6^T)ofacl1oZyt^x=%UxxY^AVH9NFSG=_s?2 zTW`?z23=Q2a*^0aU33o{wCfla%kWK|>CXaN82IZr2{5{j=SoBK0m9HOGd5+^rULpe zCRqJI>Z&c;BwE7;xS?l2Ci`gh2jTcHDDV2_7PD*i4|rtSCf@KF1;r1lD)*NQ@AW_a zU);TgSKRrU^;<~c9xMcRw*Ucx6a;s7DcmKvy9C!D2_d+ZwApFFN14a+W)S&ci8 z2wSwC6j!WnW@V_Ud6TgFCChukjCzO|UVMOfe3U0eb9c`2y?rNWPpyMz1i{5U#xEvX zA^zyspRyBE-Yc^-_~eSjUn20a$EYf zHs!V`=0@W!%BlUyQ>|6kJw4%_*U`4?;g*Pzqd)^&^(+M zoPgVWtLFgV>;Ppg&Oftm`tT-QR%M03xe91s! zXZl+6v3D}nmcyD#yJPv(g=LpH0zbf80%u4%3M0`8GJ*-TZ7|5M+LAUD38~x$MlAryibT zIIdg{khXih)U=P%w1c7}`|2`H`mi0=A|k4D5A7U7;0TLju%_o;xsr8O&FNGW-)IWC zeY08WlqKIjfr&S_Vt>4gP%s;%V+NZszLiM&JCX<*10~ki=9+W1uQWL4Yyy37JayjWq^WD}>VHOs_Hy4s6+uH_&Okl3f7!!Z&Dl*<0)KCcP-(+S~=W`#rS zi=O9#*mf#vZC(|1@Iv12o9SLP*R)Ccdb7zIL~N>vf8z?SW;1sc?{8sxs`*d_^S+@FHtqr-Z2oz8brLDNnwe6#f+~Va~Phu9xI(b2u^@> zGHx2aHoY-PF-mgRG&WmdF!x$>qgX>x#o{!slgdP7?W0bm&`_@O- zNB5mnU7vR z_vf>|zK>?FK0X|$7Wu+Zf}v2aTLA&be#pjP7$Vx1$U+wXAMRivlbaCAgl&M`AQ+zi z8X|;|XA@|EY=HP=7Y9aH*w7jqAnTe7;5a;4408-n^YOmc&MSnz-pD+*Z|Ee3Q+)S^ zaT(o2LWGi9F-(jv3+vOh2oZZ+Aasx+PN{|v-OORQ_Quab%rDF#ijntshAUW{VjOvI zJxvnR2$rwK_HR)AlnyWm8@ExJ@4v&9RA$2yg;H}hZOTp(P?jU@(vCO}nS|dHkfB@9 zw}er}*kXphvc-{*L4v1p95SYXdilZkf{fX-E1pKyT}q`BnHk>=iCgJLN~1?fG|Ov{ zxPwYsXGB~Y-XhQX{p|FJ6%2fti*`QN^{slttL;k)XKz4d-+za zp+~jMG1p4>&_lg>OSRl{(@Ov0R=pigts;=>fWKQyql;RtGQz~#i0DqEPs|0v7W&@W zgvnEL$W*QR$q zUp8&*yzjKv;M5zwQrW)68C3dCt=>3jV(a+nPG?6_%NV_S07$nqw`sweK3=k0g9Q%*B4v%q5Ss-7@-T$GnFC5>jkG{n>);nRUG zfuQDqa-M?-nT`pgndYGOmP2ywa}$ z(UpK-Z>P4a&s6htESbGMdp;IO?Uae?Z7xEiH6CH=luh(tE+MWpk&ss-bgE-v{`h>d z3;QCE|G`2bRBI}m+PP5H+fpT8Yr5Ff`N<$|snM%7Q=R8r`nu3U`vqoWHMJD58t=^*5=~c3zK;+wWZ!R)@Is^i(4-Bx!2Zqq1r{AxUSG0 zy0&f31k3xTulz=rZQZUeCQeP$ns$fl-B%awH)dS7&X(=`;C0quXxzR$sX;=WV2!&i5DFZoT}EZ(~DsHW1XV`+R@cCgkgEGMKp!>OMN8 z^y+NA%y%EQ@o`Ms*4ci&?LO*VR`t2}U`~jJm;OfADaYt+N7Bq=@{_=9CY~DlVeQpq zsgHAsneM)JeHj#AhjTD0;J~PjZlK@iM>P}CVH^A1!lANreXs6OBje4Is)*SaW%@n$ za_m)>T$i@Nf+PQJ+Ha^Vb+VlgPcKM>KRs&Cp1$XPhNk-UJ@@Y6#lPuM>rbFn{tq6t zpWkz<^G82}{_0U1s44tgkJ{I8qJP(;_J8(0_doZjRX&P5WK*6roImABnBJ&aVO{Lc zdEPPvTR$&5`0aacYx9#w?OBo3KRjykZND1zX-aZ`e$Pew23Yg!J$&=CQGX7Xt+F5o zpeTFq7#@IK#svz-H=NZ8A#~aK)1$T?Mw|Cvc+@O{?`eN})Sl3SzcuRrL<=hX*{J`| zIC|qGi=Svgo;454I=UnQ+a9{@GN@rU6UjMxYM!ryZYb`ChEO1 z33cvd$L`@8=On6G?&hYL7VYMxx$N!c+t_F<1!b(imnt+5-y_T_sN35suIPabP!w0q zSpMlzD~@h}eQ{9Ef@pP6(Mv3SP&M=uEjT8|aQM4N&9wNiZpq~*TJSfI+7pic2`%^^ zar8euYWF{W;piDp{)!fKyb%A2AHJ|hqRa4CD>_X!_K_hXASv1R??e}$tD!n3{p14n=K#5@pZzS&6pvr*sm z=w>@3l=*fiC)xIPw;;dlcCV!V=yt!Nm-+6XX4dxZuwlFG?x^|d=V17~PI`~mug@q% zegCFWpWx(o9DO?+?{8?qKXCLz8E~)uz|m(Sh)evAqt8TA@9V^EItgZt{5Ko*sd-Ps z6e6>*pK$c_TBqR}|I(=cJ6cdCn_#xDhi(@N*5;2!{nKc-p={!-zFvXb)0ls+QNO=m z&f_d0<98hWzclJc<}#W|4r(o&B{dA?GQ0NwrBQ##kl;Vy=<_9qEw#=+%njvn)%OqE zdYpe;L&@jvl^k*S@XMq2t5Lt{{L@KfKHs+FsK>&2x*|Q0Fl-Jf=njYhE1e+qSGx-~ zfD+&ZoecHU!u$U_d34zyC1D}IaX}{WnId5}c23%*7-@Ew_q}zqwy#@iyxiwh4l9cO z&F+#6*&_QTk3TKEk4%+6PCh2EB+|Ef&*b`~H;oFihd$!7L4nQEQOv=YVe(=mcExi9j^7ti*5VKoH;x1^J~Ee=+-0?v$@~{*Bom|3y#1cNy%y zKNl&6husJvzxEJe);|_0(uYj?3bGJ^jGt!zff~9VpMq%Ke>MC6T%@?DNFp5up3MGg zrNwo>%>Kzo6-~d){;II6ZEtx1zs&wmi_|$4u5_hQ>oD>Eo!S4tGsgWxDgH3~|Gr4= z|89)?KSC4zn@aJwi)O&MPbnS& z!$}0Vii8J2!LzR?LBGwDHkS&a5H~lbNKBS}(1mq6gm|{+lT728vId9Ln4hQu#teQM zPL;tMi-{RYeKNcpj_}c5ALCm#;vIZLo2Vj^s@kEaoJ{1fVHaQ>>fMPq3^L_=CSJAH zngkWZAMh5bP*O>id@P6tavh+>t?d1Ja;ZVC+EZnux0P(WoL>Da#M`b8o zVF|a?GZ>V1e?ont!Y)8|#kg(|rho)#ieZQ(bqZRX=C=>lt(&N*yj^tp@XB7aac{Ew zz73@3d8s177vTd6-jt+fMF@&)X!Z$?xG9ClrS~aH2-dne1PPWM2#L@q44v)7Eq7yS z2xfJ$OSx9NvFnjlA7sV|%F02s1{f!KXrF&D5f0fZYd%|`HsQY4dX7lZPG*+I08+$L zwVvW8c;Ub&zDt}{oR^8BVo#!e3;=x9zj{-Cljj_WZ`$k6)3OxrjSM5>`Rb|L2tLs6R@-13c#;d zh0-MWaY{BqPk)nqD!b_HU|bKmN4MG%jwedU<8#eHNU&e~07`H(lxhJGY9K|vtLo?w zw7$Q}Xt%&xN-0Aj*P)(Netkc~s`e#Uo)ctFOM}I#;#ld3yfO#{UzXFeFj8x;@WCR% zskfJySy{>ULu^TwA5Gai2m=x&;S@Ut)y2p}&=~1wlko9e*fjf2MP<~RPE{K2#vo1f zX_+m1As8SoG3j_nB{5}H#HYGSwjRNUn)C(AwTbHjFHeNW(a+v9W>RsEU--`4?z}H; z8P~(tWS>b%NTa}$jbb^yc@q&E{xa${togJN7b@rE{OiNDDFg@R$7`afHGg=Zu_EKA z0`V?58l*n5Hip=Xml1{!9OEKnkJwnoOtE9VjE|?p47!#$PL6%Yx8IP^XhAshYOY1r1`;0?j5js?UBB$6c}RM zpgU6XQ2HBI+yrjn35XVlh;L#5D(GIEOvgV<1AEuSSTW<-oq7Z{Dwt2~BEESJM5UUz z698sw2QKjF=VyI!o|BM`rg|L6;PLpB73=}kHj zT~;( z>Qw-Oml_KoxX3_|EfB^V7z^RO$i#>$5TTJ857)ZL!XGXWdo?f~?QxM!idrZkE;SMV z;Ub4twopoaU}9)9(1@vYN7{fuIlQ$dk9)XK&UHZ+JEVYj+ z*4dVtZCbc2a~m$!yBe5ny}c~=LoETrOV4%E2cd+>mKfp<&h_yAsEmy&F{Y88AJFpn`f6}~#N)|z{vHX*^dx3H#N~Ys=b?pm>cVsu77)h2)JpTIbpbow0j{?8kj@}N zdpWwQKIhVg4hH(qK>+};0M4N4{sj#aa|g}(xo zsqE3e0+po;tvmCg+_7$*r>NSkE_7NFDl5;e$u}gAY<%Xc~Qa&39KBmy&!~anJ7W zt^A-l5`Fz&my3UWhT(A9}3n_(8w!#1)oG?^H2e{d>wAN27;O%#Z z?&#Ui>n3J6)P2Zl8nUYl=C!VwbYZ}wtgK+`7o00I+^<{7L!PCCSyN!Fi@>hG*tp zW`!{Q$O)k-yI%J_>iv1FLYwAnzzCAwMA3c1Kc=vB-E5(Hqj_v)xt1yHCWq?XzA2~? zQ26hTRf{7EXG7WXSVx1atr!=Ry#g4_BiS261VE>!W7WU?8e`N)sWF2=PJAl!=U9Wn z>jS~^vihT0XTXw42qAJ+1Yp#V!m!~Bp$eP?B3+Oo2+|6peXxIus*xe77j)uQodh#S zlA)Nd!8E3M=cqT_>W`N z4cTyv)MUxR{6pq5;*^l4Bujaj>07SG%7 zQN&5gmpu&%q)U214zPb+(=;>z#)c|gylTzUpxBu5)3afPI+g_^*w=zI9=K=2rf|yN zwU}}RDFCpV!Fcc~AkE|tsC88t1fAyHpyqKTtg#GOf@@2PUf$vUs!CWciBe1T!G-B0 z(#ncqV?^q96gx=!dR6hRO&)n)F6s2>BLa zfS}PX)&u1)d)E#7#<)W_2MT*ZJdm9@14mm_ai%JZNAQaJv(u;ZtP3aIxPI5C2 zVPXxC+?S;;$1L+0ehMFys=wr#dr_bfSRn502Xe$jV&V3CapY!*m7ki+1%`tzvEQMm z@9a>J$Og{o1VWei6O>*DW89l=pbu{yV#Bx(ydpdmUP4D#Lw&{NTx!Y5r)0fh6A2VdI0gAHrI5bEA z)Y9Fs?=#lk1w0YsTpC*>Yam;q!nfu^L$C`KZvgtD)j)+RfarVPFA|nt_K@g_#+EmQ zBSLBbkrW3ZWTYpn%ssCLbeEuoXB$h&Sd6k>0+7QCvic;WUHo*1rKGYaCoB)@8mEUZ zY!fOw9_L(epKJTQaCC$PrT{RINZEYQCLoFafCJ6e1&`IOJQ*01q*$le+xx->D-7o; zHBp`l%x-tVzzcO&d-in*=iBnA;w zHQyHTO4I)Yx*r3^3V@6r3$^*)3Ks-}T7bYoid+K@rZtDDnS}<-BB{Cs`%&9gj9C?o z`Pl%09k?)QH1=w1s4D=^^lh7G?V2sr(4}CMeg%MtLI^HvFv1vrKFACg!fIYRX4QX! zjsP})Mv82u5n_~MjjRB`Aw#kT*a+i+rBg(&W-)G(MHQ}Ii~&#~W8oEU7#Lh)3iWVc zF4zWc*l$34PkaO>5Gq6gCL9c-wg%ogf#EsPGMGcRI)MTD0VK^qh})=B3IM@1aDF?q z4JTCT7&;IP9R1nQ9l&G`fe4hc3r6IN6PN%{lmt!C zw1}5YlHWZBLcbp%I#w)sJBU_1bnyrB$_Y$(211${5S-z8JB_NQ;8+0$B3HN%yN2My zBZD#G5Y+*n=1ehf-1^6$qd~~Gu`onofM8sNDem}CQ>bT<6Z9#JI5hzB3K$q33$-(b zMA?J#0Ei2(fGVwk)15PYZg1G45XJ>U6`YTI))*$R6^8APl*x@E^eUX2G*;Is93?JX zQw31q2SA8TvYbz{?N74kPponCt7u1Yxj`NRL5sHQe!N1T28FU%*rqqY5t%{Jslia@ zAs}8sBW#5AthwX1JFWnLHqOygu~1YQDg6ql-*-?q=i(t4F#VfhZT7JzbJ2a5t`IQF zk|+$nnK>>P*bjo9-;P;Ngh3cXQdo0+1A?Z{Lud+dM@|i5sxV(s)>g6_8yD~M(_|d zZp1K6%@};2NkH!i>*|*eMj=JY3IGS~CBYnAqZh`ett8nm+`LP01BhZ|17ic_c~UZK z05!2eJwPA?fE>InV#Z~f9u{(-{$UIE6P$QJ-6hP57|bS*X!IB=#2&!t2P)*utecma zKQR)x0Z=HwdINP5=412{W93s&5wBq8=Cd2&k*fees)_*MTCkKv`omgY{WR)K>f5qL zxC>S26)?(5VbFU-WRA6*Lcjb9Kfo@eKXN-Hfu34}$`4R=Vv5`D4unIl0i;!%B}dx_ ztHNc}tRWaD71VF$$>WPr{eZy{g4KPV2@wTqXgP@CVd3#g)Xt?nkA-3az{0!47pFqS zzp~9tgyG-Lvl-AdH_ukdL8vu}zaN91m`18O0Vs@_32Q|&E=V&y36z2f7g$@quc+VN ze_tXjz#bq>nxy$bHv9yp#m}VCOgqaZ(0D);cooFuR~QW{gm8ed{eY~MJ<{$Cy44y2l=f$}F{FJ&Ti@&S1g*k>9`|VQ z=l4yYYDf_#kdPtn);xY6+n#=ZV&sY|4^e?1ZrBD$v^AG<{dd%{k~qh+PGwoTG~FZ@a4y|_Rp{tWX(|=EbTcdl`5)~l?qcf26c0X zt&pN5&X;{Rh5}dkqK{b##zI8{0;emgHI4Ha2r9$DD5bG52CC2~X3-B7iON&ZJAT$G zPDZ2_C{^u7rQ%N+ndl`G7|UIRhuf6UdP_BXy%?>kc&Wmq@Iu@Zy_+pLEG^x~_yN+qDxgr)x zhM+8jS7U=$lxwY0ND_b+0x*!Scm7hGVqvQWZkQf3lXs1V2LK&!6~KeKFWDLIwf&@i24OGP1bCt1M;2 z_A$>X#o-HB%@5G4=Q8Pg%JT9P*g&Px7;5WDox>kc+7Ru^sceH%TlcL}#17QhDnfzA zZRX}B6(=y5ke=-K*U>8(b(Mp4rRt@&n+T+7MF@m)=UX=Xg<+T_p&B6oqCwp{JQ$ui zq)w_5+zf;&KR{=ZEfshmZ8N+1*6d9zs@6`z3aeG$W=fL|j5&U4d&XcD1`HLezm!B3 zIYVJ)Jzzi$^^G-*ab9RaY?{p_Ockr{&KOD!DQvM0fVEE(crsv^;}g|xUGj|i)T~(? zx5v;6E4RIQk6PEFgmqE1g%blov>lp_ARE26Pp!gz1>7rqn^(_g`Vbq$*bc2giV6e- z6H4pjR@5R|bls;JQi2RahGea0yiic1fPl1nX_&xnpUnYuj@U7CJcM*^tJHhB%6ViY z_zqY|y$~VNAYjmjHrWp@aq_w+6HdhgA;)?XXCjxz(MA=T_|5?-C!9rG6noo7etGiJ zJ%I{PVdre8z6?E}DyC6_P;!Ft#9-DV%vAByG0ka4BpZF|v`{;lu_u~!Aewca$$V_r zJhKe!#6TeZ@v+iE+rG#gk`YG5Jy#X$-|74`8uNV!qokT+xbOoJGWsrxZR;2Um-{|{ zVkmR6o&XxdSdBF_&PI_vOt9Jj5frQ)ohBt;l{mgGw&t)82sW*Z>Q?a^K{7yr9Ycu1 zh!ZMoZ`WT8j{vAPijK6HgW4StlgVYi@R(GrgP_>F`PkrY|Kdubn zdcq!C&CB{G=>ilmq~aQVIaxbIu3UrFpH!FM^Sk7X)=PMI%OmHbkPo zr;07Uy;y_C{3h_Yp+LMYtf!+Qw|OR}(c`V?_hM6LWz#IjI#q2`AWuDDdd;P41NPg7 zUh9?u+8Ro$#cs%EM%R{;-u62FCeD?GbcY>n#N>=v5 zR<=ut_o*KDGMM-4^tNk!_M1j_i}d!tJnqY<@3#vags$v&`5gE$AM~{zSeG3PJsv0? z9gGPaRv+!MZthQ|AG%Q;F035Z^&hSfAC)KV3}V1QIUPOWANN|14pxqi9*<6lkIw{- zFNi@Su~-!u&;Kp_qu?pF{wc2SDgNhEg0@p!K@4bpjCMb)SwJVD{u#CJ8SUpY`nEI1 z)iY+u87s*-JEZ)SnB)W~#7@J8Mk#pCw|XuBIR}wk2n$|_=wFDn9dn|eyc)$4U%iln zTquxSDhXby=wFiPV{oB&a@%21d`43H3;t36^97{!g3jQt_{S6T<73MhEXU7R9&J}% zt5-gwXU?m~u69`YCs)7WAH#jG{YQ@j?XV*Lz(0zuUQ3i;(kWgit=^OR}hZV>}+v@#7n{*5Mh&+w0;kX6;`tl=V+jw| zMw?Hr5*n4qM7wzUFZ|=wu5y85u3Rqfcz$P$aD**W5t6xTg+X^TmG;bmW(~NUdT3yp zX&_sFawJ!K_DHwc{c=PnqT*1yo%#yx3IBLv&=uzVga7)~iBV%Xm3*Gg{Mlw>Br0#n z!HkOWP^M@MweA9k=rEASb<1P#!fLM4WRy9ri2|ZfTGFToBfEHIx7HE7Si^5$dzAI{ zJ&W1O5|4JySRlFU{_TzP!F+85GczmYW!BsJ7#jT*zU8Bb=s=dj%X`o3)6H|4w)B>@ zo1fu>7~UrRr6cKnK>6*<6ALz_>Kp90 zUH!cGV>zP|DsM$`kJ(Q}FtiijiV$3TM>*c@ zz{$?HStXA00-wJqgJ9hD9TkK>-JJ_$mM}n^6vcS%%h})xy=oMt7*G$#?qF-3l;!BY zsJOs+jAnWnHa$taU7hs-$iIwUkRj_A96Qf|>Jc*Jaa5lPF!c zDChcWxBUlay}pBKbu}-jFJj}~Fu1j=^#eH9YqE%NC%1f` z$VSmGw_FzK9J^|b;^(JQXkm6FYmJjq`P>VXWcu?>K2&<~G=6ZjJu}U6`q3znPIT{X zP8=v;VVsqa6i2z^*Ez10n{66rA#r#IQLro#k9@2B*_t17x8!TmNoi~w&Yd+v{|^GO znj0-1ieW#G#rZlSrNsrdLlYVC&n5i*+2N;*Ava!aRQ6Q12)OsU>#AN4iDxnK4w#}K-}zpdAG9nyB? zKUr{JeQ=nmhxYznE3Y%__%nQPbCHEg)RVG}hWivgs6TP(<$2}mfe#sW`A%Y$^I&J+ z0f`0eyLP*Szc;nb^bzkQskN(w!5==fwzN!`2gN zg?_4zRtV*`UOvEeYy8Gk=CZ?1I+X*@M?#JHPTDvN%lBG@MyxVS`TpBM&UIIm!C1IT zvmsvojwmCqqQoIRc~PGPhzvSbP&HA?cr2xz{R3+Bo94{JrDQSAPAP8^EoG!&r?0>j zwy4R4?6a+Fl13Cob=%1FyY&Y#crLem(IpjG2&Voa}XfMiQ0q{zgZB|y|4fyir7re9_!Ds^bPo`pJ?{&v8(LI zP1ei{HgOkriL39FP?DOp(-5e45sN|Ory82iCwEV1v}-8VGM?(Tdip7hZ;hACT`|?u zM?=d9bD5+a1t_(Sh2JGEW9C|PxoABLD>XLcYoQy}vy{*D&dlNu?e8(eI{n;qPo2NA zBkQ*QGNQeUmKd+7#SE)FHJ^i!iO8~G5L*cp#!E?FE1?kR5}W?*Vn-YYsR46=H7%yo zm@~ns^A5Hs3(?W+0NlhAorL|in6E$VPb}0J(p5s9<#^TO5bNhXq-W$l z{DI!FR4P}EU6w#S!j=(|Oe0Ln0u!dJaVwsk`jPGcTRqK43WK3Q6Va#4Pz#Fd$0xGO zeAUw6&iydC`|4xQ1{}}2 z>kC9|JZc$dlH-2oW+t2 z>zZEX$t9t-G@&f8y($`N8m|(`^fKeao8i(qO47OW9M}Y>4x5Lt$DMnb3!H1#MVwBg zIVaSktj>?U%i}1;wlU$)n-qp$amcLH+?A5ol20*xpZ!{Sdj?u_Dr2O&VBSGKt*bHW zgRMgPNbt65H9@hw-1J=zik5sBZdnZ)ePQr8%fW*X_xW*iorKFeHzyNNRc#=>Zyl2D|Pd^)w}YM z`9~`*NGrBIbC9JR-Fi^Wi?0G!s~u(=_O6q#>&owk+RuYeur@{FpV=WXpzA%!ZTGq# z6ibgf&TK49Jq?wTTj*qdb!J{#FO>RF-}8Ew)N0r&p8RW1`X=4S+rrJ(TVgx2?lveV{N;-X9Bl zUsLwkY#XUlZf>}s{#;Ev95aZp{zsl zUX9zv!Tg2JdO~lL)2xPTyKmX470v7Im(TZUhy#kBipQ1gn21Sk8DIL2UElJpO$5HFAH!g!gcj z;6$IV+NLMV=iSm6;xm*sv*>M&avEA61pUuEv39o>Q!(-J;(i)q)A7M1<#e61e96Lq{#O^K6@Ob{Y2h=RYj6Y*NSt~n*Xd34VI&&K@c;cd;#19 zd5Mgc)2#QBs|cgxW&#AY@tzEm1vd=|Po+ltdjd9gbP!U<;j=HN7VqsDN?(yhOwD!R z?5FmVv*4p3Gx0J}iU>3e#JnI3I}Y#s^zAh$AkqDdh-M@D*#X~8L1$cFTbgEkN_CUt z$He%7Jcw)dizq+-uMD67E8)>EC0OSzp9Yv;Z_rZ>RS|6D;yZo4W=L<}d$XSLrVq>~ zVlA>p`jyO4M3N9yf&-xaQAEc2r6^;G%z?<=qDXxKu{>e71&nAt28ohPcOtuJSwq*R zq9~TX2$eLM#uBE)#v7rtnD52ihz8v!2qJnYVl)@sS*&ji_<8{3J(=7fW9y!(SW&Q( zn1xEXRAi4uvsjd}*!ov7TWcX3oiNq9A^GtY9K|BPupS(okR--$@8so=lSG(-d2v(Y#uMGo*b|BRkB*!_`_{n$(Rhz#tQQ^v1VXvZYv!)~QRvuY(aPPIkGk)HZ z4TUTQf^p%m1B5SLOpb($@O)$(F;*F`*Os~XDhoS2j2JaG%pp&_DLcm@Lx|e^Z9~W) zu`Xs1Ek0+oR|NUQy81py=@NS^dSe8=y8)?Mkr6nKhoc1RKCxyjH%QqG;G8T9tc5W8 zD>R)d8IMme<+AoN4yO$9j^+sSd{Ta>c@~-~^9@@W8rVXC!!JNI^^8fuJx*~Rc@l+x zRF6?*`=h*w?j(q4oWptiV|Rq`g(yF``#a$H1J${baR!b$m|L9}a1+5tzgdP-H{fh4YL%05coq(#y!SIy02 zmNIx6v2e=ylXAxXtn|%5WR1G>=5%W$zY5Wq^ziJCNJq)N#Q2nY*`5kHa1O#U&FdQp zx?W;QBUhv|kTgIFUg$zW#B#0GU;`OO2RZ= z+VFhs;6OHCO8Vve>63|hLF0jJLG%4oFNSEY_X5c?lw{p;vtTW8%1OQ2h3XEi(qYY1 zLfLas;KBh883A?FGc(J^u1pSSkxRe>75_asrw{_zPZ%Utuuz& zE9JE~?kqOIuj|gJGfkyCZnJDrquuAf>?otVP^z0zy0kd`advsxh_WAI(=9fvJoznm z&V9M%YD!lta$5axK^t4A_(1uijoyaILOXZ3|E2EKrOpmeYIC}6rMv5xQ;)fOsBwD5 zG*Or2&FXjA$vVl!Q=4R6+0_&8)(}zkt>LbTDE(#_-9@HWwcK$kewjypp0^LGRyM19 z-D+-A?a(f|`>2tQI3MBVz?$8BtFYQXbk%~4mKRIczFW>KErY`jMJ}o8B_lgqDfByv z^>b5|u=1)>`7_SnFEPs+K%=eL27Rl(1UKXkd3LWM_#nf3>jRHiRv6~zHsvvnzMdp> z4M%-DBwAM(YENP6r(Ti7OEP@umYMYa7AG^Oa$)d|U-w#9cdv8-LgBN@l(*KEmgDQ( z&$VSpn{LEwE5hDt#FJ-OIBBFeWF&~YiqbO(QWFI+Zxq)WiNJwH^)`T9T2|xVte(1l zw~WeCz~XgZ-;8WftMndh8uRrG9RW8L>Nc{#bV^5t%6Xqva5q%-dOp}}jxQQ(GOwx= zhqIKK)Px!8iiva`ZYr6st-_kZ+Zr4C7#IndX7PLrR^HMi-uU8dN`|{to@s1BjBN@R zL(sZa%BgR)wUrUHH4ofI8!>RGGqI%Ja9lA_eB5wOZwh_ba^-qH+P&d!+7Rlz?Wwm_ zLb&N2^2PXZJ0jD>-!@e$ax)+nxSXL-&v!$dspfI2wLH>yCe&dDPZ& z6;*QBk$J{9^EiQYZMfcemz{+4szg1Vqr?q7S)KdD+5Ruz$oVJR_`1kSC#Rm(zvl`g zkDkpDS<~)ZHGio3Y>S?Qy3UNaix6j)pY&}5Lk)BTA0j88wl({j%F-uJ>4T3*ys4#e zH&1zwCBd_~Y&D*uh~Y)AsSM@yf;9e_sT`~x_1I4mfC-BRJ*!VXR=d?h^+}y&ca2xi z)=uwK!oRogq`aMq^|{+t?bs?uI5|F08Hq~J>w3A5JhHkgdpMqVShB*}b)*<9I}0gKuqNKOj;ytg@7rW3wPMpV z8t##mgd}Hd0?rxl`tgx~J=U>RN0|WVGZmSc8hx_#H`5Uj8tFbRr}7sUt1hQK)EBo0D$gKq zDatPdV(eE4hk&mH_d;w*Lj_BWUemhHCb>8&VV)bvUG{gMYdc^1QQ5|rOIGL|Uwn7? z0o2oUwb06!nmW2HbRR9ob&33;6U60`9_(y#MYl1)u1fpEw4TuPv&%!_HrNhxG@z58 zX6ku)yB*$wrT$9ipv$q(x#QK2Qys?lk!~)N4gJ{xLdLh(tgbJ4oMEViZ>z5qS+=qM z8ZH3af_`%`Qla`gdI|7c$aOql}qBnwAPyl5&*0^8i1x+|?W4y_) z*5x4Dx2B!%=*6>Y!p10nrF3z2?6$=d1wwy@OA3e5Q*pCkzvTCEJb#Q|^L`Z5_`92>3LLG_K5*0*;^zrrQ8{x;OfM;l9tMm{V@5ev%}NaQ`Gpc!0NO{wAgCDL+*2+(n#NqCe^$6E6aq2Rc<|^y-Lgv74;P@lx(GSNT`IZvK0IAO_PIJDBD;V*bkxuI z64t`U`Ey|wBnIHK^~DBWp4OB40*a^%G|z~VGW~Kkd%uMe>LM7vfr>6r_oDul(v9ZU z31i3<`Kc!YyWXgWgi&u~fRH)up=mTzwJJ`HdT2NhlPiRM3JXe9={k2Q0dgFjQcCOGSw)l)xH zx~!N6V{uXsl9&xkNlz(VOJRmd)48nuqc10&nmORZ9;@S)>pxSv#j~*u=>7O79S9^k z%H@c!4k}s|T{zUb(ABNknk99gND_BgLr)|LJ7lZhQo6MH%^zxoZFVXLSbHOljh?qM zK7~uP#ckgs-cV3>^T0E4SVxTH#}1>TJ;l)Sfww9S3aR}UPcgI^{gy|}Fz4`xG^NYg zuSK53nLS-6Fr46g)WSJNoYMSP90eKBs8t0vSIgC(0;Jd(-5_fL7?c@Vqcd)Jk7SE= zGXOC-P(el@8a*IR2u^_%e7)(2Habpo_J@i^LvgbpbI7?e}sI{dwgLX85AUU zd%)Z7&#PRBKpDE%?3+USoM*ximaqo$#seL`ed6w{n0n76qEy8ZfWnKP69_K~dV8l- zGRlE;z7`nFx&FG&0fZid=hT9vJhhCA{xS;l@qVuVqaw3F43{~lMy%Y}cVa;B-3|>N zHAXDcu#lE`-z+(-LN-EG@e0T(0}-FF{e@*_7cp92M_r8-Pw-B9yfItwTre79SFzq9 z8Yn`o#02X_*EV;0rnI!c!O2n@ZksR=^GY5FrtJX9+n@pljs}}Z#Lz{@FgNHC8<9$C)j?IQ*8lLC>(L2FHD9%&3nC#_<5EwA^rM7SKtZ} zBISLOkjhi?UJ&wpz;ht}4~M)RK}{yc^6(pFDkOg|wk&*L6bt*Uta}lyE2ID@uI*0a zc4h&f;G|--sSQtTn&RDZ`)Pcf{II~mE%)W8@o`chwdR*YUORCzlc4tXiO9BM@@-rM z`=!I}yFJinDb*?wRR#KfB_BSm=|T4>Ir7Mnh$bnurnzHkIVJ{GUn$J8qRUdsC$7VG z6R2synNmd zEk#o_KY|5YnVw5${ziIX;>f8ckBHt<`Gw-hN>Htd^I|=5yyhIlFcB12%LHC5(#|WZ ztG~Nvvgc`1N~LvaV8&toNs@?^%c>jxMUv1JYZYsp=A=oUlf>A0>JnM~lt<2pv2ybs z1h;8IkAW4ke4!UjQe|PMaV?~GMJxkz>O5?6wXSuyLjQt`PDuBJ0qbUbD}6;3$?IEj zEb#71XP(qP8tWc>OO(vsD2o%w5J`aeQWR5TfgqSihDK<|isw1?X&Qhrnec#C`t?3b zbDoqkYe@)6w1(0LFDiW<&9b}`lea@keEBHWl)dym>M?gJ`UEtZnljB5ngGd^Tc550 zl2ZzYZ^-L)2yS!*7{j8uUif5RySnk%*oFIE_ok5AK)$xr0@C&aHaBtn$!*=L7|y$5 zc=n$&a<8DWJ~B=LQ_Q-8o=6f_wE)zq=gRCt7g_l~%*PnrC&1^dd6F_4vdRfnC~-CU z7X4L318!4GOPK|V57G+N3!kcTvF!9)WE0@_rfOWMU7rW+>%4sV|FCzKQC08T!lp!; zMR#|1cXxLqT_P>r-QC?F-7O_u64EImAS%+m-i7Wwd+&Spx$n7ejB#WPzxd5Dnf3e6 z=i!ULuc{sQIC%E8fhUc_tvaQ9X75Os*v#UBImx-iMD8}poi+7UEr>MZq?bJnB7hD1 z)H@{MC8h{+u@``aMD;4I=Y@)A62Dc=)t}UE3gNonRX|an@1#(js})@d+KMU{-E28x z@2Bz58O$`?UW!P@+CEiK**NHjatyZg< z*T|1134V&t6<6|bhQvnC?@rz^UT3NFoQS|v?-9wAHoOpw$OZE6nK1k?NicPr9|YolO^R!jFvz{0Avzx} zQu3)Q>b_Z;?zw1oE#G|c+N2TK1H3vXc=(oOwEjWJZ$`8B!7s-0`ZIFo<$ERI&8iWX zUjXo4q!f5>baefIOy73O4%0pF;Q;hW8e*`I|FslC8;~DRnT$2KQ9au zG$2p_J2=YK2Sh2ArwYDF^p{R&;BO0#@Ap--q9fw+Q_&6~;|S2)XFNy?(Z5nxUJ3~@ zu~&x)4KDQ1kqX6S3$67t9zLHzMpJ**la_X_f?p`)yp}o z@ZdIOZSC-IX{F+{@bTH;Xy6E`-c|UUK(EAbx=yW#^mJ95^oVS2$6bi9oHnX_>_~wV ztXS#D@)6gB^vEji=jhvE)!0!D?)F*SQM{&6`>IiGF!+&XV9l*j9uQHz+|h&kh7wxQ z+99rR1yLhyct%UnosN++ZBoQq0B7zPd$&wM2uhNs{Js6Lcl9h2% zR7ch1cv3Vo=%aR$v_`RX+f%F^BMfm;yOLj+c;HNHr;0u!Hi$@_PXG)Lr$VA~IN;z~ zaHlD#rMP9JwFD-6E~oiMFcVy-1;P?B^Q7xMOK<2)3kOk`br>~KL}O%_#?k>HI2oxP z8A*wL=^of|X>nNxgiPOp@^rAD@?@5JWR4Z4m$zrSM5I++Q`C-PS>j}2N@O{)WYr&J zw!otCpr@x-WH5locaEYEb7wQurw(Og=c{CtT_-;kNf>KK9l^hefI7IbEQePBKuh`M}}55O%*Kk-GaBwC;bBx@Jk>l7em=Hm0_;*I5u zsTVA7XA^lA!iwZm+vL-B6z;+%GU67o%BHgE7LniNy|ymGDl1AJEfPG;Z@?(rqA8xo zaS-w>mgX&D$js)x$)e0G{yLhEa#)Z>Q=-gUR05mZ+l~r#UC5kRfcPy+i?{SprX*b_ zO8~~=(ipUUE2u#$mJ4X-9y*d~+V9Pm{Cpe!tQ1Y`_+%nz1@wkimxXutK zF?8`sZ17|+j)i5=U$}9}=1Qpyew~(qf#Yu@xo5@);?7p94roOScve98KU<|a@N;=>6%yeb`N*N@$kHW-2iw-V->IgeB>bp z(2)Huk__%(3mlQ4EV=+Dxfvq(DeOT$kJsiYx$5I?lGpo2R4lkU8A%+2!Br zp5w8aZ5)||^}-zZhhQj^pS~q2C9dYsYUe0+w%+Jc7M~z22YVysW%n8I)JE^km&L-I zkCQOWc;t=T_n{&K+4pPnh2`Fdi*Se*T+_jGv- zUFcIh1OxD@Q4X2aE8pvQW^v(#C2}#bGfD%@8N_ZT|BTn!R*=TCR}N9{BAJ=Gh$nobMNQoh^MnFI#X0|)8e5gmD zQ6yy`a$nvPF6@#M$KxQ~4vYZ9C%*uVo|W}tbkxZZdKVzXkayy&D06=9C_u_e#z**a z943rV2)Ypi5j$|dg-gp9qNa@ueg_(@sUZ|eOT4kFi_|_-#%#4pJ6VX2GTv3i9&Ssg zN&FV=RxxWn5kAC8853jw9cWa{H2VlNdY`yeJ}g)>7)JOlkLYPdqQWu@6aSSIDQtWH zje01mtTF@{)d7Z}@-H`He*hYNphm73)9g4&sr&UtEKH}U1S(=&5TYTiH+lpkh(}fs z)j64gzmygBWZZl#K@bIHOEmL9o=dWff2e8?Uxx-@XoD6vdbdYoD<dvUN=*)Dqe9Agnn!?0CMxDB8J~zAO(tNCCRC{^U)ofn<4q%9fIXG5l1%=(v!cq^ zTs3EB76J%XDe6zFo+nuXg*UD$5u;0H8edT+5kRE&+9W7|-dLW)2S!RQF}lW$gT(Ou z(4Yoa$;KPDQVk^*pAZyg@Tux;dqxd`Q`PHjwIpw3@V{(yU>HOoHDG z2GTl!-U)6A=1p_GzW$*sHvDo(-#IZ$vYok6_`AveJv+&rO&6H)_-fBoR$&ENWF_0; zmWPn4DuSXX?C~+>Kr7Ccw#jPym*cA&Hy5qF)pO4=W|y~cFWW{G7$rz;Q08dU0x(dw zo$I;R4s1OVo;`1NYiJ^1www~m+_S$&S2O4RuJ$a$nhxD)+K!)E9tEO#^*i&~8Q?-o*lI{^B z)rU*T@1SN~4N@!Ci?LRHm+ozwGKz8|yvKdj_8PN=rPij%bpO0{*qe;_WkB>ZwGZhd zg%Ac}oRMZJB5k9}ZpWfU@*ik_lJ1eouP~TK85r8*MGeUB9mKXz6!WrXE>7%m5`k_6 z>>1G;cCu^rD>A0+$LMo4DBcT{MGyHtO7{@6*wAif)b3fnOZRSvW?~i5ipd_OdznoB zJxv*u)dw8w?Q{7^&E*BGA4uYE<`E|CN>v`EdzqZIJ;{Zp3ZFcuI^MNSHP^iSNl;^W z>>tFS|0vxXQEbT(thOU&>0F+%*sU!3A>Ctlf^KOw7^`yZ6a&(~X;pwyeGzvnx-Hn6 zW?%e;KB9B|>0zS?jGeu^)WQ12g#v5XJ;3dw9#<>pNF#7P!(XWw{hX2;Da_0!#1v)% z;aP(iLjLoxVaZXs7Wc5Nsy`RhFjfUL{w%1$PMf=9;e6dbg~9bX2PEASM(zL!YFwzC zI`(~dcxNvQ&q_ejy^E z9ET}+r!4ne(I)Voq)mHE5WK#gL5^N8@}rGa1AZTsTBq;7++JUAyoLc@4JbXFWC8E? zm0r^t)IMBbS=@Y~vcKaK0*y*Q>9N;-qD!^F_}7xqlj!l#`KxVFCC{0fgn4gC`uw<^Bj)0lci1l;tRR`vHjQfsELWOxQuJ z+(GQxK_Qg>=u76D;X2$S0d#FaG*>~w+`+<2=48^r(&@pnZNXP6Uh>$EQdhyk*deMg z!3^3Vn9?EIZ6W$gA@ZOjIqXoAB|l^CPz(1^daF>a@KC#@Q2VP;2kfxIVLzv~Aam`o z4==;q+rrk%LLNsY?C?M=6&UJpbnQUX{jeJ@^U$U6SpTc=cY_FJv@A+{Bx?1NzC$b6 zWZy#$8}Qqv6dMc+Quq%|X*e_1UznhGmtO4lB~t!-DVutQ4^HRKS1mtG(C7PK^Io@8 zUw+@;KT8Tg{$WilL^=@sVS*+?1I|TfSofq}3#y?{CZ5U8p@;=ZK2PKjUnF}Lm0TUq zDZNVMNH)Koz%|pJ6ZG+-TE$g&r$347gPmH#$*^4 zb|KX;l%`aPCl*B6>?{B^rMfAjdsz;g>OSu`+#jk&9=)f85`LFmf+tVt&HNNs6G-{2n9c=J;Zm;d0Go5wyQ|e^KSS;e81N z!J$sz;JIg3kdQ8xLjAf3UTCLAxbG0Xr{o4vHhW%dr=m^S>}9`V}v45Q_7m<8XxVhOZrIJTf$9h z$5{z;3}}D9(rP_>_MLDeB{Q4jR#GOo4yPQHnPQKcLL0+Zsrn*$s)W~7;tJ)XT7lDW zh0_yfO%UPcJ;g%xFNB-7#jIxKW(u!dpu#kpJ2ZGyd|v4z&bQToRJ#j(w7(K=>}1|h zF7@MH)P)=9>Y?2xzG3|X;fAbjdCFv{JQtBc)dN!ZZA~O;EJw9XR^rNnB6)EQXv1$Q zr^g6vZfSv|VR&pxyVhD-dl73K!sOO=el(?%zI^(7k?*R;Vi=V&X+b9F%MR-TMz_}S z^)H^6om&KP_5(jm&Ck=67^1GyuCg^u0AxS@*po^nHO=-$h>sXB|vuJR% zd124xYqc+*Q#$4MShKDttP~r+H>I7|hLaAGY-#Vk=Vc}`rraM*&~~j9r@xq>eL~u2 z^aR)ovF<1NI^VsG{u2}QisHq6O~~6@bCph+H>>y2d6Q9_??Z2TYHRF&OKyb#!v@2K z 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

9oi)n6HSXsC(3lN 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 z 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�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�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%0Df)#J6)kh$`y9W0&44FbLHB0<_tSw-W`b#F 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 literal 0 HcmV?d00001 From 53c55d8522a3aef5947768ea2ed51742ba717a24 Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Mon, 8 Jun 2020 13:23:48 -0700 Subject: [PATCH 26/35] Order accounts on connect page (#8762) --- ui/app/selectors/selectors.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui/app/selectors/selectors.js b/ui/app/selectors/selectors.js index ab6e15043..98364404e 100644 --- a/ui/app/selectors/selectors.js +++ b/ui/app/selectors/selectors.js @@ -177,17 +177,17 @@ export function getAddressBookEntryName (state, address) { export function accountsWithSendEtherInfoSelector (state) { const accounts = getMetaMaskAccounts(state) - const { identities } = state.metamask + const identities = getMetaMaskIdentities(state) const accountsWithSendEtherInfo = Object.entries(identities).map(([key, identity]) => { - return Object.assign({}, accounts[key], identity) + return Object.assign({}, identity, accounts[key]) }) return accountsWithSendEtherInfo } export function getAccountsWithLabels (state) { - return accountsWithSendEtherInfoSelector(state).map(({ address, name, balance }) => ({ + return getMetaMaskAccountsOrdered(state).map(({ address, name, balance }) => ({ address, addressLabel: `${name} (...${address.slice(address.length - 4)})`, label: name, From 316bf1714381e5eb2a3b4a361f5f9d7ee2065763 Mon Sep 17 00:00:00 2001 From: Jenny Pollack Date: Mon, 8 Jun 2020 14:07:22 -0700 Subject: [PATCH 27/35] fix-formatting-of-gif (#8767) i incorrectly added the link id, not sure why it doesn't work the same as for the architecture diagram in the project readme --- docs/add-to-chrome.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/add-to-chrome.md b/docs/add-to-chrome.md index 8f0b2dce7..82c1afed3 100644 --- a/docs/add-to-chrome.md +++ b/docs/add-to-chrome.md @@ -1,6 +1,6 @@ ## Add Custom Build to Chrome -[![Load dev build](./load-dev-build-chrome.gif)][1] +![Load dev build](./load-dev-build-chrome.gif) * Open `Settings` > `Extensions`. * Check "Developer mode". From fdb3070fcee288bcb0be0957ed1967964d1fd889 Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Mon, 8 Jun 2020 17:48:28 -0700 Subject: [PATCH 28/35] Delete unused transaction history test state (#8769) --- test/data/mock-tx-history.json | 2100 ++++++++++++ test/data/v17-long-history.json | 2809 ----------------- .../tx-state-history-helpers-test.js | 4 +- 3 files changed, 2102 insertions(+), 2811 deletions(-) create mode 100644 test/data/mock-tx-history.json delete mode 100644 test/data/v17-long-history.json diff --git a/test/data/mock-tx-history.json b/test/data/mock-tx-history.json new file mode 100644 index 000000000..5a78af315 --- /dev/null +++ b/test/data/mock-tx-history.json @@ -0,0 +1,2100 @@ +{ + "TransactionsController": { + "transactions": [ + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d", + "nonce": 0 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "3b9aca00", + "gas": "0x7b0d", + "nonce": 0 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + } + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + }, + { + "id": 6616756286038869, + "time": 1502438908445, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + } + ], + "nonceDetails": { + "blockNumber": "0x16643c", + "baseCount": 0, + "baseCountHex": "0x0", + "pendingCount": 0 + }, + "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", + "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", + "retryCount": 1 + }, + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + }, + "history": [ + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038870, + "time": 1502573153664, + "status": "rejected", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + } + ] + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d", + "nonce": 1 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "28fa6ae00", + "gas": "0x7b0d", + "nonce": 1 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + } + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + }, + { + "id": 6616756286038871, + "time": 1502573157128, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x28fa6ae00", + "gas": "0x7b0d", + "nonce": "0x01", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + } + ], + "nonceDetails": { + "blockNumber": "0x168739", + "baseCount": 1, + "baseCountHex": "0x1", + "pendingCount": 0 + }, + "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", + "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", + "retryCount": 1 + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 2 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 2 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + } + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + }, + { + "id": 6616756286038872, + "time": 1502734903652, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x02", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + } + ], + "nonceDetails": { + "blockNumber": "0x16b066", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 0 + }, + "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", + "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", + "retryCount": 1 + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + } + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + }, + { + "id": 6616756286038873, + "time": 1502734910224, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x3b9aca00", + "gas": "0x7b0d", + "nonce": "0x03", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + } + ], + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 1 + }, + "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", + "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", + "retryCount": 2 + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 4 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 4 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + } + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + }, + { + "id": 6616756286038874, + "time": 1502734917414, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x04", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + } + ], + "nonceDetails": { + "blockNumber": "0x16b067", + "baseCount": 2, + "baseCountHex": "0x2", + "pendingCount": 2 + }, + "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", + "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", + "retryCount": 4 + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "history": [ + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "unapproved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d" + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 5 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "approved", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "4a817c800", + "gas": "0x7b0d", + "nonce": 5 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + } + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "signed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "submitted", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + }, + { + "id": 6616756286038875, + "time": 1502734922745, + "status": "confirmed", + "metamaskNetworkId": "3", + "txParams": { + "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", + "value": "0x0", + "gasPrice": "0x4a817c800", + "gas": "0x7b0d", + "nonce": "0x05", + "chainId": 3 + }, + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + } + ], + "nonceDetails": { + "blockNumber": "0x16b068", + "baseCount": 3, + "baseCountHex": "0x3", + "pendingCount": 2 + }, + "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", + "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", + "retryCount": 3 + } + ] + } +} diff --git a/test/data/v17-long-history.json b/test/data/v17-long-history.json deleted file mode 100644 index d0333b969..000000000 --- a/test/data/v17-long-history.json +++ /dev/null @@ -1,2809 +0,0 @@ -{ - "meta": { - "version": 17 - }, - "data": { - "config": {}, - "NetworkController": { - "provider": { - "type": "ropsten", - "rpcTarget": "https://ropsten.infura.io/metamask" - }, - "network": "3" - }, - "NoticeController": { - "noticesList": [ - { - "read": true, - "date": "Thu Feb 09 2017", - "title": "Terms of Use", - "body": "", - "id": 0 - }, - { - "read": true, - "date": "Mon May 08 2017", - "title": "Privacy Notice", - "body": "", - "id": 2 - } - ] - }, - "CurrencyController": { - "currentCurrency": "USD", - "conversionRate": 295.81988556, - "conversionDate": 1502734981 - }, - "KeyringController": { - "vault": "{\"data\":\"fFwVD3Msyq1o9NsDbjMlyJ1ZfoMcqfTgjR9cium0C5Vnpk9IM6f/RTVXfk0J4c4UkbgbKd++q8t1S+D22s7Ddz/BT/fe0GrbwPvAYQi1oJuOI9/Lf7I0JbESGv4PheijCIH4h/FiO+tIAuqM0Co3PULM4mOHdzXD8SWmzxbDGx+4wG84EQE9a1NEbqEjyqrX02h3NwZsjrSeuV5TibpGJB9vnKNpDu9wF0DVKLtLCG5n67uoTI/ve9Z7hIDa03vNi/71iE4avFb6ogE2SAkFDncEcU0xXVkBMapBXjrpe5sIq08Ddo0Hhi4fkd4yFW77sAH4TKzd6bWSn2AK8HL8Gpcrk4R6Cvv8EtyjUqsOJfE4AmYI6rWfFutLqEAp\",\"iv\":\"9fJ/OGDVwUnu3H0U71qOGA==\",\"salt\":\"5yGOu/+yrrb3DyP+cvMKIZqjhSjrEY+bnceHnz9n8gM=\"}", - "walletNicknames": { - "0x3ae39e89dc7e736cce53091057a45bf44b1a566c": "Account 1", - "0xa7a467edcb16a51976418ec6133f14f7939dc378": "Account 2", - "0x03ce38bd04b4ad7581a7070570381a530951ebbe": "Account 3" - } - }, - "PreferencesController": { - "frequentRpcList": [], - "tokens": [], - "selectedAddress": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c" - }, - "seedWords": null, - "InfuraController": { - "infuraNetworkStatus": { - "mainnet": "degraded", - "ropsten": "ok", - "kovan": "ok", - "rinkeby": "ok", - "goerli": "ok" - } - }, - "BlacklistController": { - "phishing": { - "version": 2, - "tolerance": 2, - "fuzzylist": [ - "metamask.io", - "myetherwallet.com" - ], - "whitelist": [ - "metamask.io", - "myetherwallet.com", - "ethereum.org", - "myetheroll.com", - "myetherapi.com", - "ledgerwallet.com", - "etherscan.io", - "etherid.org", - "ether.cards", - "etheroll.com", - "ethnews.com", - "ethex.market", - "ethereumdev.io", - "ethereumdev.kr", - "dether.io", - "ethermine.org", - "slaask.com", - "etherbtc.io", - "ethereal.capital", - "etherisc.com", - "m.famalk.net", - "etherecho.com", - "ethereum.os.tc", - "theethereum.wiki", - "metajack.im", - "etherhub.io", - "ethereum.network", - "ethereum.link", - "ethereum.com", - "prethereum.org", - "ethereumj.io", - "etheraus.com", - "ethereum.dev", - "1ethereum.ru", - "ethereum.nz", - "nethereum.com", - "metabank.com", - "metamas.com", - "metabase.com" - ], - "blacklist": [ - "numerai.tech", - "decentraiand.org", - "blockcrein.info", - "blockchealn.info", - "bllookchain.info", - "blockcbhain.info", - "myetherwallet.com.ethpromonodes.com", - "mettamask.io", - "tokenswap.org", - "netherum.com", - "etherexx.org", - "etherume.io", - "ethereum.plus", - "ehtereum.org", - "etereurm.org", - "etheream.com", - "ethererum.org", - "ethereum.io", - "0xtoken.com", - "cryptoalliance.herokuapp.com", - "bitspark2.com", - "indorsetoken.com", - "bittreat.com", - "iconexus.tk", - "iconexus.ml", - "iconexus.ga", - "iconexus.cf", - "etherwallet.online", - "wallet-ethereum.net", - "bitsdigit.com", - "etherswap.org", - "eos.ac", - "uasfwallet.com", - "ziber.io", - "multiply-ethereum.info", - "bittrex.comze.com", - "karbon.vacau.com", - "etherdelta.gitlhub.io", - "etherdelta.glthub.io", - "digitaldevelopersfund.vacau.com", - "district-0x.io", - "coin-dash.com", - "coindash.ru", - "district0x.net", - "aragonproject.io", - "coin-wallet.info", - "coinswallet.info", - "contribute-status.im", - "ether-api.com", - "ether-wall.com", - "mycoinwallet.net", - "ethereumchamber.com", - "ethereumchamber.net", - "ethereumchest.com", - "myetherweb.com.de", - "myetherieumwallet.com", - "myetehrwallet.com", - "myeterwalet.com", - "myetherwaiiet.com", - "myetherwallet.info", - "myetherwallet.ch", - "myetherwallet.om", - "myethervallet.com", - "myetherwallet.com.cm", - "myetherwallet.com.co", - "myetherwallet.com.de", - "myetherwallet.com.gl", - "myetherwallet.com.im", - "myetherwallet.com.ua", - "secure-myetherwallet.com", - "update-myetherwallet.com", - "wwwmyetherwallet.com", - "myeatherwallet.com", - "myetharwallet.com", - "myelherwallel.com", - "myetherwaillet.com", - "myetherwaliet.com", - "myetherwallel.com", - "myetherwallet.cam", - "myetherwallet.cc", - "myetherwallet.co", - "myetherwallet.cm", - "myetherwallet.cz", - "myetherwallet.org", - "myetherwallet.tech", - "myetherwallet.top", - "myetherwallet.net", - "etherclassicwallet.com", - "omg-omise.co", - "omise-go.com", - "tenx-tech.com", - "tokensale-tenx.tech", - "ubiqcoin.org", - "metamask.com", - "ethtrade.io", - "myetcwallet.com", - "account-kigo.net", - "bitcoin-wallet.net", - "blocklichan.info", - "bloclkicihan.info", - "coindash.ml", - "eos-bonus.com", - "eos-io.info", - "ether-wallet.net", - "ethereum-wallet.info", - "ethereum-wallet.net", - "ethereumchest.net", - "reservations-kigo.net", - "reservations-lodgix.com", - "secure-liverez.com", - "secure-onerooftop.com", - "settings-liverez.com", - "software-liverez.com", - "software-lodgix.com", - "unhackableetherwallets.com", - "www-myetherwallet.com", - "etherwallet.co.za", - "etherwalletchain.com", - "etherwallets.net", - "etherwallets.nl", - "my-ethwallet.com", - "my.ether-wallet.co", - "myetherwallet.com.am", - "myetherwallet.com.ht", - "myetherwalletcom.com", - "xn--myetherwalle-xoc.com", - "xn--myetherwalle-44i.com", - "xn--myetherwalle-xhk.com", - "xn--myetherwallt-cfb.com", - "xn--myetherwallt-6tb.com", - "xn--myetherwallt-xub.com", - "xn--myetherwallt-ovb.com", - "xn--myetherwallt-fwb.com", - "xn--myetherwallt-5wb.com", - "xn--myetherwallt-jzi.com", - "xn--myetherwallt-2ck.com", - "xn--myetherwallt-lok.com", - "xn--myetherwallt-lsl.com", - "xn--myetherwallt-ce6f.com", - "xn--myetherwalet-mcc.com", - "xn--myetherwalet-xhf.com", - "xn--myetherwalet-lcc.com", - "xn--myetherwaet-15ba.com", - "xn--myetherwalet-whf.com", - "xn--myetherwaet-v2ea.com", - "xn--myetherwllet-59a.com", - "xn--myetherwllet-jbb.com", - "xn--myetherwllet-wbb.com", - "xn--myetherwllet-9bb.com", - "xn--myetherwllet-ncb.com", - "xn--myetherwllet-0cb.com", - "xn--myetherwllet-5nb.com", - "xn--myetherwllet-ktd.com", - "xn--myetherwllet-mre.com", - "xn--myetherwllet-76e.com", - "xn--myetherwllet-o0l.com", - "xn--myetherwllet-c45f.com", - "xn--myetherallet-ejn.com", - "xn--myethewallet-4nf.com", - "xn--myethewallet-iof.com", - "xn--myethewallet-mpf.com", - "xn--myethewallet-6bk.com", - "xn--myethewallet-i31f.com", - "xn--myethrwallet-feb.com", - "xn--myethrwallt-fbbf.com", - "xn--myethrwallet-seb.com", - "xn--myethrwallt-rbbf.com", - "xn--myethrwallet-5eb.com", - "xn--myethrwallt-3bbf.com", - "xn--myethrwallet-0tb.com", - "xn--myethrwallt-tpbf.com", - "xn--myethrwallet-rub.com", - "xn--myethrwallt-iqbf.com", - "xn--myethrwallet-ivb.com", - "xn--myethrwallt-6qbf.com", - "xn--myethrwallet-8vb.com", - "xn--myethrwallt-vrbf.com", - "xn--myethrwallet-zwb.com", - "xn--myethrwallt-ksbf.com", - "xn--myethrwallet-dzi.com", - "xn--myethrwallt-wbif.com", - "xn--myethrwallet-wck.com", - "xn--myethrwallt-skjf.com", - "xn--myethrwallet-fok.com", - "xn--myethrwallt-fvjf.com", - "xn--myethrwallet-fsl.com", - "xn--myethrwallt-fwkf.com", - "xn--myethrwallet-5d6f.com", - "xn--myethrwallt-319ef.com", - "xn--myeterwallet-ufk.com", - "xn--myeterwallet-nrl.com", - "xn--myeterwallet-von.com", - "xn--myeterwallet-jl6c.com", - "xn--myeherwallet-ooc.com", - "xn--myeherwalle-6hci.com", - "xn--myeherwallet-v4i.com", - "xn--myeherwalle-zgii.com", - "xn--myeherwallet-ohk.com", - "xn--myeherwalle-6oji.com", - "xn--mytherwallet-ceb.com", - "xn--mythrwallet-cbbc.com", - "xn--mythrwallt-c7acf.com", - "xn--mytherwallet-peb.com", - "xn--mythrwallet-obbc.com", - "xn--mythrwallt-n7acf.com", - "xn--mytherwallet-2eb.com", - "xn--mythrwallet-0bbc.com", - "xn--mythrwallt-y7acf.com", - "xn--mytherwallet-xtb.com", - "xn--mythrwallet-qpbc.com", - "xn--mythrwallt-jlbcf.com", - "xn--mytherwallet-oub.com", - "xn--mythrwallet-fqbc.com", - "xn--mythrwallt-5lbcf.com", - "xn--mythrwallet-3qbc.com", - "xn--mythrwallt-smbcf.com", - "xn--mytherwallet-5vb.com", - "xn--mythrwallet-srbc.com", - "xn--mythrwallt-fnbcf.com", - "xn--mytherwallet-wwb.com", - "xn--mythrwallet-hsbc.com", - "xn--mythrwallt-1nbcf.com", - "xn--mytherwallet-9yi.com", - "xn--mythrwallet-tbic.com", - "xn--mythrwallt-dnhcf.com", - "xn--mytherwallet-tck.com", - "xn--mythrwallet-pkjc.com", - "xn--mythrwallt-lsicf.com", - "xn--mytherwallet-cok.com", - "xn--mythrwallet-cvjc.com", - "xn--mythrwallt-c2icf.com", - "xn--mytherwallet-csl.com", - "xn--mythrwallet-cwkc.com", - "xn--mythrwallt-c0jcf.com", - "xn--mytherwallet-2d6f.com", - "xn--mythrwallet-019ec.com", - "xn--mythrwallt-yq3ecf.com", - "xn--metherwallet-qlb.com", - "xn--metherwallet-1uf.com", - "xn--metherwallet-iyi.com", - "xn--metherwallet-zhk.com", - "xn--metherwallet-3ml.com", - "xn--mytherwallet-fvb.com", - "xn--myetherwallt-7db.com", - "xn--myetherwallt-leb.com", - "xn--myetherwallt-yeb.com", - "xn--yetherwallet-vjf.com", - "xn--yetherwallet-dfk.com", - "xn--yetherwallet-1t1f.com", - "xn--yetherwallet-634f.com" - ] - } - }, - "AddressBookController": { - "addressBook": [] - }, - "TransactionController": { - "transactions": [ - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d", - "nonce": 0 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "3b9aca00", - "gas": "0x7b0d", - "nonce": 0 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - } - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012" - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", - "retryCount": 1 - }, - { - "id": 6616756286038869, - "time": 1502438908445, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", - "retryCount": 1 - } - ], - "nonceDetails": { - "blockNumber": "0x16643c", - "baseCount": 0, - "baseCountHex": "0x0", - "pendingCount": 0 - }, - "rawTx": "0xf86380843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a02e45f61129f0c97634e37a1823b858df7b0dfc867a44949aae7dd9bcea1c1b5aa03b1f002cda0872d40517d5b26caefa3e407ec8fd03bc7dc2d995b84726961264", - "hash": "0x38c254639139c94303a3141aee041b15301509e743f08569ffac6aca17518012", - "retryCount": 1 - }, - { - "id": 6616756286038870, - "time": 1502573153664, - "status": "rejected", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - }, - "history": [ - { - "id": 6616756286038870, - "time": 1502573153664, - "status": "rejected", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038870, - "time": 1502573153664, - "status": "rejected", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - } - ] - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d", - "nonce": 1 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "28fa6ae00", - "gas": "0x7b0d", - "nonce": 1 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - } - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150" - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", - "retryCount": 1 - }, - { - "id": 6616756286038871, - "time": 1502573157128, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x28fa6ae00", - "gas": "0x7b0d", - "nonce": "0x01", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", - "retryCount": 1 - } - ], - "nonceDetails": { - "blockNumber": "0x168739", - "baseCount": 1, - "baseCountHex": "0x1", - "pendingCount": 0 - }, - "rawTx": "0xf8640185028fa6ae00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a06261831b3d599a90dc24fac67bc648fd58cab2036e4e8dfbbb5c00c3fd9cf66ba00e2ea6ebc63ba715a94dc94e24120639c4ad60832d3285dd558929a61cc18cc0", - "hash": "0xeb1c57dec9df8410bcc65374c7f684fc8ebfcda6865a149e38bb000fa706a150", - "retryCount": 1 - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 2 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 2 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - } - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270" - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", - "retryCount": 1 - }, - { - "id": 6616756286038872, - "time": 1502734903652, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x02", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", - "retryCount": 1 - } - ], - "nonceDetails": { - "blockNumber": "0x16b066", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 0 - }, - "rawTx": "0xf864028504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa057380f9007a48d4bce31792859b1a25cb2b45ba615e7951d8e8a925360a0b301a042393e72d1a96a2605c0da95705c5f3f7c744f0affcac01e0a64721037f04adc", - "hash": "0xc28ceb1e2c4e5c61b805b181e3cc99dd7bade58935233fab76c63cedfd494270", - "retryCount": 1 - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - } - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7" - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", - "retryCount": 2 - }, - { - "id": 6616756286038873, - "time": 1502734910224, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x3b9aca00", - "gas": "0x7b0d", - "nonce": "0x03", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", - "retryCount": 2 - } - ], - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 1 - }, - "rawTx": "0xf86303843b9aca00827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0e442afe9386066936f556d852a296d22b8392652aa2ddb26969d83d661759ee1a06dc55b164f666a37107e86d575d2701602fc100f0ef4875736d45995150d4897", - "hash": "0xfcc66b8002c64a5aaa076adea7f7e48d194de10e40eb64924c8de344805c8cb7", - "retryCount": 2 - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 4 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 4 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - } - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635" - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", - "retryCount": 4 - }, - { - "id": 6616756286038874, - "time": 1502734917414, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x04", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", - "retryCount": 4 - } - ], - "nonceDetails": { - "blockNumber": "0x16b067", - "baseCount": 2, - "baseCountHex": "0x2", - "pendingCount": 2 - }, - "rawTx": "0xf864048504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a04be1c01535745fa7ec7aeb6e0b64d009981713808ca443b181fad802ce941352a03887e90375d9225b8dfd0d42324eed8eb4982fd14ea7b4069290237b29d1dcd3", - "hash": "0x9258ed7e451402612f572cbef52b63cd63cc2c59f443a207b7b4f8d317958635", - "retryCount": 4 - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 5 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 5 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - } - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e" - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", - "retryCount": 3 - }, - { - "id": 6616756286038875, - "time": 1502734922745, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x05", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", - "retryCount": 3 - } - ], - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 2 - }, - "rawTx": "0xf864058504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c808029a0dac4756e84c008714b3b8b43807157ed63737450780bc57590e930c8a360750ca00b43ac8ec5235f57ccca7e68ce8fbf77f43d6ffa5fbff296cba66cef47889cf5", - "hash": "0x67cdff49c1f8ed506c759fc8fd7ffe93d59fcb3bfd926b964cad47e2e504dc9e", - "retryCount": 3 - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "history": [ - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "unapproved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d" - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 6 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "approved", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "4a817c800", - "gas": "0x7b0d", - "nonce": 6 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - } - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "signed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "submitted", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1" - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", - "retryCount": 5 - }, - { - "id": 6616756286038876, - "time": 1502734928623, - "status": "confirmed", - "metamaskNetworkId": "3", - "txParams": { - "from": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "to": "0x3ae39e89dc7e736cce53091057a45bf44b1a566c", - "value": "0x0", - "gasPrice": "0x4a817c800", - "gas": "0x7b0d", - "nonce": "0x06", - "chainId": 3 - }, - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", - "retryCount": 5 - } - ], - "nonceDetails": { - "blockNumber": "0x16b068", - "baseCount": 3, - "baseCountHex": "0x3", - "pendingCount": 3 - }, - "rawTx": "0xf864068504a817c800827b0d943ae39e89dc7e736cce53091057a45bf44b1a566c80802aa0d983a744f58179522b4bb75f6320dbcf0a699506f2470139282a2ad02e92554fa030d818c35e997ba5d004df65a0c4ebcb49d098ec7dc190d7287a72f9c96f89e7", - "hash": "0x2c12c403aeb62a92bd5eabd3edcc38ab9e63bb0c93f706520bd2042894737ad1", - "retryCount": 5 - } - ] - } - } -} diff --git a/test/unit/app/controllers/transactions/tx-state-history-helpers-test.js b/test/unit/app/controllers/transactions/tx-state-history-helpers-test.js index abb57551c..66833a4cd 100644 --- a/test/unit/app/controllers/transactions/tx-state-history-helpers-test.js +++ b/test/unit/app/controllers/transactions/tx-state-history-helpers-test.js @@ -5,7 +5,7 @@ import { replayHistory, generateHistoryEntry, } from '../../../../../app/scripts/controllers/transactions/lib/tx-state-history-helpers' -import testVault from '../../../../data/v17-long-history.json' +import testData from '../../../../data/mock-tx-history.json' describe('Transaction state history helper', function () { describe('#snapshotFromTxMeta', function () { @@ -33,7 +33,7 @@ describe('Transaction state history helper', function () { describe('#migrateFromSnapshotsToDiffs', function () { it('migrates history to diffs and can recover original values', function () { - testVault.data.TransactionController.transactions.forEach((tx) => { + testData.TransactionsController.transactions.forEach((tx) => { const newHistory = migrateFromSnapshotsToDiffs(tx.history) newHistory.forEach((newEntry, index) => { if (index === 0) { From 7a4bb7f73a78dc6b8771e599e407fcf3b75ffe0f Mon Sep 17 00:00:00 2001 From: Jenny Pollack Date: Mon, 8 Jun 2020 19:37:47 +0200 Subject: [PATCH 29/35] replace blacklist with blocklist --- app/scripts/contentscript.js | 16 ++++++++-------- app/scripts/controllers/transactions/index.js | 4 ++-- .../lib/recipient-blacklist-checker.js | 19 ------------------- .../lib/recipient-blocklist-checker.js | 19 +++++++++++++++++++ ...nt-blacklist.js => recipient-blocklist.js} | 4 ++-- app/scripts/metamask-controller.js | 2 +- ...js => recipient-blocklist-checker-test.js} | 14 +++++++------- 7 files changed, 39 insertions(+), 39 deletions(-) delete mode 100644 app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js create mode 100644 app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js rename app/scripts/controllers/transactions/lib/{recipient-blacklist.js => recipient-blocklist.js} (92%) rename test/unit/app/controllers/transactions/{recipient-blacklist-checker-test.js => recipient-blocklist-checker-test.js} (77%) diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 2a8307c10..32bb52be6 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -127,7 +127,7 @@ function logStreamDisconnectWarning (remoteLabel, err) { */ function shouldInjectProvider () { return doctypeCheck() && suffixCheck() && - documentElementCheck() && !blacklistedDomainCheck() + documentElementCheck() && !blocklistedDomainCheck() } /** @@ -181,12 +181,12 @@ function documentElementCheck () { } /** - * Checks if the current domain is blacklisted + * Checks if the current domain is blocklisted * - * @returns {boolean} {@code true} - if the current domain is blacklisted + * @returns {boolean} {@code true} - if the current domain is blocked */ -function blacklistedDomainCheck () { - const blacklistedDomains = [ +function blocklistedDomainCheck () { + const blocklistedDomains = [ 'uscourts.gov', 'dropbox.com', 'webbyawards.com', @@ -200,9 +200,9 @@ function blacklistedDomainCheck () { ] const currentUrl = window.location.href let currentRegex - for (let i = 0; i < blacklistedDomains.length; i++) { - const blacklistedDomain = blacklistedDomains[i].replace('.', '\\.') - currentRegex = new RegExp(`(?:https?:\\/\\/)(?:(?!${blacklistedDomain}).)*$`) + for (let i = 0; i < blocklistedDomains.length; i++) { + const blocklistedDomain = blocklistedDomains[i].replace('.', '\\.') + currentRegex = new RegExp(`(?:https?:\\/\\/)(?:(?!${blocklistedDomain}).)*$`) if (!currentRegex.test(currentUrl)) { return true } diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js index 73589392b..8b4c23e08 100644 --- a/app/scripts/controllers/transactions/index.js +++ b/app/scripts/controllers/transactions/index.js @@ -25,7 +25,7 @@ import NonceTracker from 'nonce-tracker' import * as txUtils from './lib/util' import cleanErrorStack from '../../lib/cleanErrorStack' import log from 'loglevel' -import { throwIfAccountIsBlacklisted } from './lib/recipient-blacklist-checker' +import { throwIfAccountIsBlockListed } from './lib/recipient-blocklist-checker' import { TRANSACTION_TYPE_CANCEL, @@ -241,7 +241,7 @@ export default class TransactionController extends EventEmitter { this.emit('newUnapprovedTx', txMeta) try { - throwIfAccountIsBlacklisted(txMeta.metamaskNetworkId, normalizedTxParams.to) + throwIfAccountIsBlockListed(txMeta.metamaskNetworkId, normalizedTxParams.to) txMeta = await this.addTxGasDefaults(txMeta, getCodeResponse) } catch (error) { log.warn(error) diff --git a/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js b/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js deleted file mode 100644 index 8d048c58f..000000000 --- a/app/scripts/controllers/transactions/lib/recipient-blacklist-checker.js +++ /dev/null @@ -1,19 +0,0 @@ -import blacklist from './recipient-blacklist' - -/** - * Checks if a specified account on a specified network is blacklisted - * @param {number} networkId - * @param {string} account - * @throws {Error} if the account is blacklisted on mainnet - */ -export function throwIfAccountIsBlacklisted (networkId, account) { - const mainnetId = 1 - if (networkId !== mainnetId) { - return - } - - const accountToCheck = account.toLowerCase() - if (blacklist.includes(accountToCheck)) { - throw new Error('Recipient is a public account') - } -} diff --git a/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js b/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js new file mode 100644 index 000000000..5460057a3 --- /dev/null +++ b/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js @@ -0,0 +1,19 @@ +import blocklist from './recipient-blocklist' + +/** + * Checks if a specified account on a specified network is blocked + * @param {number} networkId + * @param {string} account + * @throws {Error} if the account is blocked on mainnet + */ +export function throwIfAccountIsBlockListed (networkId, account) { + const mainnetId = 1 + if (networkId !== mainnetId) { + return + } + + const accountToCheck = account.toLowerCase() + if (blocklist.includes(accountToCheck)) { + throw new Error('Recipient is a public account') + } +} diff --git a/app/scripts/controllers/transactions/lib/recipient-blacklist.js b/app/scripts/controllers/transactions/lib/recipient-blocklist.js similarity index 92% rename from app/scripts/controllers/transactions/lib/recipient-blacklist.js rename to app/scripts/controllers/transactions/lib/recipient-blocklist.js index a0f16303e..fc7e49126 100644 --- a/app/scripts/controllers/transactions/lib/recipient-blacklist.js +++ b/app/scripts/controllers/transactions/lib/recipient-blocklist.js @@ -1,4 +1,4 @@ -const blacklist = [ +const blocklist = [ // IDEX phisher '0x9bcb0A9d99d815Bb87ee3191b1399b1Bcc46dc77', // Ganache default seed phrases @@ -14,4 +14,4 @@ const blacklist = [ '0x5aeda56215b167893e80b4fe645ba6d5bab767de', ] -export default blacklist +export default blocklist diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 7787601a5..aeac6c5d3 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1446,7 +1446,7 @@ export default class MetamaskController extends EventEmitter { setupUntrustedCommunication (connectionStream, sender) { const { usePhishDetect } = this.preferencesController.store.getState() const hostname = (new URL(sender.url)).hostname - // Check if new connection is blacklisted if phishing detection is on + // Check if new connection is blocked if phishing detection is on if (usePhishDetect && this.phishingController.test(hostname)) { log.debug('MetaMask - sending phishing warning for', hostname) this.sendPhishingWarning(connectionStream, hostname) diff --git a/test/unit/app/controllers/transactions/recipient-blacklist-checker-test.js b/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js similarity index 77% rename from test/unit/app/controllers/transactions/recipient-blacklist-checker-test.js rename to test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js index baab1ca00..e695d6fac 100644 --- a/test/unit/app/controllers/transactions/recipient-blacklist-checker-test.js +++ b/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js @@ -1,9 +1,9 @@ import { strict as assert } from 'assert' -import { throwIfAccountIsBlacklisted } from '../../../../../app/scripts/controllers/transactions/lib/recipient-blacklist-checker' +import { throwIfAccountIsBlockListed } from '../../../../../app/scripts/controllers/transactions/lib/recipient-blocklist-checker' import { ROPSTEN_NETWORK_ID, RINKEBY_NETWORK_ID, KOVAN_NETWORK_ID, GOERLI_NETWORK_ID } from '../../../../../app/scripts/controllers/network/enums' -describe('Recipient Blacklist Checker', function () { - describe('#throwIfAccountIsBlacklisted', function () { +describe('Recipient Blocklist Checker', function () { + describe('#throwIfAccountIsBlockListed', function () { // Accounts from Ganache's original default seed phrase const publicAccounts = [ '0x627306090abab3a6e1400e9345bc60c78a8bef57', @@ -22,7 +22,7 @@ describe('Recipient Blacklist Checker', function () { const networks = [ROPSTEN_NETWORK_ID, RINKEBY_NETWORK_ID, KOVAN_NETWORK_ID, GOERLI_NETWORK_ID] for (const networkId of networks) { for (const account of publicAccounts) { - assert.doesNotThrow(() => throwIfAccountIsBlacklisted(networkId, account)) + assert.doesNotThrow(() => throwIfAccountIsBlockListed(networkId, account)) } } }) @@ -30,7 +30,7 @@ describe('Recipient Blacklist Checker', function () { it('fails on mainnet', function () { for (const account of publicAccounts) { assert.throws( - () => throwIfAccountIsBlacklisted(1, account), + () => throwIfAccountIsBlockListed(1, account), { message: 'Recipient is a public account' }, ) } @@ -38,14 +38,14 @@ describe('Recipient Blacklist Checker', function () { it('fails for public account - uppercase', function () { assert.throws( - () => throwIfAccountIsBlacklisted(1, '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'), + () => throwIfAccountIsBlockListed(1, '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'), { message: 'Recipient is a public account' }, ) }) it('fails for public account - lowercase', function () { assert.throws( - () => throwIfAccountIsBlacklisted(1, '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'), + () => throwIfAccountIsBlockListed(1, '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'), { message: 'Recipient is a public account' }, ) }) From 8f086087d858399016f98c49306a6732f3381728 Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Mon, 8 Jun 2020 11:06:37 -0700 Subject: [PATCH 30/35] blacklist -> blocklist; whitelist -> safelist --- app/scripts/background.js | 4 ++-- app/scripts/metamask-controller.js | 15 ++++++--------- app/scripts/phishing-detect.js | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index e314086a6..bf1903a8c 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -319,7 +319,7 @@ function setupController (initState, initLangCode) { [ENVIRONMENT_TYPE_FULLSCREEN]: true, } - const metamaskBlacklistedPorts = [ + const metamaskBlocklistedPorts = [ 'trezor-connect', ] @@ -343,7 +343,7 @@ function setupController (initState, initLangCode) { const processName = remotePort.name const isMetaMaskInternalProcess = metamaskInternalProcessHash[processName] - if (metamaskBlacklistedPorts.includes(remotePort.name)) { + if (metamaskBlocklistedPorts.includes(remotePort.name)) { return false } diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index aeac6c5d3..e6f973e59 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -457,6 +457,9 @@ export default class MetamaskController extends EventEmitter { markPasswordForgotten: this.markPasswordForgotten.bind(this), unMarkPasswordForgotten: this.unMarkPasswordForgotten.bind(this), buyEth: this.buyEth.bind(this), + safelistPhishingDomain: this.safelistPhishingDomain.bind(this), + getRequestAccountTabIds: (cb) => cb(null, this.getRequestAccountTabIds()), + getOpenMetamaskTabsIds: (cb) => cb(null, this.getOpenMetamaskTabsIds()), // primary HD keyring management addNewAccount: nodeify(this.addNewAccount, this), @@ -494,9 +497,6 @@ export default class MetamaskController extends EventEmitter { completeOnboarding: nodeify(preferencesController.completeOnboarding, preferencesController), addKnownMethodData: nodeify(preferencesController.addKnownMethodData, preferencesController), - // BlacklistController - whitelistPhishingDomain: this.whitelistPhishingDomain.bind(this), - // AddressController setAddressBook: nodeify(this.addressBookController.set, this.addressBookController), removeFromAddressBook: this.addressBookController.delete.bind(this.addressBookController), @@ -572,9 +572,6 @@ export default class MetamaskController extends EventEmitter { addPermittedAccount: nodeify(permissionsController.addPermittedAccount, permissionsController), removePermittedAccount: nodeify(permissionsController.removePermittedAccount, permissionsController), requestAccountsPermission: nodeify(permissionsController.requestAccountsPermission, permissionsController), - - getRequestAccountTabIds: (cb) => cb(null, this.getRequestAccountTabIds()), - getOpenMetamaskTabsIds: (cb) => cb(null, this.getOpenMetamaskTabsIds()), } } @@ -2043,10 +2040,10 @@ export default class MetamaskController extends EventEmitter { */ /** - * Adds a domain to the PhishingController whitelist - * @param {string} hostname - the domain to whitelist + * Adds a domain to the PhishingController safelist + * @param {string} hostname - the domain to safelist */ - whitelistPhishingDomain (hostname) { + safelistPhishingDomain (hostname) { return this.phishingController.bypass(hostname) } diff --git a/app/scripts/phishing-detect.js b/app/scripts/phishing-detect.js index 8f5960ee0..f0ab55d00 100644 --- a/app/scripts/phishing-detect.js +++ b/app/scripts/phishing-detect.js @@ -27,7 +27,7 @@ function start () { const continueLink = document.getElementById('unsafe-continue') continueLink.addEventListener('click', () => { - metaMaskController.whitelistPhishingDomain(suspect.hostname) + metaMaskController.safelistPhishingDomain(suspect.hostname) window.location.href = suspect.href }) }) From 1089ebcf53f398584fc724229159fd5c2e90eb1f Mon Sep 17 00:00:00 2001 From: Jenny Pollack Date: Mon, 8 Jun 2020 13:48:20 -0700 Subject: [PATCH 31/35] Update app/scripts/contentscript.js Co-authored-by: Mark Stacey --- app/scripts/contentscript.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index 32bb52be6..f4eeca4d4 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -181,7 +181,7 @@ function documentElementCheck () { } /** - * Checks if the current domain is blocklisted + * Checks if the current domain is blocked * * @returns {boolean} {@code true} - if the current domain is blocked */ From 56004db8bfb960f4fb00cc05b342c21d16b48cba Mon Sep 17 00:00:00 2001 From: Erik Marks Date: Mon, 8 Jun 2020 17:57:59 -0700 Subject: [PATCH 32/35] blocklisted -> blocked --- app/scripts/background.js | 4 ++-- app/scripts/contentscript.js | 12 ++++++------ app/scripts/controllers/transactions/index.js | 4 ++-- .../transactions/lib/recipient-blocklist-checker.js | 2 +- .../transactions/recipient-blocklist-checker-test.js | 12 ++++++------ 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index bf1903a8c..6eedeeea4 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -319,7 +319,7 @@ function setupController (initState, initLangCode) { [ENVIRONMENT_TYPE_FULLSCREEN]: true, } - const metamaskBlocklistedPorts = [ + const metamaskBlockedPorts = [ 'trezor-connect', ] @@ -343,7 +343,7 @@ function setupController (initState, initLangCode) { const processName = remotePort.name const isMetaMaskInternalProcess = metamaskInternalProcessHash[processName] - if (metamaskBlocklistedPorts.includes(remotePort.name)) { + if (metamaskBlockedPorts.includes(remotePort.name)) { return false } diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js index f4eeca4d4..17eeabf89 100644 --- a/app/scripts/contentscript.js +++ b/app/scripts/contentscript.js @@ -127,7 +127,7 @@ function logStreamDisconnectWarning (remoteLabel, err) { */ function shouldInjectProvider () { return doctypeCheck() && suffixCheck() && - documentElementCheck() && !blocklistedDomainCheck() + documentElementCheck() && !blockedDomainCheck() } /** @@ -185,8 +185,8 @@ function documentElementCheck () { * * @returns {boolean} {@code true} - if the current domain is blocked */ -function blocklistedDomainCheck () { - const blocklistedDomains = [ +function blockedDomainCheck () { + const blockedDomains = [ 'uscourts.gov', 'dropbox.com', 'webbyawards.com', @@ -200,9 +200,9 @@ function blocklistedDomainCheck () { ] const currentUrl = window.location.href let currentRegex - for (let i = 0; i < blocklistedDomains.length; i++) { - const blocklistedDomain = blocklistedDomains[i].replace('.', '\\.') - currentRegex = new RegExp(`(?:https?:\\/\\/)(?:(?!${blocklistedDomain}).)*$`) + for (let i = 0; i < blockedDomains.length; i++) { + const blockedDomain = blockedDomains[i].replace('.', '\\.') + currentRegex = new RegExp(`(?:https?:\\/\\/)(?:(?!${blockedDomain}).)*$`) if (!currentRegex.test(currentUrl)) { return true } diff --git a/app/scripts/controllers/transactions/index.js b/app/scripts/controllers/transactions/index.js index 8b4c23e08..43e13b77a 100644 --- a/app/scripts/controllers/transactions/index.js +++ b/app/scripts/controllers/transactions/index.js @@ -25,7 +25,7 @@ import NonceTracker from 'nonce-tracker' import * as txUtils from './lib/util' import cleanErrorStack from '../../lib/cleanErrorStack' import log from 'loglevel' -import { throwIfAccountIsBlockListed } from './lib/recipient-blocklist-checker' +import { throwIfAccountIsBlocked } from './lib/recipient-blocklist-checker' import { TRANSACTION_TYPE_CANCEL, @@ -241,7 +241,7 @@ export default class TransactionController extends EventEmitter { this.emit('newUnapprovedTx', txMeta) try { - throwIfAccountIsBlockListed(txMeta.metamaskNetworkId, normalizedTxParams.to) + throwIfAccountIsBlocked(txMeta.metamaskNetworkId, normalizedTxParams.to) txMeta = await this.addTxGasDefaults(txMeta, getCodeResponse) } catch (error) { log.warn(error) diff --git a/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js b/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js index 5460057a3..15a1e777c 100644 --- a/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js +++ b/app/scripts/controllers/transactions/lib/recipient-blocklist-checker.js @@ -6,7 +6,7 @@ import blocklist from './recipient-blocklist' * @param {string} account * @throws {Error} if the account is blocked on mainnet */ -export function throwIfAccountIsBlockListed (networkId, account) { +export function throwIfAccountIsBlocked (networkId, account) { const mainnetId = 1 if (networkId !== mainnetId) { return diff --git a/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js b/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js index e695d6fac..47a3fefe3 100644 --- a/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js +++ b/test/unit/app/controllers/transactions/recipient-blocklist-checker-test.js @@ -1,9 +1,9 @@ import { strict as assert } from 'assert' -import { throwIfAccountIsBlockListed } from '../../../../../app/scripts/controllers/transactions/lib/recipient-blocklist-checker' +import { throwIfAccountIsBlocked } from '../../../../../app/scripts/controllers/transactions/lib/recipient-blocklist-checker' import { ROPSTEN_NETWORK_ID, RINKEBY_NETWORK_ID, KOVAN_NETWORK_ID, GOERLI_NETWORK_ID } from '../../../../../app/scripts/controllers/network/enums' describe('Recipient Blocklist Checker', function () { - describe('#throwIfAccountIsBlockListed', function () { + describe('#throwIfAccountIsBlocked', function () { // Accounts from Ganache's original default seed phrase const publicAccounts = [ '0x627306090abab3a6e1400e9345bc60c78a8bef57', @@ -22,7 +22,7 @@ describe('Recipient Blocklist Checker', function () { const networks = [ROPSTEN_NETWORK_ID, RINKEBY_NETWORK_ID, KOVAN_NETWORK_ID, GOERLI_NETWORK_ID] for (const networkId of networks) { for (const account of publicAccounts) { - assert.doesNotThrow(() => throwIfAccountIsBlockListed(networkId, account)) + assert.doesNotThrow(() => throwIfAccountIsBlocked(networkId, account)) } } }) @@ -30,7 +30,7 @@ describe('Recipient Blocklist Checker', function () { it('fails on mainnet', function () { for (const account of publicAccounts) { assert.throws( - () => throwIfAccountIsBlockListed(1, account), + () => throwIfAccountIsBlocked(1, account), { message: 'Recipient is a public account' }, ) } @@ -38,14 +38,14 @@ describe('Recipient Blocklist Checker', function () { it('fails for public account - uppercase', function () { assert.throws( - () => throwIfAccountIsBlockListed(1, '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'), + () => throwIfAccountIsBlocked(1, '0X0D1D4E623D10F9FBA5DB95830F7D3839406C6AF2'), { message: 'Recipient is a public account' }, ) }) it('fails for public account - lowercase', function () { assert.throws( - () => throwIfAccountIsBlockListed(1, '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'), + () => throwIfAccountIsBlocked(1, '0x0d1d4e623d10f9fba5db95830f7d3839406c6af2'), { message: 'Recipient is a public account' }, ) }) From 4706401f4f33a52cf62e4de45ad92b512ddabfb8 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Tue, 9 Jun 2020 17:10:07 -0300 Subject: [PATCH 33/35] Refactor confirm approve page (#8757) The `confirm-approve` page has been converted from a set of container/ component components to a functional component. The `withTokenTracker` higher-order component has been deleted, as it was replaced by the `useTokenTracker` hook. --- .../with-token-tracker/index.js | 1 - .../with-token-tracker.component.js | 101 ------------- .../confirm-approve.component.js | 115 -------------- .../confirm-approve.container.js | 113 -------------- .../pages/confirm-approve/confirm-approve.js | 141 ++++++++++++++++++ ui/app/pages/confirm-approve/index.js | 2 +- 6 files changed, 142 insertions(+), 331 deletions(-) delete mode 100644 ui/app/helpers/higher-order-components/with-token-tracker/index.js delete mode 100644 ui/app/helpers/higher-order-components/with-token-tracker/with-token-tracker.component.js delete mode 100644 ui/app/pages/confirm-approve/confirm-approve.component.js delete mode 100644 ui/app/pages/confirm-approve/confirm-approve.container.js create mode 100644 ui/app/pages/confirm-approve/confirm-approve.js diff --git a/ui/app/helpers/higher-order-components/with-token-tracker/index.js b/ui/app/helpers/higher-order-components/with-token-tracker/index.js deleted file mode 100644 index d401e81f1..000000000 --- a/ui/app/helpers/higher-order-components/with-token-tracker/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from './with-token-tracker.component' diff --git a/ui/app/helpers/higher-order-components/with-token-tracker/with-token-tracker.component.js b/ui/app/helpers/higher-order-components/with-token-tracker/with-token-tracker.component.js deleted file mode 100644 index 5c2a0beb2..000000000 --- a/ui/app/helpers/higher-order-components/with-token-tracker/with-token-tracker.component.js +++ /dev/null @@ -1,101 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import TokenTracker from '@metamask/eth-token-tracker' - -export default function withTokenTracker (WrappedComponent) { - return class TokenTrackerWrappedComponent extends Component { - static propTypes = { - userAddress: PropTypes.string.isRequired, - token: PropTypes.object.isRequired, - } - - state = { - string: '', - symbol: '', - balance: '', - error: null, - } - - tracker = null - - componentDidMount () { - this.createFreshTokenTracker() - } - - componentDidUpdate (prevProps) { - const { userAddress: newAddress, token: { address: newTokenAddress } } = this.props - const { userAddress: oldAddress, token: { address: oldTokenAddress } } = prevProps - - if ((oldAddress === newAddress) && (oldTokenAddress === newTokenAddress)) { - return - } - - if ((!oldAddress || !newAddress) && (!oldTokenAddress || !newTokenAddress)) { - return - } - - this.createFreshTokenTracker() - } - - componentWillUnmount () { - this.removeListeners() - } - - createFreshTokenTracker () { - this.removeListeners() - - if (!global.ethereumProvider) { - return - } - - const { userAddress, token } = this.props - - this.tracker = new TokenTracker({ - userAddress, - provider: global.ethereumProvider, - tokens: [token], - pollingInterval: 8000, - }) - - this.tracker.on('update', this.updateBalance) - this.tracker.on('error', this.setError) - - this.tracker.updateBalances() - .then(() => this.updateBalance(this.tracker.serialize())) - .catch((error) => this.setState({ error: error.message })) - } - - setError = (error) => { - this.setState({ error }) - } - - updateBalance = (tokens = []) => { - if (!this.tracker.running) { - return - } - const [{ string, symbol, balance }] = tokens - this.setState({ string, symbol, error: null, balance }) - } - - removeListeners () { - if (this.tracker) { - this.tracker.stop() - this.tracker.removeListener('update', this.updateBalance) - this.tracker.removeListener('error', this.setError) - } - } - - render () { - const { balance, string, symbol, error } = this.state - return ( - - ) - } - } -} diff --git a/ui/app/pages/confirm-approve/confirm-approve.component.js b/ui/app/pages/confirm-approve/confirm-approve.component.js deleted file mode 100644 index 01c93e5a4..000000000 --- a/ui/app/pages/confirm-approve/confirm-approve.component.js +++ /dev/null @@ -1,115 +0,0 @@ -import React, { Component } from 'react' -import PropTypes from 'prop-types' -import ConfirmTransactionBase from '../confirm-transaction-base' -import ConfirmApproveContent from './confirm-approve-content' -import { getCustomTxParamsData } from './confirm-approve.util' -import { - calcTokenAmount, -} from '../../helpers/utils/token-util' - -export default class ConfirmApprove extends Component { - static contextTypes = { - t: PropTypes.func, - } - - static propTypes = { - tokenAddress: PropTypes.string, - toAddress: PropTypes.string, - tokenAmount: PropTypes.string, - tokenSymbol: PropTypes.string, - fiatTransactionTotal: PropTypes.string, - ethTransactionTotal: PropTypes.string, - contractExchangeRate: PropTypes.number, - conversionRate: PropTypes.number, - currentCurrency: PropTypes.string, - showCustomizeGasModal: PropTypes.func, - showEditApprovalPermissionModal: PropTypes.func, - origin: PropTypes.string, - siteImage: PropTypes.string, - tokenTrackerBalance: PropTypes.string, - data: PropTypes.string, - decimals: PropTypes.number, - txData: PropTypes.object, - } - - static defaultProps = { - tokenAmount: '0', - } - - state = { - customPermissionAmount: '', - } - - componentDidUpdate (prevProps) { - const { tokenAmount } = this.props - - if (tokenAmount !== prevProps.tokenAmount) { - this.setState({ customPermissionAmount: tokenAmount }) - } - } - - render () { - const { - toAddress, - tokenAddress, - tokenSymbol, - tokenAmount, - showCustomizeGasModal, - showEditApprovalPermissionModal, - origin, - siteImage, - tokenTrackerBalance, - data, - decimals, - txData, - currentCurrency, - ethTransactionTotal, - fiatTransactionTotal, - ...restProps - } = this.props - const { customPermissionAmount } = this.state - - const tokensText = `${Number(tokenAmount)} ${tokenSymbol}` - - const tokenBalance = tokenTrackerBalance - ? calcTokenAmount(tokenTrackerBalance, decimals).toString(10) - : '' - - const customData = customPermissionAmount - ? getCustomTxParamsData(data, { customPermissionAmount, decimals }) - : null - - return ( - { - this.setState({ customPermissionAmount: newAmount }) - }} - customTokenAmount={String(customPermissionAmount)} - tokenAmount={tokenAmount} - origin={origin} - tokenSymbol={tokenSymbol} - tokenBalance={tokenBalance} - showCustomizeGasModal={() => showCustomizeGasModal(txData)} - showEditApprovalPermissionModal={showEditApprovalPermissionModal} - data={customData || data} - toAddress={toAddress} - currentCurrency={currentCurrency} - ethTransactionTotal={ethTransactionTotal} - fiatTransactionTotal={fiatTransactionTotal} - /> - )} - hideSenderToRecipient - customTxParamsData={customData} - {...restProps} - /> - ) - } -} diff --git a/ui/app/pages/confirm-approve/confirm-approve.container.js b/ui/app/pages/confirm-approve/confirm-approve.container.js deleted file mode 100644 index 953eafb84..000000000 --- a/ui/app/pages/confirm-approve/confirm-approve.container.js +++ /dev/null @@ -1,113 +0,0 @@ -import { connect } from 'react-redux' -import { compose } from 'redux' -import { withRouter } from 'react-router-dom' -import { - contractExchangeRateSelector, - transactionFeeSelector, -} from '../../selectors' -import { getTokens } from '../../ducks/metamask/metamask' -import { showModal } from '../../store/actions' -import { - getTokenData, -} from '../../helpers/utils/transactions.util' -import withTokenTracker from '../../helpers/higher-order-components/with-token-tracker' -import { - calcTokenAmount, - getTokenToAddress, - getTokenValue, -} from '../../helpers/utils/token-util' -import ConfirmApprove from './confirm-approve.component' - -const mapStateToProps = (state, ownProps) => { - const { match: { params = {} } } = ownProps - const { id: paramsTransactionId } = params - const { - confirmTransaction, - metamask: { - currentCurrency, - conversionRate, - currentNetworkTxList, - domainMetadata = {}, - selectedAddress, - }, - } = state - - const { - txData: { id: transactionId, txParams: { to: tokenAddress, data } = {} } = {}, - } = confirmTransaction - - const transaction = ( - currentNetworkTxList.find(({ id }) => id === (Number(paramsTransactionId) || - transactionId)) || {} - ) - - const { - ethTransactionTotal, - fiatTransactionTotal, - } = transactionFeeSelector(state, transaction) - const tokens = getTokens(state) - const currentToken = tokens && tokens.find(({ address }) => tokenAddress === address) - const { decimals, symbol: tokenSymbol } = currentToken || {} - - const tokenData = getTokenData(data) - const tokenValue = tokenData && getTokenValue(tokenData.params) - const toAddress = tokenData && getTokenToAddress(tokenData.params) - const tokenAmount = tokenData && calcTokenAmount(tokenValue, decimals).toString(10) - const contractExchangeRate = contractExchangeRateSelector(state) - - const { origin } = transaction - const formattedOrigin = origin - ? origin[0].toUpperCase() + origin.slice(1) - : '' - - const { icon: siteImage = '' } = domainMetadata[origin] || {} - return { - toAddress, - tokenAddress, - tokenAmount, - currentCurrency, - conversionRate, - contractExchangeRate, - fiatTransactionTotal, - ethTransactionTotal, - tokenSymbol, - siteImage, - token: { address: tokenAddress }, - userAddress: selectedAddress, - origin: formattedOrigin, - data, - decimals: Number(decimals), - txData: transaction, - } -} - -const mapDispatchToProps = (dispatch) => { - return { - showCustomizeGasModal: (txData) => dispatch(showModal({ name: 'CUSTOMIZE_GAS', txData })), - showEditApprovalPermissionModal: ({ - customTokenAmount, - decimals, - origin, - setCustomAmount, - tokenAmount, - tokenBalance, - tokenSymbol, - }) => dispatch(showModal({ - name: 'EDIT_APPROVAL_PERMISSION', - customTokenAmount, - decimals, - origin, - setCustomAmount, - tokenAmount, - tokenBalance, - tokenSymbol, - })), - } -} - -export default compose( - withRouter, - connect(mapStateToProps, mapDispatchToProps), - withTokenTracker, -)(ConfirmApprove) - diff --git a/ui/app/pages/confirm-approve/confirm-approve.js b/ui/app/pages/confirm-approve/confirm-approve.js new file mode 100644 index 000000000..42a7d8843 --- /dev/null +++ b/ui/app/pages/confirm-approve/confirm-approve.js @@ -0,0 +1,141 @@ +import React, { useEffect, useRef, useState } from 'react' +import { useDispatch, useSelector } from 'react-redux' +import { useParams } from 'react-router-dom' +import ConfirmTransactionBase from '../confirm-transaction-base' +import ConfirmApproveContent from './confirm-approve-content' +import { getCustomTxParamsData } from './confirm-approve.util' +import { showModal } from '../../store/actions' +import { + getTokenData, +} from '../../helpers/utils/transactions.util' +import { + calcTokenAmount, + getTokenToAddress, + getTokenValue, +} from '../../helpers/utils/token-util' +import { useTokenTracker } from '../../hooks/useTokenTracker' +import { getTokens } from '../../ducks/metamask/metamask' +import { + transactionFeeSelector, + txDataSelector, +} from '../../selectors/confirm-transaction' +import { getCurrentCurrency, getDomainMetadata } from '../../selectors/selectors' +import { currentNetworkTxListSelector } from '../../selectors/transactions' + +export default function ConfirmApprove () { + const dispatch = useDispatch() + const { id: paramsTransactionId } = useParams() + const { + id: transactionId, + txParams: { + to: tokenAddress, + data, + } = {}, + } = useSelector(txDataSelector) + + const currentCurrency = useSelector(getCurrentCurrency) + const currentNetworkTxList = useSelector(currentNetworkTxListSelector) + const domainMetadata = useSelector(getDomainMetadata) + const tokens = useSelector(getTokens) + + const transaction = ( + currentNetworkTxList.find(({ id }) => id === (Number(paramsTransactionId) || transactionId)) || {} + ) + const { + ethTransactionTotal, + fiatTransactionTotal, + } = useSelector((state) => transactionFeeSelector(state, transaction)) + + const currentToken = (tokens && tokens.find(({ address }) => tokenAddress === address)) || { address: tokenAddress } + + const { tokensWithBalances } = useTokenTracker([currentToken]) + const tokenTrackerBalance = tokensWithBalances[0]?.balance || '' + + const tokenSymbol = currentToken?.symbol + const decimals = Number(currentToken?.decimals) + const tokenData = getTokenData(data) + const tokenValue = tokenData && getTokenValue(tokenData.params) + const toAddress = tokenData && getTokenToAddress(tokenData.params) + const tokenAmount = tokenData && calcTokenAmount(tokenValue, decimals).toString(10) + + const [customPermissionAmount, setCustomPermissionAmount] = useState('') + + const previousTokenAmount = useRef(tokenAmount) + + useEffect( + () => { + if (customPermissionAmount && previousTokenAmount.current !== tokenAmount) { + setCustomPermissionAmount(tokenAmount) + } + previousTokenAmount.current = tokenAmount + }, + [customPermissionAmount, tokenAmount] + ) + + const { origin } = transaction + const formattedOrigin = origin + ? origin[0].toUpperCase() + origin.slice(1) + : '' + const txData = transaction + + const { icon: siteImage = '' } = domainMetadata[origin] || {} + + const tokensText = `${Number(tokenAmount)} ${tokenSymbol}` + const tokenBalance = tokenTrackerBalance + ? calcTokenAmount(tokenTrackerBalance, decimals).toString(10) + : '' + const customData = customPermissionAmount + ? getCustomTxParamsData(data, { customPermissionAmount, decimals }) + : null + + return ( + dispatch(showModal({ name: 'CUSTOMIZE_GAS', txData }))} + showEditApprovalPermissionModal={ + ({ + customTokenAmount, + decimals, + origin, + setCustomAmount, + tokenAmount, + tokenBalance, + tokenSymbol, + }) => dispatch( + showModal({ + name: 'EDIT_APPROVAL_PERMISSION', + customTokenAmount, + decimals, + origin, + setCustomAmount, + tokenAmount, + tokenBalance, + tokenSymbol, + }) + ) + } + data={customData || data} + toAddress={toAddress} + currentCurrency={currentCurrency} + ethTransactionTotal={ethTransactionTotal} + fiatTransactionTotal={fiatTransactionTotal} + /> + )} + hideSenderToRecipient + customTxParamsData={customData} + /> + ) +} diff --git a/ui/app/pages/confirm-approve/index.js b/ui/app/pages/confirm-approve/index.js index 791297be7..204209330 100644 --- a/ui/app/pages/confirm-approve/index.js +++ b/ui/app/pages/confirm-approve/index.js @@ -1 +1 @@ -export { default } from './confirm-approve.container' +export { default } from './confirm-approve' From a84eedb7da62366de0a675b3b418917fad228b0e Mon Sep 17 00:00:00 2001 From: Erik Marks <25517051+rekmarks@users.noreply.github.com> Date: Tue, 9 Jun 2020 13:56:24 -0700 Subject: [PATCH 34/35] Permissions: Do not display HTTP/HTTPS URL schemes for unique hosts (#8768) * only show URL.host in connected-accounts component * strip scheme from URL for unique hosts Co-authored-by: Mark Stacey --- app/scripts/controllers/permissions/index.js | 5 + .../unit/app/controllers/permissions/mocks.js | 30 +-- .../permissions-controller-test.js | 223 +++++++++--------- .../permissions-log-controller-test.js | 52 ++-- .../permissions-middleware-test.js | 126 +++++----- .../connected-sites-list.component.js | 27 ++- ui/app/helpers/utils/util.js | 12 + .../connected-accounts.component.js | 2 +- .../connected-sites.component.js | 2 + .../connected-sites.container.js | 2 + ui/app/selectors/permissions.js | 18 +- ui/app/selectors/tests/permissions.test.js | 13 +- 12 files changed, 287 insertions(+), 225 deletions(-) diff --git a/app/scripts/controllers/permissions/index.js b/app/scripts/controllers/permissions/index.js index bb61831f3..876b2cd2f 100644 --- a/app/scripts/controllers/permissions/index.js +++ b/app/scripts/controllers/permissions/index.js @@ -513,6 +513,11 @@ export class PermissionsController { ...metadata, lastUpdated: Date.now(), } + + if (!newMetadataState[origin].extensionId && !newMetadataState[origin].host) { + newMetadataState[origin].host = new URL(origin).host + } + this._pendingSiteMetadata.add(origin) this._setDomainMetadata(newMetadataState) } diff --git a/test/unit/app/controllers/permissions/mocks.js b/test/unit/app/controllers/permissions/mocks.js index 6b8fad89f..754780ad9 100644 --- a/test/unit/app/controllers/permissions/mocks.js +++ b/test/unit/app/controllers/permissions/mocks.js @@ -151,10 +151,10 @@ export const getNotifyAllDomains = (notifications = {}) => (notification) => { * - e.g. permissions, caveats, and permission requests */ -const ORIGINS = { - a: 'foo.xyz', - b: 'bar.abc', - c: 'baz.def', +const DOMAINS = { + a: { origin: 'https://foo.xyz', host: 'foo.xyz' }, + b: { origin: 'https://bar.abc', host: 'bar.abc' }, + c: { origin: 'https://baz.def', host: 'baz.def' }, } const PERM_NAMES = { @@ -630,7 +630,7 @@ export const constants = deepFreeze({ c: '3', }, - ORIGINS: { ...ORIGINS }, + DOMAINS: { ...DOMAINS }, ACCOUNTS: { ...ACCOUNTS }, @@ -648,7 +648,7 @@ export const constants = deepFreeze({ case1: [ { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.eth_accounts]: { lastApproved: 1, accounts: { @@ -660,7 +660,7 @@ export const constants = deepFreeze({ }, }, { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.eth_accounts]: { lastApproved: 2, accounts: { @@ -675,7 +675,7 @@ export const constants = deepFreeze({ case2: [ { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.eth_accounts]: { lastApproved: 1, accounts: {}, @@ -686,10 +686,10 @@ export const constants = deepFreeze({ case3: [ { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.test_method]: { lastApproved: 1 }, }, - [ORIGINS.b]: { + [DOMAINS.b.origin]: { [PERM_NAMES.eth_accounts]: { lastApproved: 1, accounts: { @@ -697,7 +697,7 @@ export const constants = deepFreeze({ }, }, }, - [ORIGINS.c]: { + [DOMAINS.c.origin]: { [PERM_NAMES.test_method]: { lastApproved: 1 }, [PERM_NAMES.eth_accounts]: { lastApproved: 1, @@ -708,10 +708,10 @@ export const constants = deepFreeze({ }, }, { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.test_method]: { lastApproved: 2 }, }, - [ORIGINS.b]: { + [DOMAINS.b.origin]: { [PERM_NAMES.eth_accounts]: { lastApproved: 1, accounts: { @@ -719,7 +719,7 @@ export const constants = deepFreeze({ }, }, }, - [ORIGINS.c]: { + [DOMAINS.c.origin]: { [PERM_NAMES.test_method]: { lastApproved: 1 }, [PERM_NAMES.eth_accounts]: { lastApproved: 2, @@ -734,7 +734,7 @@ export const constants = deepFreeze({ case4: [ { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { [PERM_NAMES.test_method]: { lastApproved: 1, }, diff --git a/test/unit/app/controllers/permissions/permissions-controller-test.js b/test/unit/app/controllers/permissions/permissions-controller-test.js index 1f511235a..b5958baa5 100644 --- a/test/unit/app/controllers/permissions/permissions-controller-test.js +++ b/test/unit/app/controllers/permissions/permissions-controller-test.js @@ -37,15 +37,15 @@ const { ALL_ACCOUNTS, ACCOUNTS, DUMMY_ACCOUNT, - ORIGINS, + DOMAINS, PERM_NAMES, REQUEST_IDS, EXTRA_ACCOUNT, } = constants const initNotifications = () => { - return Object.values(ORIGINS).reduce((acc, domain) => { - acc[domain] = [] + return Object.values(DOMAINS).reduce((acc, domain) => { + acc[domain.origin] = [] return acc }, {}) } @@ -73,19 +73,19 @@ describe('permissions controller', function () { beforeEach(function () { permController = initPermController() grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) }) it('gets permitted accounts for permitted origins', async function () { - const aAccounts = await permController.getAccounts(ORIGINS.a) - const bAccounts = await permController.getAccounts(ORIGINS.b) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) + const bAccounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], @@ -98,7 +98,7 @@ describe('permissions controller', function () { }) it('does not get accounts for unpermitted origins', async function () { - const cAccounts = await permController.getAccounts(ORIGINS.c) + const cAccounts = await permController.getAccounts(DOMAINS.c.origin) assert.deepEqual(cAccounts, [], 'origin should have no accounts') }) @@ -114,29 +114,29 @@ describe('permissions controller', function () { const permController = initPermController() grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.test_method() ) assert.ok( - permController.hasPermission(ORIGINS.a, 'eth_accounts'), + permController.hasPermission(DOMAINS.a.origin, 'eth_accounts'), 'should return true for granted permission' ) assert.ok( - permController.hasPermission(ORIGINS.b, 'test_method'), + permController.hasPermission(DOMAINS.b.origin, 'test_method'), 'should return true for granted permission' ) assert.ok( - !permController.hasPermission(ORIGINS.a, 'test_method'), + !permController.hasPermission(DOMAINS.a.origin, 'test_method'), 'should return false for non-granted permission' ) assert.ok( - !permController.hasPermission(ORIGINS.b, 'eth_accounts'), + !permController.hasPermission(DOMAINS.b.origin, 'eth_accounts'), 'should return true for non-granted permission' ) @@ -145,7 +145,7 @@ describe('permissions controller', function () { 'should return false for unknown origin' ) assert.ok( - !permController.hasPermission(ORIGINS.b, 'foo'), + !permController.hasPermission(DOMAINS.b.origin, 'foo'), 'should return false for unknown permission' ) }) @@ -159,21 +159,21 @@ describe('permissions controller', function () { const permController = initPermController(notifications) grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.c.permitted) ) - let aAccounts = await permController.getAccounts(ORIGINS.a) - let bAccounts = await permController.getAccounts(ORIGINS.b) - let cAccounts = await permController.getAccounts(ORIGINS.c) + let aAccounts = await permController.getAccounts(DOMAINS.a.origin) + let bAccounts = await permController.getAccounts(DOMAINS.b.origin) + let cAccounts = await permController.getAccounts(DOMAINS.c.origin) assert.deepEqual( @@ -199,9 +199,9 @@ describe('permissions controller', function () { ) }) - aAccounts = await permController.getAccounts(ORIGINS.a) - bAccounts = await permController.getAccounts(ORIGINS.b) - cAccounts = await permController.getAccounts(ORIGINS.c) + aAccounts = await permController.getAccounts(DOMAINS.a.origin) + bAccounts = await permController.getAccounts(DOMAINS.b.origin) + cAccounts = await permController.getAccounts(DOMAINS.c.origin) assert.deepEqual(aAccounts, [], 'first origin should have no accounts') assert.deepEqual(bAccounts, [], 'second origin should have no accounts') @@ -230,19 +230,19 @@ describe('permissions controller', function () { notifications = initNotifications() permController = initPermController(notifications) grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) }) it('removes permissions for multiple domains', async function () { - let aAccounts = await permController.getAccounts(ORIGINS.a) - let bAccounts = await permController.getAccounts(ORIGINS.b) + let aAccounts = await permController.getAccounts(DOMAINS.a.origin) + let bAccounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], @@ -254,22 +254,22 @@ describe('permissions controller', function () { ) permController.removePermissionsFor({ - [ORIGINS.a]: [PERM_NAMES.eth_accounts], - [ORIGINS.b]: [PERM_NAMES.eth_accounts], + [DOMAINS.a.origin]: [PERM_NAMES.eth_accounts], + [DOMAINS.b.origin]: [PERM_NAMES.eth_accounts], }) - aAccounts = await permController.getAccounts(ORIGINS.a) - bAccounts = await permController.getAccounts(ORIGINS.b) + aAccounts = await permController.getAccounts(DOMAINS.a.origin) + bAccounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual(aAccounts, [], 'first origin should have no accounts') assert.deepEqual(bAccounts, [], 'second origin should have no accounts') assert.deepEqual( - notifications[ORIGINS.a], [NOTIFICATIONS.removedAccounts()], + notifications[DOMAINS.a.origin], [NOTIFICATIONS.removedAccounts()], 'first origin should have correct notification' ) assert.deepEqual( - notifications[ORIGINS.b], [NOTIFICATIONS.removedAccounts()], + notifications[DOMAINS.b.origin], [NOTIFICATIONS.removedAccounts()], 'second origin should have correct notification' ) @@ -282,10 +282,10 @@ describe('permissions controller', function () { it('only removes targeted permissions from single domain', async function () { grantPermissions( - permController, ORIGINS.b, PERMS.finalizedRequests.test_method() + permController, DOMAINS.b.origin, PERMS.finalizedRequests.test_method() ) - let bPermissions = permController.permissions.getPermissionsForDomain(ORIGINS.b) + let bPermissions = permController.permissions.getPermissionsForDomain(DOMAINS.b.origin) assert.ok( ( @@ -297,10 +297,10 @@ describe('permissions controller', function () { ) permController.removePermissionsFor({ - [ORIGINS.b]: [PERM_NAMES.test_method], + [DOMAINS.b.origin]: [PERM_NAMES.test_method], }) - bPermissions = permController.permissions.getPermissionsForDomain(ORIGINS.b) + bPermissions = permController.permissions.getPermissionsForDomain(DOMAINS.b.origin) assert.ok( ( @@ -314,11 +314,11 @@ describe('permissions controller', function () { it('removes permissions for a single domain, without affecting another', async function () { permController.removePermissionsFor({ - [ORIGINS.b]: [PERM_NAMES.eth_accounts], + [DOMAINS.b.origin]: [PERM_NAMES.eth_accounts], }) - const aAccounts = await permController.getAccounts(ORIGINS.a) - const bAccounts = await permController.getAccounts(ORIGINS.b) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) + const bAccounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], @@ -327,16 +327,16 @@ describe('permissions controller', function () { assert.deepEqual(bAccounts, [], 'second origin should have no accounts') assert.deepEqual( - notifications[ORIGINS.a], [], + notifications[DOMAINS.a.origin], [], 'first origin should have no notifications' ) assert.deepEqual( - notifications[ORIGINS.b], [NOTIFICATIONS.removedAccounts()], + notifications[DOMAINS.b.origin], [NOTIFICATIONS.removedAccounts()], 'second origin should have correct notification' ) assert.deepEqual( - Object.keys(permController.permissions.getDomains()), [ORIGINS.a], + Object.keys(permController.permissions.getDomains()), [DOMAINS.a.origin], 'only first origin should remain' ) }) @@ -345,16 +345,16 @@ describe('permissions controller', function () { // it knows nothing of this origin permController.removePermissionsFor({ - [ORIGINS.c]: [PERM_NAMES.eth_accounts], + [DOMAINS.c.origin]: [PERM_NAMES.eth_accounts], }) assert.deepEqual( - notifications[ORIGINS.c], [NOTIFICATIONS.removedAccounts()], + notifications[DOMAINS.c.origin], [NOTIFICATIONS.removedAccounts()], 'unknown origin should have notification' ) - const aAccounts = await permController.getAccounts(ORIGINS.a) - const bAccounts = await permController.getAccounts(ORIGINS.b) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) + const bAccounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], @@ -367,7 +367,7 @@ describe('permissions controller', function () { assert.deepEqual( Object.keys(permController.permissions.getDomains()), - [ORIGINS.a, ORIGINS.b], + [DOMAINS.a.origin, DOMAINS.b.origin], 'should have correct domains' ) }) @@ -380,11 +380,11 @@ describe('permissions controller', function () { beforeEach(function () { permController = initPermController() grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) }) @@ -470,18 +470,18 @@ describe('permissions controller', function () { notifications = initNotifications() permController = initPermController(notifications) grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) }) it('should throw if account is not a string', async function () { await assert.rejects( - () => permController.addPermittedAccount(ORIGINS.a, {}), + () => permController.addPermittedAccount(DOMAINS.a.origin, {}), ERRORS.validatePermittedAccounts.nonKeyringAccount({}), 'should throw on non-string account param' ) @@ -489,7 +489,7 @@ describe('permissions controller', function () { it('should throw if given account is not in keyring', async function () { await assert.rejects( - () => permController.addPermittedAccount(ORIGINS.a, DUMMY_ACCOUNT), + () => permController.addPermittedAccount(DOMAINS.a.origin, DUMMY_ACCOUNT), ERRORS.validatePermittedAccounts.nonKeyringAccount(DUMMY_ACCOUNT), 'should throw on non-keyring account' ) @@ -505,7 +505,7 @@ describe('permissions controller', function () { it('should throw if origin lacks any permissions', async function () { await assert.rejects( - () => permController.addPermittedAccount(ORIGINS.c, EXTRA_ACCOUNT), + () => permController.addPermittedAccount(DOMAINS.c.origin, EXTRA_ACCOUNT), ERRORS.addPermittedAccount.invalidOrigin(), 'should throw on origin without permissions' ) @@ -513,12 +513,12 @@ describe('permissions controller', function () { it('should throw if origin lacks eth_accounts permission', async function () { grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.test_method() ) await assert.rejects( - () => permController.addPermittedAccount(ORIGINS.c, EXTRA_ACCOUNT), + () => permController.addPermittedAccount(DOMAINS.c.origin, EXTRA_ACCOUNT), ERRORS.addPermittedAccount.noEthAccountsPermission(), 'should throw on origin without eth_accounts permission' ) @@ -526,16 +526,16 @@ describe('permissions controller', function () { it('should throw if account is already permitted', async function () { await assert.rejects( - () => permController.addPermittedAccount(ORIGINS.a, ACCOUNTS.a.permitted[0]), + () => permController.addPermittedAccount(DOMAINS.a.origin, ACCOUNTS.a.permitted[0]), ERRORS.addPermittedAccount.alreadyPermitted(), 'should throw if account is already permitted' ) }) it('should successfully add permitted account', async function () { - await permController.addPermittedAccount(ORIGINS.a, EXTRA_ACCOUNT) + await permController.addPermittedAccount(DOMAINS.a.origin, EXTRA_ACCOUNT) - const accounts = await permController._getPermittedAccounts(ORIGINS.a) + const accounts = await permController._getPermittedAccounts(DOMAINS.a.origin) assert.deepEqual( accounts, [...ACCOUNTS.a.permitted, EXTRA_ACCOUNT], @@ -543,7 +543,7 @@ describe('permissions controller', function () { ) assert.deepEqual( - notifications[ORIGINS.a][0], + notifications[DOMAINS.a.origin][0], NOTIFICATIONS.newAccounts([ACCOUNTS.a.primary]), 'origin should have correct notification' ) @@ -557,18 +557,18 @@ describe('permissions controller', function () { notifications = initNotifications() permController = initPermController(notifications) grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.b.permitted) ) }) it('should throw if account is not a string', async function () { await assert.rejects( - () => permController.removePermittedAccount(ORIGINS.a, {}), + () => permController.removePermittedAccount(DOMAINS.a.origin, {}), ERRORS.validatePermittedAccounts.nonKeyringAccount({}), 'should throw on non-string account param' ) @@ -576,7 +576,7 @@ describe('permissions controller', function () { it('should throw if given account is not in keyring', async function () { await assert.rejects( - () => permController.removePermittedAccount(ORIGINS.a, DUMMY_ACCOUNT), + () => permController.removePermittedAccount(DOMAINS.a.origin, DUMMY_ACCOUNT), ERRORS.validatePermittedAccounts.nonKeyringAccount(DUMMY_ACCOUNT), 'should throw on non-keyring account' ) @@ -592,7 +592,7 @@ describe('permissions controller', function () { it('should throw if origin lacks any permissions', async function () { await assert.rejects( - () => permController.removePermittedAccount(ORIGINS.c, EXTRA_ACCOUNT), + () => permController.removePermittedAccount(DOMAINS.c.origin, EXTRA_ACCOUNT), ERRORS.removePermittedAccount.invalidOrigin(), 'should throw on origin without permissions' ) @@ -600,12 +600,12 @@ describe('permissions controller', function () { it('should throw if origin lacks eth_accounts permission', async function () { grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.test_method() ) await assert.rejects( - () => permController.removePermittedAccount(ORIGINS.c, EXTRA_ACCOUNT), + () => permController.removePermittedAccount(DOMAINS.c.origin, EXTRA_ACCOUNT), ERRORS.removePermittedAccount.noEthAccountsPermission(), 'should throw on origin without eth_accounts permission' ) @@ -613,16 +613,16 @@ describe('permissions controller', function () { it('should throw if account is not permitted', async function () { await assert.rejects( - () => permController.removePermittedAccount(ORIGINS.b, ACCOUNTS.c.permitted[0]), + () => permController.removePermittedAccount(DOMAINS.b.origin, ACCOUNTS.c.permitted[0]), ERRORS.removePermittedAccount.notPermitted(), 'should throw if account is not permitted' ) }) it('should successfully remove permitted account', async function () { - await permController.removePermittedAccount(ORIGINS.a, ACCOUNTS.a.permitted[1]) + await permController.removePermittedAccount(DOMAINS.a.origin, ACCOUNTS.a.permitted[1]) - const accounts = await permController._getPermittedAccounts(ORIGINS.a) + const accounts = await permController._getPermittedAccounts(DOMAINS.a.origin) assert.deepEqual( accounts, ACCOUNTS.a.permitted.filter((acc) => acc !== ACCOUNTS.a.permitted[1]), @@ -630,16 +630,16 @@ describe('permissions controller', function () { ) assert.deepEqual( - notifications[ORIGINS.a][0], + notifications[DOMAINS.a.origin][0], NOTIFICATIONS.newAccounts([ACCOUNTS.a.primary]), 'origin should have correct notification' ) }) it('should remove eth_accounts permission if removing only permitted account', async function () { - await permController.removePermittedAccount(ORIGINS.b, ACCOUNTS.b.permitted[0]) + await permController.removePermittedAccount(DOMAINS.b.origin, ACCOUNTS.b.permitted[0]) - const accounts = await permController.getAccounts(ORIGINS.b) + const accounts = await permController.getAccounts(DOMAINS.b.origin) assert.deepEqual( accounts, [], @@ -647,13 +647,13 @@ describe('permissions controller', function () { ) const permission = await permController.permissions.getPermission( - ORIGINS.b, PERM_NAMES.eth_accounts + DOMAINS.b.origin, PERM_NAMES.eth_accounts ) assert.equal(permission, undefined, 'origin should not have eth_accounts permission') assert.deepEqual( - notifications[ORIGINS.b][0], + notifications[DOMAINS.b.origin][0], NOTIFICATIONS.removedAccounts(), 'origin should have correct notification' ) @@ -744,11 +744,11 @@ describe('permissions controller', function () { preferences, }) grantPermissions( - permController, ORIGINS.b, + permController, DOMAINS.b.origin, PERMS.finalizedRequests.eth_accounts([...ACCOUNTS.a.permitted, EXTRA_ACCOUNT]) ) grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) }) @@ -774,11 +774,11 @@ describe('permissions controller', function () { await onPreferencesUpdate({ selectedAddress: DUMMY_ACCOUNT }) assert.deepEqual( - notifications[ORIGINS.b], [], + notifications[DOMAINS.b.origin], [], 'should not have emitted notification' ) assert.deepEqual( - notifications[ORIGINS.c], [], + notifications[DOMAINS.c.origin], [], 'should not have emitted notification' ) }) @@ -792,12 +792,12 @@ describe('permissions controller', function () { await onPreferencesUpdate({ selectedAddress: ACCOUNTS.a.permitted[0] }) assert.deepEqual( - notifications[ORIGINS.b], + notifications[DOMAINS.b.origin], [NOTIFICATIONS.newAccounts([ACCOUNTS.a.primary])], 'should not have emitted notification' ) assert.deepEqual( - notifications[ORIGINS.c], + notifications[DOMAINS.c.origin], [NOTIFICATIONS.newAccounts([ACCOUNTS.a.primary])], 'should not have emitted notification' ) @@ -812,12 +812,12 @@ describe('permissions controller', function () { await onPreferencesUpdate({ selectedAddress: EXTRA_ACCOUNT }) assert.deepEqual( - notifications[ORIGINS.b], + notifications[DOMAINS.b.origin], [NOTIFICATIONS.newAccounts([EXTRA_ACCOUNT])], 'should have emitted notification' ) assert.deepEqual( - notifications[ORIGINS.c], [], + notifications[DOMAINS.c.origin], [], 'should not have emitted notification' ) }) @@ -831,12 +831,12 @@ describe('permissions controller', function () { await onPreferencesUpdate({ selectedAddress: ACCOUNTS.a.permitted[1] }) assert.deepEqual( - notifications[ORIGINS.b], + notifications[DOMAINS.b.origin], [NOTIFICATIONS.newAccounts([ACCOUNTS.a.permitted[1]])], 'should have emitted notification' ) assert.deepEqual( - notifications[ORIGINS.c], + notifications[DOMAINS.c.origin], [NOTIFICATIONS.newAccounts([ACCOUNTS.c.primary])], 'should have emitted notification' ) @@ -1113,7 +1113,7 @@ describe('permissions controller', function () { let middleware assert.doesNotThrow( () => { - middleware = permController.createMiddleware({ origin: ORIGINS.a }) + middleware = permController.createMiddleware({ origin: DOMAINS.a.origin }) }, 'should not throw' ) @@ -1137,7 +1137,7 @@ describe('permissions controller', function () { assert.doesNotThrow( () => { middleware = permController.createMiddleware({ - origin: ORIGINS.a, + origin: DOMAINS.a.origin, extensionId, }) }, @@ -1157,7 +1157,7 @@ describe('permissions controller', function () { const metadataStore = permController.store.getState()[METADATA_STORE_KEY] assert.deepEqual( - metadataStore[ORIGINS.a], { extensionId, lastUpdated: 1 }, + metadataStore[DOMAINS.a.origin], { extensionId, lastUpdated: 1 }, 'metadata should be stored' ) }) @@ -1176,7 +1176,7 @@ describe('permissions controller', function () { it('notifyAccountsChanged records history and sends notification', async function () { permController.notifyAccountsChanged( - ORIGINS.a, + DOMAINS.a.origin, ACCOUNTS.a.permitted, ) @@ -1186,7 +1186,7 @@ describe('permissions controller', function () { ) assert.deepEqual( - notifications[ORIGINS.a], + notifications[DOMAINS.a.origin], [ NOTIFICATIONS.newAccounts(ACCOUNTS.a.permitted) ], 'origin should have correct notification' ) @@ -1217,7 +1217,7 @@ describe('permissions controller', function () { assert.throws( () => permController.notifyAccountsChanged( - ORIGINS.a, + DOMAINS.a.origin, 4, ), ERRORS.notifyAccountsChanged.invalidAccounts(), @@ -1226,7 +1226,7 @@ describe('permissions controller', function () { assert.throws( () => permController.notifyAccountsChanged( - ORIGINS.a, + DOMAINS.a.origin, null, ), ERRORS.notifyAccountsChanged.invalidAccounts(), @@ -1262,13 +1262,13 @@ describe('permissions controller', function () { permController.store.getState = sinon.fake.returns({ [METADATA_STORE_KEY]: { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { foo: 'bar', }, }, }) - permController.addDomainMetadata(ORIGINS.b, { foo: 'bar' }) + permController.addDomainMetadata(DOMAINS.b.origin, { foo: 'bar' }) assert.ok( permController.store.getState.called, @@ -1281,11 +1281,12 @@ describe('permissions controller', function () { assert.deepEqual( permController._setDomainMetadata.lastCall.args, [{ - [ORIGINS.a]: { + [DOMAINS.a.origin]: { foo: 'bar', }, - [ORIGINS.b]: { + [DOMAINS.b.origin]: { foo: 'bar', + host: DOMAINS.b.host, lastUpdated: 1, }, }] @@ -1296,16 +1297,16 @@ describe('permissions controller', function () { permController.store.getState = sinon.fake.returns({ [METADATA_STORE_KEY]: { - [ORIGINS.a]: { + [DOMAINS.a.origin]: { foo: 'bar', }, - [ORIGINS.b]: { + [DOMAINS.b.origin]: { bar: 'baz', }, }, }) - permController.addDomainMetadata(ORIGINS.b, { foo: 'bar' }) + permController.addDomainMetadata(DOMAINS.b.origin, { foo: 'bar' }) assert.ok( permController.store.getState.called, @@ -1318,12 +1319,13 @@ describe('permissions controller', function () { assert.deepEqual( permController._setDomainMetadata.lastCall.args, [{ - [ORIGINS.a]: { + [DOMAINS.a.origin]: { foo: 'bar', }, - [ORIGINS.b]: { + [DOMAINS.b.origin]: { foo: 'bar', bar: 'baz', + host: DOMAINS.b.host, lastUpdated: 1, }, }] @@ -1347,7 +1349,7 @@ describe('permissions controller', function () { permController._pendingSiteMetadata.add(origin) }) - permController.addDomainMetadata(ORIGINS.a, { foo: 'bar' }) + permController.addDomainMetadata(DOMAINS.a.origin, { foo: 'bar' }) assert.ok( permController.store.getState.called, @@ -1356,8 +1358,9 @@ describe('permissions controller', function () { const expectedMetadata = { ...mockMetadata, - [ORIGINS.a]: { + [DOMAINS.a.origin]: { foo: 'bar', + host: DOMAINS.a.host, lastUpdated: 1, }, } @@ -1385,12 +1388,12 @@ describe('permissions controller', function () { it('trims domain metadata for domains without permissions', function () { const metadataArg = { - [ORIGINS.a]: {}, - [ORIGINS.b]: {}, + [DOMAINS.a.origin]: {}, + [DOMAINS.b.origin]: {}, } permController.permissions.getDomains = sinon.fake.returns({ - [ORIGINS.a]: {}, + [DOMAINS.a.origin]: {}, }) const metadataResult = permController._trimDomainMetadata(metadataArg) @@ -1402,7 +1405,7 @@ describe('permissions controller', function () { assert.deepEqual( metadataResult, { - [ORIGINS.a]: {}, + [DOMAINS.a.origin]: {}, }, 'should have produced expected state' ) @@ -1430,7 +1433,7 @@ describe('permissions controller', function () { it('_addPendingApproval: should throw if adding origin twice', function () { const id = nanoid() - const origin = ORIGINS.a + const origin = DOMAINS.a permController._addPendingApproval(id, origin, noop, noop) diff --git a/test/unit/app/controllers/permissions/permissions-log-controller-test.js b/test/unit/app/controllers/permissions/permissions-log-controller-test.js index ea3a14714..ea99fcd2d 100644 --- a/test/unit/app/controllers/permissions/permissions-log-controller-test.js +++ b/test/unit/app/controllers/permissions/permissions-log-controller-test.js @@ -29,7 +29,7 @@ const { const { ACCOUNTS, EXPECTED_HISTORIES, - ORIGINS, + DOMAINS, PERM_NAMES, REQUEST_IDS, RESTRICTED_METHODS, @@ -86,7 +86,7 @@ describe('permissions log', function () { // test_method, success - req = RPC_REQUESTS.test_method(ORIGINS.a) + req = RPC_REQUESTS.test_method(DOMAINS.a.origin) req.id = REQUEST_IDS.a res = { foo: 'bar' } @@ -103,7 +103,7 @@ describe('permissions log', function () { // eth_accounts, failure - req = RPC_REQUESTS.eth_accounts(ORIGINS.b) + req = RPC_REQUESTS.eth_accounts(DOMAINS.b.origin) req.id = REQUEST_IDS.b res = { error: new Error('Unauthorized.') } @@ -120,7 +120,7 @@ describe('permissions log', function () { // eth_requestAccounts, success - req = RPC_REQUESTS.eth_requestAccounts(ORIGINS.c) + req = RPC_REQUESTS.eth_requestAccounts(DOMAINS.c.origin) req.id = REQUEST_IDS.c res = { result: ACCOUNTS.c.permitted } @@ -137,7 +137,7 @@ describe('permissions log', function () { // test_method, no response - req = RPC_REQUESTS.test_method(ORIGINS.a) + req = RPC_REQUESTS.test_method(DOMAINS.a.origin) req.id = REQUEST_IDS.a res = null @@ -170,7 +170,7 @@ describe('permissions log', function () { const id2 = nanoid() const id3 = nanoid() - const req = RPC_REQUESTS.test_method(ORIGINS.a) + const req = RPC_REQUESTS.test_method(DOMAINS.a.origin) // get make requests req.id = id1 @@ -230,7 +230,7 @@ describe('permissions log', function () { it('handles a lack of response', function () { - let req = RPC_REQUESTS.test_method(ORIGINS.a) + let req = RPC_REQUESTS.test_method(DOMAINS.a.origin) req.id = REQUEST_IDS.a let res = { foo: 'bar' } @@ -247,7 +247,7 @@ describe('permissions log', function () { ) // next request should be handled as normal - req = RPC_REQUESTS.eth_accounts(ORIGINS.b) + req = RPC_REQUESTS.eth_accounts(DOMAINS.b.origin) req.id = REQUEST_IDS.b res = { result: ACCOUNTS.b.permitted } @@ -272,9 +272,9 @@ describe('permissions log', function () { assert.equal(log.length, 0, 'log should be empty') const res = { foo: 'bar' } - const req1 = RPC_REQUESTS.wallet_sendDomainMetadata(ORIGINS.c, 'foobar') - const req2 = RPC_REQUESTS.custom(ORIGINS.b, 'eth_getBlockNumber') - const req3 = RPC_REQUESTS.custom(ORIGINS.b, 'net_version') + const req1 = RPC_REQUESTS.wallet_sendDomainMetadata(DOMAINS.c.origin, 'foobar') + const req2 = RPC_REQUESTS.custom(DOMAINS.b.origin, 'eth_getBlockNumber') + const req3 = RPC_REQUESTS.custom(DOMAINS.b.origin, 'net_version') logMiddleware(req1, res) logMiddleware(req2, res) @@ -286,7 +286,7 @@ describe('permissions log', function () { it('enforces log limit', function () { - const req = RPC_REQUESTS.test_method(ORIGINS.a) + const req = RPC_REQUESTS.test_method(DOMAINS.a.origin) const res = { foo: 'bar' } // max out log @@ -352,7 +352,7 @@ describe('permissions log', function () { let permHistory const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ) const res = { result: [ PERMS.granted.test_method() ] } @@ -371,7 +371,7 @@ describe('permissions log', function () { 'history should have single origin' ) assert.ok( - Boolean(permHistory[ORIGINS.a]), + Boolean(permHistory[DOMAINS.a.origin]), 'history should have expected origin' ) }) @@ -379,7 +379,7 @@ describe('permissions log', function () { it('ignores malformed permissions requests', function () { const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ) delete req.params const res = { result: [ PERMS.granted.test_method() ] } @@ -395,7 +395,7 @@ describe('permissions log', function () { let permHistory const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = { result: [ PERMS.granted.eth_accounts(ACCOUNTS.a.permitted) ], @@ -433,7 +433,7 @@ describe('permissions log', function () { it('handles eth_accounts response without caveats', async function () { const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = { result: [ PERMS.granted.eth_accounts(ACCOUNTS.a.permitted) ], @@ -453,7 +453,7 @@ describe('permissions log', function () { it('handles extra caveats for eth_accounts', async function () { const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = { result: [ PERMS.granted.eth_accounts(ACCOUNTS.a.permitted) ], @@ -476,7 +476,7 @@ describe('permissions log', function () { it('handles unrequested permissions on the response', async function () { const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = { result: [ @@ -499,7 +499,7 @@ describe('permissions log', function () { it('does not update history if no new permissions are approved', async function () { let req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ) let res = { result: [ @@ -522,7 +522,7 @@ describe('permissions log', function () { clock.tick(1) req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) res = { result: [ @@ -553,7 +553,7 @@ describe('permissions log', function () { // first origin round1.push({ req: RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ), res: { result: [ PERMS.granted.test_method() ], @@ -563,7 +563,7 @@ describe('permissions log', function () { // second origin round1.push({ req: RPC_REQUESTS.requestPermission( - ORIGINS.b, PERM_NAMES.eth_accounts + DOMAINS.b.origin, PERM_NAMES.eth_accounts ), res: { result: [ PERMS.granted.eth_accounts(ACCOUNTS.b.permitted) ], @@ -572,7 +572,7 @@ describe('permissions log', function () { // third origin round1.push({ - req: RPC_REQUESTS.requestPermissions(ORIGINS.c, { + req: RPC_REQUESTS.requestPermissions(DOMAINS.c.origin, { [PERM_NAMES.test_method]: {}, [PERM_NAMES.eth_accounts]: {}, }), @@ -611,7 +611,7 @@ describe('permissions log', function () { // first origin round2.push({ req: RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ), res: { result: [ PERMS.granted.test_method() ], @@ -622,7 +622,7 @@ describe('permissions log', function () { // third origin round2.push({ - req: RPC_REQUESTS.requestPermissions(ORIGINS.c, { + req: RPC_REQUESTS.requestPermissions(DOMAINS.c.origin, { [PERM_NAMES.eth_accounts]: {}, }), res: { diff --git a/test/unit/app/controllers/permissions/permissions-middleware-test.js b/test/unit/app/controllers/permissions/permissions-middleware-test.js index 7988564ae..5e513c9f7 100644 --- a/test/unit/app/controllers/permissions/permissions-middleware-test.js +++ b/test/unit/app/controllers/permissions/permissions-middleware-test.js @@ -30,7 +30,7 @@ const { const { ACCOUNTS, - ORIGINS, + DOMAINS, PERM_NAMES, } = constants @@ -63,10 +63,10 @@ describe('permissions middleware', function () { it('grants permissions on user approval', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = {} @@ -99,11 +99,11 @@ describe('permissions middleware', function () { validatePermission( res.result[0], PERM_NAMES.eth_accounts, - ORIGINS.a, + DOMAINS.a.origin, CAVEATS.eth_accounts(ACCOUNTS.a.permitted) ) - const aAccounts = await permController.getAccounts(ORIGINS.a) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], 'origin should have correct accounts' @@ -111,7 +111,7 @@ describe('permissions middleware', function () { assert.ok( permController.notifyAccountsChanged.calledOnceWith( - ORIGINS.a, aAccounts, + DOMAINS.a.origin, aAccounts, ), 'expected notification call should have been made' ) @@ -119,12 +119,12 @@ describe('permissions middleware', function () { it('handles serial approved requests that overwrite existing permissions', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) // create first request const req1 = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res1 = {} @@ -155,11 +155,11 @@ describe('permissions middleware', function () { validatePermission( res1.result[0], PERM_NAMES.eth_accounts, - ORIGINS.a, + DOMAINS.a.origin, CAVEATS.eth_accounts(ACCOUNTS.a.permitted) ) - const accounts1 = await permController.getAccounts(ORIGINS.a) + const accounts1 = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( accounts1, [ACCOUNTS.a.primary], 'origin should have correct accounts' @@ -167,7 +167,7 @@ describe('permissions middleware', function () { assert.ok( permController.notifyAccountsChanged.calledOnceWith( - ORIGINS.a, accounts1, + DOMAINS.a.origin, accounts1, ), 'expected notification call should have been made' ) @@ -180,7 +180,7 @@ describe('permissions middleware', function () { } const req2 = RPC_REQUESTS.requestPermissions( - ORIGINS.a, { ...requestedPerms2 } + DOMAINS.a.origin, { ...requestedPerms2 } ) const res2 = {} @@ -211,17 +211,17 @@ describe('permissions middleware', function () { validatePermission( res2.result[0], PERM_NAMES.eth_accounts, - ORIGINS.a, + DOMAINS.a.origin, CAVEATS.eth_accounts(ACCOUNTS.b.permitted) ) validatePermission( res2.result[1], PERM_NAMES.test_method, - ORIGINS.a, + DOMAINS.a.origin, ) - const accounts2 = await permController.getAccounts(ORIGINS.a) + const accounts2 = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( accounts2, [ACCOUNTS.b.primary], 'origin should have correct accounts' @@ -234,7 +234,7 @@ describe('permissions middleware', function () { assert.ok( permController.notifyAccountsChanged.lastCall.calledWith( - ORIGINS.a, accounts2, + DOMAINS.a.origin, accounts2, ), 'expected notification call should have been made' ) @@ -242,10 +242,10 @@ describe('permissions middleware', function () { it('rejects permissions on user rejection', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) const req = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.eth_accounts + DOMAINS.a.origin, PERM_NAMES.eth_accounts ) const res = {} @@ -275,7 +275,7 @@ describe('permissions middleware', function () { 'response should have expected error and no result' ) - const aAccounts = await permController.getAccounts(ORIGINS.a) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( aAccounts, [], 'origin should have have correct accounts' ) @@ -288,10 +288,10 @@ describe('permissions middleware', function () { it('rejects requests with unknown permissions', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) const req = RPC_REQUESTS.requestPermissions( - ORIGINS.a, { + DOMAINS.a.origin, { ...PERMS.requests.does_not_exist(), ...PERMS.requests.test_method(), } @@ -333,13 +333,13 @@ describe('permissions middleware', function () { // two middlewares for two origins - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) - const bMiddleware = getPermissionsMiddleware(permController, ORIGINS.b) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) + const bMiddleware = getPermissionsMiddleware(permController, DOMAINS.b.origin) // create and start processing first request for first origin const reqA1 = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ) const resA1 = {} @@ -351,7 +351,7 @@ describe('permissions middleware', function () { // create and start processing first request for second origin const reqB1 = RPC_REQUESTS.requestPermission( - ORIGINS.b, PERM_NAMES.test_method + DOMAINS.b.origin, PERM_NAMES.test_method ) const resB1 = {} @@ -369,7 +369,7 @@ describe('permissions middleware', function () { // which should throw const reqA2 = RPC_REQUESTS.requestPermission( - ORIGINS.a, PERM_NAMES.test_method + DOMAINS.a.origin, PERM_NAMES.test_method ) const resA2 = {} @@ -439,9 +439,9 @@ describe('permissions middleware', function () { it('prevents restricted method access for unpermitted domain', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) - const req = RPC_REQUESTS.test_method(ORIGINS.a) + const req = RPC_REQUESTS.test_method(DOMAINS.a.origin) const res = {} const expectedError = ERRORS.rpcCap.unauthorized() @@ -463,11 +463,11 @@ describe('permissions middleware', function () { it('allows restricted method access for permitted domain', async function () { - const bMiddleware = getPermissionsMiddleware(permController, ORIGINS.b) + const bMiddleware = getPermissionsMiddleware(permController, DOMAINS.b.origin) - grantPermissions(permController, ORIGINS.b, PERMS.finalizedRequests.test_method()) + grantPermissions(permController, DOMAINS.b.origin, PERMS.finalizedRequests.test_method()) - const req = RPC_REQUESTS.test_method(ORIGINS.b, true) + const req = RPC_REQUESTS.test_method(DOMAINS.b.origin, true) const res = {} await assert.doesNotReject( @@ -492,9 +492,9 @@ describe('permissions middleware', function () { it('returns empty array for non-permitted domain', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) - const req = RPC_REQUESTS.eth_accounts(ORIGINS.a) + const req = RPC_REQUESTS.eth_accounts(DOMAINS.a.origin) const res = {} await assert.doesNotReject( @@ -514,14 +514,14 @@ describe('permissions middleware', function () { it('returns correct accounts for permitted domain', async function () { - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) grantPermissions( - permController, ORIGINS.a, + permController, DOMAINS.a.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.a.permitted) ) - const req = RPC_REQUESTS.eth_accounts(ORIGINS.a) + const req = RPC_REQUESTS.eth_accounts(DOMAINS.a.origin) const res = {} await assert.doesNotReject( @@ -552,9 +552,9 @@ describe('permissions middleware', function () { const userApprovalPromise = getUserApprovalPromise(permController) - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) - const req = RPC_REQUESTS.eth_requestAccounts(ORIGINS.a) + const req = RPC_REQUESTS.eth_requestAccounts(DOMAINS.a.origin) const res = {} const pendingApproval = assert.doesNotReject( @@ -577,7 +577,7 @@ describe('permissions middleware', function () { // wait for permission to be granted await pendingApproval - const perms = permController.permissions.getPermissionsForDomain(ORIGINS.a) + const perms = permController.permissions.getPermissionsForDomain(DOMAINS.a.origin) assert.equal( perms.length, 1, @@ -587,7 +587,7 @@ describe('permissions middleware', function () { validatePermission( perms[0], PERM_NAMES.eth_accounts, - ORIGINS.a, + DOMAINS.a.origin, CAVEATS.eth_accounts(ACCOUNTS.a.permitted) ) @@ -603,7 +603,7 @@ describe('permissions middleware', function () { ) // we should also be able to get the accounts independently - const aAccounts = await permController.getAccounts(ORIGINS.a) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( aAccounts, [ACCOUNTS.a.primary], 'origin should have have correct accounts' ) @@ -613,9 +613,9 @@ describe('permissions middleware', function () { const userApprovalPromise = getUserApprovalPromise(permController) - const aMiddleware = getPermissionsMiddleware(permController, ORIGINS.a) + const aMiddleware = getPermissionsMiddleware(permController, DOMAINS.a.origin) - const req = RPC_REQUESTS.eth_requestAccounts(ORIGINS.a) + const req = RPC_REQUESTS.eth_requestAccounts(DOMAINS.a.origin) const res = {} const expectedError = ERRORS.rejectPermissionsRequest.rejection() @@ -646,7 +646,7 @@ describe('permissions middleware', function () { 'response should have expected error and no result' ) - const aAccounts = await permController.getAccounts(ORIGINS.a) + const aAccounts = await permController.getAccounts(DOMAINS.a.origin) assert.deepEqual( aAccounts, [], 'origin should have have correct accounts' ) @@ -654,14 +654,14 @@ describe('permissions middleware', function () { it('directly returns accounts for permitted domain', async function () { - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin) grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.c.permitted) ) - const req = RPC_REQUESTS.eth_requestAccounts(ORIGINS.c) + const req = RPC_REQUESTS.eth_requestAccounts(DOMAINS.c.origin) const res = {} await assert.doesNotReject( @@ -688,14 +688,14 @@ describe('permissions middleware', function () { permController.getUnlockPromise = () => unlockPromise - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin) grantPermissions( - permController, ORIGINS.c, + permController, DOMAINS.c.origin, PERMS.finalizedRequests.eth_accounts(ACCOUNTS.c.permitted) ) - const req = RPC_REQUESTS.eth_requestAccounts(ORIGINS.c) + const req = RPC_REQUESTS.eth_requestAccounts(DOMAINS.c.origin) const res = {} // this will block until we resolve the unlock Promise @@ -743,9 +743,9 @@ describe('permissions middleware', function () { const name = 'BAZ' - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin) - const req = RPC_REQUESTS.wallet_sendDomainMetadata(ORIGINS.c, name) + const req = RPC_REQUESTS.wallet_sendDomainMetadata(DOMAINS.c.origin, name) const res = {} await assert.doesNotReject( @@ -759,7 +759,13 @@ describe('permissions middleware', function () { assert.deepEqual( metadataStore, - { [ORIGINS.c]: { name, lastUpdated: 1 } }, + { + [DOMAINS.c.origin]: { + name, + host: DOMAINS.c.host, + lastUpdated: 1, + }, + }, 'metadata should have been added to store' ) }) @@ -770,9 +776,9 @@ describe('permissions middleware', function () { const name = 'BAZ' - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c, extensionId) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin, extensionId) - const req = RPC_REQUESTS.wallet_sendDomainMetadata(ORIGINS.c, name) + const req = RPC_REQUESTS.wallet_sendDomainMetadata(DOMAINS.c.origin, name) const res = {} await assert.doesNotReject( @@ -786,7 +792,7 @@ describe('permissions middleware', function () { assert.deepEqual( metadataStore, - { [ORIGINS.c]: { name, extensionId, lastUpdated: 1 } }, + { [DOMAINS.c.origin]: { name, extensionId, lastUpdated: 1 } }, 'metadata should have been added to store' ) }) @@ -795,9 +801,9 @@ describe('permissions middleware', function () { const name = null - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin) - const req = RPC_REQUESTS.wallet_sendDomainMetadata(ORIGINS.c, name) + const req = RPC_REQUESTS.wallet_sendDomainMetadata(DOMAINS.c.origin, name) const res = {} await assert.doesNotReject( @@ -817,9 +823,9 @@ describe('permissions middleware', function () { it('should not record domain metadata if no metadata', async function () { - const cMiddleware = getPermissionsMiddleware(permController, ORIGINS.c) + const cMiddleware = getPermissionsMiddleware(permController, DOMAINS.c.origin) - const req = RPC_REQUESTS.wallet_sendDomainMetadata(ORIGINS.c) + const req = RPC_REQUESTS.wallet_sendDomainMetadata(DOMAINS.c.origin) delete req.domainMetadata const res = {} diff --git a/ui/app/components/app/connected-sites-list/connected-sites-list.component.js b/ui/app/components/app/connected-sites-list/connected-sites-list.component.js index ed6c27c10..436b65338 100644 --- a/ui/app/components/app/connected-sites-list/connected-sites-list.component.js +++ b/ui/app/components/app/connected-sites-list/connected-sites-list.component.js @@ -1,6 +1,7 @@ import React, { Component } from 'react' import PropTypes from 'prop-types' import IconWithFallBack from '../../ui/icon-with-fallback' +import { stripHttpSchemes } from '../../../helpers/utils/util' export default class ConnectedSitesList extends Component { static contextTypes = { @@ -11,9 +12,11 @@ export default class ConnectedSitesList extends Component { connectedDomains: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string, icon: PropTypes.string, - key: PropTypes.string, + origin: PropTypes.string, + host: PropTypes.string, })).isRequired, onDisconnect: PropTypes.func.isRequired, + domainHostCount: PropTypes.objectOf(PropTypes.number).isRequired, } render () { @@ -23,25 +26,31 @@ export default class ConnectedSitesList extends Component { return (
{ connectedDomains.map((domain) => ( -
+
- - { - domain.extensionId - ? t('externalExtension') - : domain.key - } + + {this.getDomainDisplayName(domain)}
onDisconnect(domain.key)} + onClick={() => onDisconnect(domain.origin)} />
)) }
) } + + getDomainDisplayName (domain) { + if (domain.extensionId) { + return this.context.t('externalExtension') + } + + return this.props.domainHostCount[domain.host] > 1 + ? domain.origin + : stripHttpSchemes(domain.origin) + } } diff --git a/ui/app/helpers/utils/util.js b/ui/app/helpers/utils/util.js index 621e47438..33cad8860 100644 --- a/ui/app/helpers/utils/util.js +++ b/ui/app/helpers/utils/util.js @@ -297,3 +297,15 @@ export function isValidAddressHead (address) { export function getAccountByAddress (accounts = [], targetAddress) { return accounts.find(({ address }) => address === targetAddress) } + +/** + * Strips the following schemes from URL strings: + * - http + * - https + * + * @param {string} urlString - The URL string to strip the scheme from. + * @returns {string} The URL string, without the scheme, if it was stripped. + */ +export function stripHttpSchemes (urlString) { + return urlString.replace(/^https?:\/\//u, '') +} diff --git a/ui/app/pages/connected-accounts/connected-accounts.component.js b/ui/app/pages/connected-accounts/connected-accounts.component.js index 4f664b625..cd0900f93 100644 --- a/ui/app/pages/connected-accounts/connected-accounts.component.js +++ b/ui/app/pages/connected-accounts/connected-accounts.component.js @@ -54,7 +54,7 @@ export default class ConnectedAccounts extends PureComponent { return ( history.push(mostRecentOverviewPage)} footerClassName="connected-accounts__footer" diff --git a/ui/app/pages/connected-sites/connected-sites.component.js b/ui/app/pages/connected-sites/connected-sites.component.js index 6249dc274..924321512 100644 --- a/ui/app/pages/connected-sites/connected-sites.component.js +++ b/ui/app/pages/connected-sites/connected-sites.component.js @@ -17,6 +17,7 @@ export default class ConnectedSites extends Component { accountLabel: PropTypes.string.isRequired, closePopover: PropTypes.func.isRequired, connectedDomains: PropTypes.arrayOf(PropTypes.object).isRequired, + domainHostCount: PropTypes.objectOf(PropTypes.number).isRequired, disconnectAllAccounts: PropTypes.func.isRequired, disconnectAccount: PropTypes.func.isRequired, getOpenMetamaskTabsIds: PropTypes.func.isRequired, @@ -69,6 +70,7 @@ export default class ConnectedSites extends Component { renderConnectedSitesList () { return ( diff --git a/ui/app/pages/connected-sites/connected-sites.container.js b/ui/app/pages/connected-sites/connected-sites.container.js index e31ac8ec0..fb5c23318 100644 --- a/ui/app/pages/connected-sites/connected-sites.container.js +++ b/ui/app/pages/connected-sites/connected-sites.container.js @@ -11,6 +11,7 @@ import { getCurrentAccountWithSendEtherInfo, getOriginOfCurrentTab, getPermissionDomains, + getPermissionsMetadataHostCounts, getPermittedAccountsByOrigin, getSelectedAddress, } from '../../selectors' @@ -40,6 +41,7 @@ const mapStateToProps = (state) => { accountLabel: getCurrentAccountWithSendEtherInfo(state).name, connectedDomains, domains: getPermissionDomains(state), + domainHostCount: getPermissionsMetadataHostCounts(state), mostRecentOverviewPage: getMostRecentOverviewPage(state), permittedAccountsByOrigin, selectedAddress, diff --git a/ui/app/selectors/permissions.js b/ui/app/selectors/permissions.js index b18b5e8ef..684bedac2 100644 --- a/ui/app/selectors/permissions.js +++ b/ui/app/selectors/permissions.js @@ -104,13 +104,15 @@ export function getConnectedDomainsForSelectedAddress (state) { extensionId, name, icon, + host, } = domainMetadata[domainKey] || {} connectedDomains.push({ extensionId, - key: domainKey, + origin: domainKey, name, icon, + host, }) }) @@ -261,6 +263,20 @@ export function getLastConnectedInfo (state) { }, {}) } +export function getPermissionsMetadataHostCounts (state) { + const metadata = getPermissionDomainsMetadata(state) + return Object.values(metadata).reduce((counts, { host }) => { + if (host) { + if (!counts[host]) { + counts[host] = 1 + } else { + counts[host] += 1 + } + } + return counts + }, {}) +} + export function getPermissionsRequests (state) { return state.metamask.permissionsRequests || [] } diff --git a/ui/app/selectors/tests/permissions.test.js b/ui/app/selectors/tests/permissions.test.js index 66d73b182..bf8ccc46d 100644 --- a/ui/app/selectors/tests/permissions.test.js +++ b/ui/app/selectors/tests/permissions.test.js @@ -16,10 +16,12 @@ describe('selectors', function () { 'peepeth.com': { 'icon': 'https://peepeth.com/favicon-32x32.png', 'name': 'Peepeth', + 'host': 'peepeth.com', }, 'https://remix.ethereum.org': { 'icon': 'https://remix.ethereum.org/icon.png', 'name': 'Remix - Ethereum IDE', + 'host': 'remix.ethereum.org', }, }, domains: { @@ -74,13 +76,15 @@ describe('selectors', function () { assert.deepEqual(getConnectedDomainsForSelectedAddress(mockState), [{ extensionId, icon: 'https://peepeth.com/favicon-32x32.png', - key: 'peepeth.com', + origin: 'peepeth.com', name: 'Peepeth', + host: 'peepeth.com', }, { extensionId, name: 'Remix - Ethereum IDE', icon: 'https://remix.ethereum.org/icon.png', - key: 'https://remix.ethereum.org', + origin: 'https://remix.ethereum.org', + host: 'remix.ethereum.org', }]) }) @@ -92,10 +96,12 @@ describe('selectors', function () { 'peepeth.com': { 'icon': 'https://peepeth.com/favicon-32x32.png', 'name': 'Peepeth', + 'host': 'peepeth.com', }, 'https://remix.ethereum.org': { 'icon': 'https://remix.ethereum.org/icon.png', 'name': 'Remix - Ethereum IDE', + 'host': 'remix.ethereum.com', }, }, domains: { @@ -152,7 +158,8 @@ describe('selectors', function () { extensionId, name: 'Remix - Ethereum IDE', icon: 'https://remix.ethereum.org/icon.png', - key: 'https://remix.ethereum.org', + origin: 'https://remix.ethereum.org', + host: 'remix.ethereum.com', }]) }) }) From f4c255b7c79d5e8f3716adcd7df8deb069b63d3a Mon Sep 17 00:00:00 2001 From: Whymarrh Whitby Date: Wed, 10 Jun 2020 11:44:04 -0230 Subject: [PATCH 35/35] Delete unused InfuraController & tests (#8773) --- app/scripts/background.js | 1 - app/scripts/controllers/infura.js | 39 ----------- app/scripts/metamask-controller.js | 8 --- .../app/controllers/infura-controller-test.js | 66 ------------------- 4 files changed, 114 deletions(-) delete mode 100644 app/scripts/controllers/infura.js delete mode 100644 test/unit/app/controllers/infura-controller-test.js diff --git a/app/scripts/background.js b/app/scripts/background.js index 6eedeeea4..cf273d31a 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -134,7 +134,6 @@ initialize().catch(log.error) * @property {string} currentCurrency - A string identifying the user's preferred display currency, for use in showing conversion rates. * @property {number} conversionRate - A number representing the current exchange rate from the user's preferred currency to Ether. * @property {number} conversionDate - A unix epoch date (ms) for the time the current conversion rate was last retrieved. - * @property {Object} infuraNetworkStatus - An object of infura network status checks. * @property {boolean} forgottenPassword - Returns true if the user has initiated the password recovery screen, is recovering from seed phrase. */ diff --git a/app/scripts/controllers/infura.js b/app/scripts/controllers/infura.js deleted file mode 100644 index 75be7ef3c..000000000 --- a/app/scripts/controllers/infura.js +++ /dev/null @@ -1,39 +0,0 @@ -import ObservableStore from 'obs-store' -import log from 'loglevel' - -// every ten minutes -const POLLING_INTERVAL = 10 * 60 * 1000 - -export default class InfuraController { - - constructor (opts = {}) { - const initState = Object.assign({ - infuraNetworkStatus: {}, - }, opts.initState) - this.store = new ObservableStore(initState) - } - - // - // PUBLIC METHODS - // - - // Responsible for retrieving the status of Infura's nodes. Can return either - // ok, degraded, or down. - async checkInfuraNetworkStatus () { - const response = await window.fetch('https://api.infura.io/v1/status/metamask') - const parsedResponse = await response.json() - this.store.updateState({ - infuraNetworkStatus: parsedResponse, - }) - return parsedResponse - } - - scheduleInfuraNetworkCheck () { - if (this.conversionInterval) { - clearInterval(this.conversionInterval) - } - this.conversionInterval = setInterval(() => { - this.checkInfuraNetworkStatus().catch(log.warn) - }, POLLING_INTERVAL) - } -} diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index e6f973e59..5c36d8d23 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -29,7 +29,6 @@ import EnsController from './controllers/ens' import NetworkController from './controllers/network' import PreferencesController from './controllers/preferences' import AppStateController from './controllers/app-state' -import InfuraController from './controllers/infura' import CachedBalancesController from './controllers/cached-balances' import AlertController from './controllers/alert' import OnboardingController from './controllers/onboarding' @@ -128,11 +127,6 @@ export default class MetamaskController extends EventEmitter { this.currencyRateController = new CurrencyRateController(undefined, initState.CurrencyController) - this.infuraController = new InfuraController({ - initState: initState.InfuraController, - }) - this.infuraController.scheduleInfuraNetworkCheck() - this.phishingController = new PhishingController() // now we can initialize the RPC provider, which other controllers require @@ -292,7 +286,6 @@ export default class MetamaskController extends EventEmitter { AddressBookController: this.addressBookController, CurrencyController: this.currencyRateController, NetworkController: this.networkController.store, - InfuraController: this.infuraController.store, CachedBalancesController: this.cachedBalancesController.store, AlertController: this.alertController.store, OnboardingController: this.onboardingController.store, @@ -318,7 +311,6 @@ export default class MetamaskController extends EventEmitter { PreferencesController: this.preferencesController.store, AddressBookController: this.addressBookController, CurrencyController: this.currencyRateController, - InfuraController: this.infuraController.store, AlertController: this.alertController.store, OnboardingController: this.onboardingController.store, IncomingTransactionsController: this.incomingTransactionsController.store, diff --git a/test/unit/app/controllers/infura-controller-test.js b/test/unit/app/controllers/infura-controller-test.js deleted file mode 100644 index 26ee91e5b..000000000 --- a/test/unit/app/controllers/infura-controller-test.js +++ /dev/null @@ -1,66 +0,0 @@ -import assert from 'assert' -import sinon from 'sinon' -import InfuraController from '../../../../app/scripts/controllers/infura' - -describe('infura-controller', function () { - let infuraController, networkStatus - const response = { 'mainnet': 'degraded', 'ropsten': 'ok', 'kovan': 'ok', 'rinkeby': 'down', 'goerli': 'ok' } - - describe('Network status queries', function () { - before(async function () { - infuraController = new InfuraController() - sinon.stub(infuraController, 'checkInfuraNetworkStatus').resolves(response) - networkStatus = await infuraController.checkInfuraNetworkStatus() - }) - - describe('Mainnet', function () { - it('should have Mainnet', function () { - assert.equal(Object.keys(networkStatus)[0], 'mainnet') - }) - - it('should have a value for Mainnet status', function () { - assert.equal(networkStatus.mainnet, 'degraded') - }) - }) - - describe('Ropsten', function () { - it('should have Ropsten', function () { - assert.equal(Object.keys(networkStatus)[1], 'ropsten') - }) - - it('should have a value for Ropsten status', function () { - assert.equal(networkStatus.ropsten, 'ok') - }) - }) - - describe('Kovan', function () { - it('should have Kovan', function () { - assert.equal(Object.keys(networkStatus)[2], 'kovan') - }) - - it('should have a value for Kovan status', function () { - assert.equal(networkStatus.kovan, 'ok') - }) - }) - - describe('Rinkeby', function () { - it('should have Rinkeby', function () { - assert.equal(Object.keys(networkStatus)[3], 'rinkeby') - }) - - it('should have a value for Rinkeby status', function () { - assert.equal(networkStatus.rinkeby, 'down') - }) - }) - - describe('Goerli', function () { - it('should have Goerli', function () { - assert.equal(Object.keys(networkStatus)[4], 'goerli') - }) - - it('should have a value for Goerli status', function () { - assert.equal(networkStatus.goerli, 'ok') - }) - }) - }) -})